2462 Commits

Author SHA1 Message Date
georgemoralis
9c2f71326a tagged 0.9.0 release 2025-05-22 18:52:44 +03:00
georgemoralis
b55c3f4555 Trophy fix (#2975)
* fixed invalid handle destroy

* removed log
2025-05-22 05:35:00 -07:00
squidbus
3f949d2b6c amdgpu: Handle 32-bit Unorm formats. (#2974) 2025-05-22 03:16:20 -07:00
squidbus
f4eb0b9b9e shader_recompiler: Fix buffer type reading from step rate attribute. (#2973) 2025-05-22 03:03:24 -07:00
squidbus
6935b24440 savedata: Fix missing uses of config based save data dir. (#2971) 2025-05-22 11:28:41 +03:00
kalaposfos13
786ad6f71e Fork detection fixes IIIIX (#2966)
* Fix local builds

* Add remote fork windows title to release builds too

* Remove trailing slah from remote links before processing
2025-05-21 23:00:11 +03:00
kalaposfos13
eb21083078 Lower stack size to clear from 13 to 12 KB (#2967) 2025-05-21 16:22:38 -03:00
Lander Gallastegi
1b952bf173 ReadConst debug msg (#2964) 2025-05-21 19:08:27 +03:00
georgemoralis
60224e1d22 New Crowdin updates (#2953)
* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (French)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Norwegian Bokmal)
2025-05-21 13:57:52 +03:00
squidbus
034ae8cffa qt: Update save data dir open to use name from PSF. (#2954) 2025-05-18 13:16:31 -07:00
Vinicius Rangel
5eb58799fe SaveData: respect install dir in param.sfo to select the game save folder (#2951) 2025-05-17 12:00:35 -03:00
georgemoralis
6ee205d4e2 New Crowdin updates (#2946)
* New translations en_us.ts (Korean)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Slovenian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Italian)
2025-05-17 17:33:24 +03:00
Vinicius Rangel
5f447a815e SaveDataDialog: fix possible null access (#2947) 2025-05-17 10:41:16 -03:00
tlarok
e2513d50be New kbm icon (#2898)
* Update kbm_gui.cpp

* Update kbm_gui.cpp

* Update kbm_gui.h

* Update kbm_gui.cpp

* lunix test

* linux test

* Update kbm_gui.h

* Update kbm_gui.cpp

* Update kbm_gui.cpp

* Update kbm_gui.cpp

* Update kbm_gui.cpp

* Update kbm_gui.h

* Update kbm_gui.cpp

* Update kbm_gui.h

* Update kbm_gui.cpp

* Update kbm_gui.h

* Update kbm_gui.cpp

* kbm_gui.cpp's names fix

just cleaning my code

* name fix

* Update kbm_gui.cpp

* Update kbm_gui.h

* Update kbm_gui.cpp

* Update src/qt_gui/kbm_gui.cpp

Co-authored-by: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com>

* clean up from main

* bruh, welp here we go again

* Update KBM.png

* resize kbm.png

* Update kbm_gui.ui

* test update kbm_gui.ui

---------

Co-authored-by: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com>
2025-05-17 11:39:35 +03:00
georgemoralis
a09f7158b8 New translations en_us.ts (Korean) (#2943) 2025-05-17 11:38:38 +03:00
georgemoralis
251d0f0d7c [ci skip] Qt GUI: Update Translation. (#2910)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
2025-05-17 11:38:04 +03:00
Stephen Miller
a0acb47185 Only align when flags Fixed is not present (#2945)
Should fix some remaining memory issues.
2025-05-16 14:21:13 -07:00
mailwl
ffd31589cf Fix reading not existing savedata (#2941)
* Fix reading not existing savedata

* alloc save memory instead return error

* save memory saze to save slot instead of global

* remove unused enum

* remove unneeded memory clean
2025-05-16 13:22:47 -03:00
Stephen Miller
4d769d9c7e Proper error handling for MapMemory errors (#2938)
* Properly handle ENOMEM error return in MapMemory

Needed for Assassin's Creed Unity to behave properly.

* Change error message

If I left the message as-is, we'd probably see inexperienced people claiming the assert means your device needs more memory, which is completely false.

* Clang

You know you're doing something right when Clang complains.

* Attempt to handle MemoryMapFlags::NoOverwrite

Based on my interpretation of red_prig's descriptions. These changes are untested, as I'm not able to test right now.

* Fix flag description

* Move overwrite check to while condition
2025-05-16 17:41:22 +03:00
georgemoralis
7de6aec337 [Libs] Companion httpd (#2942)
* stubbed companion httpd

* sceCompanionHttpdGetEvent returns disconnected device

* more function definations

* added error codes file
2025-05-16 16:17:37 +03:00
Stephen Miller
18ff65efc8 Implement sceKernelMapDirectMemory2 (#2940)
* Implement sceKernelMapDirectMemory2

Behaves similarly to sceKernelMapDirectMemory, but has a type parameter.

* Simplify

No need to copy all the MapDirectMemory code over, can just call the function, then do the SetDirectMemoryType call

* Clang
2025-05-16 05:38:40 -07:00
squidbus
aeb4536988 externals: Remove winpthreads. (#2932) 2025-05-15 13:59:34 -07:00
MajorP93
98faff425e build: Target x86-64-v3 CPU architecture (#2934) 2025-05-14 10:37:16 -07:00
Stephen Miller
6d38100a41 Avoid logging nulls in sceKernelIsStack (#2933)
Games would crash if providing nullptr to start or end.
Also don't need the :# part when logging pointers, as they're automatically formatted.
2025-05-14 17:09:23 +03:00
squidbus
26c965cf4a equeue: Fix timer cancel error code check. 2025-05-13 17:31:23 -07:00
squidbus
99eaba7c96 liverpool: Lower SetQueueReg to warning log. (#2930) 2025-05-13 16:08:25 -07:00
squidbus
1639640902 event_flag: Lower error logs to debug. 2025-05-13 14:46:59 -07:00
Marcin Mikołajczyk
647b1d3ee4 Handle VgtStreamoutFlush event (#2929) 2025-05-13 14:34:22 -07:00
Marcin Mikołajczyk
6abda17532 Avoid post-increment of SGPR in S_*_LOAD_DWORD (#2928) 2025-05-13 14:31:14 -07:00
squidbus
3ab69e24db fix: Compiling with newer Boost 2025-05-13 14:22:44 -07:00
squidbus
073f931729 fix: PM4CmdWaitRegMem memory address 2025-05-13 14:14:11 -07:00
squidbus
0d127a82dd equeue: Clean up timers implementation. (#2925) 2025-05-13 14:05:29 -07:00
Marcin Mikołajczyk
e5b675d607 Handle IT_WAIT_REG_MEM with Register argument (#2927) 2025-05-13 13:56:20 -07:00
Marcin Mikołajczyk
1832ec2ac2 Implement sceKernelIsStack (#2917) 2025-05-13 13:54:22 -07:00
Marcin Mikołajczyk
484fbcc320 Handle -1 as V_CMP_NE_U64 argument (#2919) 2025-05-13 13:19:56 -07:00
Fire Cube
7334fb620b sceKernelAddTimerEvent implementation (#2906)
* implementation

* add backend (WIP)

* now should be good
- fix implementation based on homebrew tests
- demote log to debug
- make squidbus happy (hopefully)

* fix moved m_name

* fix clang

* replace existing event when its same id and filter

* run timercallback after addEvent and remove useless code

* move KernelSignalRequest to the end

* clang (i hate you)
2025-05-13 12:16:53 -07:00
georgemoralis
f97c0deea9 ngs2: removed possible nullptr value from logging (#2924) 2025-05-13 11:29:47 -07:00
squidbus
4cd13ea9d8 fix: Disable emitting bounds checks until fixed. 2025-05-12 23:10:48 -07:00
georgemoralis
e6a144ddb0 [Libs] sceNet IV (#2867)
* dummy returns in p2p sockets

* added logging for sceNetSetsockopt

* possible fix for ORBIS_NET_SO_LINGER set

* logging for getsockoption as well

* disable kernel getsockname (seems to create issues with cyberpunk)

* some fixes with SetSocketOptions

* arggg

* posix_getsockname try

* mutex protection

* removed duplicated include (diegolix29)

* posix_getsockname appears to have issues in cyberpunk , comment it for now
2025-05-13 08:54:38 +03:00
squidbus
3a10fda008 kernel: Simplify sceKernelUuidCreate 2025-05-12 22:15:04 -07:00
Roman
2a3a701115 kernel: macos/linux Implement sceKernelUuidCreate (#2923)
* kernel: macos/linux Implement sceKernelUuidCreate

* Fix clang-format

* Fix Linux build

* Fix Linux build (2)

---------

Co-authored-by: squidbus <175574877+squidbus@users.noreply.github.com>
2025-05-12 22:10:33 -07:00
squidbus
6bbb424c28 vk_instance: Enable robustImageAccess2 (#2922) 2025-05-12 18:03:55 -07:00
Marcin Mikołajczyk
3a3a6d8e45 Mprotect only over whole pages (#2918)
* Mprotect only over whole pages

* Fix aligned_size error and clang-format.

---------

Co-authored-by: squidbus <175574877+squidbus@users.noreply.github.com>
2025-05-12 16:55:19 -07:00
squidbus
b23f6fdc1d buffer_cache: Split updateBuffer calls into 65536 byte chunks. (#2915) 2025-05-12 15:27:47 -07:00
Randomuser8219
9baa58dd92 renderer_vulkan: Properly enable dualSrcBlend feature. (#2921)
* renderer_vulkan: Properly enable dualSrcBlend feature

* whoops
2025-05-12 15:26:55 -07:00
Vinicius Rangel
5ab5fa7024 hotfix: replace memset declaration by cstring include
fixes the Arch package build (https://aur.archlinux.org/packages/shadps4-git#comment-1023984)
2025-05-12 18:35:04 -03:00
ringolol
b3abb83fc5 fix rough mouse movement due to incorrect check (#2911)
Co-authored-by: rnglol <kek@example.com>
2025-05-12 21:39:50 +02:00
squidbus
f94c7e52b7 kernel: Implement scePthreadGetaffinity (#2916) 2025-05-12 10:46:53 -07:00
squidbus
8909d9bb89 shader_recompiler: Always mark buffers as storage buffers. (#2914) 2025-05-12 10:46:40 -07:00
squidbus
678f18ddb9 core: Introduce host call wrapper. (#2913) 2025-05-11 20:27:54 -07:00
squidbus
02d3ed4973 liverpool: Log more information on SetQueueReg. (#2912) 2025-05-11 20:27:43 -07:00
Stephen Miller
6206986914 libkernel: Implement sceKernelMemoryPoolBatch (#2909)
* Implement sceKernelMemoryPoolBatch

I've tested Commit and Decommit on real hardware, haven't tested Protect or TypeProtect yet.

Implementation is primarily based on our sceKernelBatchMap implementation.

* Clang
2025-05-11 19:51:03 -07:00
squidbus
c0562a6b1b qt: Delay physical device enumeration to settings open. (#2908) 2025-05-11 14:23:49 -07:00
squidbus
3a090e988c kernel: Clean up and fix some mistakes. (#2907) 2025-05-11 14:22:17 -07:00
georgemoralis
ff1339b0b6 [Libs] Camera (#2902)
* stubbed camera lib

* function definations

* added error codes
2025-05-11 19:03:55 +03:00
Stephen Miller
afcf3a12a3 Core: Pooled Memory Fixes (#2895)
* Update sceKernelMemoryPoolExpand

Hardware tests show that this function is basically the same as sceKernelAllocateDirectMemory, with some minor differences.
Update the memory searching code to match my updated AllocateDirectMemory code, with appropriate error conditions.

* Update MemoryPoolReserve

Only difference between real hw and our code is behavior with addr = 0.

* Don't coalesce PoolReserved areas.

Real hardware doesn't coalesce them.

* Update PoolCommit

Plenty of edge case behaviors to handle here.
Addresses are treated as fixed, EINVAL is returned for bad mappings, name should be preserved from PoolReserving, committed areas should coalesce, reserved areas get their phys_base updated

* Formatting

* Adjust fixed PoolReserve path

Hardware tests suggest this will overwrite all VMAs in the range. Run UnmapMemoryImpl on the full area, then reserve. Same logic applies to normal reservations too.

Also adjusts logic of the non-fixed path to more closely align with hardware observations.

* Remove phys_base modifications

This can be handled later. Doing the logic properly would likely take work in MergeAdjacent, and would probably need to be applied to normal dmem mappings too.

* Use VMAHandle.Contains()

Why do extra math when we have a function specifically for this?

* Update memory.cpp

* Remove unnecessary code

Since I've removed those two asserts, these two lines of code effectively do nothing.

* Clang

* Fix names

* Fix PoolDecommit

Should fix the address space regressions in UE titles on Windows.

* Fix error log

Should make the cause of this clearer?

* Clang

* Oops

* Remove coalesce on PoolCommit

Windows makes this more difficult.

* Track pool budgets

If you try to commit more pooled memory than is allocated, PoolCommit returns ENOMEM.
Also fixes error conditions for PoolDecommit, that should return EINVAL if given an address that isn't part of the pool.

Note: Seems like the pool budget can't hit zero? I used a <= comparison based on hardware tests, otherwise we're able to make more mappings than real hardware can.
2025-05-11 02:59:14 -07:00
Stephen Miller
6ece91c763 sceKernelVirtualQuery Fixes VI (#2904)
* Reduce bitfield size

Linux compilers automatically convert this, Windows not so much.

* Static assert for VirtualQueryInfo struct size

Since compilers can be weird, having a static assert for this will be helpful.
Granted, this probably wont need changing after this PR.
2025-05-10 20:02:00 -07:00
georgemoralis
7eea1fc4d6 log error for videodec ,videodec2 (#2900) 2025-05-10 23:29:23 +03:00
squidbus
c6ea7d8f76 externals: Update SDL3 (#2896) 2025-05-10 13:02:45 +03:00
Stephen Miller
6477dc4f1e Core: Memory Fixes (#2872)
* Fix VirtualQuery behavior on low addresses.

* Fix VirtualQuery struct

Somewhere in our BitField and array use, the size of our VirtualQuery struct became larger than the struct used on real hardware.
Fixing this fixes some data corruption visible in the name parameter during my tests.

* Default name to anon

On real hardware, nameless mappings are given the name "anon:address" where address appears to be the address that made the memory call.
For simplicity sake, I'll stick to the name "anon" for now.

* Place an upper bound on returns from SearchFree

Right now, this upper bound is set based on the limitations of our GPU buffer cache and page table.
Someone with more experience in that area of code should probably fix that at some point.

* More anons

* Clang

* Fix name in sceKernelMapNamedDirectMemory

* strncpy instead of strcpy

Hardcoded the constant size for now, I need to review how real hardware behaves here to determine if anything else is necessary for this to be accurate.

* Fix name behavior

All memory naming functions restrict the name size to a 31 character limit, and return `ORBIS_KERNEL_ERROR_ENAMETOOLONG` if that limit is exceeded.
Since this value is constant for all functions involving names, I've defined it as a constant in kernel's memory.h, and used that in place of any hardcoded 32 character limits.

* Error logging

Hopefully this helps in catching the UFC regression?

* Increase address space upper bound

Probably needs heavy testing, especially on Mac/Windows.
This increases the address space, as needed to accommodate strange memory behaviors seen in UFC.

* VirtualQuery fix

Due to limitations of certain platforms, we initialize our vma_map with 3 separate free mappings.
As such, we need to use a while loop here to accurately query mappings with high addresses

* Fix mappings to high addresses

The PS4's GPU can only handle 40bit addresses. Our texture cache and buffer cache were designed around these limits, and mapping to higher addresses would cause segmentation faults and access violations.
To fix these crashes, only map to the GPU if the mapping is fully contained within the address space the GPU should access.
I'm open to suggestions on how to make this cleaner

* Revert "Increase address space upper bound"

This reverts commit 3d50eeeebb.

* Revert VirtualQuery while loop

Windows wasn't happy with this, again.
Will try to debug and properly fix this when I have a good chance.

* Fix asserts

FindVMA, due to the way it's programmed, never actually returns vma_map.end(), the furthest it ever returns is the last valid memory area. All those asserts we involving vma_map.end() never actually trigger due to this.
This commit removes redundant asserts, adds messages to asserts that were lacking them, and fixes all asserts designed to detect out of bounds memory accesses so they actually trigger.
I've also fixed some potential memory safety issues.

* Proper error behavior in QueryProtection

Might as well handle this properly while I'm here.

* Clang

* More information about ReserveVirtualRange results

Should help debug issues like the one in The Order: 1886 (CUSA00076)

* Fix assert message

* Update assert message

Extra space

* Fix my bug

Oh hey, finally something that's my fault.

* Fix rasterizer unmaps

Should use adjusted_size here, otherwise we could unmap too much.
Thanks to diegolix29 for spotting this.

* Fix edge case in MapMemory

Code comments explain everything.
This should fix some memory asserts.

* Fix fix

Avoid running the code path if it's unnecessary, since there are many additional edge cases to handle when the VMA map is small.

* Fix fix fix

Should prevent infinite loops, haven't tested properly yet though.

* Split logging for inputs and out_addr in ReserveVirtualRange

Addresses review comments.
2025-05-09 12:33:04 -07:00
squidbus
a1439b15cf gnm: Implement sceGnmDrawIndexIndirectMulti (#2889) 2025-05-09 10:04:37 -07:00
Missake212
8d7cbf9943 Adding opcode IMAGE_SAMPLE_B_O (#2894)
* Adding opcode IMAGE_SAMPLE_B_O:

* fix clang (my first time !)
2025-05-09 09:01:34 -07:00
squidbus
b130fe6ed5 vulkan: Handle incompatible depth format using null binding. (#2892)
Co-authored-by: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com>
2025-05-09 08:43:20 -07:00
kalaposfos13
8e7c5a4d99 Remove deprecated include (#2893) 2025-05-09 08:33:32 -07:00
mailwl
46b88bd10f [Libs] Stubs sceSigninDialog (#2890)
* [Libs] Stubs SigninDialog

* clang-format

* clang-format again

* remove magic constant

* log dialog finished status
2025-05-09 11:08:22 +03:00
Paris Oplopoios
58df609ba0 Optimize games that hit unpatchable EXTRQ/INSERTQ (#2888)
* Make signal handler faster

* I love clang-format

* Use faster decoding

* MacOS CI
2025-05-08 19:59:12 +03:00
Vinicius Rangel
3b7c36e1ba Clear stack before executing guest code (#2877)
* Clear stack before executing guest code

* clang, don't optimize me 🚨

avoid ClearStack function being optimized in release builds
2025-05-07 15:20:55 -07:00
Fire Cube
1aa7eb8a42 add scePthreadSetaffinity and emulate affinity (#2885)
* add implementation

* fix preprocessor

* fixes squidbus's comments

* fix clang

* comment became fucked up?

* fix removed return
2025-05-07 14:50:16 -07:00
MajorP93
c7fb3ebd93 shader_recompiler: Widen num_conversion bitfield (#2886)
We do this in order to be able to actually fit in all possible values from AmdGpu::NumberConversion.

Fixes gcc compiler warnings:
warning: ‘Shader::PsColorBuffer::num_conversion’ is too small to hold all values of ‘enum class AmdGpu::NumberConversion’
2025-05-06 17:11:32 -07:00
Stephen Miller
fed064931a Core: Fix module load addresses (#2879)
* Fix module map addresses

Most modules are mapped starting at 0x800000000, with no gaps between mappings.

* Hardcode hardware accurate base address

Looking at our address space, all platforms will have this base address mapped, so there shouldn't be any problem in using it.

* Clang

* Swap module mapping to NoFlags, remove offset code

Since real hardware has no gap between module mappings, the Fixed flag is just an annoyance to work around, and has no impact on the actual mappings.
Swapping the module mappings to use flags NoFlags instead simplifies our code slightly.

* Fix module mapping names

On real hardware, the file extension is part of the mapping name. Easiest way to manage this is to swap the name to be `file.filename().string()` instead of `file.stem().string()`

* Fix patches

Completely missed this, whoops.
2025-05-05 03:24:08 -07:00
oltolm
9a22185ab7 vulkan: do not use VK_EXT_extended_dynamic_state (#2880)
fixes Bloodborne crashing on RX 580
2025-05-04 03:11:02 -07:00
squidbus
17b6343f18 emulator: Fix log initialization order. (#2878) 2025-05-03 13:47:03 -07:00
Vinicius Rangel
d542d952f4 Savefixes VIII (#2851)
* savedata dialog: fix SaveDialogUi move semantics

fix possible dangling points

* savedata dialog: removed unnecessary firmware version checks
2025-05-03 12:51:10 -03:00
Stephen Miller
0ba9ea6a3b Only perform early read-write open when truncating is needed (#2874)
Should stop some fs error spam when games open files from /app0, as this open call would fail from reduced permissions.
2025-05-02 11:22:05 -07:00
squidbus
eb09c4ccce vk_presenter: Use correct format for output frame image and view. (#2871) 2025-05-01 20:10:42 -07:00
Stephen Miller
6c39bf229c libkernel: Various filesystem fixes (#2868)
* Proper handling of whence 3 & 4

* Accurate directory handling in open

Directories can be opened, and can be created in open, these changes should handle that more accurately.

* Mount /app0 as read only

On real hardware, it's read only.

* Proper directory flag handling.

Even when directory is specified, it will still succeed to open non-directories.

* Check for read only directories

* Earlier ro check in posix_rmdir

Hardware tests suggest these checks are in a different order

* Clear temp folder on boot

My tests rely on this, and some games do too.
Two birds with one stone

* Clang

* Add missing DeleteHandle calls

Whoops

* Final flags adjustment in sceKernelOpen

All my current tests are now hardware accurate.

* Fix truncates

Host ftruncate consistently fails on EINVAL, I'll need to test if this issue affected Windows too.

* Windows hacks

Windows is more limiting about how folders are opened and things like that. For now, pretend these calls didn't error.
Also fixes compilation for Windows

* Final touch-ups

After expanding my test suite further, I found a couple more edge cases that needed addressing.
Bloodborne audio is still broken, I'll look into that soon.

* Remove hacky read-only behavior in posix_stat

Bloodborne apparently uses the mode parameter here when querying it's audio files, and the mode we returned led to it disabling audio entirely.

* Clang

* Cleaner code

* Combine fsync and sync flags

According to FreeBSD docs, the "sync" flag is synonymous with the fsync flag, and is only included to meet the POSIX spec.

* Log if any currently unhandled flags are encountered.

These are rare and probably not too important, but log a warning when they're seen.

* Update file_system.cpp

* Update file_system.cpp

* Clang

* Revert truncate fix

Using ftruncate works fine after moving the call to before the proper file opening code.

* Truncate before open

Open the file as read-write, then try truncating.
This fixes read | truncate flag behavior on Windows.

* Slightly adjust check for invalid flags

Any open call with invalid flags should return EINVAL, regardless of other errors parameters might cause.
2025-05-01 14:47:43 +03:00
Mahmoud Adel
b0e4e87ff3 Implement SnormNz conversion (#2841)
* +

* +

* Unpack Snorm 2x16

* +

* SintToSnormNz

* all is broken ig....

* review changes

* my stupid ass messed all while trying to resolve the conflicts..

* +

* +

* fix rebase

* clang-format fix (1)

* clang-format fix (2)

---------

Co-authored-by: squidbus <175574877+squidbus@users.noreply.github.com>
2025-05-01 02:12:15 -07:00
squidbus
4202d9d621 fix: Add missing ctime includes. 2025-04-30 23:37:37 -07:00
squidbus
5fd5b62539 shader_recompiler: Few fixes for buffer number conversions. (#2869)
* liverpool: Pass correct color buffer number type for conversion mapping.

* shader_recompiler: Apply number conversion to vertex inputs.
2025-04-30 20:46:16 -07:00
squidbus
10b24d04bc fix: Add new image atomic instructions to relevant lists. 2025-04-30 17:55:50 -07:00
anna12831920
c47d9b2ad6 Export eboot address (#2866) 2025-04-30 22:56:44 +03:00
squidbus
ede60e8f7f fix: Do not declare atomic float capability when not supported. 2025-04-30 11:43:51 -07:00
Marcin Mikołajczyk
c08f92aca1 Implement IMAGE_ATOMIC_FMIN and IMAGE_ATOMIC_FMAX for 32bit floats (#2820)
* Implement IMAGE_ATOMIC_FMIN and IMAGE_ATOMIC_FMAX for 32bit floats

* Handle missing VK_EXT_shader_atomic_float2
2025-04-30 11:42:08 -07:00
squidbus
a3bbf2274f fix: Mistake in store bounds check index. 2025-04-30 11:39:42 -07:00
georgemoralis
bb59cd81fa [Libs] sceNet (#2815)
* implemented sceNetGetMacAddress

* added all error codes

* added ORBIS_NET_CTL_INFO_DEVICE , ORBIS_NET_CTL_INFO_MTU

* RE sceNetConnect

* sceNetBind RE

* RE sceNetAccept

* RE sceNetGetpeername ,sceNetGetsockname

* fixup

* RE sceNetListen ,sceNetSetsockopt

* sceNetShutdown,sceNetSocket,sceNetSocketAbort,sceNetSocketClose

* sceSend,sceSendTo,sceSendMsg

* sceNetRecv,sceNetRecvFrom,sceNetRecvMsg RE

* some kernel net calls

* init winsock2

* logging

* sockets interface

* added winsock to SCE* error codes conversion

* implemented net basic calls

* some net calls implementation

* clang fixes

* fixes for linux+macOS

* more fix

* added sys_accept implementation

* more posix net calls

* implemented sys_getsockname

* fixed redirection

* fixed posix socket?

* posix_sendto , recvfrom

* added sys_socketclose

* unsigned error log

* added setsocketoptions

* added more posix net calls

* implement getsocketOptions

* stubbed p2p calls
2025-04-30 17:58:39 +03:00
georgemoralis
53b2ccffca New Crowdin updates (#2846)
* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Vietnamese)
2025-04-30 12:41:30 +03:00
Marcin Mikołajczyk
fa9f58446f Implement sceKernelPwritev (#2865) 2025-04-30 02:09:40 -07:00
squidbus
5e3157a82c vk_rasterizer: Fix updating wrong color attachment when skipped by mask. (#2859) 2025-04-29 16:29:35 -07:00
lcjh
beb9c86749 Code Review: SuspiciousPriority (#2854)
Priority of the '&&' operation is higher than that of the '||' operation.It's possible that parentheses should be used in the expression.
2025-04-28 11:27:25 -07:00
squidbus
81fa9b7fff shader_recompiler: Add lowering pass for when 64-bit float is unsupported. (#2858)
* shader_recompiler: Add lowering pass for when 64-bit float is unsupported.

* shader_recompiler: Fix PackDouble2x32/UnpackDouble2x32 type.

* shader_recompiler: Remove extra bit cast implementations.
2025-04-28 00:04:16 -07:00
squidbus
385c5a4507 fix: Add missing OpSelectionMerge in bounds check. 2025-04-27 21:53:36 -07:00
squidbus
59d060bc16 fix: gcc compile 2025-04-27 21:06:10 -07:00
squidbus
83fd0683fa fix: Properly enable depthBounds feature. 2025-04-27 20:57:04 -07:00
squidbus
81ad31ce31 pp_pass: Use correct surface format. (#2860) 2025-04-27 20:56:17 -07:00
MajorP93
ff984d3cde ci: Use mold linker for Linux builds (#2847)
* The default linker which happens to be BFD in Ubuntu 24.04 does not support Clang's ThinLTO which CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=ON tries to enable.
* Using mold linker fixes this and reduces build time a bit.
* For consistency reasons we enable mold linker for GCC builds aswell.
2025-04-27 20:34:59 -07:00
squidbus
b505829e16 lower_buffer_format_to_raw: Fix handling of format remapping. (#2857) 2025-04-27 16:52:52 -07:00
Valdis Bogdāns
254375ef0c Update ime_dialog.h (#2853)
Fix the incorrect ORBIS_IME_DIALOG_MAX_TEXT_LENGTH; a larger value is required for at least the game Undertale
2025-04-27 20:57:20 +03:00
Vinicius Rangel
cef795b80b devtools: persist fsr configs (#2852)
Saves FSR config to imgui.ini so it won't reset every startup
2025-04-27 13:32:29 -03:00
Stephen Miller
410313ca87 Implement sceKernelGetModuleInfo, sceKernelGetModuleInfoInternal, and sceKernelGetModuleList (#2850)
* Fix GetModule exception

Simple mistake

* Prevent OOB writes in add_segment

Due to mistakes in our linker logic, OpenOrbis' libSceFios2 causes OOB writes here.
While the ideal solution would be to fix the erroneous behavior, the best I'm capable of right now is just preventing the OOB writes.

* Implement sceKernelGetModuleInfo, sceKernelGetModuleInfoInternal, sceKernelGetModuleList

These are implemented based on hardware observations and a homebrew sample made by red_prig. I've yet to test what error cases can show up.

* Clang

* Accurate error returns

If there are more modules than provided space, then return kernel ENOMEM.
If either handles or out_count are null, return kernel EFAULT.

* Accurate error checks in ModuleInfo functions

* Clang
2025-04-27 09:32:01 +03:00
Stephen Miller
c09fff2da6 VideoOut event cleanup (#2849)
* Readable VideoOutEvent data packing

Inspired by the work of former shadPS4 devs and mostly based on red_prig's current code.

* Apply DceData struct to sceVideoOutGetEventCount

Makes the code easier to read

* Update equeue.h

* Update main.cpp

* Update equeue.h

* Proper struct names

* Fix hint mask

Thanks to red_prig for catching my mistake here.

* Clang

* Fix header discrepancy
2025-04-27 09:04:17 +03:00
baggins183
e816bc4b99 Use GetSrc in VALU insts instead of assuming vector reg (was vcc_lo) (#2845)
* Use GetSrc in v_add_i32 instead of assuming vector reg (was vcc_lo)

* some other cases
2025-04-25 19:44:03 -07:00
MajorP93
632ed99ee7 ci: Bump Clang to 19 for Linux builds, align LLVM repository with runner version (#2844)
* ci: Bump Clang to 19 for Linux builds
* PR #2434 was intended to bump Clang to 19. In reality it only made sure that clang-format-19 is being used and that the shadPS4 codebase can be compiled with Clang 19.
This PR makes sure that Clang 19 is actually being used for Linux builds which makes sense since we use Clang 19 for Windows builds already (Since Visual Studio 17.13 Clang 19 is being shipped).

* ci: Use noble variant of LLVM repository
* shadPS4 has been using Ubuntu 24.04 runners for some time now. This commit makes sure the correct LLVM repository is being used.
2025-04-25 15:06:51 -07:00
squidbus
15d6a45dcd externals: Simplify MoltenVK bundling. (#2842) 2025-04-24 19:40:50 -07:00
Dmugetsu
d370ea32f4 Sysmodules (#2826)
* Some sysmodules inconsistencies fixed. Based on Visual studio flags if they are irrelevant lmk

* Suggestions - info passed to sceKernelGetModuleInfoForUnwind and if name field matches it gets zeroed

* Final suggestions

* reverting OrbisModuleInfoForUnwind and modifing header.
2025-04-24 14:46:22 -07:00
kalaposfos13
c01590175a Implement sceImeDialogGetPanelSize (#2839)
* Implement sceImeDialogGetPanelSize

* Fix header

* Clang

* Adjust values that are different from Ime

* Add original sizes as comments

* clang

* At this point half of the PR is from squidbus, and I'm just typing out what they say

---------

Co-authored-by: squidbus <175574877+squidbus@users.noreply.github.com>
2025-04-24 13:13:44 -07:00
Stephen Miller
a12d447bd6 sceKernelAllocateDirectMemory hotfixes (#2838)
* Update memory.cpp

* Clean logic

FindDmemArea guarantees that the first dmem area we check contains search_start. Any dmem areas beyond the first one will be entirely past search_start, so checking against it in the loop is unnecessary.
2025-04-24 12:21:14 -07:00
squidbus
ce3aded3e5 fix: Intel crash on startup. 2025-04-23 11:09:04 -07:00
squidbus
4ecdcf77d1 build: Update MoltenVK ICD API version. 2025-04-23 09:58:00 -07:00
tlarok
3f4249084c multikey for kbm_gui (#2778)
* Update kbm_gui.cpp

* Update kbm_gui.cpp

* Update kbm_gui.h

* Update kbm_gui.cpp

* lunix test

* linux test

* Update kbm_gui.h

* Update kbm_gui.cpp

* Update kbm_gui.cpp

* Update kbm_gui.cpp

* Update kbm_gui.cpp

* Update kbm_gui.h

* Update kbm_gui.cpp

* Update kbm_gui.h

* Update kbm_gui.cpp

* Update kbm_gui.h

* Update kbm_gui.cpp

* kbm_gui.cpp's names fix

just cleaning my code

* name fix

* Update kbm_gui.cpp

* Update kbm_gui.h

* Update kbm_gui.cpp

* Update src/qt_gui/kbm_gui.cpp

Co-authored-by: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com>

* clean up from main

* bruh, welp here we go again

---------

Co-authored-by: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com>
2025-04-23 13:41:14 +03:00
squidbus
aeee7706ee renderer_vulkan: Restore Vulkan version to 1.3 (#2827)
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2025-04-23 13:28:31 +03:00
georgemoralis
5db162cbcd started 0.8.1 WIP 2025-04-23 13:24:57 +03:00
georgemoralis
354a2e6946 tagged v0.8.0 release 2025-04-23 13:05:36 +03:00
squidbus
53ca64f6ff renderer_vulkan: Support loading Vulkan layers on macOS SDL build. (#2832) 2025-04-23 01:10:03 -07:00
squidbus
ee7fe305c9 fix: Make sure right MoltenVK is loaded for macOS SDL. 2025-04-22 23:18:39 -07:00
squidbus
b1ebb2fec5 fix: Only change macOS working directory for app bundle. 2025-04-22 22:05:49 -07:00
squidbus
96bee58d0f ci: Fix macOS SDL build. (#2831) 2025-04-22 21:41:20 -07:00
squidbus
0297aee3f4 texture_cache: Relax mismatched image type from assert to cache miss. (#2830) 2025-04-22 15:03:43 -07:00
squidbus
5b0205bc59 fix: Texture cache image type assert. 2025-04-22 14:00:08 -07:00
Dmugetsu
cda421434b Adding missmatch info to Texture cache assert (#2828) 2025-04-22 22:49:29 +03:00
Fire Cube
0c86c54d48 Implement SET_PC_B64 instruction (#2823)
* basic impl

* minor improvements

* clang

* more clang

* improvements requested by squidbus
2025-04-21 14:25:15 -07:00
Stephen Miller
5be726ca3b Revert libSceGnmDriver initialization emulation (#2816)
Under normal circumstances, this mapping should only occur when libSceGnmDriver initializes. From what I can tell, this can be after game code starts running. Until there's a better way to accurately handle this, allocating this memory breaks some games.
This revert fixes the regression in games using the GFD engine.
2025-04-20 18:26:52 +03:00
kalaposfos13
69777e2ffa hotfix: clang-format 2025-04-19 17:19:40 +02:00
bigqy
111ff2bedd Fixe: Updated the timing of setting text translation for the “Show label under icon” action in the toolbar to set the text after retranslateUi. (#2806) 2025-04-19 17:52:43 +03:00
Missake212
d188510e59 Discord logo fix on the README. (#2811)
* Fix the broken Discord logo on the README

* Update README.md

change the size to match better
2025-04-19 17:51:59 +03:00
georgemoralis
d0dbb737d9 New translations en_us.ts (Arabic) (#2810) 2025-04-19 17:51:43 +03:00
georgemoralis
e11ffe242b Update team member on readme 2025-04-18 23:47:59 +03:00
Missake212
6e963a7f71 Changing the maximum amount of contributors on the README (#2804)
* Update README.md

* Update README.md
2025-04-18 23:42:48 +03:00
kalaposfos13
81ada41baa NpAuth library stub (#2808)
* Add the NpAuth library

* clang

* you didn't see anything

* Add some random return to make games at least start using this library

* i'm once again asking for your continued ignorance of what i'm forgetting to not push

* debug logging

* apparently just this is still enough

* this isn't used but it still shouldn't be incorrect
2025-04-18 23:42:17 +03:00
Stephen Miller
0feb2e7211 Emulate memory behavior of libSceGnmDriver initialization (#2807)
* Emulate memory behavior of libSceGnmDriver _DT_INIT

Due to the unique way some games check for sceKernelAllocateDirectMemory failures, emulating this properly is necessary.

* Clang

* Fix address input for direct memory call

* Fix bug with DirectQueryAvailable

Missed this in my prior PR.

* DirectQueryAvailable fix

Fixes error cases to be more hardware accurate.
2025-04-18 23:41:33 +03:00
kalaposfos13
23c616c647 why was this hardcoded in this one specific place (#2809) 2025-04-18 23:41:13 +03:00
Stephen Miller
20b11f2d63 libkernel: Fix sceKernelAllocateDirectMemory and sceKernelAvailableDirectMemorySize (#2803)
* AllocateDirectMemory fixes

search_start and search_end were ignored in certain cases, this fixes that issue.
I've also basically rewritten the function in the process, since the lack of documentation made it difficult to make the proper adjustments.

* DirectQueryAvailable fixes

remaining_size was calculated incorrectly in cases where a free dmem_area had a base earlier than search_start, or an end after search_end.

* Reduce sceKernelGetDirectMemorySize log severity

By this point, we've confirmed that sceKernelGetDirectMemorySize is hardware-accurate. There's no reason to clog logs with this function, which games usually call before every sceKernelAllocateDirectMemory call.

* Clang

* Fix phys_addr_out

phys_addr_out should be equal to search_start in cases where search_start is greater than the dmem_area base.

* Dividing by zero is fun

Need to check for alignment when aligning things.

* Update memory.cpp

* Clang
2025-04-18 11:00:14 +03:00
squidbus
df89241eb8 vk_rasterizer: Improve viewport depth calculations. (#2799) 2025-04-17 13:04:48 -07:00
¥IGA
703620c7cd [Windows] Adding Properties to the Executable (#2789) 2025-04-17 09:43:14 +03:00
georgemoralis
b1b7538afd New Crowdin updates (#2785)
* New translations en_us.ts (Arabic)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Arabic)
2025-04-17 09:42:26 +03:00
Dmugetsu
ddc05e8a5f Implementing DS_SUB_U32, DS_INC_U32, DS_DEC_U32. (#2797)
* Implementing DS_SUB_U32, DS_INC_U32, DS_DEC_U32, DS_WRITE_SRC2_B32, DS_WRITE_SRC2_B64.

* Added ir instructions for new opcodes.
Removing Write implementations.
Maping operation S_BFE_I32 as it was added in translate but wasnt pointing to anything.

* Suggestions
2025-04-16 17:56:27 -07:00
squidbus
62a4182aca shader_recompiler: Fill in IMAGE_GATHER4_* variants in table. (#2798) 2025-04-16 17:35:14 -07:00
Fire Cube
aa8dab5371 shader_recompiler: Implement S_SUBB_U32 instruction (#2796)
* add S_SUBB_U32 instruction

* add missing case

* move case to match enum
2025-04-16 14:24:18 -07:00
squidbus
ddf3df7f56 fix: clang-format 2025-04-16 10:48:17 -07:00
Missake212
243ee04b1c Implement DS_READ2ST64_B64 (#2795) 2025-04-16 09:54:05 -07:00
squidbus
04e4ce0775 fix: Bad Intel drivers. 2025-04-16 09:52:18 -07:00
squidbus
52ab1ed04b shader_recompiler: Implement S_FLBIT_I32_B32 and V_MUL_HI_I32. (#2793) 2025-04-16 18:08:09 +03:00
squidbus
3bc876ca78 renderer_vulkan: Improve handling of required vs optional extensions. (#2792)
* renderer_vulkan: Improve handling of required vs optional extensions.

* documents: Update quickstart Vulkan requirements.
2025-04-15 22:31:58 -07:00
squidbus
247e935353 externals: Update MoltenVK (#2791) 2025-04-15 17:13:19 -07:00
squidbus
4bea00135d resource_tracking_pass: Add heuristic to detect incorrectly tracked buffer sharp. (#2786) 2025-04-14 20:58:49 -07:00
squidbus
683a223c1b vk_rasterizer: Control mapped_ranges access with shared lock. (#2788) 2025-04-14 20:58:33 -07:00
georgemoralis
2b633fd3c5 downgrade libpng to fix an issue with linux-qt (#2784)
* downgrade libpng

* revert cmake change
2025-04-14 14:08:39 +03:00
georgemoralis
cd8e2c4e79 hotfix: fix libpng issues under linux 2025-04-14 12:37:06 +03:00
georgemoralis
7d32efbd31 New Crowdin updates (#2748)
* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Slovenian)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Arabic)
2025-04-14 12:26:54 +03:00
Missake212
b8884d9591 Adding requirements to the App Bug Report template based on the Game Bug Report template (#2783)
* Update app-bug-report.yaml

Forcing people to fill information about their hardware to make it easier for debugging problems, example: "shad crashes after I open it" with this we can tell if the user has a CPU with an iGPU instead of asking them.

* Update app-bug-report.yaml

VRAM amount shouldn't be needed actually.
2025-04-14 12:26:39 +03:00
squidbus
bec1b9056f shader_recompiler: Misc shader fixes. (#2781)
* shader_recompiler: Fix frexp exponent type.

* shader_recompiler: Implement V_CMP_CLASS_F32 negative class mask.

* shader_recompiler: Define operands for DS_ORDERED_COUNT.
2025-04-13 23:46:30 -07:00
squidbus
657073b9e2 libraries: Initial Audio3d implementation. (#2776)
* feat: Audio3d

* feat: Audio3d

* audio3d: disable output

* audio3d: Implement central Audio3d output.

* audio3d: Ignore AudioOut already initialized error.

* audio3d: Convert and retain sample buffers when queued.

* audio3d: Treat object audio as single channel.

* audio3d: Clean up.

---------

Co-authored-by: auser1337 <154299690+auser1337@users.noreply.github.com>
2025-04-13 23:46:10 -07:00
davidantunes23
fb146f2a20 Fix #2613: Game icon size not working properly on grid view (#2759)
* Fix #2613: Game icon size not working properly on grid view

When you select grid view mode and try to change the game icon size, the
icons change to the wrong size, or don't change at all. To solve this I
added a line to call the function that populates the game grid with
the games when the user changes the icon size. That way the size of the
icons is updated to match the size selected by the user, which is the
intended behaviour. I also added code to update the check on the size
when changing view mode.

* Fix #2613: fixed clang format issue
2025-04-14 09:17:28 +03:00
Stephen Miller
ec515ad113 Implement sceVideoOutGetEventCount and sceVideoOutDeleteVblankEvent (#2753)
* Implement sceVideoOutDeleteVblankEvent

* Implement sceVideoOutGetEventCount

Based on decompilation, needs testing.
I also tidied up some types for other functions in here.

* Change hexadecimal numbers to lowercase

A minor change to make sure my implementation follows the formatting standards seen in https://github.com/shadps4-emu/shadPS4/pull/2423
2025-04-13 17:08:27 -07:00
squidbus
d188d14e19 hotfix: Update discord-rpc to remove invasive macOS minimum linker flag. 2025-04-13 12:18:37 -07:00
squidbus
14fad28a9b misc: Few small fixes. (#2780)
* qt: Use PNG file for logo.

* build: Fix some CMake issues.
2025-04-13 12:10:24 -07:00
Vinicius Rangel
aec6e330dc Update ImGui submodule (#2779)
* update imgui submodule

* fix imgui breaking changes

* update ffmpeg-core submodule
2025-04-13 19:27:20 +03:00
squidbus
6c2574364b libraries: Reduce some controller log spam. (#2777) 2025-04-13 18:12:02 +03:00
squidbus
8ed82712a0 hotfix: Fix logo resolution in Qt UI. 2025-04-12 21:13:16 -07:00
JohnLogostini
b0fe1532f7 Icon Updates (#2768)
* Updated the trophy icons to match those on the PS4

* Updated the Windows icon to have less harsh aliasing at smaller sizes.

* Created a correctly sized SVG client icon.

* Remade all of the link icons.

Remade all of the icons for links to a standard 1K size and fixed all of the crazy aliasing problems.

* Revert "Updated the trophy icons to match those on the PS4"

This reverts commit 223c70de13.

* Created SVG versions of all of the link icons.

* Update REUSE.toml

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2025-04-12 19:09:21 +03:00
georgemoralis
6ebed7ce69 update submodules (#2773) 2025-04-12 18:01:39 +03:00
squidbus
37d4cd091c renderer_vulkan: Make some primitive state dynamic. (#2764)
* renderer_vulkan: Make some primitive state dynamic.

* renderer_vulkan: Silence MoltenVK primitive restart warning spam.
2025-04-10 16:20:01 -07:00
Dmugetsu
5abec2a291 Enabling Depth Bias Explicity (#2766) 2025-04-09 17:06:54 -07:00
squidbus
e3b1c041d0 documents: Update macOS version in quickstart guide. 2025-04-09 00:59:33 -07:00
squidbus
2965656325 build: Target same CPU architecture level as PS4. (#2763) 2025-04-09 00:54:39 -07:00
squidbus
03b1fef331 renderer_vulkan: Only update dynamic state when changed. (#2751) 2025-04-08 07:22:16 -07:00
kalaposfos13
08731303d8 Fix incorrect calculation setting the center of the joysticks one value off causing stick drift in games that assume already corrected input values (#2760) 2025-04-07 13:58:00 -07:00
Missake212
7fee289b66 Add information about firmware files (sys modules) in the README (#2758)
* Update README.md

* Update README.md

* Update README.md
2025-04-07 11:29:51 -07:00
squidbus
040fd79ef7 Revert "build: Target same CPU architecture level as PS4. (#2745)" (#2757)
* Revert "build: Target same CPU architecture level as PS4. (#2745)"

This reverts commit 54b4d7fc78.

Causing issues on M1 CPUs for some reason.

* build: Update architecture comments and set mtune=generic.
2025-04-07 10:57:39 -07:00
kalaposfos13
473b66649f Fix compatibility related issues in the GUI (#2755)
Some checks failed
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / windows-qt (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / macos-qt (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-qt (push) Has been cancelled
Build and Release / linux-sdl-gcc (push) Has been cancelled
Build and Release / linux-qt-gcc (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2025-04-07 12:25:49 +03:00
squidbus
b8f6ef1c0b externals: Update MoltenVK (#2754) 2025-04-07 12:23:04 +03:00
squidbus
9d2175180e build: Move versioning to CMake file. (#2752) 2025-04-07 12:22:51 +03:00
squidbus
0c6f2b470f renderer_vulkan: Use more depth-stencil dynamic state. (#2749)
Some checks failed
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / windows-qt (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / macos-qt (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-qt (push) Has been cancelled
Build and Release / linux-sdl-gcc (push) Has been cancelled
Build and Release / linux-qt-gcc (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
Update Translation / Update Translation (push) Has been skipped
2025-04-05 23:14:27 +03:00
squidbus
54b4d7fc78 build: Target same CPU architecture level as PS4. (#2745)
Some checks failed
Update Translation / Update Translation (push) Has been skipped
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / windows-qt (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / macos-qt (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-qt (push) Has been cancelled
Build and Release / linux-sdl-gcc (push) Has been cancelled
Build and Release / linux-qt-gcc (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
2025-04-04 15:13:13 +03:00
squidbus
1ee2016902 doc: Update README macOS details
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Has been skipped
2025-04-03 12:44:16 -07:00
georgemoralis
7bb49d85d3 New Crowdin updates (#2724)
* New translations en_us.ts (Arabic)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (German)
2025-04-03 22:43:04 +03:00
squidbus
806b2ddc89 cpu_patches: Remove CPU patches for macOS and bump minimum OS version to 15.4 (#2743)
* cpu_patches: Remove CPU patches for macOS and bump minimum OS version to 15.4

* cpu_patches: Remove BMI1 patches

These are now only good for very old Intel CPUs that:
* Still do not currently function due to other CPU instruction issues.
* Will probably be too slow to run shadPS4 well.
2025-04-03 22:39:08 +03:00
squidbus
afd0251dd2 shader_recompiler: Use VK_AMD_shader_trinary_minmax when available. (#2739)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* shader_recompiler: Use VK_AMD_shader_trinary_minmax when available.

* shader_recompiler: Simplify signed/unsigned trinary instruction variants.
2025-04-02 23:36:54 +03:00
Stephen Miller
eb300d0aa7 libraries: Proper ulobjmgr stubs (#2740)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Has been skipped
* Better ulobjmgr stubs

Main goal is to stop all the Unknown stub spam in titles using libSceUlt.

* Address review comments

* Update ulobjmgr.cpp
2025-04-02 02:41:40 +02:00
Stephen Miller
f6cc245e40 Only log fd warning if there's a file getting closed (#2737) 2025-04-01 13:36:31 -07:00
georgemoralis
9ee5d066a2 hotfix: issue with cmake 4
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Has been skipped
2025-04-01 13:22:32 +03:00
Stephen Miller
01243fb8e5 Fix libSceNgs2 HLE regressions (#2732)
* Fix sceNgs2SystemCreateWithAllocator

The cause of the exceptions without libraries.

* Remove error handling for unimplemented functions

Since nothing exists to create any VoiceHandle or RackHandle, we were consistently hitting those error returns.
Also promotes logs for stubbed functions back to LOG_ERROR, with the exception of two functions that get spammed pretty frequently.

* Use Core::ExecuteGuest to execute allocator alloc and free

* Clang

* Fix function definitions in ngs2.h

These should be using the SYSV ABI

* Fix function defs in ngs2_impl.h

This will (hopefully) fix compilation

* Clang

* Clang

again
2025-04-01 08:57:47 +03:00
Alexandre Bouvier
a2a1ecde0a cmake: fix system libusb discovery (#2731)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
2025-03-31 22:29:52 +03:00
Alexandre Bouvier
a5958bf7f0 cmake: remove leftover from #2707 (#2730) 2025-03-31 22:29:24 +03:00
Joshua de Reeper
7533206d89 usbd: Implement libusb passthrough (#2271)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Has been skipped
* usbd: Implement libusb passthrough

* clang-format

* only do kernel activities on non-windows

* use variable to represent "fake" windows kernel driver

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2025-03-31 18:55:21 +03:00
Stephen Miller
b0a12c02e1 Add S_SETPRIO to EmitFlowControl (#2727)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
By squidbus' suggestion, I've added a warning log for this case.
2025-03-31 12:55:14 +03:00
Stephen Miller
374b66ad8e Emulate sceKernelInternalMemory mapping (#2726)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* Emulate sceKernelInternalMemory mapping

This fixes the early crash in CUSA07820 (The Last of Us™ Part II).

* Fix name
2025-03-31 00:27:12 +03:00
squidbus
f85d8df71e vulkan: Lower list primitive restart warning to debug log. (#2725) 2025-03-30 22:02:33 +03:00
georgemoralis
a707d31a4c New Crowdin updates (#2722)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Has been skipped
* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Arabic)
2025-03-30 15:37:16 +03:00
kalaposfos13
f1e0a096d5 casually testing in production (#2718) 2025-03-30 15:37:00 +03:00
georgemoralis
3f33d218b3 New Crowdin updates (#2715)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* New translations en_us.ts (Italian)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Ukrainian)
2025-03-30 01:28:02 +02:00
Stephen Miller
99b90cbd5c Minor libkernel changes (#2721)
* sceKernelDebugOutText

Some homebrew use this for logging, and these logs do show up in console klogs.
I wasn't sure where the most suitable place for this function would be, so I made a separate file for these debug functions.

* Implement kernel exit

Some homebrew I have use this exit when an error occurs. Since actually closing the emulator isn't implemented yet, I've used an unreachable message that logs the status code.
I've placed it in process.cpp for now, let me know if I should change that.

* Improved implementations for sceKernelDebugRaiseException functions

These functions take in two parameters, an error code and some other value that I have no idea what is for. If that second parameter is not zero, they return ORBIS_KERNEL_ERROR_EINVAL before any calls to mdbg_service.
These improved implementations add the early error return and a message with the error code to the unreachable.

* Add missing exports

Homebrew apps like to use these kernel exports of posix functions instead.

* Clang
2025-03-30 01:27:33 +02:00
DanielSvoboda
bad82e7204 Fix Translation on Button in MainWindow (#2720) 2025-03-30 00:50:41 +02:00
Missake212
faae1218fa Getting rid of the "Separate Update Folder" option (#2719)
* real fix this time ?

* should be all of it

* Update en_US.ts
2025-03-30 00:50:22 +02:00
Missake212
064c3161c3 real fix this time ? (#2717)
Some checks failed
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Failing after 12m55s
2025-03-29 17:58:10 +02:00
kalaposfos13
8122f8ecbf Diplay PR actions as pr-{number}-{branchname} (#2713) 2025-03-29 12:30:59 +02:00
georgemoralis
9dbc79dc96 New Crowdin updates (#2705)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (French)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Norwegian Bokmal)
2025-03-29 11:03:40 +02:00
Missake212
df9151481c Fix the "Open Update Folder" for folders ending with "-patch" (#2712)
* fix open update folder

* Update gui_context_menus.h
2025-03-29 10:32:57 +02:00
squidbus
be7d646e83 externals: Remove need for cryptopp build. (#2707) 2025-03-29 10:32:06 +02:00
Ked
78c8bca2bb Fix support for unicode paths for game install directories (#2699)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* Slightly changed how allInstallDirsDisabled is determined

* Show a dialog only if no game directories are set

* Changed a comment

* Fixed formatting

* Support for unicode paths for game install directories

* Fixed game picture path conversion
2025-03-28 23:14:52 +02:00
georgemoralis
751a23af0f [ci skip] Qt GUI: Update Translation. (#2703)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
2025-03-28 19:49:04 +02:00
georgemoralis
501f46e515 New Crowdin updates (#2695)
* New translations en_us.ts (Albanian)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Arabic)
2025-03-28 19:48:23 +02:00
squidbus
31e1d4f839 misc: Remove dead code. (#2702) 2025-03-28 10:32:17 -07:00
IndecisiveTurtle
be22674f8c code: Remove fpkg code
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Has been skipped
Signed-off-by: georgemoralis <giorgosmrls@gmail.com>
2025-03-28 16:40:35 +02:00
Missake212
d339b3f7d6 change async to sync (#2698)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
2025-03-27 22:40:40 +02:00
kalaposfos13
602de0c370 Fork detection: Fix PR actions only showing HEAD as the branch name (#2697)
* I'd be very surprised if this works 1st try

* More logging and cleanup

* Minor fixes
2025-03-27 22:40:15 +02:00
georgemoralis
c96853816a [ci skip] Qt GUI: Update Translation. (#2692)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
2025-03-27 12:14:09 +02:00
georgemoralis
437af93201 New translations en_us.ts (Chinese Traditional) (#2691)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Has been skipped
2025-03-26 23:51:17 +02:00
Dmugetsu
ae2c9a745e Gui: Adding Pause button working, full screen button and labels to buttons on main window gui (#2634)
* Adding names to gui buttoms and adjusting spacing.

* moving refresh button to last slot.

* Changing the implementation to tooltips for hover over them - qstring to detect background color.

* Fixing some themes with inverted tooltip base

* Suggestions / Fixes - Pause and FullScreen Buttons

* Update REUSE.toml

* cleaning up

* Icons stuff

* clang

* Buttons toggle - Cleaning code - Fixing Icons

* cleaning boolean

* Toggle pause and play icons and label to "Resume" when paused.

* Simplifying the toggles.

* New icons and final Push to review

* Reuse

* Icon rename, adding f9 press for pause game when no gui is on without needed of debug menu

* clang + reuse

* clang dosent work on this part

* again Clang

* Last fix for review. Light theme white resume icon fix.

* Proper fix for Resume icon

* New Rebase

* Fixed Orientation with docking issues and cleaning boxlayout code

* Adding spacer to separate actions, sizeslider on top of search bar. And adding margins

* Fixed Background not showing on OLED Theme

* Fixing check marks

* Adding all Daniel Suggestions and fixed F9 not working with debug menu open.

* Clang

* reverting all OLED theme changes

* Final suggestions
2025-03-26 23:50:52 +02:00
kalaposfos13
5caab76a45 Implement DmaDataSrc::MemoryUsingL2 and DmaDataDst::MemoryUsingL2 (#2680)
* Implement DmaDataSrc::MemoryUsingL2 and DmaDataDst::MemoryUsingL2

* Add L2 handling to the other place it's used
2025-03-26 23:03:50 +02:00
illusion0001
9c37aa039b Add isDevKit bool (#2685) 2025-03-26 22:50:21 +02:00
Lizardy
3abe5b0d57 [Libs] Ngs2 (#1604)
* [libSceNgs2] Logging & Structs

* clang

* clang

* stdarg incl

* proper logs

* ngs2 latest

* [libSceNgs2] Logging & Structs

* clang

* latest

* fix includes

* clang

* clang

---------

Co-authored-by: microsoftv <6063922+microsoftv@users.noreply.github.com>
2025-03-26 18:42:49 +02:00
georgemoralis
90b949b8ce New Crowdin updates (#2679)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Has been skipped
* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Arabic)
2025-03-26 18:04:49 +02:00
Ked
69cb4d5787 Show a dialog only if no game directories are set (#2690)
* Slightly changed how allInstallDirsDisabled is determined

* Show a dialog only if no game directories are set

* Changed a comment

* Fixed formatting
2025-03-26 18:04:05 +02:00
Stephen Miller
d8204641fa libkernel: Filesystem code cleanup (#2554)
* sceKernelOpen: Clean up flag handling

* sceKernelOpen: fix params

Based on decompilation, the second parameter of _open should be flags.
Additionally swaps the return and parameter types to align with our current standards.

* sceKernelOpen: Fix errors

Based on POSIX spec, if part of the path is missing, ENOENT is the correct return.
Additionally, decompilation suggests that open sets errno too.

* Fix exports

Fixes function exports to align with what they should be, based on what I've seen from decompilation and our module generator.

* Proper errno behavior on open

Since sceKernelOpen calls posix_open, errno should be set during this process.
Simplest way to handle that is to move the actual open code to posix_open and adjust error cases accordingly.

* Reorganize open calls, add error log

* Improve close

Removes the EPERM return, as it makes no sense, and swaps sceKernelClose with posix_close to properly emulate errno behavior.

* Fix log on close

* posix_open fixups

* Readd hack in posix_close

It's either this, or removing LLE DiscMap.
Or shadow implements posix sockets.

* Missing exports

Commented out while I gradually work through them all

* Remaining placeholder exports

* Swap some stuff around

I see nothing that suggests "open" only takes two parameters, so this should be completely safe.
It's also more accurate to how these are handled in libkernel, and means I won't need to reorganize anything for readv and writev.

* Update file_system.cpp

* Implement write and posix_write

* Oops

* Implement posix_readv and sceKernelReadv

Also fixes error behavior on readv, as that function shouldn't be returning any kernel error codes.

* Move sceKernelUnlink

Will deal with this one later, was just annoyed by how it's location doesn't align with the export order.

* Cleanup readv

* Implement posix_writev and sceKernelWritev

Also fixes error behavior on writev, since it shouldn't ever return kernel errors (since our device files return those)

* More cleanup on older functions

* Swap around sceKernelLseek and posix_lseek

This ensures that these have the correct error behavior, and makes their behavior align with the updated implementations for earlier functions.

* Update file_system.cpp

* Implement read

Also fixes error behavior

* Swap sceKernelMkdir and posix_mkdir

Fixes errno behavior on kernel calls, also fixed some incorrect error returns.

* Fix errno behavior on sceKernelRmdir

Also reduces function logging to bring it closer to the level of logging seen in other filesystem functions.

* Slight clean up of sceKernelStat

Fixes error behavior and changes some of the old data types.

* Refactor fstat

Fixes errno behavior, implements fstat, and shifts exports around based on file position.
Might reorganize function locations later though.

* Implement posix_ftruncate

Implements posix_ftruncate and fixes errno behavior for sceKernelFtruncate

* Add missing error conversions for more device functions

* Implement posix_rename, fix sceKernelRename errno behavior

* Add posix_preadv and posix_pread

Also fixes some incorrect error returns, fixes errno behavior, and removes an unnecessary hack.

* Fix compile

* Implement posix_getdents, getdirentries, and posix_getdirentries

Also fixes errno behavior for the kernel variants of these functions.

* Fix errno behavior of sceKernelFsync

* Implement posix_pwrite and posix_unlink

Also fixes errno behavior in related functions.

* Update file_system.cpp

* Remove SetPosixErrno

Ideally, we've handled all possible error conditions before calling these functions, so treat errors in platform-specific code as IO errors and return POSIX_EIO instead.

* Update header exports

Not sure where these get used, but might as well keep them consistent with the rest of this.

* Check if file exists before calling platform-specific code

Bloodborne checks if a file doesn't exist using open, checking if it specifically failed with error code ENOENT. To avoid working with platform-specific errnos, add a proper error return for if the file doesn't exist.
Fixes a regression in Bloodborne.

* Clang

Out of all the changes, this is apparently the only thing Clang-Format doesn't like.
I'm honestly surprised.

* Improve error checks on posix_unlink

Just because a file isn't opened doesn't mean the file doesn't exist.
Fixes the error returned if host_path.empty(), and removes the error return for when GetFile fails.

* Fix the Bloodborne fix

* Limit exports to tested functions

* More confirmed working exports

* Remaining stuff my games can test

* FS exports from firmware tests

* Bring back missing exports from main

I don't have any bootable things that call these, but since they were working well enough on main, they should be fine to readd.

* Add export for posix_pread

Spotted in Dreams a while back, might as well add it.

* Revert "Remove SetPosixErrno"

This reverts commit bdfc0c246c.

* Revert SetPosixErrno changes

shadow's using it for posix sockets, so significant modifications would introduce unnecessary merge conflicts.

* Update comment

* Add EACCES errno to SetPosixErrno

Seen in Gravity Rush.
Also reorganizes the switch case based on the posix errno value, since ordering by errno makes no sense on some OSes.

* More export fixups

Missed these during my initial pass through FS stuff because they were in kernel.cpp for some reason.

* Symbols from FS tests

Tested by messing around with firmware elfs, these atleast don't cause any crashes.

* Remove inaccurate error behavior

Seek can have offsets past the end of a file.
Also add logging for two valid whence values that are unsupported on Windows.
I'll need to verify that SEEK_HOLE and SEEK_DATA correspond to 3 and 4 respectively, I've yet to check source to verify.

* Fix error log

Oops

* Clang

Clang

* Remove close hack

Since LLE libSceDiscMap is no longer a concern, this hack shouldn't be needed.
Since sockets are still stubbed, and close can be used on sockets, I've added a warning log just in case this still occurs in some titles.

* Change SetPosixErrno unreachable to warning

I changed it to an unreachable in an earlier commit to make testing easier.
At this point, having an unreachable for this seems unnecessary, so change it to a warning instead.

* Remove Bloodborne hack

Games should be able to unlink files that aren't opened file descriptors. As far as I've tested, this doesn't break Bloodborne.
2025-03-26 18:03:35 +02:00
Ked
7d0631cf26 Slightly changed how allInstallDirsDisabled is determined (#2688) 2025-03-26 14:35:43 +02:00
kalaposfos13
a1ec8b0a88 Handle compute packets that are split between the ends of two command buffers (#2476)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Has been skipped
* Squashed initial implementation

* Logging for checking if buffers are memory contiguous

* Add check to see if first instruction is valid in the next buffer to avoid false positives

* Oof

* Replace old code with IndecisiveTurtle's new, better implementation

* Add `unlikely` keyword to the split packet handling branches

Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>

---------

Co-authored-by: IndecisiveTurtle <47210458+raphaelthegreat@users.noreply.github.com>
2025-03-26 00:01:21 +02:00
georgemoralis
5c72030fb8 HLE discmap (#2686)
* HLE discmap

* improved parameters naming

* fixed typo
2025-03-25 23:54:32 +02:00
mailwl
1908d26093 lseek: let the host OS set lseek errors (#2370)
Some checks failed
Update Translation / Update Translation (push) Has been skipped
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / windows-qt (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / macos-qt (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-qt (push) Has been cancelled
Build and Release / linux-sdl-gcc (push) Has been cancelled
Build and Release / linux-qt-gcc (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
* Fix lseek(fd, -1, SEEK_SET) for XNA

* be sure, if seek really return error

* refactoring

* let host os set lseek errors
2025-03-24 15:51:36 +02:00
DanielSvoboda
16a68d78eb Trophy Viewer - Select Game (#2678)
* Trophy Viewer - Select Game

* TR - Button in Utils +icon

TR - Button in Utils +icon
I also made a small correction to the game folder list, where the checkboxes were being filled in incorrectly.
2025-03-24 10:25:51 +02:00
georgemoralis
4f8e5dfd7c New Crowdin updates (#2671)
* New translations en_us.ts (German)

* New translations en_us.ts (German)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Norwegian Bokmal)
2025-03-24 10:25:37 +02:00
DanielSvoboda
10bf3d383c QT: Fix PR 2662 (#2676)
Some checks failed
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Failing after 12m55s
2025-03-23 23:25:11 +02:00
kalaposfos13
99332e4ec2 Handle "-patch" as the suffix for game update folders (#2674)
* Handle "-patch" as the suffix for game update folders

* clang

* clang 2
2025-03-23 23:24:49 +02:00
rainmakerv2
6f944ab117 Fix spacing for translated KBM GUI (#2670)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
2025-03-23 16:39:15 +02:00
TheTurtle
1f9ac53c28 shader_recompiler: Improve divergence handling and readlane elimintation (#2667)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* control_flow_graph: Improve divergence handling

* recompiler: Simplify optimization passes

Removes a redudant constant propagation and cleans up the passes a little

* ir_passes: Add new readlane elimination pass

The algorithm has grown complex enough where it deserves its own pass. The old implementation could only handle a single phi level properly,
however this one should be able to eliminate vast majority of lane cases remaining. It first performs a traversal of the phi tree to ensure
that all phi sources can be rewritten into an expected value and then performs elimintation by recursively duplicating the phi nodes at each step,
in order to preserve control flow.

* clang format

* control_flow_graph: Remove debug code
2025-03-23 00:35:42 +02:00
Pavel
a80c4a7f48 Reset previous buffer label instead of current one (#2663)
* Reset previous buffer label

* Reset flip label also when registering buffer
2025-03-23 00:27:57 +02:00
DanielSvoboda
0fa1220eca Add option to enable/disable game folders individually (#2662)
* Add option to enable/disable game folders individually

A checkbox (button to select) game folders has been added to the menu, allowing you to Enable/Disable them without having to remove the folder.

config.toml is now saved in alphabetical order

* ordering is separation in a function

* remove my comment in portuguese :)
2025-03-23 00:27:42 +02:00
georgemoralis
d7b947dd79 starting v0.7.1 WIP 2025-03-23 00:27:20 +02:00
georgemoralis
3b2c012723 tagged v0.7.0
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Has been skipped
2025-03-23 00:14:04 +02:00
georgemoralis
2e54afb295 fix debug version for cryptopp (#2664)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Has been skipped
2025-03-21 16:12:14 +02:00
rainmakerv2
c19b692a66 Sync text editor changes to KBM GUI (#2660)
Some checks failed
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Failing after 12m59s
Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-03-20 22:26:00 +02:00
Dmugetsu
b1885badda clock_gettime fixes for windows (#2659)
* Using OrbisKernelTimespec under clock_gettime, orbis_clock_gettime, sceKernelClockGettime  to fix compatibility issues.

* final fix test

* Roamic suggestions
2025-03-20 22:24:47 +02:00
TheTurtle
2a05af22e1 emit_spirv: Fix comparison type (#2658)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
2025-03-19 23:20:00 +02:00
kalaposfos13
4eb6304076 Only display the "Submit a report" button for release builds (#2656)
Co-authored-by: Missake212 <exomissake@gmail.com>
2025-03-19 23:18:51 +02:00
Missake212
9298b074fc Changing "submit report" button behavior in the GUI (#2654)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Has been skipped
* change code to serial

* delete emulator version function

* Adding the line back, someone else will need to look into it

* fix epic fail
2025-03-19 22:09:29 +02:00
georgemoralis
b520994960 New Crowdin updates (#2644)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* New translations en_us.ts (Albanian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Ukrainian)
2025-03-19 12:28:55 +02:00
squidbus
171f755c13 build: Compile for Sandy Bridge CPU target. (#2651)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
2025-03-18 16:02:34 -07:00
Vinicius Rangel
5691046dcc Renderer fixes (Splash + Aspect Ratio) (#2645)
Some checks failed
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / windows-qt (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / macos-qt (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-qt (push) Has been cancelled
Build and Release / linux-sdl-gcc (push) Has been cancelled
Build and Release / linux-qt-gcc (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
Update Translation / Update Translation (push) Has been skipped
* rewrite splash

removed Splash class
rewrite using imgui texture manager
fix crashes & old validation error

* handle games with abnormal aspect ratios
2025-03-13 18:10:24 +02:00
georgemoralis
36927a7bbd New Crowdin updates (#2638)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (French)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Albanian)
2025-03-12 20:36:14 +02:00
Stephen Miller
4d0c03fd4a Properly implement sceVideoOutGetBufferLabelAddress (#2642)
* Export sceVideoOutGetBufferLabelAddress

It's an exported function, used by red_prig's BLACKSQUAR2 homebrew sample.
This also fixes the function's return type accordingly.

* More sceVideoOutGetBufferLabelAddress fixups

Library decomp shows a hardcoded return 16 on success. Not sure why it does that, but it never hurts to be accurate.
Also needs to have an openOrbis-specific export to get it to work with the homebrew sample I'm testing.

* Final fixups

Removed the port assert and added asserts in libSceGnmDriver for when sceVideoOutGetBufferLabelAddress calls fail.
2025-03-12 20:36:01 +02:00
Vinicius Rangel
f663176a5d FidelityFX FSR implementation (#2624)
* host_shaders: support for includes

* video_core: add a simpler vulkan asserts

* video_core: refactored post processing pipeline to another file

* renderer_vulkan: add define param to compile shader utility

* video_core: fsr implementation

* devtools: show resolution & fsr state
2025-03-12 20:33:30 +02:00
georgemoralis
ba1eb298de New Crowdin updates (#2631)
Some checks failed
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / windows-qt (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / macos-qt (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-qt (push) Has been cancelled
Build and Release / linux-sdl-gcc (push) Has been cancelled
Build and Release / linux-qt-gcc (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
Update Translation / Update Translation (push) Has been skipped
* New translations en_us.ts (French)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Albanian)
2025-03-10 11:12:29 +02:00
Pavel
8bcdd9c068 Fix sceKernelLoadStartModule (#2635) 2025-03-10 11:12:12 +02:00
georgemoralis
46b1bafa17 [ci skip] Qt GUI: Update Translation. (#2636)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
2025-03-10 11:11:59 +02:00
panzone91
a711f4d86e libkernel: improve module finding in sceKernelLoadStartModule (#2541)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* libkernel: improve module finding in sceKernelLoadStartModule

* clang-format

* asserts for system module

* fixes

* linting

* cleaning

* fix linker impl
2025-03-09 23:44:17 +02:00
Stephen Miller
20ea0ee190 Handle error behavior in sceSysmoduleGetModuleInfoForUnwind stub (#2629)
* Stubby implementation of sceSysmoduleGetModuleInfoForUnwind

* Update sysmodule.cpp

* Minor cleanup
2025-03-09 23:17:33 +02:00
rainmakerv2
74c2c6c74f Make button bar translatable in controller/KBM dialog (#2625)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Update Translation / Update Translation (push) Has been skipped
2025-03-09 15:13:14 +02:00
georgemoralis
aa22d80c3f New Crowdin updates (#2622)
* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (German)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (German)

* New translations en_us.ts (French)

* New translations en_us.ts (French)

* New translations en_us.ts (French)
2025-03-09 15:12:37 +02:00
Stephen Miller
0e315cbd8f sceKernelReleaseDirectMemory fix (#2623)
* Fix error return on sceKernelMunmap

FreeBSD docs state that len <= 0 is a EINVAL return.

* Early return on ReleaseDirectMemory with len = 0

Calls to these two functions with len = 0 cause an assert in CarveDmemArea. Since there's no memory to release, an early return should be safe here.

* Remove check for negative length in munmap

Addresses review comment
2025-03-09 15:12:05 +02:00
Vladislav Mikhalin
6b3746f3a6 kernel: re-implement clock_gettime (#2615) 2025-03-07 21:42:25 +03:00
georgemoralis
bfb8b46d7d New Crowdin updates (#2608)
* New translations en_us.ts (Spanish)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Arabic)
2025-03-07 15:52:57 +02:00
jarred wilson
b5029ab940 fix:[#2618] load HDR setting from GPU in GUI (#2619) 2025-03-07 15:51:38 +02:00
georgemoralis
8b7eed3ffc [ci skip] Qt GUI: Update Translation. (#2607)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
2025-03-06 16:21:52 +02:00
smiRaphi
eaa18d4e3c load trophy from .wav (#2603)
Co-authored-by: smiRaphi <neogt404@gmail.com>
2025-03-06 16:20:55 +02:00
georgemoralis
f4dc8dca8d [ci skip] Qt GUI: Update Translation. (#2605)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
2025-03-06 16:20:22 +02:00
rainmakerv2
0efe9a4d0f Adds missing tr functions for certain GUI strings that should be translatable (#2598)
* Adds missing tr functions for certain GUI strings that should be translatable

* set clang format off for multi-line strings, set userDir as arg

---------

Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-03-06 09:09:27 +02:00
georgemoralis
f1aea5176d New translations en_us.ts (Norwegian Bokmal) (#2599) 2025-03-06 09:09:12 +02:00
georgemoralis
96560ed3ca New Crowdin updates (#2596)
* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (French)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Albanian)
2025-03-05 18:12:35 +02:00
DanielSvoboda
dc52cfb9bc Clickable links for PRs in the changelog (#2588) 2025-03-04 17:07:45 +02:00
georgemoralis
f62884ffda [ci skip] Qt GUI: Update Translation. (#2595)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
2025-03-04 17:07:26 +02:00
rainmakerv2
f4bf53402f Fix space (#2594)
* Add missing space so only once translation is auto-generated

* Use suggested format

* delete an extra space

---------

Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-03-04 17:03:30 +02:00
georgemoralis
ba109a4c53 New Crowdin updates (#2592)
* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Chinese Simplified)
2025-03-04 17:03:14 +02:00
squidbus
3a9633f553 cpu_patches: Simplify and remove some restrictions on macOS. (#2591) 2025-03-04 13:25:51 +02:00
Paris Oplopoios
7bef4a5c70 Allow our BMI1 emulation to work on non-macOS CPUs - also emulate TZCNT (#2526)
* Allow our BMI1 emulation to work on non-macOS CPUs

* Add TZCNT

* Some changes

* Subtract and add to rsp
2025-03-04 12:40:21 +02:00
georgemoralis
e82c8d2f70 New Crowdin updates (#2584)
* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Portuguese)
2025-03-04 12:39:43 +02:00
georgemoralis
367f08c1b5 [ci skip] Qt GUI: Update Translation. (#2590)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
2025-03-04 12:39:25 +02:00
rainmakerv2
a4b35f275c Add global/common user folder for Windows (#2589)
* Add global windows user folder

* Add button for creating portable folder

* Add notice about restarting after creating the portable folder

---------

Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-03-04 12:25:42 +02:00
rainmakerv2
c2adaf41c0 Qt: Add Initial KBM remapping GUI (#2544)
* Initial KBM remapping GUI

* Added Mousewheel mapping

* Make window wider so for mousewheel + modifier string

* Fix alt + mousewheel vertical being changed to horizontal for qwidgets

---------

Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-03-04 11:52:13 +02:00
DanielSvoboda
517d7f04c6 Grammatical error: thophy to trophy :) (#2585)
* Update settings_dialog.cpp

* Update en_US.ts
2025-03-03 09:29:39 +02:00
baggins183
c59d5eef45 Specialize vertex attributes on dst_sel (#2580)
* Specialize vertex attributes on dst_sel

* compare vs attrib specs by default, ignore NumberFmt when vertex input dynamic state is supported

* specialize data_format when attribute uses step rates

* use num_components in data fmt instead of fmt itself
2025-03-02 19:17:11 -08:00
georgemoralis
951128389d [Lib] libsceHttp (#2576)
* implemented sceHttpUriParse

* argg clang

* improved in case of file:////  (probably)

* rewrote httpuriparse to support file:////

* fixed uriparse
2025-03-02 23:09:38 +02:00
Missake212
a583a9abe0 fixes to get in game (#2583) 2025-03-02 22:13:23 +02:00
baggins183
7a4244ac8b Misc Cleanups (#2579)
-dont do trivial phi removal during SRT pass, that's now done in
ssa_rewrite
-remove unused variable when walking tess attributes
-fix some tess comments
2025-03-02 21:52:32 +02:00
Dmugetsu
d59536a71c Adding Top and Bottom trophy option for pop window + Trophy improvements (#2566)
* Adding top button option for trophy pop up

* Ui fix

* Clang format

* improvements to trophy pr 

* improvements

* Note: The sound will only work in QT versions

* -.

* Update path_util.cpp

* Update path_util.cpp

* centered text when using top and bottom option

* Clang

* trophy viewer now opens in window not fullscreen

---------

Co-authored-by: DanielSvoboda <daniel.svoboda@hotmail.com>
2025-03-02 21:36:12 +02:00
DanielSvoboda
f4110c43a7 Fix time - sceKernelClockGettime (#2582) 2025-03-02 21:32:28 +02:00
Missake212
76483f9c7b opcode implementation test (#2567) 2025-03-02 21:31:49 +02:00
georgemoralis
4c7c703ea2 New Crowdin updates (#2562)
* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Swedish)
2025-03-02 21:16:01 +02:00
Randomuser8219
9061028ce5 Reduce some service ID log spam (#2578)
* Change systemserivce param ID calling to debug only

Some games, including Namco Museum Archives spam this.

* Update userservice.cpp

Also reduces log spam in Dysmantle.
2025-03-02 11:55:45 +02:00
DanielSvoboda
0bdd21b4e4 Fix list after deleting a game (#2577) 2025-03-01 22:48:57 +02:00
georgemoralis
636a90386b fix for ime (#2475)
* fix for ime

* typo
2025-03-01 20:02:29 +02:00
DanielSvoboda
db868ea400 Fix: sce_sys/snd0.at9 remains after game deletion (#2565) 2025-02-28 23:11:41 +02:00
kalaposfos13
99c7fc4049 fix deprecation (#2563) 2025-02-28 17:35:13 +02:00
DanielSvoboda
75db253370 'Select' the log when opening the folder if SeparateLogFiles (#2560)
* Select when opening log folder when getSeparateLogFilesEnabled

* TR

* +
2025-02-28 17:33:52 +02:00
Randomuser8219
6331eb1d8a Add unexcepted depth format to unreachable (#2557) 2025-02-28 00:16:53 -08:00
georgemoralis
169cbe90a5 [ci skip] Qt GUI: Update Translation. (#2561)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
2025-02-28 08:37:05 +02:00
georgemoralis
f5c75a5f55 New Crowdin updates (#2527)
* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Romanian)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (French)

* New translations en_us.ts (French)

* New translations en_us.ts (French)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Portuguese, Brazilian)
2025-02-28 08:35:49 +02:00
DanielSvoboda
3b5d9459f3 'Game Compatibility' read an issue from another operating system (#2559) 2025-02-28 08:34:01 +02:00
DanielSvoboda
bf995d659b Cheats dont show other authors (#2558) 2025-02-28 08:33:50 +02:00
DanielSvoboda
5e5ca2138e Custom Trophy images / sound | and improvements (#2539)
* Custom Trophy images

* text and button - settings

* Description

* +

* plural

* translation for 'Trophy earned!'

* Revert: translation for 'Trophy earned!'

* play audio

* fixes crash due to having too many trophies

The game 'My Name is Mayo' has so many trophies in sequence that when overlapping them, the emulator ended up crashing, so if there is something on the screen and a new trophies are achieved, it will clear and show the new one.

* Animations, config: position, duration

* -

* TR

* fix sdl/qt

* clang \O/

* Side menu with filter options. Sorting

* +TR

* fix showHiddenCheck

* Time Unlocked

* Fixes ghost text, larger image, black text in light theme

* Button - Delete Trophy

* limits the width of Description - showMaximized

* changing column positions

* useEuropeanDateFormat

en_US, zh_CN, zh_TW, ja_JP, ko_KR, lt_LT, nb_NO, nl_NL
useEuropeanDateFormat = false
2025-02-28 08:31:42 +02:00
smiRaphi
63b50ff92c OLED Theme (#2530)
* OLED Theme

* improve check box & text box visibility

* clang format

---------

Co-authored-by: smiRaphi <neogt404@gmail.com>
2025-02-26 17:53:46 +02:00
Stephen Miller
927f398658 core: Ensure logger is initialized when there is no param.sfo (#2542)
* Make sure log is initialized when there is no param.sfo

Helps with testing firmware elfs and probably some homebrew.

* Clang

* Clang
2025-02-26 14:51:02 +02:00
Osyotr
f0cc8c0d54 config: Keep in order (#2536) 2025-02-25 20:46:35 +02:00
Osyotr
be6840f6a9 cmake: Cleanup (#2535)
- Don't call enable_language before project.
See CMake docs for CMP0165.
- Remove boost-related cache variables.
It's too late to set them because Boost::headers has already been found.
- Don't build SDL3-test library.
Not used by shadps4.
- Remove /Zc:preprocessor from toml11's INTERFACE_COMPILE_OPTIONS.
Clang-cl does not support this flag and emits a lot of warnings.
- Remove dummy.cpp and make gcn a proper INTERFACE target.
2025-02-25 20:46:26 +02:00
jarred wilson
15d10e47ea fix: move trophy pngs to src/images (#2519)
* fix: move trophy pngs to src/images

* Fix pointers to trophy files

---------

Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-02-24 22:39:27 +02:00
DanielSvoboda
eac1daa5f7 QT: Fix Fullscreen (#2533)
There are these 2 options about full screen, and 'Fullscreen' was being set to 'true' because it was comparing the word "Windowed" with the interface information, but if you are using another language it might not identify it and even using 'Borderless' the screen would be full.
2025-02-24 22:38:20 +02:00
kalaposfos13
b8aac357cb Fix SDL gyro and acceleration sensor handling (#2532)
* Fix sensor handling if they are enabled but an error was thrown regardless

* Initialise orientation to a default value + clang
2025-02-24 22:38:06 +02:00
Paris Oplopoios
fd3bfdae80 Implement some RDNA flags (#2510) 2025-02-24 19:52:57 +02:00
IndecisiveTurtle
0a23072938 hot-fix: Compare with correct size 2025-02-24 17:43:05 +02:00
TheTurtle
76b4da6212 video_core: Various small improvements and bug fixes (#2525)
* ir_passes: Add barrier at end of block too

* vk_platform: Always assign names to resources

* texture_cache: Better overlap handling

* liverpool: Avoid resuming ce_task when its finished

* spirv_quad_rect: Skip default attributes

Fixes some crashes

* memory: Improve buffer size clamping

* liverpool: Relax binary header validity check

* liverpool: Stub SetPredication with a warning

* Better than outright crash

* emit_spirv: Implement round to zero mode

* liverpool: queue::pop takes the front element

* image_info: Remove obsolete assert

The old code assumed the mip only had 1 layer thus a right overlap could not return mip 0. But with the new path we handle images that are both mip-mapped and multi-layer, thus this can happen

* tile_manager: Fix size calculation

* spirv_quad_rect: Skip default attributes

---------

Co-authored-by: poly <47796739+polybiusproxy@users.noreply.github.com>
Co-authored-by: squidbus <175574877+squidbus@users.noreply.github.com>
2025-02-24 14:31:12 +02:00
Paris Oplopoios
0885d8fce7 Simplify ANDN (#2511) 2025-02-24 02:53:11 -08:00
smiRaphi
f975c0603c change sizeof to TmpMount.size (#2523)
Co-authored-by: smiRaphi <neogt404@gmail.com>
2025-02-24 12:44:22 +02:00
georgemoralis
ad68318515 New Crowdin updates (#2520)
* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Russian)
2025-02-24 12:43:12 +02:00
Randomuser8219
c9ba8e989e Fix capitalization mistake (#2521) 2025-02-24 12:43:00 +02:00
rainmakerv2
47ac8b6c03 Fix and add back Trophy type icons for both the trophy pop-up and viewer (#2522)
* Add back fixed trophy type icons to trophy viewer

* Remove unused declaration until it is needed again

* Fix trophy pop-up icons

* Adjust size and alignment based on trophy name length

---------

Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-02-24 12:41:57 +02:00
Vladislav Mikhalin
bc0b42ee53 Update libatrac9 (#2524) 2025-02-24 08:26:14 +03:00
Paris Oplopoios
07baf17c2a Save rest of ymms in SaveContext (#2512) 2025-02-23 20:02:52 -08:00
georgemoralis
229740f557 [ci skip] Qt GUI: Update Translation. (#2518)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
2025-02-23 22:52:30 +02:00
georgemoralis
42dd79a32d clang-format fix 2025-02-23 22:41:55 +02:00
Fire Cube
c38e1635ea Add option to save logfiles seperate for each game (#2504)
* add option to split log

* better naming

* fix

* fix

* fix formatting

* fix misspelling

* make clang conform

* clang fix
2025-02-23 22:30:11 +02:00
DanielSvoboda
84a614dddc Fix cache size (#2517) 2025-02-23 22:17:29 +02:00
jarred wilson
f1c70ce53c Fix/display mode default (#2516)
* fix: move fullscreen config options to GUI section of variable declarations

* fix:[#2514] set display mode default to windowed
2025-02-23 22:07:06 +02:00
jarred wilson
02f9d03f57 fix:[#2513] align emulator settings content top (#2515) 2025-02-23 22:06:42 +02:00
jarred wilson
bc85357235 move display mode and hdr to graphics tab (#2485)
* move display mode and hdr to graphics tab

* add left margin to display settings box

* merge display combo box and fullscreen checkbox

* remove commented out checkbox

* Rename borderless to windowed

* rename graphics box and mode

* Rename window modes and map

* fix formatting

* fix: xml formatting

* Rename borderless windowed

* change resolution input layout

* rename resolution to window size

* change window size layout oriention

* add true fullscreen mode

* fix duplicate label name

* set fullscreen on true fullscreen or borderless

* remove commented out ref

* rearrange settings config for new schema

* move HDR config to GPU section
2025-02-23 17:01:09 +02:00
rainmakerv2
e1e697a3ff Revert use of embedded icons (#2509)
Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-02-23 17:00:26 +02:00
marcoppenheimer
10486db091 docs: add qt6-tools to Arch build guide (#2495) 2025-02-23 02:09:53 -08:00
DanielSvoboda
e1ae052185 QT: Various interface fixes (#2496)
* QT: Various interface fixes

* fix close without saving

* +

* +

using the save and close buttons, everything works fine, but when using the X button it doesn't work very well...

* fix close (X) without saving
2025-02-23 10:02:00 +02:00
rainmakerv2
22ca57b1f2 Trophy pop-up and viewer enhancements (#2493)
* Include trophy rarity icons in pop up, remove newlines from viewer

Fix layout

Update platinum.png

Fix linux and apple

* Smaller type icons, center text vertically

* use original icons

* MacOS fixes

* Address Review comments

Update build.yml

Update build.yml

Update build.yml

Update build.yml

Update build.yml

Update build.yml

Update build.yml

test

* Move trophy type to leftmost and trophy art to rightmost

* Embed resources

* Revert packaging of resources with builds

---------

Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-02-23 10:00:24 +02:00
Stephen Miller
4f1baece33 Avoid processing job buffers before codec initialization (#2507) 2025-02-23 06:47:44 +03:00
georgemoralis
0aaeea4837 libcInternal HLE fixes (#2491)
* internal_vprintf was wrong

* reducing the calls to only needed (and tested one) . Fixed strcpy_s

* clang fix

* Added snprintf
2025-02-22 10:56:35 +02:00
squidbus
8a793f64bf misc: Add message indicating unimplemented primitive type. 2025-02-21 21:18:12 -08:00
squidbus
9424047214 shader_recompiler: Proper support for inst-typed buffer format operations. (#2469) 2025-02-21 03:01:18 -08:00
squidbus
6860bb7349 fix: mask_jump32 target 2025-02-21 02:55:52 -08:00
squidbus
5b3e156197 externals: Update MoltenVK (#2492) 2025-02-21 12:41:36 +02:00
DanielSvoboda
745cdd89fd QT: Fix search in Grid mode (#2490)
* QT: Fix search in Grid mode

* Fix performance?

* Fix performance List

* +fix
2025-02-21 08:29:30 +02:00
¥IGA
6f5dfc576f CI: Use Qt 6.9.0 + Update CMake Cache (#2487) 2025-02-21 08:29:09 +02:00
Stephen Miller
54a1694a2b memory: Implement protecting multiple VMAs (#2484)
* Implement protecting multiple VMAs

A handful of games expect this to work, and updated versions of Grand Theft Auto V crash if it doesn't work.

* Clang
2025-02-21 08:28:47 +02:00
georgemoralis
14717b8ecb New Crowdin updates (#2483)
* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Norwegian Bokmal)
2025-02-21 08:28:29 +02:00
Paris Oplopoios
3ed1c31678 Update README.md (#2488) 2025-02-21 00:30:40 +02:00
Missake212
b6baf78812 adding info about MSYS2 build (#2482)
adding information about MSYS2 builds being broken right now and redirecting people to VS 2022
2025-02-20 10:16:13 +02:00
Dmugetsu
2af20b0d83 Now lightbar overwrite works on dualsense while using it on bluetooth (#2481) 2025-02-20 10:15:54 +02:00
georgemoralis
cc583b6189 hot-fix: rasterizer 2025-02-19 13:55:18 +02:00
TheTurtle
da0ab005c7 video_core: Fix some cases of "Attempted to track non-GPU memory" (#2447)
* memory: Consider flexible mappings as gpu accessible

Multiple guest apps do this with perfectly valid sharps in simple shaders. This needs some hw testing to see how it is handled but for now doesnt hurt to handle it

* memory: Clamp large buffers to mapped area

Sometimes huge buffers can be bound that start on some valid mapping but arent fully contained by it. It is not reasonable to expect the game needing all of the memory, so clamp the size to avoid the gpu tracking assert

* clang-format fix

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2025-02-19 13:31:35 +02:00
jarred wilson
50aa0f5564 Update linux build docs (#2474)
* fix: update linux build dependencies for libpng

- add libpng to linux build docs
- add libpng to nix build file

* linux docs: reformat code blocks

- add code block bash syntax highlighting
- format long code blocks to multiline
2025-02-19 13:29:31 +02:00
georgemoralis
f686b1df98 New Crowdin updates (#2478)
* New translations en_us.ts (French)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Italian)
2025-02-19 13:29:16 +02:00
DanielSvoboda
48c621532c Cheats/Patches - add mask_jump32 (#2477)
* mask_jump32

* fix qt/sdl

* fix dangling pointer?

fixes the warning: "clang-diagnostic-dangling-gls: object backing the pointer will be destroyed at the end of the full-expression"
2025-02-19 13:29:04 +02:00
georgemoralis
7d756e79ae New Crowdin updates (#2470)
* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Albanian)
2025-02-18 15:55:41 +02:00
¥IGA
8447412c77 Bump to Clang 19 (#2434) 2025-02-18 15:55:13 +02:00
georgemoralis
e67263cc0e New Crowdin updates (#2467)
* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (French)

* New translations en_us.ts (Turkish)
2025-02-17 19:45:33 +02:00
DanielSvoboda
41496e035a Adjust translation for RGB light (#2468) 2025-02-17 19:45:21 +02:00
georgemoralis
e40451a3f7 [ci skip] Qt GUI: Update Translation. (#2466)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
2025-02-17 17:01:22 +02:00
DanielSvoboda
154473d3b3 Fixes translation BOT (#2465)
* Update update_translation.yml

* Update update_translation.yml

* Update update_translation.yml
2025-02-17 16:59:10 +02:00
squidbus
fd3d3c4158 shader_recompiler: Implement AMD buffer bounds checking behavior. (#2448)
* shader_recompiler: Implement AMD buffer bounds checking behavior.

* shader_recompiler: Use SRT flatbuf for bounds check size.

* shader_recompiler: Fix buffer atomic bounds check.

* buffer_cache: Prevent false image-to-buffer sync.

Lowering vertex fetch to formatted buffer surfaced an issue where a CPU modified range may be overwritten with stale GPU modified image data.

* Address review comments.
2025-02-17 16:13:39 +02:00
¥IGA
b06790dfe5 Qt: Better title bar for SFO Viewer menu (#2462) 2025-02-17 12:38:17 +02:00
georgemoralis
195b94c1f1 New Crowdin updates (#2460)
* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Norwegian Bokmal)

* New translations en_us.ts (Norwegian Bokmal)
2025-02-17 12:38:02 +02:00
¥IGA
90c01f8d92 Qt: Center Installation Dialog (#2453) 2025-02-17 12:37:11 +02:00
rainmakerv2
679f8f1f36 Add default values for Lightbar sliders and checkbox, per-game config (#2454)
* Update control_settings.cpp

* Add default for per game config checkbox as well
2025-02-17 12:36:56 +02:00
¥IGA
e9b44af469 Qt: Use Qt::SmoothTransformation for Cheats Manager (#2450) 2025-02-17 12:36:41 +02:00
¥IGA
0425bd0fd6 Qt: Fix Small Window (#2449) 2025-02-17 12:36:29 +02:00
squidbus
e13fb2e366 renderer_vulkan: Bind descriptors to specific stages in layout. (#2458) 2025-02-16 15:08:16 +02:00
DanielSvoboda
26bb3d40d9 Correct translation no_NO to nb_NO (#2455) 2025-02-16 09:41:37 +02:00
georgemoralis
7af9de353b New Crowdin updates (#2440)
* New translations en_us.ts (Russian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Portuguese)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Norwegian Bokmal)
2025-02-16 09:40:28 +02:00
DanielSvoboda
b0169de7c4 added language pt_PT (#2452) 2025-02-15 21:40:24 +02:00
DanielSvoboda
e042710eaa Background image sized correctly (#2451) 2025-02-15 18:19:33 +02:00
rainmakerv2
2b9a8e5605 add lightbar color override to Controller GUI (#2443)
* WIP Lightbar GUI, needs saving and loading

* Implement saving and loading lightbar values

* replace license header deleted by QT
2025-02-15 18:19:04 +02:00
¥IGA
bdf4a5249d imgui: Displays FPS color based on FPS (#2437) 2025-02-15 10:53:25 -03:00
TheTurtle
82cacec8eb shader_recompiler: Remove special case buffers and add support for aliasing (#2428)
* shader_recompiler: Move shared mem lowering into emitter

* IR can be quite verbose during first stages of translation, before ssa and constant prop passes have run that drastically simplify it. This lowering can also be done during emission so why not do it then to save some compilation time

* runtime_info: Pack PsColorBuffer into 8 bytes

* Drops the size of the total structure by half from 396 to 204 bytes. Also should make comparison of the array a bit faster, since its a hot path done every draw

* emit_spirv_context: Add infrastructure for buffer aliases

* Splits out the buffer creation function so it can be reused when defining multiple type aliases

* shader_recompiler: Merge srt_flatbuf into buffers list

* Its no longer a special case, yay

* shader_recompiler: Complete buffer aliasing support

* Add a bunch more types into buffers, such as F32 for float reads/writes and 8/16 bit integer types for formatted buffers

* shader_recompiler: Remove existing shared memory emulation

* The current impl relies on backend side implementaton and hooking into every shared memory access. It also doesnt handle atomics. Will be replaced by an IR pass that solves these issues

* shader_recompiler: Reintroduce shared memory on ssbo emulation

* Now it is performed with an IR pass, and combined with the previous commit cleanup, is fully transparent from the backend, other than requiring workgroup_index be provided as an attribute (computing this on every shared memory access is gonna be too verbose

* clang format

* buffer_cache: Reduce buffer sizes

* vk_rasterizer: Cleanup resource binding code

* Reduce noise in the functions, also remove some arguments which are class members

* Fix gcc
2025-02-15 14:06:56 +02:00
DanielSvoboda
290e127a4f More fixes to make the translation work (#2439)
* more fixes to make the translation work

* If size is disabled, it will not appear on the patches screen

* Update game_install_dialog.h
2025-02-15 08:07:22 +02:00
georgemoralis
32763b7af6 New Crowdin updates (#2436)
* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)
2025-02-14 21:54:49 +02:00
Dmugetsu
1781fcb9ef Kbm icon change and size modified. (#2435)
* Adding KBM icon for kbm remaps.

* New Icon and new size
2025-02-14 21:53:36 +02:00
DanielSvoboda
16451b01e8 Fix PR 2424 (#2433)
* Fix PR 2424

* chooseHomeTab
2025-02-14 21:49:09 +02:00
Dmugetsu
bb6cca3056 Adding KBM icon for kbm remaps. (#2430) 2025-02-14 12:48:52 +02:00
¥IGA
b48975f116 Qt: Resizing Font Size and Icon Grid Size (#2429) 2025-02-14 12:36:23 +02:00
kalaposfos13
1cc9e0d37f Initial implementation of controller color config (#2411) 2025-02-14 12:30:49 +02:00
kalaposfos13
ad43ba5ec7 Fix unified config checkbox behaviour + code style changes (#2427) 2025-02-14 12:17:39 +02:00
georgemoralis
57bdb6cac2 hotfix: another typo.. 2025-02-14 10:24:12 +02:00
georgemoralis
1dca54c165 hotfix: typo 2025-02-14 10:12:43 +02:00
georgemoralis
67a74a9357 hotfix: removed questionable setjmp 2025-02-14 10:03:57 +02:00
kalaposfos13
7db30d12cb Libraries: Update libcInternal (#2265)
* Added all stubs + logging

* Added back memory and math functions from the original code + added some more math functions

* More string functions, snprintf, memmove and setjmp

* Add longjmp + clang

* gmtime, __cxa_atexit and log what functions some games use

* Add Mspace unreachable

* Renaming

* Take out mspace functions to their own file

* Factor out io to a new file

* Empty str and memory files

* Overloaded functions be like:

* str

* memory + math +clang

* clang...

* adjustments :D

* longjmp is questionable

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2025-02-14 09:58:38 +02:00
DanielSvoboda
0f8bd509b2 Crowdin translation adjustments (#2426)
* Fix TR

* +
2025-02-14 07:23:24 +02:00
DanielSvoboda
d1e88c40d8 Displays translation in interface, not logs or config (#2424)
Release/Nightly
async/sync
2025-02-14 07:23:11 +02:00
DanielSvoboda
46ef678f55 Fix PR 2422 (#2425) 2025-02-13 19:51:20 -08:00
DanielSvoboda
d76210d24f Set language to en_US if value is incorrect (#2422) 2025-02-13 22:23:19 +02:00
DanielSvoboda
4dfe05db24 language fix (#2421) 2025-02-13 20:01:35 +02:00
DanielSvoboda
3634026436 Standard language fix (#2420)
* Standard language fix

* +
2025-02-13 19:54:50 +02:00
Stephen Miller
455b23c6f1 Update video_out.cpp (#2416) 2025-02-13 16:29:26 +02:00
georgemoralis
b2fb004414 Update README.md with crowdin link 2025-02-13 16:13:33 +02:00
georgemoralis
1e7f651b1b Auto update of english translation file based on sources (#2349)
* added auto-translation action

* made scripts executable

* reuse

* no-obsolete - reuse (#2392)

* other languages - reuse

* no-obsolete

see everything that is 'vanished', because it does not exist

* Update update_translation.sh

* +

---------

Co-authored-by: DanielSvoboda <daniel.svoboda@hotmail.com>
2025-02-13 15:50:55 +02:00
georgemoralis
c94cd531f0 New Crowdin updates (#2415)
* New translations en_us.ts (Romanian)

* New translations en_us.ts (French)

* New translations en_us.ts (Spanish)

* New translations en_us.ts (Arabic)

* New translations en_us.ts (Danish)

* New translations en_us.ts (German)

* New translations en_us.ts (Greek)

* New translations en_us.ts (Finnish)

* New translations en_us.ts (Hungarian)

* New translations en_us.ts (Italian)

* New translations en_us.ts (Japanese)

* New translations en_us.ts (Korean)

* New translations en_us.ts (Lithuanian)

* New translations en_us.ts (Dutch)

* New translations en_us.ts (Norwegian)

* New translations en_us.ts (Polish)

* New translations en_us.ts (Russian)

* New translations en_us.ts (Albanian)

* New translations en_us.ts (Swedish)

* New translations en_us.ts (Turkish)

* New translations en_us.ts (Ukrainian)

* New translations en_us.ts (Chinese Simplified)

* New translations en_us.ts (Chinese Traditional)

* New translations en_us.ts (Vietnamese)

* New translations en_us.ts (Portuguese, Brazilian)

* New translations en_us.ts (Indonesian)

* New translations en_us.ts (Persian)
2025-02-13 15:40:14 +02:00
georgemoralis
40cd5c57c5 Update REUSE.toml 2025-02-13 14:58:54 +02:00
georgemoralis
753a3072ee Update Crowdin configuration file 2025-02-13 14:50:02 +02:00
DanielSvoboda
43191ff426 Formatting for Crowdin (#2413)
* Formatting for crowdin

* +
2025-02-13 14:42:40 +02:00
¥IGA
7728db0dd3 Qt: Use Qt 6.8.2 (#2409)
* Qt: Use Qt 6.8.2

* Update Building Instructions For Windows
2025-02-13 12:01:14 +02:00
squidbus
6e12642151 shader_recompiler: Lower non-compute shared memory into spare VGPRs. (#2403) 2025-02-12 20:10:13 -08:00
squidbus
ebe2aadb4c gnmdriver: Implement sceGnmUpdateHsShader (#2412) 2025-02-12 19:45:42 -08:00
squidbus
c9d425dc08 fix: Correct number of allocated VGPRs. 2025-02-12 17:53:52 -08:00
Missake212
5f2467b453 change ts it (#2396) 2025-02-12 19:05:52 +02:00
rainmakerv2
3b1840b7a9 Add error message when trophy data extraction fails (#2393)
Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-02-12 19:05:35 +02:00
kalaposfos13
50b27bebd8 fix deprecation (#2406) 2025-02-12 19:05:14 +02:00
squidbus
7624e9482c memory: Log for sceKernelMapNamedDirectMemory in more cases. (#2404) 2025-02-12 19:04:58 +02:00
DanielSvoboda
642c0bc367 QT: AutoUpdate -Formatting/Always Show Changelog (#2401)
* QT: AutoUpdate - Text formatting

* +

* Always Show Changelog

* +

update Channel is already called once, it doesn't need to be called again
2025-02-12 19:04:35 +02:00
DanielSvoboda
98eb8cb741 Fix S_LSHR_B32 (#2405)
the shift value should be extracted from the 5 least significant bits of the second operand (S1.u[4:0]), to ensure that the shift is limited to values ​​from 0 to 31, suitable for 32-bit operations

Instruction S_LSHR_B32
Description D.u = S0.u >> S1.u[4:0]. SCC = 1 if result is non-zero.
2025-02-12 06:31:19 -08:00
squidbus
2188895b40 buffer_cache: Give null buffer full usage flags. (#2400) 2025-02-11 00:19:38 -08:00
squidbus
40eef6a066 shader_recompiler: Exclude defaulted fragment inputs from quad/rect passthrough. (#2383) 2025-02-10 21:33:30 -08:00
Stephen Miller
b51c767296 Better bounds checks for sceKernelDlsym (#2394)
Unity, being the awful game engine it is, checks for a return value of zero to determine if sceKernelLoadStartModule failed. This results in it throwing an error code into sceKernelDlsym's handle parameter when the module it's searching for doesn't exist.
2025-02-09 19:31:07 -08:00
squidbus
843cd01308 fix: Disable VK_EXT_tooling_info on AMD proprietary for now. 2025-02-09 16:34:20 -08:00
Stephen Miller
22357f70c2 Improve parameter checks for posix_pthread_rename_np (#2391) 2025-02-09 13:50:59 -08:00
psucien
04fe3a79b9 fix: lower UBO max size to account buffer cache offset (#2388)
* fix: lower UBO max size to account buffer cache offset

* review comments

* remove UBO size from spec and always set it to max on shader side
2025-02-09 22:03:20 +01:00
SaltyBet
34a4f6e60e enableHDRCheckBox fix (#2390)
isHDRAllowed -> allowHDR (per TOML).
2025-02-09 12:31:32 -08:00
squidbus
15b520f4a2 renderer_vulkan: Skip tessellation isolines if not supported. (#2384) 2025-02-09 10:20:13 -08:00
psucien
5d4812d1a6 hot-fix: fix for unintended gamma correction bypass when HDR is disabled 2025-02-09 18:22:07 +01:00
tomboylover93
f3afbfbcec Add HDR option to settings menu (#2387) 2025-02-09 18:59:09 +02:00
squidbus
0e238c87cb cpu_patches: Lower extrq/insertq log to trace. (#2386) 2025-02-09 18:58:48 +02:00
F1219R
89d349ae1c Update SQ translation + fix typo in EN translation (#2382)
* Update sq translation

* Update sq translation

* Fix typo in en translation
2025-02-09 18:58:12 +02:00
Daniel Nylander
95d5343eb4 Updated Swedish translation (#2380)
* Adding Swedish translation

* Updated Swedish translation with additional strings

Updated the Swedish translations using lupdate to found additional strings

cd src/qt_gui/treanslations

lupdate ../../../../shadPS4/ -tr-function-alias QT_TRANSLATE_NOOP+=TRANSLATE,QT_TRANSLATE_NOOP+=TRANSLATE_SV,QT_TRANSLATE_NOOP+=TRANSLATE_STR,QT_TRANSLATE_NOOP+=TRANSLATE_FS,QT_TRANSLATE_N_NOOP3+=TRANSLATE_FMT,QT_TRANSLATE_NOOP+=TRANSLATE_NOOP,translate+=TRANSLATE_PLURAL_STR,translate+=TRANSLATE_PLURAL_FS -no-obsolete -locations none -source-language en -ts sv.ts

* Update sv.ts

* Updated Swedish translation

* Adding copyright boilerplate

* Updated Swedish translation

* Updated Swedish translation

* Update sv.ts whitespace in boilerplate

* Updated Swedish translation

Please do not add or change anything. Always use lupdate to update TS translation files

* Update sv.ts

* Update sv.ts small typo
2025-02-09 18:57:25 +02:00
squidbus
214eab2c52 gnmdriver: Fill in functions stubbed on real firmware. (#2379) 2025-02-09 18:57:10 +02:00
psucien
8f2883a388 video_out: HDR support (#2381)
* Initial HDR support

* fix for crashes when debug tools used
2025-02-09 15:54:54 +01:00
Vladislav Mikhalin
fb0871dbc8 ajm: mark empty batches as finished immediately (#2385) 2025-02-09 16:11:24 +03:00
squidbus
9dc3e39fc2 address_space: Split macOS reserved memory region. (#2372) 2025-02-08 13:21:32 -08:00
Martin
a7a8ebcd77 Fix duplicated translations (#2377)
* fix spelling and wording mistakes nb.ts

* remove second CompatibilityInfoClass

* fix duplicate compile warnings
2025-02-08 20:49:34 +02:00
DanielSvoboda
d98face501 Game-compatibility - improved (#2367)
* Game-compatibility - improved

* +

none of these texts have a translation \o/

* Fix

- html_url has been removed, the url is now built dynamically from the issue_number, and the file has decreased in size from 537kb to 355KB;
-Fix QProgressDialog
- change the correct directory, from my ford to the official one

* TR
2025-02-08 17:25:55 +02:00
Ivan Kovalev
cb14431ee5 Add nix-shell to allow native build on NixOS (#2333)
* Add nix-shell to allow native build on NixOS

* Remove unnecessary README for nix. Move major comment to shell.nix

* Update path in building-linux.md

* Use cached nix packages from unstable channel

* Add proper license to nix shell
2025-02-07 19:05:33 +02:00
DemoJameson
3c5cb093de Update zh_CN translation (#2361) 2025-02-07 18:21:24 +02:00
squidbus
cfe249debe shader_recompiler: Replace texel buffers with in-shader buffer format interpretation (#2363)
* shader_recompiler: Replace texel buffers with in-shader buffer format interpretation

* shader_recompiler: Move 10/11-bit float conversion to functions and address some comments.

* vulkan: Remove VK_KHR_maintenance5 as it is no longer needed for buffer views.

* shader_recompiler: Add helpers for composites and bitfields in pack/unpack.

* shader_recompiler: Use initializer_list for bitfield insert helper.
2025-02-06 20:40:49 -08:00
DanielSvoboda
78b4f10cc6 QT: AutoUpdate - improvement message limit exceeded github (#2365) 2025-02-06 20:40:13 -08:00
DanielSvoboda
46cbee1585 RemapSwizzle formatting (#2368)
This doesn't change anything, it just reduces duplicate information.
2025-02-06 18:18:02 -08:00
squidbus
78ea536c95 hotfix: 4444 swizzle order 2025-02-06 17:55:46 -08:00
squidbus
1a00b1af24 vulkan: Use more supported 4444 format. (#2366) 2025-02-06 17:45:47 -08:00
squidbus
1eb0affdea vk_instance: Clean up extension management. (#2342) 2025-02-06 16:38:02 -08:00
kalaposfos13
0d498f12b9 Fix merge, but for real this time (#2359) 2025-02-05 22:11:07 +02:00
kalaposfos13
f111395044 Fix issues with input detection due to overloaded ring buffer and fix buffer size being incorrect (#2346)
* Add axis noise filter + only update outputs if a change happened

* Change the ring buffer size to 32 as seen in Ghidra

* Fix merge
2025-02-05 20:36:16 +02:00
Martin
0c3260b1b4 Update nb.ts (#2353)
* add copyinfo and backgroundimage nb tr

* better wording and fix spelling mistakes
2025-02-05 19:54:39 +02:00
rainmakerv2
e1f0cd65af Set focus, refresh GUI after closing text editor, prevent no comma crash (#2354)
Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-02-05 19:54:27 +02:00
Stephen Miller
e972a8805d Bump size of buffer_views (#2357)
Uncharted 4 (and perhaps some other games) fill this up, causing a `Unhandled exception: boost::container::bad_alloc thrown` exception
2025-02-05 19:54:13 +02:00
kalaposfos13
f5d64239cb Add outer deadzone config (#2348)
* Add outer deadzone

* Documentation

* Add max outer deadzone to the controller remapping GUI

* Fix init values

* fix GUI saving syntax
2025-02-05 17:26:14 +02:00
SAN4EZDREAMS
00465d5e41 Updated uk_UA language to v0.6.1 (#2347)
* Add Ukrainian localization

* Fixed langIndexes

* Fixed langIndexes_2

* Added uk_UA language support

* Added uk_UA language support

* Updated uk_UA localization to the latest version && corrected lexical mistakes

* Added missing lines in the translation and minor edits

* Correction

* Second Correction

* Added missed strings work test

* Added more missed strings

---------

Co-authored-by: SAN4EZDREAMS <san4ez@gmail.com>
2025-02-05 17:25:36 +02:00
Daniel Nylander
126cb824ea Updated Swedish translation (#2327)
* Adding Swedish translation

* Updated Swedish translation with additional strings

Updated the Swedish translations using lupdate to found additional strings

cd src/qt_gui/treanslations

lupdate ../../../../shadPS4/ -tr-function-alias QT_TRANSLATE_NOOP+=TRANSLATE,QT_TRANSLATE_NOOP+=TRANSLATE_SV,QT_TRANSLATE_NOOP+=TRANSLATE_STR,QT_TRANSLATE_NOOP+=TRANSLATE_FS,QT_TRANSLATE_N_NOOP3+=TRANSLATE_FMT,QT_TRANSLATE_NOOP+=TRANSLATE_NOOP,translate+=TRANSLATE_PLURAL_STR,translate+=TRANSLATE_PLURAL_FS -no-obsolete -locations none -source-language en -ts sv.ts

* Update sv.ts

* Updated Swedish translation

* Adding copyright boilerplate

* Updated Swedish translation

* Updated Swedish translation

* Update sv.ts whitespace in boilerplate
2025-02-05 17:25:15 +02:00
Stephen Miller
ecfc940381 libSceHmd Stubs (#2355)
* Add generated libSceHmd stubs

* Implement ReprojectionQuery functions

These constant returns come from decompiling libSceHmd.

* Clang

* Clang
2025-02-05 17:24:53 +02:00
Stephen Miller
e757063d31 Improved error handling in sceKernelAllocateDirectMemory (#2037)
* Handle errors in sceKernelAllocateDirectMemory

* Improve accuracy of error cases

Some of our existing cases are normally EAGAIN returns.

* Improve logging on errors

* Clang

* TEMPORARY HACK FOR NBA TESTS

This will be removed before this PR is marked as ready, and is only here to make sure the other NBA games (and perhaps DOA3) work if some missing init behavior is handled.

* Revert "TEMPORARY HACK FOR NBA TESTS"

This reverts commit a0e27b0229.

* Change error message
2025-02-05 17:21:05 +02:00
kalaposfos13
131b6f90e0 Format log lines to make it possible to ctrl click on them and go to the log location (#2345) 2025-02-04 13:37:23 +02:00
squidbus
b879dd59c6 shader_recompiler: Add workaround for drivers with unexpected unorm rounding behavior. (#2310) 2025-02-04 01:01:59 -08:00
pdaloxd
b6ad512e34 Change Background Image for games (#2334)
* Added opacity change instead of blur for background image

* Fixed integer overflow when refreshing grid list

* Added slider to control background image opacity

* Added show background image button

* Added UI code for checkbox and English and Spanish translations for new UI elements

* Removed background image caching

* Background image update on apply/save

* Only recompute image if opacity or game changes

* Fixed segfault when trying to change opacity after table refresh

* Placed background image settings under GUI in settings file
2025-02-03 23:33:38 -08:00
Kolja
363604c6f0 Add emulator category (#2320) 2025-02-03 23:28:25 -08:00
georgemoralis
e4598e8821 sceVideoOutDeleteFlipEvent (#2339) 2025-02-03 23:27:48 -08:00
makigumo
fffd373652 Fix shader type names (#2336)
Names didn't match definition in type.h
2025-02-03 23:24:56 -08:00
makigumo
f8f732e78c fix ASSERT_MSG arguments (#2337) 2025-02-04 08:51:07 +02:00
rainmakerv2
e0d85a7e58 add controller remapping GUI (#2311)
* Initial Version - controller remapping GUI

* rework saving to allow for multiple outputs to an input

* License header

* Remove PS logo from image

* Add per game checkbox, fix filename, better whitespace deletion

* Reorganize variables, correctly set common config label when selected

* Add option to unmap, set mapping to unmapped when config entry is absent

* Add XBox labels

* Remove parsing from save function, make window more compact

* Fix typo

* Code cleanup

* Additional cleanup

---------

Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2025-02-04 08:50:32 +02:00
DanielSvoboda
97441b62d1 Fix game title sorting - Grid view (#2341) 2025-02-04 08:49:16 +02:00
Stephen Miller
8ad650582a Fix VideoOut events (#2330)
* Fix event data for VideoOut events

Fix is based on some decompilation work shared by red_prig.

* Cleanup

* Oops

* Style fixes

* Clang

* Fix libSceVideoOut event idents

Based on some decompilation work, events coming from libSceVideoOut use a separate set of values for identifiers. These values are only converted to OrbisVideoOutEventId values during calls to sceVideoOutGetEventId.
For convenience, I've placed all relevant identifiers into a enum called OrbisVideoOutInternalEventId.
Thanks to @red_prig for the tips.

* Fix?

Seems like `static_cast<u32>(hint) & 0xFF == event.ident` here, and doing those right shifts on the event.ident winds up breaking stuff.
Without this change, the if always fails because event_id was getting set to 0 instead.

* Clang
2025-02-03 17:37:28 +02:00
kalaposfos13
02ad2b78fa Fork detection: Fix Windows naming + add a new check for fork detection (#2321)
* Possible fix for Windows

* Check if remote.pushDefault is set when generating the remote link

* Remove left-in lines I missed before
2025-02-03 12:53:57 +02:00
DemoJameson
cef7edaea9 Update zh_CN translation (#2328) 2025-02-03 12:53:40 +02:00
C4ndyF1sh
83abaafdfa qt: Add more options to the "Copy info..." section + update en.ts/de.ts (#2322)
* Update gui_context_menus.h

* Update gui_context_menus.h

* Update en.ts

* Update de.ts

* Update gui_context_menus.h

* Update gui_context_menus.h

* Update gui_context_menus.h

* Update gui_context_menus.h

* Update gui_context_menus.h

* Update gui_context_menus.h

* Update gui_context_menus.h

* Update gui_context_menus.h

* Update gui_context_menus.h

* Update gui_context_menus.h

* Update en.ts

* Update de.ts

* Update gui_context_menus.h (last one)

* very small fix en.ts

* remove empty line

* merge https://github.com/shadps4-emu/shadPS4/pull/2316

Adds german translations to compatibility status
2025-02-03 12:53:26 +02:00
Yury
a55acae5ee Update ru_RU translation for 6.0 (#2318)
* Update ru translation for 6.0

* Escape special characters for ru

* Add and translate new strings for ru_RU

* Translate `Auto Select` in GPU selection

* Ru translation fixes
- added translation for `Auto Select`

* Fix typos in ru translation
2025-02-03 12:52:41 +02:00
DanielSvoboda
8d4261efba Cheats/Patches: Fix Mask Offset (#2323) 2025-02-03 12:52:23 +02:00
Martin
56b2f6c4cf add missing translations nb (#2317)
* add gamestatus tr nb

* add missing compatibilityinfoclass tr nb

* add missing GameListFrame tr nb
2025-02-03 12:52:10 +02:00
Missake212
0d65ef6f6e Adding french translation to game status and translating a forgotten sentence (#2315)
* Add translation to game status and translate a forgotten sentence

* menu

* vulkan ts
2025-02-03 12:51:54 +02:00
hspir404
c5cd4bc5cf Remove log line that was consuming as much as 0.6ms frame time (#2335) 2025-02-03 02:37:11 -08:00
squidbus
460c266e04 fix: Restore previous version of divergence PR. 2025-02-02 15:37:17 -08:00
squidbus
831903799b shader_recompiler: Insert end of divergence scope at last relevant instruction. (#2325) 2025-02-02 14:51:45 -08:00
Vladislav Mikhalin
1d8c607c15 hotfix: stronger conditions for the vtx offset error message 2025-02-01 20:44:10 +03:00
pdaloxd
83671ebf76 Translatable Compatibility Status (#2304)
* qt_gui: Made compatibility status translatable

* Translations: Added English and Spanish translation for compatibility status
2025-02-01 01:58:05 -08:00
squidbus
84c27eea2a texture_cache: Make sure left-overlapped mips get marked for rebind. (#2268) 2025-02-01 01:54:40 -08:00
squidbus
e1550c9091 audioout: Add error returns when not initialized. (#2309) 2025-02-01 10:52:40 +02:00
squidbus
259d5ef60b config: Restore previous keyboard mapping defaults. (#2313) 2025-02-01 11:34:41 +03:00
kalaposfos13
9aa6c5b951 Remapping: Documentation and defaults update + add option to use a unified config (#2302)
* Add a toggle to use unified or per-game configs, and add a deadzone example to the default config

* Add a checkbox to toggle config type

* clang
2025-01-31 18:41:11 +02:00
kalaposfos13
c4bfaa6031 Added keyboard and mouse input remapping, mouse movement to joystick logic, GUI and more (#1356)
* added support for loading keyboard config from file

* final minor update before pull request

* fix messing up the merge

* fix waitEvent to correctly handle mouse inputs

* add license

* Applied coding style fixes

* clang-format fucked up the .ini file

* actually fix clang changing ini syntax
use relative path for the ini file

* remove big commented out code blocks,
and fixed platform-dependent code

* fix windows hating me

* added mouse config option

* added toggle for mouse movement input (f7)

* fix license and style

* add numpad support i accidentally left out

* added support for mouse wheel (to buttons only)

* if keyboard config doesn't exist, autogenerate it

* added keybinds for "walk mode"

* Mouse movement input is now off by default

* code cleanup and misc fixes

* delete config file since it is now autogenerated

* F6 = F7 + F9

* added better mouse handling with config options

* Added capslock support

* fix clang-format

* Added support for mod key toggle key

* F6 and F7 are removed, F9 captures and enables the mouse

* Encapsulated globals and new classes in a new namespace

* Added mouse side button support

* Added per-game config

* relocated input parser to the new namespace

* changed parser parameters to make it possible to use it from the gui

* added home, end, pgup and pgdown

* Resolved merge conflict and refactored code

* Updated default keybindings

* Changed input handling to be single-threaded

* General code cleanup

* Start working on new backend

* Mouse polling, CMakeLists, and basic framework

* Output update handling, and reworked file creating, reading and parsing

* Parsing works now

* Single key button inputs work now

* Axis outputs work now

* Wheel works now (for me), l2/r2 handling improvements, and misc bugfixes

* Downgraded prints to log_debug, and implemented input hierarchy

* Implemented key toggle

* Added mouse parameter parsing

* clang-format

* Fixed clang and added a const keyword for mac

* Fix input hierarchy

* Fixed joysick halfmodes, and possibly the last update on input hierarchy

* clang-format

* Rewrote the default config to reflect new changes

* clang

* Update code style

* Updated sorting to accomodate for that one specific edge case

* Fix default config and the latest bug with input hiearchy

* Fix typo

* Temporarily added my GUI

* Update cmakelists

* Possible fix for Gravity Rush

* Update Help text, default config, and clang

* Updated README with the new keybind info

* okay so maybe the gravity rush fix might have slightly broken the joystick halfmode and key toggle

* Fixed mistakenly overwriting the last opened config with the default one if the GUI is opened multiple times in a session

* Updated Help descriptions and fixed mouse movement default parameters

* Fix crash if the Help dialog was opened a second time
If it's closed with the top right close button instead of clicking the Help button again, a required flag wasn't reset, making the next click on Help try to close a nonexistent window and segfault

* Added closing the config also closing the Help window, and fixed more segfaults due to mismatched flags

* Initial controller support

* clang and debug print cleanup

* Initial axis-to-button logic

* Updated Help text

* Added 'Reset to Default' button in GUI

* Minor text and description updates + fixed an issue with Help text box rendering

* Fix button-to-touchpad logic and l2/r2 handling, as they are both axes and buttons
The touchpad's button state was correctly handled, so games that use that were fine, but the touchDown flag was always set to true, so games that use this flag had problems, like Gravity Rush

* Fix merge conflict

* Clang

* Added back back button to touchpad binding

* Added touchpad button handling

* Added end-of-line comments and fixed some crashes happening with the VS debugger

* Apply recent changes from kbm-only

* Deadzone + initial directional axis-to-button mapping

* Added that one missing space in the README. Are you all happy now?

* Fixups from making everything use SDL

* Revert directional joystick code and fix a memory leak

* Change config directory name again to conform to project standards

* Clang

* Revert the old deeadzone code and properly add the new one

* Clang
2025-01-31 16:36:14 +02:00
jarred wilson
f3810cebea add 0.6.0 release to metainfo (#2300) 2025-01-31 14:55:14 +02:00
Sn0wCrack
fda8f1afa3 feat: set desktop file name to get icon on wayland (#2299) 2025-01-31 14:22:57 +02:00
poly
eed4de1da9 renderer_vulkan: use LDS buffer as SSBO on unsupported shared memory size (#2245)
* renderer_vulkan: use LDS buffer as SSBO on unsupported shared memory size

* shader_recompiler: add `v_trunc_f64` on inst format table
2025-01-31 13:52:31 +02:00
georgemoralis
8aea0fc7ee Revert "libkernel: handle special case in path for load module (#2269)" (#2298)
This reverts commit ec0cf25097.
2025-01-31 12:54:16 +02:00
panzone91
ec0cf25097 libkernel: handle special case in path for load module (#2269)
* libkernel: handle special case for load module

* fix linting
2025-01-31 10:51:03 +02:00
Daniel Nylander
49fc210833 Updated Swedish translation (#2270)
* Adding Swedish translation

* Updated Swedish translation with additional strings

Updated the Swedish translations using lupdate to found additional strings

cd src/qt_gui/treanslations

lupdate ../../../../shadPS4/ -tr-function-alias QT_TRANSLATE_NOOP+=TRANSLATE,QT_TRANSLATE_NOOP+=TRANSLATE_SV,QT_TRANSLATE_NOOP+=TRANSLATE_STR,QT_TRANSLATE_NOOP+=TRANSLATE_FS,QT_TRANSLATE_N_NOOP3+=TRANSLATE_FMT,QT_TRANSLATE_NOOP+=TRANSLATE_NOOP,translate+=TRANSLATE_PLURAL_STR,translate+=TRANSLATE_PLURAL_FS -no-obsolete -locations none -source-language en -ts sv.ts

* Update sv.ts

* Updated Swedish translation

* Adding copyright boilerplate
2025-01-31 10:50:40 +02:00
pdaloxd
f3c33b29dd Fix issue #1684 (#2277)
* Added recursive game scan and only using game directories

* Added recursion depth limit to scan directories

* Added recursive search by ID in cli mode

* Added recursive search to pkg installing
2025-01-31 10:50:02 +02:00
georgemoralis
8057ed408c started 0.6.1 WIP 2025-01-31 10:33:17 +02:00
georgemoralis
ec7a541263 tagged 0.6.0 release 2025-01-31 09:53:35 +02:00
Martin
a55cec1954 add advdebug translation nb (#2296)
* add advdebug translation nb

* vvl is a project so no tr
2025-01-31 08:35:31 +02:00
C4ndyF1sh
6e58c6c513 update german ts (#2294)
* Update de.ts (p1)

* Update de.ts (p2)

* Update de.ts (p3)

* Update de.ts (p4)
2025-01-31 08:35:06 +02:00
bigol83
647694d1b9 Update Italian translation (#2293)
* Update it.ts

Update Italian translation

* Update Italian translation

* Update Italian translation
2025-01-31 08:34:42 +02:00
tomboylover93
7ae1d73781 Fix minor issue with 'Emulator' group box (#2292) 2025-01-31 00:41:17 +02:00
kalaposfos13
be74f65864 Fix ccrash if remote is not set (#2291) 2025-01-31 00:14:13 +02:00
C4ndyF1sh
b5d63a31cc update german ts (#2290)
* Update de.ts (p1)

* Update de.ts (p2)
2025-01-31 00:05:50 +02:00
kalaposfos13
c77f62a738 Detect and log if the user is using a fork (#2219)
* Added fork detection

* Fallback to "origin" if branch is not found

* Add fork names to window titles

* clang
2025-01-30 22:45:49 +02:00
Missake212
52df7f6fe5 add french tl (#2289) 2025-01-30 22:18:45 +02:00
DanielSvoboda
ad5bd91a13 Fix game title sorting (#2286)
* Fix game title sorting

* fix

* fix

* fix
2025-01-30 10:34:42 -08:00
tomboylover93
e805b97520 Add Vulkan debug options to the Debug tab (#2254)
Co-authored-by: DanielSvoboda <daniel.svoboda@hotmail.com>
2025-01-30 18:34:31 +01:00
squidbus
c89c7e8fed cpu_patches: Always use AVX for certain patches. (#2274) 2025-01-30 18:17:03 +01:00
Zaid Ismail
19bbbf994c Fix game title sorting bug from Issue #2260 (#2284)
* Fix alphabetical sorting bug caused by case-sensitive string comparisons in GameListFrame.

* Fix bug with incorrect use of std::tolower.

* Fix clang-format error.

---------

Co-authored-by: Zaid Ismail <ZaidI@thoroughtec.com>
2025-01-30 14:09:50 +02:00
Missake212
3a163002d7 Update README.md (#2281)
Lot of people seem to think that building is required to use shad, adding a little note in the README to redirect them to tabs where they can simply download it.
2025-01-30 04:06:55 -08:00
squidbus
132a9d7d35 externals: Update MoltenVK (#2280)
Small fix for pipeline serialization from last change.
2025-01-30 01:38:34 -08:00
Bhaal42
d8b4114296 Patch 1 (#2278)
* Update fr.ts

Corrected some typos

* Update fr.ts

forgot plural
2025-01-30 10:25:29 +02:00
squidbus
0b50e2e270 sdl_window: Allow alternate face button keys on any system. (#2275)
* sdl_window: Allow alternate face button keys on any system.

* readme: Fix typo
2025-01-30 10:09:11 +02:00
Vinicius Rangel
0358271b93 Savefixes vii (#2279)
* savedata: rewrite save memory functions to handle slot id & better backup management

* savedata: auto-restore backup if needed

* safe save backup shutdown

replaced exit by quick_exit
2025-01-30 09:45:48 +02:00
squidbus
929e15260d shader_recompiler: Fix cube sampling coordinates. (#2266) 2025-01-29 18:14:36 -08:00
Missake212
4bb578f9fb updates french translation (#2262)
* updates the french translation

* fix space at the end

* forgot to translate a line

* final changes

* final changes 2
2025-01-29 12:45:44 +02:00
isshininu
aa847de043 Update ru_RU translation (#2267)
Several changes in ru_RU translation file.
2025-01-29 12:54:08 +03:00
squidbus
9bad66b24d hotfix: Raise videodec memory back up to 16MB.
Found a game that needs more, still should be low enough compared to before to fix some games.
2025-01-29 01:32:12 -08:00
ElBread3
78a0a755c5 qt_gui: Some game install features and fixes (#2261)
* open update folder + delete save folder + bulk install checkbox

* delete pkg on install checkbox + use game icon for finish window
2025-01-29 05:14:47 +02:00
squidbus
0575853be1 externals: Update MoltenVK. (#2264)
Adds support for VK_EXT_depth_clip_control
2025-01-28 17:56:05 -08:00
squidbus
a78f8afe58 libraries: Implement libSceZlib. (#2256)
* libraries: add zlib hle skeleton/stub

* libraries: Implement libSceZlib.

* zlib: Make variables static.

---------

Co-authored-by: Nenkai <Nenkai@users.noreply.github.com>
2025-01-28 18:48:19 +02:00
slick-daddy
2cdd873681 Update tr_TR.ts (#2255) 2025-01-28 18:47:12 +02:00
Martin
4b93b8b574 add missing translations and other corrections nb (#2253) 2025-01-28 18:47:00 +02:00
squidbus
8379922f8a hotfix: Reduce requested videodec memory block sizes.
This really needs a more accurate implementation, but for the stub lowering the value helps games that run out of memory space if it is too large.
2025-01-28 02:33:17 -08:00
squidbus
d2127b38de vk_rasterizer: Keep viewport depth offset even without native depth clip control. (#2257) 2025-01-28 11:12:48 +03:00
panzone91
2837d848ed linker: handle relocation for exported modules (#2247) 2025-01-27 22:40:58 +02:00
F1219R
665261efc5 Update sq translation (#2251) 2025-01-27 17:39:27 +02:00
Vladislav Mikhalin
191e64bfa1 renderer: respect zmin/zmax even if clipping is disabled (#2250) 2025-01-27 00:17:23 -08:00
squidbus
6f04ea18e4 externals: Update MoltenVK (#2249)
Fixes broken vertex binding dynamic stride when used with tessellation.
2025-01-26 19:28:58 -08:00
Ian Carpenter
7d1631f9f4 memory_patcher: Remove hardcoded repositories when loading patches (#2241) 2025-01-26 15:46:59 -08:00
squidbus
46b5437fdf emulator: Use correct game folder mount when opening update eboot directly. (#2244) 2025-01-26 18:01:15 +02:00
squidbus
461148c227 qt: Prevent interacting with empty grid cells. (#2243) 2025-01-26 04:32:14 -08:00
squidbus
3960283a67 hotfix: Fix missing embedded PS shader address bits.
If the emulator code is above a 40-bit address, the embedded shaders need to use address-hi to work. Embedded VS shader already supplies it, PS shader should as well.
2025-01-26 01:02:55 -08:00
squidbus
f1bc3b4f3d shader_recompiler: Add another constant propagation pass near the end. (#2231) 2025-01-25 14:59:18 -08:00
squidbus
a5a1253185 liverpool: Implement PM4 MEM_SEMAPHORE. (#2235) 2025-01-25 04:12:18 -08:00
Ian Carpenter
564dbc7b94 system_service: Add simple event queue and push an EntitlementUpdate event to it when app content is initialized (#2238) 2025-01-25 11:00:52 +02:00
squidbus
e433f3116d hotfix 2: clang format 2025-01-24 19:57:09 -08:00
squidbus
73b7d34460 hotfix: Drop scePadSetLightBar log to debug level.
Some games like to spam this a lot, and we already handle it.
2025-01-24 19:56:05 -08:00
hspir404
7072dfc99f Fix stale heap read in UnmapMemoryImpl (#2232) 2025-01-24 23:56:21 +02:00
squidbus
361532418c externals: Update SPIRV-Cross for MoltenVK (#2237) 2025-01-24 12:47:24 -08:00
squidbus
a51c8c17e0 shader_recompiler: Fix image write swizzles. (#2236) 2025-01-24 12:47:04 -08:00
squidbus
56f4b8a2b8 shader_recompiler: Implement shader export formats. (#2226) 2025-01-24 10:41:58 -08:00
poly
b3c573f798 libraries/fiber: print fiber ctx size on stack overflow 2025-01-24 19:37:34 +01:00
georgemoralis
a4eba8e827 stubbed webbrowserdialog,npparty (#2234)
* stubbed webbrowserdialog,npparty

* added poly's suggestions
2025-01-24 19:22:06 +02:00
kalaposfos13
4f426b723f Rebase of "Handle munmap over multiple VMAs" (#2233)
* Unmap memory in chunks if spanning over multiple VMAs

* clang

* Merge fixups

* Minor code style changes

* Update function declarations

---------

Co-authored-by: Marcin Mikołajczyk <marcinmikolajcz@gmail.com>
2025-01-24 15:30:55 +02:00
squidbus
4d12de8149 hotfix: 64-bit shift fixups 2025-01-24 03:14:37 -08:00
Marcin Mikołajczyk
9dcf40e261 Handle more 64bit shifts in Translator (#1825) 2025-01-24 03:07:36 -08:00
squidbus
0f69697acb documents: Update CPU requirements. (#2229) 2025-01-24 10:48:39 +02:00
georgemoralis
481f420a89 Update building-linux.md 2025-01-24 10:28:14 +02:00
squidbus
d1b9a5adcc texture_cache: Do not overwrite overlap hit with a miss. (#2217) 2025-01-24 10:23:18 +02:00
squidbus
74710116f6 renderer_vulkan: Remove dead code. (#2228) 2025-01-24 10:21:56 +02:00
squidbus
91444a0545 liverpool: Fix tiled check for color buffer. (#2227) 2025-01-24 10:21:32 +02:00
DanielSvoboda
a8a779c79b Fix AutoUpdate Changelog (#2224) 2025-01-24 10:11:48 +02:00
georgemoralis
e652369f22 sdl3 update (#2221) 2025-01-23 23:58:43 +02:00
Log3rinioo
cc4ddd28c3 Add missing Polish translations and fix typos (#2222) 2025-01-23 23:56:06 +02:00
georgemoralis
0ebe817a28 Update building-linux.md 2025-01-23 23:46:15 +02:00
georgemoralis
cdca420a2e Update building-linux.md 2025-01-23 23:27:37 +02:00
georgemoralis
2e6c9b8f98 Revert "Optimize workflows by caching apt install (#2212)" (#2220)
This reverts commit fb738bc247.
2025-01-23 22:58:45 +02:00
Angelo Rosa
fb738bc247 Optimize workflows by caching apt install (#2212)
* optimize apt caches

* change on push syntax

* removing comments and check time improvements on following pushes

* add recursive submodule fetch

* Revert "add recursive submodule fetch"

This reverts commit b059bda3b8.

* restore old push on everyhing rule

* fix libfuse2 uncaching package

* moving qt deps outside from caching directives
2025-01-23 15:54:42 +02:00
DemoJameson
cef92fbcaa Update Simplified Chinese translation (#2216)
* Update Simplified Chinese translation

* Fix incorrect translation

* Fix new line
2025-01-23 13:28:44 +02:00
DanielSvoboda
cc2e13873f Fix showing debug menu bar / Devtools (#2214)
* Fix showing debug menu bar / Devtools

* Fix
2025-01-22 22:21:41 -03:00
georgemoralis
81e7e4b216 Update building-linux.md 2025-01-23 00:52:22 +02:00
DanielSvoboda
1fcfb07421 GUI: Settings improvements (#2213) 2025-01-23 00:21:52 +02:00
panzone91
d7c2cb17f3 update extension vector capacity (#2210) 2025-01-22 23:53:54 +02:00
tomboylover93
c015ac1344 Update Linux building documentation (#2211)
* wip: redo build instructions guide for Linux

* Add Linux screenshots directory to REUSE.toml

* change links for Visual Studio Code images

* change instructions for building from terminal

reference: https://github.com/shadps4-emu/shadPS4/pull/2211#issuecomment-2608134455
2025-01-22 23:53:27 +02:00
お餅のCreeeper
e584444aa3 Update Japanese translation (#2209)
* Update Japanese translation

* Update Japanese translation

* Update Japanese translation
2025-01-22 23:52:27 +02:00
Vinicius Rangel
b3bce086b3 devtools: fix ReleaseKeyboard assert being triggered if many shader editor windows exist (#2205) 2025-01-22 12:08:49 -03:00
Stephen Miller
2968cf5a99 sceKernelVirtualQuery Fixes (#2204) 2025-01-22 16:06:27 +01:00
f3d209
adbff4056f Added ability to change save data path (#2199)
* added ability to change save data path

* get default save data path from fs

* add copyright

* formatting
2025-01-22 12:10:35 +02:00
Stephen Miller
78ae9613c5 Fix for address_space initialization on Windows (#2202)
Should fix some `Region coalescing failed: Attempt to access invalid address.` crashes.

Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>
2025-01-22 12:07:43 +02:00
squidbus
2a4798cfa6 tile: Fix some tile thickness calculation errors. (#2203)
* tile: Fix some tile thickness calculation errors.

* tile: Do not pad mip height to tile height.
2025-01-22 09:40:00 +01:00
polyproxy
5c62a00134 clang-format (again) 2025-01-21 21:14:05 +01:00
polyproxy
41b3942833 clang-format 2025-01-21 19:34:05 +01:00
polyproxy
84a341dce5 remove BADF return 2025-01-21 19:30:34 +01:00
polyproxy
3563b88d8c hotfix: use logger device on stdin 2025-01-21 19:28:39 +01:00
squidbus
95a30b2b3e texture_cache: Lock when updating image. (#2198) 2025-01-20 22:38:09 +01:00
squidbus
a3967ccdb4 externals: Update vulkan-headers (#2197) 2025-01-20 14:48:32 +02:00
squidbus
e1132db197 texture_cache: Prevent unregistered images from being tracked. (#2196) 2025-01-20 08:33:37 +01:00
Stephen Miller
0f93edb377 Implement IMAGE_ATOMIC_SWAP (#2194)
We already handle everything for this opcode in our IMAGE_ATOMIC function, so implementing this is fairly simple.
Should improve Wipeout 3.
2025-01-19 19:20:51 -08:00
Stephen Miller
4fa501c8d5 Additional libSceNpManager functions and cleanup (#2195)
* Error return on sceNpGetAccountIdA

Confirmed through hardware testing, this returns ORBIS_NP_ERROR_SIGNED_OUT on a signed out console.

Parameters are based on fpPS4 code.

* Fix compile

* Move errors to separate file

* Cleanup function headers

Swaps user_ids to use our OrbisUserServiceUserId type, and fixes parameter names to align with our coding standards.

* Add proper parameter checks

* Implement sceNpGetAccountId

This function takes an online_id, uses an NpManager function to get the user_id, then uses that user_id to perform the same internal functions as sceNpGetAccountIdA.

* Implement sceNpHasSignedUp

* Fix sceNpGetAccountId

Further hardware testing shows that these always write 0 to account_id when failing.

* Update np_manager.cpp
2025-01-19 19:12:42 -08:00
squidbus
d14e57f6a8 hotfix: Move some command buffer references down.
Prevents references becoming stale due to stream buffer flushes.
2025-01-19 18:45:37 -08:00
DanielSvoboda
80092b6367 Fix SurfaceFormat Format4_4_4_4 (#2193)
* Fix SurfaceFormat Format4_4_4_4

Pac-Man 256

* add_extension
2025-01-19 15:09:10 -08:00
DanielSvoboda
201f2817ca Fix SurfaceFormat Format1_5_5_5 - Format5_5_5_1 (#2191)
* Fix SurfaceFormat Format1_5_5_5 - again

* Fix Format5_5_5_1
2025-01-19 13:55:27 -08:00
DanielSvoboda
17ac63d23a Fix SurfaceFormat (#2188) 2025-01-19 17:47:40 +02:00
DanielSvoboda
c8bbecda26 Devtools: Close Button ( X ) (#2187) 2025-01-19 17:45:24 +02:00
georgemoralis
a7d45231b7 Filesystem devices (#2184)
* added dummy devices

* More WIP

* added urandom,srandom,random,console,deci_tty6 devices

* small fix

* macOS fix
2025-01-19 10:44:57 -03:00
Quang Ngô
ec0dfb32b5 Some ImGui tweaks for the game window (#2183)
* Remove window border
* Remove window rounding
* Set background color to black
2025-01-19 09:03:15 -03:00
squidbus
746f2e091d tile: Account for thickness in micro tiled size calculation. (#2185) 2025-01-19 12:06:31 +01:00
Vladislav Mikhalin
269ce12614 fix build on arch 2025-01-18 16:54:06 +03:00
¥IGA
388548ba47 pad: Configurable DeadZone (#2030) 2025-01-18 16:02:02 +03:00
kalaposfos13
3b92cd1c1a CLI: Add argument to pass an argument to the game (#2135) 2025-01-18 15:21:08 +03:00
Quang Ngô
1ea5f8f092 input: Unbroke KBM-only input (#2179) 2025-01-18 13:48:39 +03:00
squidbus
c80151adde vk_presenter: Fix splash issues. (#2180) 2025-01-18 02:29:19 -08:00
squidbus
d361579618 texture_cache: Fix image mip overlap. (#2177) 2025-01-18 10:35:44 +01:00
squidbus
12364b197a renderer_vulkan: Remove swapchain image reinterpretation. (#2176) 2025-01-18 01:13:16 -08:00
Quang Ngô
81ad575b22 video_core: Use adaptive mutex on Linux (#2105)
Fix performance regression with #1973 on SteamDeck
2025-01-17 23:47:38 -08:00
Quang Ngô
9a956f5ed0 renderer_vulkan: Clear blank frame (#2095)
* renderer_vulkan: Clear blank frame

Fix display of garbage images on startup on some drivers.

* Remove duplicated attachment declarations

* Remove duplicated rendering_info declarations
2025-01-17 23:08:45 -08:00
tomboylover93
40385e13e7 qt: Improve user experience on Steam Deck and window managers (#2103) 2025-01-18 10:08:20 +03:00
Quang Ngô
90b04e8cc0 input: Don't use old input state in GameController::ReadState() (#2170) 2025-01-18 09:59:38 +03:00
Vladislav Mikhalin
7b8177f48e renderer: handle disabled clipping (#2146)
Co-authored-by: IndecisiveTurtle <47210458+raphaelthegreat@users.noreply.github.com>
2025-01-18 09:20:38 +03:00
Ian Maclachlan
a5440e0e43 Update kernel.cpp (#2125)
In kernel.cpp boost io_context.reset() deprecated/discontinued in latest versions.  Changed to io_context.restart() as recommended.
2025-01-17 22:16:07 -08:00
¥IGA
e134fc5f1e Qt: Open shadPS4 Folder (#2107)
* Qt: Open shadPS4 Folder

* clang-format

* Change order

* Update pt_BR.ts
2025-01-17 22:09:10 -08:00
polybiusproxy
99a04357d1 don't compile cs with higher shared memory than supported (#2175) 2025-01-17 21:51:33 +01:00
Vinicius Rangel
4e8c178aec imgui: central node auto-hide tab (#2174) 2025-01-17 16:11:37 -03:00
Plínio Larrubia
0cee59cbe6 ci: Don't use the same cache for clang and gcc on linux (#2173) 2025-01-17 16:56:52 +02:00
squidbus
9e5b50c866 vk_platform: Clean up unnecessary debug message filters. (#2171) 2025-01-17 10:16:15 +02:00
squidbus
1d3427780a renderer_vulkan: Fix present related validation errors. (#2169) 2025-01-17 10:16:03 +02:00
squidbus
1e5b316ac4 renderer_vulkan: Add debug markers for presenter. (#2167) 2025-01-17 10:15:43 +02:00
baggins183
c13b29662e handle control point strides that arent a multiple of 16 (#2172) 2025-01-17 10:14:54 +02:00
squidbus
3b474a12f9 shader_recompiler: Improvements to buffer addressing implementation. (#2123) 2025-01-16 18:40:03 -08:00
squidbus
eb49193309 liverpool: Revert queue scope markers. (#2166) 2025-01-16 18:24:29 -08:00
Vinicius Rangel
8695383d35 keep framerate stable even without vsync (#2165) 2025-01-16 21:10:17 -03:00
Vinicius Rangel
56a6c95730 Render without rendering (#2152)
* presenter: render the game inside a ImGui window

* presenter: render the previous frame to keep the render rendering

* swapchain: fix swapchain image view format not being converted to unorm

* devtools: fix frame graph timing
2025-01-16 21:27:23 +02:00
Stephen Miller
440a693fae Crash on sceKernelDebugRaiseExceptionOnReleaseMode (#2163) 2025-01-16 18:22:39 +01:00
georgemoralis
4695aaa830 sceKernelAio* implementation (#2160)
* draft Aio from https://github.com/GoldHEN/GoldHEN_Plugins_Repository

* cleanup and fixes to Aio
2025-01-16 18:27:52 +02:00
squidbus
34a5f2319c network: Remove firing Np callbacks from check stubs. (#2161) 2025-01-16 13:17:07 +02:00
squidbus
da2b58f66e resource_tracking_pass: Persist image resource atomic designation. (#2158) 2025-01-16 12:36:41 +02:00
squidbus
b3739bea92 renderer_vulkan: Simplify debug marker settings. (#2159)
* renderer_vulkan: Simplify debug marker settings.

* liverpool: Add scope markers for graphics/compute queues.

* liverpool: Remove unneeded extra label from command buffer markers.

* vk_rasterizer: Add scopes around filtered draw passes.
2025-01-16 12:14:34 +02:00
DanielSvoboda
1c3048ccc2 Fix V_FRACT_F64 (#2156) 2025-01-15 16:45:02 +01:00
Stephen Miller
5a7d45fdfa Missing pthread exports (#2144) 2025-01-15 18:37:20 +03:00
squidbus
53d0a309cc liverpool_to_vk: Add R32Uint depth promote. (#2145) 2025-01-15 18:33:15 +03:00
Stephen Miller
c10f9b8269 Add libSceNpWebApi (#2150)
Includes a dummy return for sceNpWebApiInitialize, to make it return a positive value.
2025-01-15 13:19:41 +02:00
squidbus
5040be1640 renderer_vulkan: Handle depth-stencil copies through depth render overrides. (#2134) 2025-01-15 08:48:40 +03:00
jarred wilson
d94abffd9a Fix: rename yakuza screenshot to correct game (#2141) 2025-01-13 12:54:20 +02:00
squidbus
4719d32295 sdl: Respect text input main thread requirements. (#2138) 2025-01-12 22:44:42 +02:00
kalaposfos13
4f2f9494b0 GUI: Speed up GUI loading by caching game sizes (#2130)
* Add show game size toggle

* Fix (#7)

* Fix

I removed the gameSizeCheckBox from the 'Emulator' group and put it in 'GUI settings'
hLayoutTrophy which contains the Trophy information was inside the GUIMusicLayout, so I fixed that too.

* TR

* Use cached sizes if the feature is enabled

---------

Co-authored-by: DanielSvoboda <daniel.svoboda@hotmail.com>
2025-01-12 22:31:05 +02:00
Stephen Miller
c6ab149c56 libSceHttp2 Stubs (#2139)
* Auto-generate libSceHttp2

* Improved stub for sceHttp2Init

Needed for updated versions of Cyberpunk 2077.

Parameters are based on fpPS4, while the stub itself is based on similar stubs in our other networking libraries.

* Clang

I guess the line length calculations in the moduleGenerator are still not perfect?
2025-01-12 22:27:54 +02:00
psucien
394331f206 video_core: detiler: display micro 64bpp (#2137) 2025-01-12 19:25:25 +01:00
Stephen Miller
8a309c30a9 Check thread param on posix_pthread_rename_np (#2133) 2025-01-12 11:24:49 +02:00
Stephen Miller
466e071c97 Add libSceSsl2 stubs (#2132)
* Auto-generate libSceSsl2 stubs

* Copy over sceSslInit stub

* Update CMakeLists.txt

* Swap to Lib_Ssl2 log category

* Fix compile

Since libSceSsl has many functions of the same name, these functions get treated as overloaded functions and break compiling.

* Clang
2025-01-12 11:24:12 +02:00
squidbus
82cb298c5c shader_recompiler: Remove AMD native CubeFaceCoord. (#2129) 2025-01-11 13:57:49 -08:00
squidbus
5810c88c00 hotfix: Fix cube instructions. 2025-01-11 12:04:46 -08:00
Stephen Miller
62bbad62fc Implement sceNpCmp functions (#2114) 2025-01-11 17:58:07 +01:00
DemoJameson
5ac7e70e4b Update zh_CN.ts (#2122) 2025-01-11 17:55:10 +01:00
squidbus
5c845d4ecc hotfix: Constrain view layers to actual layers. 2025-01-10 16:30:28 -08:00
squidbus
6ec68f66a9 hotfix: Check correct template for setting binding divisor. 2025-01-10 15:59:20 -08:00
Quang Ngô
cfaea1ea6d qt_gui: Fix shortcut's name got cut off in some cases (#2116)
Example: P.T. -> P
2025-01-10 22:59:19 +02:00
DanielSvoboda
4a21d94871 Fix -PKG Viewer -Button install (#2113)
https://github.com/shadps4-emu/shadPS4/issues/2112
2025-01-10 22:58:41 +02:00
squidbus
e656093d85 shader_recompiler: Fix some image view type issues. (#2118) 2025-01-10 12:35:03 -08:00
squidbus
562ed2a025 renderer_vulkan: Simplify vertex binding logic and properly handle null buffers. (#2104)
* renderer_vulkan: Simplify vertex binding logic and properly handle null buffers.

* renderer_vulkan: Remove need for empty bindVertexBuffers2EXT.
2025-01-10 10:52:12 +02:00
squidbus
4563b6379d amdgpu: Handle 8-bit float format case for stencil. (#2092) 2025-01-10 10:49:08 +02:00
squidbus
725814ce01 shader_recompiler: Improvements to array and cube handling. (#2083)
* shader_recompiler: Account for instruction array flag in image type.

* shader_recompiler: Check da flag for all mimg instructions.

* shader_recompiler: Convert cube images into 2D arrays.

* shader_recompiler: Move image resource functions into sharp type.

* shader_recompiler: Use native AMD cube instructions when possible.

* specialization: Fix buffer storage mistake.
2025-01-10 10:48:12 +02:00
DanielSvoboda
93402620de GUI: Open Log Location - Button (#2102) 2025-01-09 08:42:07 +02:00
squidbus
65f9bbbfed shader_recompiler: Ignore exec mask for scalar instructions. (#2097) 2025-01-08 19:14:06 +02:00
tomboylover93
0eee36cbc7 ci: Add GCC build job for Linux (#2027)
* Add GCC CI build job

* gcc-ci: Change Clang CI job naming to avoid confusion

* gcc-ci: Remove GCC CI job from pre-release

This also removes the packaging step for linux-sdl-gcc and linux-qt-gcc so that the only available artifacts for download are compiled with Clang

* gcc-ci: Remove -clang prefix from Clang build jobs

* hot-fix

* specify gcc-14

* hot-fix: use system rapidjson

* use rapidjson-dev

* revert "use system rapidjson"
2025-01-08 14:41:01 +02:00
Stephen Miller
fc50567fc2 Unmap Fixes (#2080)
* Fix unmapping reserved memory

* Fix bug with unmapping before reserve

* Clang

* Ignore free memory pages

* Handle pooled memory
2025-01-08 14:08:54 +02:00
squidbus
e791ff4c5c externals: Update discord-rpc. (#2094) 2025-01-08 13:50:39 +02:00
squidbus
8f5bcb0f1c file_sys: Consolidate separate update directory handling. (#2041) 2025-01-08 13:23:40 +02:00
squidbus
af8c748e9c elf_info: Fix GCC build. (#2089) 2025-01-07 17:37:08 +02:00
Quang Ngô
3e5d4bb69c Fix double closing tag in metainfo.xml (#2090) 2025-01-07 17:36:56 +02:00
jarred wilson
c055c80c6f Remove releases.xml references (#2087) 2025-01-07 17:11:01 +02:00
Florian Piesche
a4c18b1434 Move release info into metainfo.xml (#2085) 2025-01-07 16:05:15 +02:00
kalaposfos13
4df0d9c035 Add support for true fullscreen (#2016)
* Support for true fullscreen

* clang

* Re-add mistakenly deleted line

* Size

I adjusted the size of the entire screen.
trophies font size and added a margin so it wouldn't be so spaced out.

---------

Co-authored-by: DanielSvoboda <daniel.svoboda@hotmail.com>
2025-01-07 15:30:05 +02:00
F1219R
32fc983ef8 Update sq translation (#2084)
* Update sq translation

* Update sq translation
2025-01-07 13:58:33 +02:00
squidbus
b0d7feb292 video_core: Implement conversion for uncommon/unsupported number formats. (#2047)
* video_core: Implement conversion for uncommon/unsupported number formats.

* shader_recompiler: Reinterpret image sample output as well.

* liverpool_to_vk: Remove mappings for remapped number formats.

These were poorly supported by drivers anyway.

* resource_tracking_pass: Fix image write swizzle mistake.

* amdgpu: Add missing specialization and move format mapping data to types

* reinterpret: Fix U/SToF input type.
2025-01-07 12:21:49 +02:00
kalaposfos13
c3ecf599ad Add motion controls toggle (#2029)
* Add motion controls toggle

* clang
2025-01-07 11:50:54 +02:00
squidbus
86038e6a71 shader_recompiler: Fix V_CMP_U_F32 (#2082) 2025-01-07 11:36:14 +02:00
Daniel Nylander
7bf467c653 Updated Swedish translation with additional strings (#2081)
* Adding Swedish translation

* Updated Swedish translation with additional strings

Updated the Swedish translations using lupdate to found additional strings

cd src/qt_gui/treanslations

lupdate ../../../../shadPS4/ -tr-function-alias QT_TRANSLATE_NOOP+=TRANSLATE,QT_TRANSLATE_NOOP+=TRANSLATE_SV,QT_TRANSLATE_NOOP+=TRANSLATE_STR,QT_TRANSLATE_NOOP+=TRANSLATE_FS,QT_TRANSLATE_N_NOOP3+=TRANSLATE_FMT,QT_TRANSLATE_NOOP+=TRANSLATE_NOOP,translate+=TRANSLATE_PLURAL_STR,translate+=TRANSLATE_PLURAL_FS -no-obsolete -locations none -source-language en -ts sv.ts

* Update sv.ts
2025-01-07 09:55:53 +02:00
¥IGA
869bf85e9a CI: Switch to Windows 2025 & Reduce Warnings (#2052) 2025-01-07 09:07:41 +02:00
squidbus
c08fc85b72 renderer_vulkan: Fix null buffer views with wrong format. (#2079) 2025-01-07 07:00:07 +02:00
DanielSvoboda
39b511070a TR: remove 'location' (#2078) 2025-01-07 06:58:49 +02:00
psucien
5559f35905 hot-fix: buffers resolve barriers fixed 2025-01-06 22:50:09 +01:00
Daniel Nylander
6f3c767b99 Adding Swedish translation (#2075) 2025-01-06 23:10:15 +02:00
georgemoralis
121328eced dummy sceMouse module and change sceMouseRead to debug to reduce spam (#2074) 2025-01-06 18:45:53 +02:00
squidbus
fb67d948b6 vk_resource_pool: Handle eErrorFragmentedPool. (#2071) 2025-01-06 15:31:45 +02:00
squidbus
7cdeb51670 renderer_vulkan: Add debug names to pipelines. (#2069) 2025-01-06 15:31:25 +02:00
squidbus
8879380427 shader_recompiler: Implement S_BITSET(0/1)_B32 (#2039) 2025-01-06 01:08:27 +02:00
Stephen Miller
e5f638b378 fix scePlayGoGetLocus (#2067)
Due to an issue with the if statement, scePlayGoGetLocus outputs an extra locus compared to real hardware.
2025-01-06 00:46:26 +02:00
Bettehem
4dcd7f0271 translation: Update Finnish translation (#2057) 2025-01-06 00:46:08 +02:00
squidbus
c0f57df4e6 vk_instance: Enable additional debug tagging if crash diagnostics is enabled. (#2066) 2025-01-06 00:45:54 +02:00
Vladislav Mikhalin
8f33dfe4f1 infra: require the log to be attched in template 2025-01-05 14:10:23 +03:00
Mahmoud Adel
79663789bd bump up vector size to 64 in image_info and image_binding (#2055)
solves ```boost::bad_alloc``` error when compiling shaders
2025-01-05 00:02:37 +02:00
psucien
9d3143231c macOS build fixed; indirect_args_addr moved out from queues context 2025-01-04 22:44:46 +01:00
psucien
7459d9c333 hot-fix: amdgpu: use different indirect dispatch packet on ASC 2025-01-04 22:23:12 +01:00
Quang Ngô
f2f24bb2cd input: Add missing poll lock (#2044) 2025-01-04 14:33:23 +02:00
squidbus
f42b8acf47 sdl_audio: Remove buffer samples hint. (#2038) 2025-01-04 14:33:07 +02:00
squidbus
78a32a3c0f image_info: Add Neo mode macro tile extents. (#2045) 2025-01-04 11:44:14 +01:00
psucien
ddc658f8c8 clang-format 2025-01-04 00:32:17 +01:00
squidbus
7153bc8d8f kernel: Check PSF for neo mode support. (#2028) 2025-01-04 00:29:09 +01:00
psucien
8e8671323a texture_cache: slight detilers refactoring (#2036) 2025-01-03 21:42:23 +01:00
squidbus
c2be12f009 amdgpu: Add some resource bits for Neo mode. (#2035) 2025-01-03 21:25:20 +01:00
squidbus
9434cae458 gnmdriver: Implement neo mode differences. (#2011)
* gnmdriver: Implement neo mode differences.

* gnmdriver: Move init sequences to separate file.
2025-01-03 21:22:27 +01:00
¥IGA
2951788afc texture_cache: Adding some missing textures (#2031) 2025-01-03 20:11:24 +01:00
psucien
345d55669e texture_cache: 8bpp macro detiler 2025-01-02 23:27:18 +01:00
georgemoralis
4e1733222f fixed deadzones (#2025) 2025-01-02 23:21:43 +02:00
TheTurtle
dcc662ff1a ir_passes: Integrate DS barriers in block (#2020) 2025-01-02 22:52:10 +02:00
Stephen Miller
67c531298a Fixup returns (#2023)
On a signed out console, these two functions return ERROR_SIGNED_OUT.
2025-01-02 22:51:47 +02:00
TheTurtle
77d2172441 renderer_vulkan: Cleanup and improve barriers in caches (#1865)
* texture_cache: Stricter barriers on image upload

* buffer_cache: Stricter barrier for vkCmdUpdateBuffer

* vk_rasterizer: Barrier also normal buffers and make it apply to all stages

* texture_cache: Minor barrier cleanup

* Batch image and buffer barriers in a single command

* clang format
2025-01-02 19:43:56 +01:00
psucien
f7a8e2409c hot-fix: debug build 2025-01-02 19:41:15 +01:00
polyproxy
55ccec4a38 fix typos 2025-01-02 18:40:10 +01:00
Vinicius Rangel
c977011d2f Merge pull request #2014 from viniciuslrangel/save-fixes-vi
Save Fixes VI
2025-01-02 12:40:05 -03:00
¥IGA
b87bca2e46 Reduce USBD Log Spamming (#2019) 2025-01-02 17:37:19 +02:00
squidbus
55b50171f8 audio: Improve port state guards. (#1998) 2025-01-02 17:33:53 +02:00
liberodark
596f4cdf0e Fix amdgpu & other issues (#2000) 2025-01-02 15:39:39 +02:00
TheTurtle
c25447097e buffer_cache: Improve buffer cache locking contention (#1973)
* Improve buffer cache locking contention

* buffer_cache: Revert some changes

* clang fmt 1

* clang fmt 2

* clang fmt 3

* buffer_cache: Fix build
2025-01-02 15:39:02 +02:00
hspir404
6862c9aad7 Speed up LiverpoolToVK::SurfaceFormat (#1982)
* Speed up LiverpoolToVK::SurfaceFormat

In Bloodborne this shows up as the function with the very highest cumulative "exclusive time". This is true both in scenes that perform poorly, and scenes that perform well.

I took (approximately) 10s samples using an 8khz sampling profiler.

In the Nightmare Grand Cathedral (looking towards the stairs, at the rest of the level):
- Reduced total time from 757.34ms to 82.61ms (out of ~10000ms).
- Reduced average frame times by 2ms (though according to the graph, the gap may be as big as 9ms every N frames).

In the Hunter's Dream (in the spawn position):
- Reduced the total time from 486.50ms to 53.83ms (out of ~10000ms).
- Average frame times appear to be roughly the same.

These are profiles of the change vs the version currently in the main branch. These improvements also improve things in the `threading` branch. They might improve them even more in that branch, but I didn't bother keeping track of my measurements as well in that branch. I believe this change will still be useful even when that branch is stabilized and merged.

It could be there are other bottlenecks in rendering on this branch that are preventing this code from being the critical path in places like the Hunter's Dream, where performance isn't currently as constrained. That might explain why the reduction in call times isn't resulting in a higher frame rate.

* Implement SurfaceFormat with derived lookup table instead of switch

* Clang format fixes
2025-01-02 15:38:51 +02:00
Mahmoud Adel
099e685bff add R16Uint to Format Detiler (#1995)
helps with Matterfall
2025-01-02 14:29:57 +02:00
polyproxy
1926900945 hotfix: reset stop source on thread stop 2025-01-02 12:30:05 +01:00
polyproxy
33afc00c3a Update improper wording in translations 2025-01-02 10:07:48 +01:00
Vinicius Rangel
3109bd245f savedata: Avoid Save memory concurrency 2025-01-02 05:04:54 -03:00
DanielSvoboda
8b66e9f78d GUI: Settings - Trophy Key (#2013)
* GUI: Settings-Trophy Key

* -

* QLineEdit::Password

* clang

* size
2025-01-02 09:15:08 +02:00
georgemoralis
4e0757ed55 Removed LLE libs (#2012)
* Removed LLE fiber, JpegEnc modules . HLE replacements are good enough

* fixup
2025-01-01 23:08:56 +02:00
Vladislav Mikhalin
46720e756b infra: more clarifications in issue templates (#2010) 2025-01-01 23:08:04 +03:00
psucien
40211642ca kernel: memory: PRT mapped area setter/getter 2025-01-01 21:04:59 +01:00
psucien
444016df7e Fix for trophy decryption (#2005)
* fix for trophy decryption

* more sanity checks

* switch back to strings for simplicity

* get rid of unnecessary span
2025-01-01 19:11:30 +01:00
kalaposfos13
15c9bb0e83 Motion controls (#1984)
* Initial motion controls

* Store sensor polling rate, and add more logging

* Revert commented out logging for testing purposes

* Code cleanup & clang

* New orientation handling

* clang
2025-01-01 20:05:22 +02:00
Stephen Miller
5631a31640 Fix flags (#1999) 2025-01-01 19:34:40 +02:00
polybiusproxy
a76e8f0211 clang-format 2025-01-01 13:21:00 +01:00
georgemoralis
283442b42f Storing encryption trophy key in config.toml (#1930)
* get trophy key from toml file

* clang format fix

* get trophy key from toml file

* clang format fix

* merge fixes

* Update config.cpp
2025-01-01 12:04:51 +02:00
psucien
d69341fd31 hot-fix: detiler: forgotten lut optimizations 2025-01-01 03:40:28 +01:00
oltolm
65cd3be4ca Qt: fix deprecation warnings (#1672) 2024-12-31 20:08:47 +02:00
psucien
174b5c0f95 kernel: equeue: added missing sceKernelDeleteHRTimerEvent 2024-12-31 17:24:56 +01:00
squidbus
48c51bd9ef audio: Accurate audio output timing. (#1986)
* audio: Accurate audio output timing.

* audio: Handle SDL audio queue stalls.

* audio: Format info cleanup.
2024-12-31 12:38:52 +02:00
squidbus
927dc6d95c vk_platform: Fix incorrect type for MVK debug flag. (#1993) 2024-12-31 12:38:30 +02:00
squidbus
f41829707d equeue: Fix regression from Filter type. (#1992) 2024-12-31 12:16:26 +02:00
Vladislav Mikhalin
052473e048 infra: emphasize the contact information (#1990) 2024-12-31 11:02:33 +02:00
squidbus
e1cf1f500d native_clock: Remove unused process code. (#1989) 2024-12-31 10:04:26 +02:00
squidbus
41d64a200d shader_recompiler: Add swizzle support for unsupported formats. (#1869)
* shader_recompiler: Add swizzle support for unsupported formats.

* renderer_vulkan: Rework MRT swizzles and add unsupported format swizzle support.

* shader_recompiler: Clean up swizzle handling and handle ImageRead storage swizzle.

* shader_recompiler: Fix type errors

* liverpool_to_vk: Remove redundant clear color swizzles.

* shader_recompiler: Reduce CompositeConstruct to constants where possible.

* shader_recompiler: Fix ImageRead/Write and StoreBufferFormatF32 types.

* amdgpu: Add a few more unsupported format remaps.
2024-12-31 06:14:47 +02:00
squidbus
284f473a52 shader_recompiler: Fix BitCount64 and FindILsb64 (#1978) 2024-12-31 06:10:29 +02:00
baggins183
62780e4e43 Initialize V0 to PrimitiveId in hull shader (#1985) 2024-12-31 06:00:52 +02:00
Stephen Miller
9091223396 Fix sceKernelGetEventFilter (#1987) 2024-12-31 05:59:14 +02:00
Vladislav Mikhalin
dd3f24614b infra: updated github issue templates 2024-12-29 21:13:19 +01:00
Nenkai
ac2e8c2602 gnmdriver: remove redundant EqEventType assert (#1975) 2024-12-29 19:15:04 +01:00
squidbus
38f1cc2652 renderer_vulkan: Render polygons using triangle fans. (#1969) 2024-12-29 12:30:37 +01:00
Quang Ngô
1bc27135e3 renderer_vulkan: fix deadlock when resizing the SDL window (#1860)
* renderer_vulkan: Fix deadlock when resizing the SDL window

* Address review comment
2024-12-29 13:22:35 +02:00
Vladislav Mikhalin
ee72d99947 ajm: added stubbed statistics instance (#1924)
* ajm: added stubbed statistics instance

* fixed a typo, thanks poly

* fixed clang-format

* removed unused struct

* small fixes

* fixed typedefs, added per codec statistics
2024-12-29 12:53:06 +02:00
TheTurtle
f09a95453e hot-fix: Correct queue id in dispatch indirect
I missed this
2024-12-29 12:48:45 +02:00
Mahmoud Adel
e952013fe0 add EventWrite and DispatchIndirect to ProcessCompute (#1948)
* add EventWrite and DispatchIndirect to ProcessCompute

helps Alienation go Ingame

* apply review changes

Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>

---------

Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>
2024-12-29 12:47:15 +02:00
squidbus
f8177902a5 cubeb_audio: Make sure COM is initialized on Windows. (#1958) 2024-12-29 12:46:59 +02:00
TheTurtle
4b2db61120 Update issue templates 2024-12-29 12:45:18 +02:00
squidbus
248220fef3 pthread: Change minimum stack for HLE to additional stack. (#1960) 2024-12-29 12:37:37 +02:00
baggins183
62c47cb1b7 recompiler: handle reads of output variables in hull shaders (#1962)
* Handle output control point reads in hull shader. Might need additional barriers

* output storage class
2024-12-29 12:37:15 +02:00
squidbus
da9e45b582 build: Update MoltenVK and fix missing add_dependencies for copy. (#1970)
* build: Fix missing add_dependencies for MoltenVK copy target.

* externals: Update MoltenVK
2024-12-29 12:36:41 +02:00
Quang Ngô
202c1046a1 Fix loading RenderDoc in offline mode for Linux (#1968) 2024-12-29 12:36:29 +02:00
Quang Ngô
468d7ea80e config: Don't load config in the Emulator class (#1965)
Allows overriding of configs in frontends.

Fix set fullscreen not working when specified in the CLI.
2024-12-29 12:36:16 +02:00
Quang Ngô
ab7e794f23 sdl: Limit minimum window size (#1966) 2024-12-29 12:35:52 +02:00
polyproxy
ee974414d2 hotfix: fix fiber initialization 2024-12-28 17:43:29 +01:00
polybiusproxy
851995d444 libraries/fiber: implement context switching (#1950) 2024-12-28 17:33:40 +01:00
tomboylover93
e8b0fdd6cc style: add Tokyo Night theme (#1811)
* style: add Tokyo Night theme

* clang-format: Update main_window_themes.h
2024-12-28 17:09:33 +02:00
Quang Ngô
a8b4e14bf5 Fix SDL version cannot launch game using game ID (#1650)
* Fix SDL version cannot launch game using game ID

Missing from https://github.com/shadps4-emu/shadPS4/pull/1507.

* Added --add-game-folder argument
Also added "treat the last argument as the game, if it isn't found already" option to the qt version

---------

Co-authored-by: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com>
2024-12-28 16:35:12 +02:00
rainmakerv2
8447d6ea1c Remove PS4 pro mode from GUI, can still be edited in from config file (#1871) 2024-12-28 14:30:26 +01:00
jas0n098
63d2d1ebe8 Handle RectList primitives in Geometry shaders (#1936) 2024-12-28 13:19:41 +02:00
DemoJameson
668d5f65dc Update zh_CN translation (#1946) 2024-12-28 13:19:16 +02:00
Quang Ngô
99e1e028c0 texture_cache: Don't read max ansio value if not aniso filter (#1942)
Fix Sonic Forces.
2024-12-28 13:18:56 +02:00
georgemoralis
f0352d2f7d Updated dev team (sorry frodo , the ring is yours) 2024-12-28 13:16:25 +02:00
georgemoralis
c8b704e4a3 Update README.md 2024-12-28 13:06:51 +02:00
georgemoralis
fc2fd9fd3c Update README.md with latest (not quite) addition to dev team 2024-12-28 13:05:53 +02:00
polybiusproxy
817a62468e core: better memory configuration (#1896) 2024-12-28 12:03:00 +01:00
mailwl
55f78a0b94 libraries: Add libSceMove HLE skeleton (#1945)
* libraries: Add libSceMove HLE skeleton

* Fix clang-format issue
2024-12-28 12:58:37 +02:00
DemoJameson
9aabe98e4e Fix a translation not working (#1947) 2024-12-28 11:49:44 +01:00
psucien
04933ac863 hot-fix: handle ASC ring wrap 2024-12-28 11:44:11 +01:00
Stephen Miller
122fe22a32 Implement IMAGE_GATHER4 and IMAGE_GATHER4_O (#1939)
* Implement IMAGE_GATHER4_O

Used by The Last of Us Remastered.

* Fix type on IMAGE_GATHER4_C_LZ

Had a different set of types compared to the other IMAGE_GATHER4 ops.

* IMAGE_GATHER4
2024-12-28 02:42:41 +02:00
squidbus
49ffb7b120 sdl_audio: Implement SetVolume and add more error checking. (#1935) 2024-12-28 00:07:16 +02:00
georgemoralis
3218c36b22 knack fixes by niko (#1933) 2024-12-27 23:03:03 +02:00
DanielSvoboda
abe85fd3e0 GUI: Fix TR Units - Size and Time - more... (#1927)
* GUI: TR Units - Size and Time

Added translation for these units:
B, KB, MB, GB, TB
h, m, s

Added missing text:
Games: - text in the lower left corner
Compatibility...
Update database
View report
Submit a report

Fixed the size of the settings menu

* Audio Backend

* Fixed the size of the settings menu
2024-12-27 22:23:11 +02:00
squidbus
f4c1d827d5 build: Do not generate files in source. (#1929) 2024-12-27 22:20:30 +02:00
squidbus
115aa61d04 build: Fix MoltenVK bundling copy. (#1928) 2024-12-27 22:10:16 +02:00
squidbus
333f35ef25 audio: Implement cubeb audio out backend. (#1895)
* audio: Implement cubeb audio out backend.

* cubeb_audio: Add some additional safety checks.

* cubeb_audio: Add debug logging callback.

* audioout: Refactor backend ports into class.

* pthread: Bump minimum stack size to fix cubeb crash.

* cubeb_audio: Replace output yield loop with condvar.

* common: Rename ring_buffer_base to RingBuffer.
2024-12-27 21:04:49 +02:00
Nenkai
f95803664b equeue: sceGnmGetEqEventType/sceKernelGetEventData impl (#1839) 2024-12-27 20:33:45 +02:00
Martin
e40ede5db2 Update nb translation (#1904)
* add more translations and make more consistent nb

* typo and make easier to read

* fix wording
2024-12-27 16:51:23 +02:00
Yury
ff4d37cbc8 Update russian translation for 0.5.0 (#1903) 2024-12-27 16:50:46 +02:00
Quang Ngô
0351b864d0 texture_cache: Enable anisotropic filtering (#1872) 2024-12-27 16:47:26 +02:00
squidbus
a86ee7e7f5 vk_platform: Enable MoltenVK debug if crash diagnostics is enabled. (#1887)
* vk_platform: Enable MoltenVK debug if crash diagnostics is enabled.

* build: Make sure MoltenVK gets re-bundled when changed.
2024-12-27 16:46:31 +02:00
squidbus
b1f74660df shader_recompiler: Implement S_BCNT1_I32_B64 and S_FF1_I32_B64 (#1889)
* shader_recompiler: Implement S_BCNT1_I32_B64

* shader_recompiler: Implement S_FF1_I32_B64

* shader_recompiler: Implement IEqual for 64-bit.

* shader_recompiler: Fix immediate type in S_FF1_I32_B32
2024-12-27 16:46:07 +02:00
mailwl
1c5947d93b Load HLE library if native library can't be loaded (#1899) 2024-12-27 16:44:57 +02:00
¥IGA
cf84c46a49 Fix for D32Sfloat and R8Snorm Tiled image (#1898)
* Fix for D32Sfloat Tiled image

* Fix for R8Snorm Tiled image
2024-12-27 16:43:44 +02:00
mailwl
0677d7a214 Avoid to access invalid iterator (#1892) 2024-12-27 16:43:10 +02:00
DanielSvoboda
9b8de8d320 Fix TR (#1897) 2024-12-27 13:54:31 +02:00
bigol83
4e8b8887df Fix typo (#1918) 2024-12-27 13:53:58 +02:00
f8ith
5dd1e7c32e settings-dialog: use grid layout (#1920) 2024-12-27 13:53:41 +02:00
Vinicius Rangel
edc027a8bc Devtools IV (#1910)
* devtools: fix popen in non-windows environment

* devtools: fix frame crash assertion when hidden

* devtools: add search to shader list

* devtools: add copy name to shader list

* devtools: frame dump: search by shader name
2024-12-26 23:08:47 +02:00
IndecisiveTurtle
0bb1c05aff hot-fix: Drop key
* Caution is best
2024-12-26 17:41:40 +02:00
Daniel R.
cbb13fa39b hotfix: fix incorrect appcontent available space size 2024-12-26 13:18:53 +01:00
Mohsen
91d4044162 Translated most of the remaining texts into Persian (fa_IR.ts) and fixed incorrect translations (#1885) 2024-12-26 13:01:31 +01:00
F1219R
e885088632 Update sq translation (#1893) 2024-12-26 12:58:42 +01:00
bigol83
ba9273d1cc Update it.ts (#1894)
Add missing translation and fixed some typos
2024-12-26 12:53:20 +01:00
rafael-57
5f9abd1db4 Add info for QT Multimedia (#1886)
QT Multimedia is mandatory for building on Windows, and it's not mentioned in the guide.
2024-12-26 01:55:15 +02:00
DanielSvoboda
0939082aca Fix button changelog (#1882) 2024-12-25 23:58:19 +02:00
georgemoralis
3a1a3fc75e 0.5.1 WIP started 2024-12-25 22:42:49 +02:00
georgemoralis
a1a98966ee retagged 0.5.0 2024-12-25 22:35:00 +02:00
georgemoralis
195929953b tagged 0.5.0 2024-12-25 22:08:43 +02:00
DanielSvoboda
3d0d1a26df Add missing translations (#1879)
* Add missing translations

* +
2024-12-25 22:05:36 +02:00
¥IGA
3ab118837a Fix for D16Unorm Tiled image (#1863) 2024-12-25 16:06:12 +02:00
squidbus
3c111202e1 renderer_vulkan: Make sure at least one viewport is set (#1859) 2024-12-25 16:05:51 +02:00
Marcin Mikołajczyk
db43c601fc README: mention alternative key mappings on Mac (#1876)
Co-authored-by: Marcin Mikolajczyk <github@mikolajczyk.dev>
2024-12-25 16:05:15 +02:00
f8ith
d55e41a19e compatibility_data: Added compatibility related settings to GUI (#1855)
* compatibility_data: added compatibility related settings to gui
* New game compatibility section in settings dialog
* Context menu now has a compatibility section
* Adjusted minimum size of updater section to 265

* update translations

* revert to deprecated statechanged

* fix display compatibility data option
2024-12-25 09:30:09 +02:00
squidbus
a89c29c2ca shader_recompiler: Rework image read/write emit. (#1819) 2024-12-25 01:13:32 +02:00
squidbus
95638d5ca5 exception: Fix raising exceptions on POSIX systems (#1868) 2024-12-25 00:21:32 +02:00
squidbus
6d728ec7ed renderer_vulkan: Enable LDS barriers for MoltenVK (#1866) 2024-12-24 23:03:04 +02:00
IndecisiveTurtle
7b24b42711 data_share: Emit barrier before reads
* Fixes artifacts in TLG when using NVIDIA gpus. When LDS is written and read in the same basic block, the barrier pass wont handle it properly, so insert a barrier before reads
2024-12-24 16:04:30 +02:00
IndecisiveTurtle
8f7eb2d0e9 semaphore: Attempt to acquire before checking timeout
* The posix specification says that if the object can be acquired immediately, timeout doesnt matter
2024-12-24 15:39:17 +02:00
Daniel R.
c284cf72e1 Switch remaining CRLF terminated files to LF 2024-12-24 13:56:31 +01:00
Daniel R.
2c0f986c52 core/libraries: HLE fiber reimplementation (#1836) 2024-12-24 13:33:00 +01:00
squidbus
0a4453b912 renderer_vulkan: Simplify depth pipeline state and move stencil to dynamic state. (#1854)
* renderer_vulkan: Simplify depth pipeline state and move stencil to dynamic state.

* Change graphics key depth-stencil flags to bitfields.
2024-12-24 13:45:11 +02:00
TheTurtle
092d42e981 renderer_vulkan: Implement rectlist emulation with tessellation (#1857)
* renderer_vulkan: Implement rectlist emulation with tessellation

* clang format

* renderer_vulkan: Use tessellation for quad primitive as well

* vk_rasterizer: Handle viewport enable flags

* review

* shader_recompiler: Fix quad/rect list FS passthrough semantics.

* spirv: Bump to 1.5

* remove pragma

---------

Co-authored-by: squidbus <175574877+squidbus@users.noreply.github.com>
2024-12-24 13:28:47 +02:00
psucien
c2e9c877dd hot-fix: missing fce barrier 2024-12-23 18:20:37 +01:00
Quang Ngô
400da1aa8d Handle swapchain recreation (#1830) 2024-12-23 16:21:48 +02:00
Emulator-Team-2
94f861588d added B5G6R5UnormPack16 format (#1856) 2024-12-23 15:52:29 +02:00
DanielSvoboda
dfdd819e3e Fix AutoUpdate Issue with Non-Latin Usernames/Directories (#1853)
* Fix updater for non-Latin user directories

* QStandardPaths
2024-12-23 09:29:30 +02:00
psucien
43fd8fa44a hot-fix: macos release build 2024-12-22 23:11:16 +01:00
psucien
2dc5755799 build: exclude Tracy from release builds 2024-12-22 22:51:48 +01:00
psucien
8abc43a03d texture_cache: 32bpp and 64bpp macro detilers (#1852)
* added 32bpp macro detiler

* added 64bpp macro detiler

* consider 3d depth alignment in size calculations
2024-12-22 19:43:44 +01:00
Vladislav Mikhalin
7fe4df85ab Clear color attachment if FCE was invoked before any draws (#1851)
* Clear RT if FCE was invoked before any draws

Co-authored-by: psucien <bad_cast@protonmail.com>

* address review comments

---------

Co-authored-by: psucien <bad_cast@protonmail.com>
2024-12-22 18:12:43 +01:00
setepenre
8a409d86d4 post-processing: rework gamma correction (#1756) 2024-12-22 16:18:07 +01:00
squidbus
ab5240d8d2 qt: Do not run emulator on separate thread on Mac. (#1849) 2024-12-22 16:31:59 +02:00
squidbus
14dc136832 renderer_vulkan: Various attachment cleanup and fixes. (#1795) 2024-12-22 16:08:48 +02:00
Quang Ngô
aba2b29074 gui: start the emulator in new thread (#1829) 2024-12-22 15:47:28 +02:00
rainmakerv2
433d9459e0 Disable trophy pop-up with config setting (#1834) 2024-12-22 15:46:45 +02:00
TheTurtle
5eebb04de9 vk_rasterizer: hot fix 2024-12-22 15:31:10 +02:00
squidbus
fac21a5362 audio: Move port logic out of SDL backend and define backend interface. (#1848) 2024-12-22 11:46:28 +02:00
f8ith
0931802151 compatibility_data: various fixes (#1847)
* temporarily disable status column + various fixes

* add configuration option to enable compatibility data

* clang format
2024-12-22 11:05:44 +02:00
TheTurtle
fb2c035c05 vk_rasterizer: Fix stencil clears (#1840) 2024-12-22 02:49:42 +02:00
squidbus
7e890def48 fs: Return nullptr when file descriptor is out of bounds. (#1842) 2024-12-22 02:49:34 +02:00
Martin
08182f814f Disable userfaultfd again by making it opt-in (#1777)
* Disable userfaultfd again

* Let userfd be be opt-in instead of disabled
2024-12-22 02:49:12 +02:00
Daniel R.
8d8bb05055 renderer_vulkan: add support for Polygon draws (#1798) 2024-12-21 10:20:24 +01:00
alvinkim101
39fed1f469 Fix splash assert (#1832) 2024-12-20 19:27:27 +01:00
Alessandro Ampala
953fb14638 Fix update on windows when path contains powershell wildcards (#1391) (#1779)
* Fix update process on windows when there are some powershell wildcards in the installation path. (#1391)

* Fix coding style error. (#1391)
2024-12-19 10:59:26 +02:00
f8ith
f2a989b9da wip: added status column for compat data (#1668)
* wip: added basic gui for compat data

* data is currently pulled directly from github API, awaiting server infra

* removed unused initalizer

* fixes

* fix cmake

* wip: add some testing date / version

* add tooltip

* fix nested QJsonObject

* fix tooltip color

* fix clang-format

* Edit style

* Add clickable status

* formatting

* import order

* typo

* fix clang format 2

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-12-19 10:58:11 +02:00
georgemoralis
b0b74243af clang-fix 2024-12-19 10:25:03 +02:00
TheTurtle
188eebb92a ir: Add heuristic based LDS barrier pass (#1801)
* ir: Add heuristic based LDS barrier pass

* Attempts to insert barriers after zero-depth divergant conditional blocks in shaders that use shared memory

* lds_barriers: Limit to nvidia

* Intel has historically had problems with cs barriers, will debug other time
2024-12-19 10:18:28 +02:00
TheTurtle
adf4b635f7 hot-fix: Proper abi on init_routine 2024-12-18 22:11:09 +02:00
Mahmoud Adel
1e08099036 add R8Uint in image Detiling (#1812)
used by InFamous, and maybe other games
2024-12-18 22:06:30 +02:00
Stephen Miller
32435674f2 Misc UE4 fixes (#1821)
* Add ExecLo case to S_SAVEEXEC_B64

Seen in CUSA38209

* S_BCNT1_I32_B32

Turtle said our implementation of S_BCNT1_I32_B64 was meant to be for S_BCNT1_I32_B32, so renaming the opcode is the fix.
2024-12-18 22:05:35 +02:00
Marcin Mikołajczyk
b1b4c8c487 Handle setting Vcc in Translator::SetDst64 (#1826) 2024-12-18 21:57:58 +02:00
Marcin Mikołajczyk
be4c38bf1c Handle 32bit int ImageFormat (#1823) 2024-12-18 21:48:00 +02:00
squidbus
ccfb1bbfa8 vk_instance: Add additional fallback for missing D16UnormS8Uint. (#1810) 2024-12-18 07:56:08 +02:00
squidbus
87773a417b mac: Choose whether system Vulkan is needed at runtime. (#1780) 2024-12-17 15:04:19 +02:00
ElBread3
aa5c1c10df More Fixes for Separate Update (#1487)
* handle getdents + fix condition + add info to description

* fix not handling dents errors

* to not overwrite it, only gather separate update entries when normal folder is done

* fix always setting entries to 0 and guest name including "UPDATE"

* reset indexes on completion

* don't use concat, fixes long standing bug

* make sce_module module loading take both paths into account
2024-12-17 12:42:21 +02:00
squidbus
3c8e25e8e4 fs: Fix wrong mounts being matched by partial guest path. (#1809) 2024-12-17 12:34:43 +02:00
Richard Habitzreuter
5585e42677 style: add rounded borders and focus color styling to the search bar (#1804) 2024-12-17 12:32:30 +02:00
squidbus
8a4e03228a spirv_emit_context: Prevent double-add of GS in attributes to interface. (#1800) 2024-12-16 02:11:15 +02:00
psucien
e7c4ffe032 hot-fix: Tracy operation restored; memory leak fix as a bonus 2024-12-15 20:53:29 +01:00
DanielSvoboda
3001b007f6 Keybord on README / Fix Play Time (#1786)
* Keybord on README F10_F11_F12

* Update game_list_frame.cpp
2024-12-15 16:30:53 +02:00
baggins183
9aa1c13c7e Fix some compiler problems with ds3 (#1793)
- Implement S_CMOVK_I32
- Handle Isoline abstract patch type
2024-12-15 16:30:19 +02:00
Richard Habitzreuter
d2ac92481b style: add Gruvbox theme (#1796) 2024-12-15 16:28:36 +02:00
psucien
0fd1ab674b GPU processor refactoring (#1787)
* coroutine code prettification

* asc queues submission refactoring

* better asc ring context handling

* final touches and review notes

* even more simplification for context saving
2024-12-15 00:54:46 +02:00
Connor Garey
af26c945b1 Fix for "shadPS4" not being given on Linux volume mixers (#1789) 2024-12-14 23:30:17 +01:00
Vladislav Mikhalin
876445faf1 recompiler: emit a label right after s_branch to prevent dead code interferrence (#1785) 2024-12-14 22:46:55 +02:00
squidbus
f93677b953 resource_tracking_pass: Fix converting dimensions to float for normalization. (#1790) 2024-12-14 22:46:35 +02:00
squidbus
8b88344679 vk_instance: Remove unused dynamic state 2 features struct (#1791) 2024-12-14 22:46:19 +02:00
TheTurtle
e9ede8d627 Revert "DmaData and Recompiler fixes (#1775)" (#1784)
This reverts commit cafd40f2c2.
2024-12-14 16:17:14 +02:00
squidbus
27447537c3 externals: Update sirit to fix debug assert (#1783) 2024-12-14 16:12:41 +02:00
squidbus
e752f04cde shader_recompiler: Fixups from stencil changes (#1776) 2024-12-14 14:33:24 +02:00
Vladislav Mikhalin
cafd40f2c2 DmaData and Recompiler fixes (#1775)
* liverpool: fix dmadata packet handling

* recompiler: emit a label right after s_branch to prevent dead code interferrence

* specialize barriers
2024-12-14 14:33:06 +02:00
baggins183
3c0c921ef5 Tessellation (#1528)
* shader_recompiler: Tessellation WIP

* fix compiler errors after merge

DONT MERGE set log file to /dev/null

DONT MERGE linux pthread bb fix

save work

DONT MERGE dump ir

save more work

fix mistake with ES shader

skip list

add input patch control points dynamic state

random stuff

* WIP Tessellation partial implementation. Squash commits

* test: make local/tcs use attr arrays

* attr arrays in TCS/TES

* dont define empty attr arrays

* switch to special opcodes for tess tcs/tes reads and tcs writes

* impl tcs/tes read attr insts

* rebase fix

* save some work

* save work probably broken and slow

* put Vertex LogicalStage after TCS and TES to fix bindings

* more refactors

* refactor pattern matching and optimize modulos (disabled)

* enable modulo opt

* copyright

* rebase fixes

* remove some prints

* remove some stuff

* Add TCS/TES support for shader patching and use LogicalStage

* refactor and handle wider DS instructions

* get rid of GetAttributes for special tess constants reads. Immediately replace some upon seeing readconstbuffer. Gets rid of some extra passes over IR

* stop relying on GNMX HsConstants struct. Change runtime_info.hs_info and some regs

* delete some more stuff

* update comments for current implementation

* some cleanup

* uint error

* more cleanup

* remove patch control points dynamic state (because runtime_info already depends on it)

* fix potential problem with determining passthrough

---------

Co-authored-by: IndecisiveTurtle <47210458+raphaelthegreat@users.noreply.github.com>
2024-12-14 12:56:17 +02:00
squidbus
3e22622508 renderer_vulkan: Remove some fallbacks and misc format queries that are no longer needed. (#1773) 2024-12-14 12:04:30 +02:00
squidbus
8caca4df32 shader_recompiler: Support VK_AMD_shader_image_load_store_lod for IMAGE_STORE_MIP (#1770)
* shader_recompiler: Support VK_AMD_shader_image_load_store_lod for IMAGE_STORE_MIP

* emit_spirv: Fix missing extension declaration.
2024-12-14 12:03:42 +02:00
squidbus
40e8a40ada externals: Add MoltenVK as an external. (#1767) 2024-12-14 10:20:04 +02:00
rainmakerv2
a57ccf9112 Save main window together with config to avoid rare crash (#1772) 2024-12-14 10:18:34 +02:00
Alexandre Bouvier
32556ad0d8 cmake: fix double alias (#1771) 2024-12-14 10:18:05 +02:00
rainmakerv2
8bb1e8fcdb Resize trophy pop up windows based on window size (#1769) 2024-12-14 10:17:00 +02:00
Diego Cea López
715ac8a279 vk_shader_hle: Don't alter the order of the skipped copies. (#1757)
* vk_shader_hle: Don't alter the order of the skipped copies.

* Simplification.

* Format.

* More simplification.
2024-12-14 00:27:09 +02:00
squidbus
f1c23d514b shader_recompiler: Implement FREXP instructions. (#1766) 2024-12-13 21:51:39 +02:00
TheTurtle
722a0e36be graphics: Improve handling of color buffer and storage image swizzles (#1763)
* liverpool_to_vk: Remove wrong component swap formats

* shader_recompiler: Handle storage and buffer format swizzles

* shader_recompiler: Skip unsupported depth export

* image_view: Remove image format swizzle

* Platform support is not always guaranteed
2024-12-13 21:49:37 +02:00
squidbus
028be3ba5d shader_recompiler: Emulate unnormalized sampler coordinates in shader. (#1762)
* shader_recompiler: Emulate unnormalized sampler coordinates in shader.

* Address review comments.
2024-12-13 21:49:07 +02:00
MajorP93
306279901f ci: Use link-time optimization for building (#1636)
* ci: Use link-time optimization for building

* cmake: Set CMP0069 policy to new for external dependencies
* This enables LTO also when building external dependencies that do not
  handle CMP0069 in their CMake scripts.
2024-12-13 18:30:16 +02:00
TheTurtle
cfbd869126 texture_cache: Improve support for stencil reads (#1758)
* texture_cache: Improve support for stencil reads

* libraries: Supress some spammy logs

* core: Support loading font libraries

* texture_cache: Remove assert
2024-12-13 18:28:19 +02:00
TheTurtle
8acefd25e7 hot-fix the hot-fix 2024-12-13 18:26:16 +02:00
TheTurtle
bab00dbca8 kernel: Fix module finding
Patch by Elbread
2024-12-13 18:23:01 +02:00
rainmakerv2
f587931ed3 Fix for adding game folders (#1761)
Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2024-12-13 09:52:54 +02:00
rainmakerv2
91d57e830b Fix lowercase filenames fox Linux (#1760)
Fix uppercase config filenames

Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2024-12-13 08:27:36 +02:00
TheTurtle
5be807fc8a hot-fix: Fix order of operands 2024-12-13 00:31:49 +02:00
rainmakerv2
3f1061de56 Resubmit - Prevent settings from being saved when close button is pressed instead of save (#1747)
* Do not save settings when close button pressed instead of save

* Update src/common/config.h

Co-authored-by: TheTurtle <geoster3d@gmail.com>

* Revert "Update src/common/config.h"

This reverts commit 125303ea86.

---------

Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
Co-authored-by: TheTurtle <geoster3d@gmail.com>
2024-12-12 22:46:31 +02:00
georgemoralis
2a19d915e8 fix for detecting more that 2 players and play both with player 1 keys (#1750) 2024-12-12 22:46:20 +02:00
Diego Cea López
1e3d034f96 Fix HLE buffer copy not executed when there's only 1 copy. (#1754) 2024-12-12 22:45:56 +02:00
squidbus
ec8e5d5ef1 renderer_vulkan: Fix some color attachment indexing issues. (#1755) 2024-12-12 20:45:18 +02:00
Osyotr
7aa868562c video_core: add eR5G5B5A1UnormPack16 support to the detiler (#1741) 2024-12-12 15:45:59 +02:00
squidbus
3d1e332c6f renderer_vulkan: Disable culling for RectList. (#1749) 2024-12-12 11:05:59 +02:00
squidbus
5789d1a5fb playgo: Lower scePlayGoGetLocus log to debug. (#1748) 2024-12-12 09:47:07 +02:00
TheTurtle
7f4265834a hot-fix: Fix race in rwlock
Resetting the owner should be before the lock is unlocked, otherwise a waiter might lock and set a new owner before its reset.
2024-12-12 03:33:49 +02:00
squidbus
714605c6a7 renderer_vulkan: Require exact image format for resolve pass. (#1742) 2024-12-11 21:51:39 +01:00
TheTurtle
0a9c437ec8 hot-fix: Enforce minimum stack size of 64KB
Fixes some crashes in BB from unity pt 1
2024-12-11 21:17:55 +02:00
Daniel R.
b82993c568 core/kernel: implement condvar signalto 2024-12-11 20:12:35 +01:00
slick-daddy
0211b7e38e Minor Translation Fixes (#1691)
* Update tr_TR.ts

Minor translation fixes. Mainly contains capitalization and small changes.

* Update tr_TR.ts
2024-12-11 21:11:34 +02:00
squidbus
14f7dc3527 cache: Invalidate pages for file reads. (#1726)
* cache: Invalidate pages for file reads.

* texture_cache: Simplify invalidate intersection check.

* vk_rasterizer: Make aware of mapped memory ranges.

* buffer_cache: Remove redundant page calculations.

Called functions will convert to page numbers/addresses themselves.

* file_system: Simplify memory invalidation and add a few missed cases.
2024-12-11 21:11:24 +02:00
squidbus
e612e881ac renderer_vulkan: Bind null color attachments when target is masked out. (#1740)
* renderer_vulkan: Bind null color attachments when target is masked out.

* Simplify setting null color attachment
2024-12-11 21:10:40 +02:00
¥IGA
8db1beaec6 Displays FPS before frame latency (#1736) 2024-12-11 19:44:18 +01:00
Daniel R.
2a953391ef liverpool: implement Rewind and IndirectBuffer packets 2024-12-11 19:40:45 +01:00
¥IGA
51bf98a7b5 Fix for R4G4B4A4UnormPack16 Tiled image (#1738) 2024-12-11 16:07:33 +02:00
rainmakerv2
14c2be8c67 Add default value for Separate Update Folder (#1735)
Co-authored-by: rainmakerv2 <30595646+jpau02@users.noreply.github.com>
2024-12-11 14:57:11 +02:00
¥IGA
e36c4d5f75 Displays "Never Played" if the game has never been played (#1697)
* Displays "Never Played" if the game has never been played

* Update nb.ts + pt_BR.ts
2024-12-10 22:16:16 +02:00
Martin
b8a443c728 Fix compiling due to typedefs varying across platforms (#1729)
* Fix compiling on modern C++ compilers

cd9fc5d0e9 broke it

* Fix order

* Test

* Test putting flags in old order

* Remove designated initializer
2024-12-10 22:15:43 +02:00
DanielSvoboda
ea8ad35947 Fix delete cheats button (#1731) 2024-12-10 18:57:30 +02:00
DanielSvoboda
00543fe640 Remove game from list after deletion (#1730) 2024-12-10 15:40:54 +02:00
squidbus
e5e1aba241 renderer_vulkan: Introduce shader HLE system with copy shader implementation. (#1683)
* renderer_vulkan: Introduce shader HLE system with copy shader implementation.

Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>

* buffer_cache: Handle obtaining buffer views partially within buffers.

* vk_shader_hle: Make more efficient

---------

Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>
2024-12-10 14:44:08 +02:00
squidbus
41fd1c84cf semaphore: Use handles to properly handle semaphore double-delete. (#1728) 2024-12-10 14:43:32 +02:00
squidbus
bf41ab6c40 memory: Handle 0 alignment in MemoryManager::Allocate (#1692) 2024-12-10 13:13:34 +02:00
DanielSvoboda
aa5293e3ad Delete Patches Button (#1722) 2024-12-10 13:12:58 +02:00
squidbus
cd9fc5d0e9 thread: Apply alternate signal stack to created threads. (#1724) 2024-12-10 13:08:53 +02:00
Vinicius Rangel
f1b23c616e Devtools - Shader editing (#1705)
* devtools: shader editing and compiling

* devtools: patch shader at runtime

* devtools: shader editing load patch even with config disabled
2024-12-09 21:11:11 +01:00
Martin
f623613d12 Update nb translations (#1712)
* update nb_NO.ts

* small grammar changes

* revert to nb.ts
2024-12-09 18:53:25 +02:00
DanielSvoboda
07f451650f Help - improvement (#1522)
* Help - improvement

* Adding shadow below icons

* Adding keys icon + Update changelog

* color according to the selected theme

* submenu 'Keys and Shortcuts'

* clang

* +

* remove keys_shortcuts

---------

Co-authored-by: ¥IGA <164882787+Xphalnos@users.noreply.github.com>
2024-12-09 18:47:26 +02:00
squidbus
0b59ebb22f shader_recompiler: Implement S_ABS_I32 (#1713) 2024-12-09 12:12:33 +01:00
squidbus
f347d3df18 image_view: Correct view format for D16Unorm images as well. (#1708) 2024-12-08 21:53:29 +01:00
Stephen Miller
f938829f12 Implement sceGnmDingDongForWorkload (#1707)
Seen in Final Fantasy XV.
2024-12-08 22:04:33 +02:00
Daniel R.
fea2593ab4 The way to Unity, pt.3 (#1681) 2024-12-08 18:30:33 +02:00
Daniel R.
1793fd4df0 format 2024-12-08 16:05:36 +01:00
Daniel R.
a88850fec6 video_core/amdgpu: fix calculation of lod range 2024-12-08 16:02:38 +01:00
Daniel R.
0b672a08ac video_core: improve image cube heuristic 2024-12-08 15:57:51 +01:00
¥IGA
4fb2247196 Better title bar for Cheats/Patches menu (#1696) 2024-12-08 10:20:24 +02:00
squidbus
71a82199ed shader_recompiler: Fix check for fragment depth store. (#1694) 2024-12-08 10:20:05 +02:00
squidbus
7d546f32d8 image_view: Add more BGRA storage format swizzles. (#1693) 2024-12-08 10:19:39 +02:00
auser1337
1940ac0fec ajm: support for multiple contexts (#1690)
* ajm: support for multiple contexts

* fix sceAjmInitialize
2024-12-08 10:18:12 +02:00
Ada Ahmed
dad5953e8c fix: fix #1457 again by moving av_err2str to a common header (#1688) 2024-12-08 00:52:03 +02:00
TheTurtle
8ee672fe32 hot-fix: Allow unpriviledged userfaultfd 2024-12-08 00:10:20 +02:00
IndecisiveTurtle
cde84e4bac shader_recompiler: Fix mistake 2024-12-07 23:45:23 +02:00
psucien
119e03cb58 hot-fix: fix for incorrect asc qid 2024-12-07 22:28:31 +01:00
squidbus
c076ba69e8 shader_recompiler: Implement V_LSHL_B64 for immediate arguments. (#1674) 2024-12-07 23:28:17 +02:00
¥IGA
57e762468f Fix + documentation update (#1689) 2024-12-07 23:27:57 +02:00
¥IGA
2266622dcf Support for Vulkan 1.4 (#1665) 2024-12-07 19:41:41 +02:00
psucien
941a668f78 hot-fix: obtain cmdbuf for dispatches after cache ops
This fixes cmdbuf being in incorrect state after scheduler rotation on flush
2024-12-07 10:30:36 +01:00
Daniel R.
9524f94749 hotfix: add missing include 2024-12-07 10:07:14 +01:00
Daniel R.
6f543b5bd9 hotfix: enable discord RPC 2024-12-07 09:48:12 +01:00
Vladislav Mikhalin
8eacb88a86 recompiler: fixed fragment shader built-in attribute access (#1676)
* recompiler: fixed fragment shader built-in attribute access

* handle en/addr separately

* handle other registers as well
2024-12-07 01:20:09 +02:00
squidbus
e1ecfb8dd1 semaphore: Add GCD semaphore implementation. (#1677) 2024-12-06 23:46:44 +02:00
Daniel R.
7ffa581d4b The way to Unity, pt.2 (#1671) 2024-12-06 22:04:36 +01:00
IndecisiveTurtle
357b7829c3 hot-fix: Silence depth macrotiled warning 2024-12-06 21:50:25 +02:00
IndecisiveTurtle
6acfdd5e33 buffer_cache: Bump usable address space to 40bits
* Fixes crashes in games that use the upper region of user area
2024-12-06 20:00:21 +02:00
TheTurtle
9e618c0e0c video_core: Add multipler to handle special cases of texture buffer stride mismatch (#1640)
* page_manager: Enable userfaultfd by default

* Much faster than page faults and causes less problems

* shader_recompiler: Add texel buffer multiplier

* Fixes format mismatch assert when vsharp stride is multiple of format stride

* shader_recompiler: Specialize UBOs on size

* Some games can perform manual vertex pulling and thus bind read only buffers of varying size. We only recompile when the vsharp size is larger than size in shader, in opposite case its not needed

* clang format
2024-12-06 19:54:59 +02:00
squidbus
d05846a327 specialization: Fix fetch shader field type (#1675) 2024-12-06 12:59:55 +02:00
squidbus
17abbcd74d misc: Fix clang format (#1673) 2024-12-06 02:21:35 +02:00
IndecisiveTurtle
77da8bac00 core: Return proper address of eh frame/add more opcodes 2024-12-06 00:47:11 +02:00
TheTurtle
22a2741ea0 shader_recompilers: Improvements to SSA phi generation and lane instruction elimination (#1667)
* shader_recompiler: Add use tracking for Insts

* ssa_rewrite: Recursively remove phis

* ssa_rewrite: Correct recursive trivial phi elimination

* ir: Improve read lane folding pass

* control_flow: Avoid adding unnecessary divergant blocks

* clang format

* externals: Update ext-boost

---------

Co-authored-by: Frodo Baggins <baggins31084@proton.me>
2024-12-05 23:14:16 +02:00
Alexandre Bouvier
874508f8c2 cmake: unbundle stb (#1601) 2024-12-05 23:10:27 +02:00
Marcin Mikołajczyk
642dedea8c Handle INDIRECT_BUFFER_CONST in ProcessCeUpdate (#1613) 2024-12-05 23:09:59 +02:00
Richard Habitzreuter
7fbe15de28 Missing dependency on building-windows.md (#1658)
* Missing dependency on building-windows.md

* Update building-windows.md
2024-12-05 23:09:43 +02:00
psucien
37f4bad2b7 video_core: fix for targets clears and copies (#1670) 2024-12-05 23:09:22 +02:00
Daniel R.
15ae7a094d hotfix: fix inverted operator on GetDents 2024-12-05 18:45:55 +01:00
Daniel R.
98f0cb65d7 The way to Unity, pt.1 (#1659) 2024-12-05 17:21:35 +01:00
Vinicius Rangel
2380f2f9c9 Virtual device abstraction (#1577)
* IOFile: removes seek limit checks when file is writable

* add virtual devices scaffold

* add stdin/out/err as virtual devices

* fixed some merging issues

* clang-fix

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-12-05 18:00:17 +02:00
squidbus
c019b54fec thread: Configure stack and guard on POSIX hosts. (#1664) 2024-12-04 20:21:03 +02:00
squidbus
920acb8d8b renderer_vulkan: Parse fetch shader per-pipeline (#1656)
* shader_recompiler: Read image format info directly from sharps instead of storing in shader info.

* renderer_vulkan: Parse fetch shader per-pipeline

* Few minor fixes.

* shader_recompiler: Specialize on vertex attribute number types.

* shader_recompiler: Move GetDrawOffsets to fetch shader
2024-12-04 13:03:47 +02:00
squidbus
74b091fd08 renderer_vulkan: Add support for indexed QuadList draw. (#1661) 2024-12-04 10:15:58 +01:00
TheTurtle
6bf93071cf hot-fix: Correct getpagesize
Tested on my PS4 pro, returns 16KB instead of 4KB
2024-12-03 14:15:08 +02:00
georgemoralis
c66db95378 Misc Ime fixes continue (#1655)
* core/libraries: Misc. Ime fixes

* fixed issues

---------

Co-authored-by: Daniel R <47796739+polybiusproxy@users.noreply.github.com>
2024-12-03 10:05:51 +02:00
psucien
f0b75289c8 video_core: few detiler formats added 2024-12-02 22:24:54 +01:00
TheTurtle
eb844b9b63 shader_recompiler: Implement manual barycentric interpolation path (#1644)
* shader_recompiler: Implement manual barycentric interpolation path

* clang format

* emit_spirv: Fix typo

* emit_spirv: Simplify variable definition

* spirv_emit: clang format
2024-12-02 23:20:54 +02:00
squidbus
fda4f06518 devtools: More warning fixes (#1652) 2024-12-02 20:46:51 +01:00
Alexandre Bouvier
3dc0f6d831 cmake: fix build (#1645) 2024-12-02 05:04:44 +02:00
Vinicius Rangel
0835dc71b3 More devtools stuff (#1637)
* devtools: memory map viewer

* devtools: batch highlight only for non-group viewer

* devtools: fix not showing entire user data

* devtools: shader debug viewer

* devtools: add more reg naming
2024-12-01 19:34:29 +01:00
psucien
f658fc58d1 Merge pull request #1630 from vladmikhalin/fix-missing-rts
Fixed incorrectly skipped RTs
2024-12-01 16:47:25 +01:00
psucien
4a5850628e hot-fix: debug build fixed 2024-12-01 15:46:08 +01:00
squidbus
b00a321b5e playgo: Fix loading PlayGo file. (#1639) 2024-12-01 14:12:04 +02:00
squidbus
394a14626b libraries: Add stubs for libScePlayGoDialog (#1635) 2024-12-01 13:44:15 +02:00
Alexandre Bouvier
4ebb90c774 cmake: hot fixes (#1638) 2024-12-01 11:16:01 +02:00
Alexandre Bouvier
5f4d03172f cmake: unbundle libpng (#1576) 2024-11-30 22:39:51 +02:00
Jamie Tong
b0860d6e8c implement DS_AND_B32, DS_OR_B32, DS_XOR_B32 (#1593)
* implement DS_OR_B32

* implement DS_AND_B32, DS_XOR_B32
2024-11-30 22:39:11 +02:00
TheTurtle
5b6e0ab238 core: Library cleanup (#1631)
* core: Split error codes into separate files

* Reduces build times and is cleaner

* core: Bring structs and enums to codebase style

* core: More style changes
2024-11-30 22:37:36 +02:00
squidbus
3d0aacd43d ci: Limit build parallelism to number of processors. (#1632) 2024-11-30 22:24:32 +02:00
squidbus
7153838c4e libraries: Add initial HLE JPEG encoder skeleton (#1607)
* libraries: Add initial HLE JPEG encoder skeleton

* jpegenc: Finish adding parameter validation.

* updated enums , added logging

* jpegenc: Clean up parameter validations.

* jpegenc: Fix missing log.

* externals: Update ffmpeg-core

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-11-30 21:43:12 +02:00
Vinicius Rangel
2002e37ce9 Allow shader patching (#1633) 2024-11-30 20:15:55 +01:00
squidbus
07f4a0305b semaphore: Use condvars with separate signaled flag to prevent races (#1615)
* Revert "semaphore: Use binary_semaphore instead of condvar"

This reverts commit 85dc57b868.

* semaphore: Use separate signaled flag to prevent races

* mutex: Few misc fixes

* condvar: Few misc fixes

* signals: Add thread name to unhandled signal message.
2024-11-30 19:19:07 +02:00
Vladislav Mikhalin
c0d43a1a5f Fixed incorrectly skipped RTs 2024-11-30 17:05:08 +03:00
squidbus
36044043bc config: Fix loading install directories. (#1626) 2024-11-30 11:08:34 +01:00
squidbus
99ac10a417 libraries: Add libSceRazorCpu HLE skeleton. (#1624)
* Remove save migration code (#1621)

* Kernel Fixes (#1605)

* scePthreadSetprio Changes

FindThread uses posix error codes, so the function export should apply the ORBIS wrapper to convert these. Since it uses posix codes, I've also renamed the function to align with other posix functions. Lastly, this fixes a compile warning about ret sometimes not getting initialized.

* Implement posix_munmap

Used by Hatsune Miku Project Diva X during intros. May help with stability on Linux, probably won't change anything on Windows.

* Exports

Some missing function exports I've seen in my tests.
sceKernelAvailableFlexibleMemorySize export is used in Final Fantasy XV Episode Duscae
posix_pthread_setprio and posix_pthread_getschedparam are used by Spider-Man Miles Morales
scePthreadKeyDelete is used in UE4 games.

I've also added in a typo fix related to my previous PR.

* libScePosix export for posix_pthread_attr_setguardsize

Used in Hatsune Miku Project Diva X v1.02

* libraries: Add libSceRazorCpu HLE skeleton.

---------

Co-authored-by: ¥IGA <164882787+Xphalnos@users.noreply.github.com>
Co-authored-by: Stephen Miller <56742918+StevenMiller123@users.noreply.github.com>
2024-11-30 11:30:22 +02:00
georgemoralis
7bf168e47f Revert "Remove save migration code (#1621)"
This reverts commit b1a024efbd.
2024-11-30 11:28:46 +02:00
Stephen Miller
7e525a59e4 Kernel Fixes (#1605)
* scePthreadSetprio Changes

FindThread uses posix error codes, so the function export should apply the ORBIS wrapper to convert these. Since it uses posix codes, I've also renamed the function to align with other posix functions. Lastly, this fixes a compile warning about ret sometimes not getting initialized.

* Implement posix_munmap

Used by Hatsune Miku Project Diva X during intros. May help with stability on Linux, probably won't change anything on Windows.

* Exports

Some missing function exports I've seen in my tests.
sceKernelAvailableFlexibleMemorySize export is used in Final Fantasy XV Episode Duscae
posix_pthread_setprio and posix_pthread_getschedparam are used by Spider-Man Miles Morales
scePthreadKeyDelete is used in UE4 games.

I've also added in a typo fix related to my previous PR.

* libScePosix export for posix_pthread_attr_setguardsize

Used in Hatsune Miku Project Diva X v1.02
2024-11-30 11:23:48 +02:00
¥IGA
b1a024efbd Remove save migration code (#1621) 2024-11-30 11:23:42 +02:00
squidbus
7b68004a40 sysmodule: Remove need for libSceRazorCpu (#1622) 2024-11-30 10:08:46 +02:00
squidbus
6c215e672d Revert "core: fix patch paths applying when no folder exists" (#1620)
This reverts commit 9f6261524b.
2024-11-29 22:57:56 +02:00
Vladislav Mikhalin
086c5802f4 Fixed DS_SWIZZLE_32 (#1619) 2024-11-29 22:13:36 +02:00
Daniel R.
9f6261524b core: fix patch paths applying when no folder exists 2024-11-29 20:02:45 +01:00
psucien
d6d1ec4f22 hot-fix: apply vgt index offset to draw commands 2024-11-29 14:17:53 +01:00
squidbus
57a3c0132d semaphore: Fix returned iterator from AddWaiter (#1614) 2024-11-29 01:42:39 +02:00
Marcin Mikołajczyk
bd3371bdfb implement sceKernelPreadv (#1611) 2024-11-28 22:26:44 +02:00
Marcin Mikołajczyk
286a288bfd Fix GetDents truncating the last character of filenames (#1610) 2024-11-28 22:25:37 +02:00
squidbus
471ebdb4f0 libc_internal: Implement more functions. (#1606) 2024-11-27 11:50:57 +02:00
Vladislav Mikhalin
18a36c5daa Fixed false-positive image reuploads (#1557)
* Fixed false-positive image reuploads

* Fixed userfaultfd path, removed dead code, simplified calculations

* oopsie

* track potentially dirty images and hash them

* untrack only first page of the image in case of head access

* rebase, initialize hash, fix bounds check

* include image tail in the calculations
2024-11-26 22:45:15 +02:00
¥IGA
3f1be5a4ce Adding Utils Icon (#1600) 2024-11-26 08:48:14 +02:00
psucien
cd4f48cb8d Revert "hot-fix: downgrade Nx1 2D render targets to 1D" due to regression
This reverts commit cea6d87472.
2024-11-25 22:14:53 +01:00
psucien
cea6d87472 hot-fix: downgrade Nx1 2D render targets to 1D 2024-11-25 20:52:09 +01:00
DanielSvoboda
2226175d9b Fix Shortcut (#1586) 2024-11-25 14:26:56 +02:00
¥IGA
ff18b89e66 Fix Game List Mode (#1591) 2024-11-25 14:26:40 +02:00
F1219R
20b4cd2a32 Update sq translation (#1595) 2024-11-25 14:26:12 +02:00
psucien
001b94e802 hot-fix: skip indirect draw for quad lists
* needs to be fixed properly with indirect args re-packing
2024-11-24 18:33:38 +01:00
squidbus
23bb5f09fd devtools: Fix a few compiler warnings. (#1575) 2024-11-24 18:47:19 +02:00
kalaposfos13
82bd780a6b Fix --help text in cli (#1588) 2024-11-24 18:45:17 +02:00
psucien
3d95ad0e3a Image binding and texture cache interface refactor (1/2) (#1481)
* video_core: texture_cache: interface refactor and better overlap handling

* resources binding moved into vk_rasterizer

* remove `virtual` flag leftover
2024-11-24 17:07:51 +01:00
psucien
16e1d679dc video_core: clean-up of indirect draws logic (#1589) 2024-11-24 15:43:28 +01:00
baggins183
fde1726af5 recompiler: fix how srt pass handles step rate sharps in special case (#1587) 2024-11-24 11:49:59 +01:00
psucien
add6eeeb8a update: Tracy 0.11.1 2024-11-24 11:37:14 +01:00
psucien
d7d28aa8da video_core: restored presenter aspect calculations (#1583)
* video_core: restored presenter aspect calculations

* code simplification
2024-11-23 11:46:31 +01:00
psucien
5976300788 hot-fix: proper offset calculation for single offset lds instructions 2024-11-23 10:14:19 +01:00
Daniel R.
df8284c5f8 Fix splashes using the wrong image
Supposedly, only pic1.png is used for the splash
2024-11-22 21:20:47 +01:00
squidbus
15d6b095f7 savedatadialog_ui: Use fmt::localtime instead of formatting std::chrono::local_time (#1574) 2024-11-22 18:29:41 +02:00
squidbus
c71385ec90 misc: Add JetBrains build directories to gitignore. (#1573) 2024-11-22 17:36:31 +02:00
georgemoralis
9ed07f6f6e @Roamic's hot region fix (#1570) 2024-11-22 14:53:16 +02:00
georgemoralis
8c9d7d1a08 Port libpngdec to libpng (#1555)
* intial try to include libpng

* fixing libpng cmake

* cleanup structs and error codes

* building libpng , destroying pkg ;/

* fixed pkg with zlib_comp mode

* attemp to fix ci

* rewrote png encoder with libpng

* small corrections

* clang fix

* clang-fix?

* take alpha value from decode parameters

* more cleanup

* fix stride calculation

* libpng: avoid unnecessary allocation in decoding

* libpng: interlaced support

* libpng: lowered log level

* revert wrong merge

---------

Co-authored-by: Vinicius Rangel <me@viniciusrangel.dev>
2024-11-22 12:42:53 +02:00
kalaposfos13
8f2d71d458 Skip GUI if launching a game directly (#1507)
* Skip GUI if launching a game directly

* Rerun jobs 2

* Added --show-gui, --help, open game by ID and more

* Clang-format

* Added non-GUI related upgrades to SDL version

* clang-format

* Added --fullscreen <true|false> argument

* Update --help text
2024-11-22 07:55:55 +02:00
psucien
f9ae945a55 hot-fix: clang-format 2024-11-21 22:23:09 +01:00
TheTurtle
c4506da0ae kernel: Rewrite pthread emulation (#1440)
* libkernel: Cleanup some function places

* kernel: Refactor thread functions

* kernel: It builds

* kernel: Fix a bunch of bugs, kernel thread heap

* kernel: File cleanup pt1

* File cleanup pt2

* File cleanup pt3

* File cleanup pt4

* kernel: Add missing funcs

* kernel: Add basic exceptions for linux

* gnmdriver: Add workload functions

* kernel: Fix new pthreads code on macOS. (#1441)

* kernel: Downgrade edeadlk to log

* gnmdriver: Add sceGnmSubmitCommandBuffersForWorkload

* exception: Add context register population for macOS. (#1444)

* kernel: Pthread rewrite touchups for Windows

* kernel: Multiplatform thread implementation

* mutex: Remove spamming log

* pthread_spec: Make assert into a log

* pthread_spec: Zero initialize array

* Attempt to fix non-Windows builds

* hotfix: change incorrect NID for scePthreadAttrSetaffinity

* scePthreadAttrSetaffinity implementation

* Attempt to fix Linux

* windows: Address a bunch of address space problems

* address_space: Fix unmap of region surrounded by placeholders

* libs: Reduce logging

* pthread: Implement condvar with waitable atomics and sleepqueue

* sleepq: Separate and make faster

* time: Remove delay execution

* Causes high cpu usage in Tohou Luna Nights

* kernel: Cleanup files again

* pthread: Add missing include

* semaphore: Use binary_semaphore instead of condvar

* Seems more reliable

* libraries/sysmodule: log module on `sceSysmoduleIsLoaded`

* libraries/kernel: implement `scePthreadSetPrio`

---------

Co-authored-by: squidbus <175574877+squidbus@users.noreply.github.com>
Co-authored-by: Daniel R. <47796739+polybiusproxy@users.noreply.github.com>
2024-11-21 22:59:38 +02:00
Daniel R.
6904764aab shader_recompiler/frontend: implement V_MIN3_U32 2024-11-21 19:52:48 +01:00
Daniel R.
e968b1c23f video_core/amdgpu: heuristic for shader binary info
Games can strip the first shader instruction (meant for debugging) which we rely on for obtaining shader information (e.g. LittleBigPlanet 3). For this reason, we start a search through the code start until we arrive at the shader binary info.
2024-11-21 19:24:13 +01:00
Marat Idrisov
2a0629477b [MacOS] Enable game mode when switching to full screen mode (#1541)
* GH-1515: enable game mode when switching to full screen mode

* GH-1515: minor fix

* GH-1515: add MacOSBundleInfo.plist.in to REUSE.toml
2024-11-21 19:02:30 +02:00
Florian Piesche
5054827441 Don't use github as a CDN for Discord RPC icon (#1496)
[jsdelivr](https://www.jsdelivr.com/?docs=gh) is a free CDN for opensource projects that offers mirroring and CDN services for files on GitHub with just a minor URL change, backed by a number of major organizations in the CDN industry.
2024-11-21 12:09:10 +02:00
psucien
c55d7fbb6a Proper MSAA surfaces support (#1560) 2024-11-21 12:08:52 +02:00
¥IGA
c83ac654ce Bump to Clang 18 (#1549) 2024-11-21 12:08:22 +02:00
psucien
3d04765a3f Respect game brightness settings (#1559)
* `RendererVulkan` -> `Presenter`

* support for Video Out gamma setting

* sRGB hack removed

* added post process pass to presenter

* splash functionality restored
2024-11-21 12:06:53 +02:00
psucien
e98fab4b58 hot-fix: correct M-tiled surface size calculation when mip is less than a tile 2024-11-21 00:04:46 +01:00
squidbus
e585330744 image_view: Use array view for color/depth buffers with multiple layers. (#1556) 2024-11-20 20:24:30 +02:00
Vinicius Rangel
b41664ac61 savedata: fix dir name search with wildcard (#1552)
* savedata: fix dir name search with wildcard

* psf: replace filesystem clock by system clock (utc)

* savedatadialog_ui: macOS zoned_time formatting

Signed-off-by: Vinicius Rangel <me@viniciusrangel.dev>

---------

Signed-off-by: Vinicius Rangel <me@viniciusrangel.dev>
Co-authored-by: squidbus <175574877+squidbus@users.noreply.github.com>
2024-11-20 18:31:44 +02:00
Ruah Devlin
96cd79f272 Implement V_MED3_U32 vector ALU Opcode (#1553) 2024-11-20 17:23:59 +01:00
korenkonder
da00235eaf Don't read uninitialized memory in sceSystemServiceReceiveEvent (#1554) 2024-11-20 17:22:30 +01:00
Alexander Y.
9f42a12baf Fix build when -DENABLE_DISCORD_RPC=OFF (#1551)
* added ifdef for discordrpc

* replaced discordrpc include correctly
2024-11-20 08:41:35 +02:00
Daniel R.
17c47bcd96 shader_recompiler/frontend: Implement bitcmp instructions (#1550) 2024-11-19 21:38:32 +01:00
Vladislav Mikhalin
c45af9a2ca Fix border color (#1548) 2024-11-19 18:55:05 +02:00
psucien
8fbd9187f8 libraries: gnmdriver: few more functions implemented (#1544) 2024-11-18 11:23:21 +02:00
Vladislav Mikhalin
e1fecda74f Fix depth bias (#1538) 2024-11-16 19:17:43 +02:00
Stephen Miller
ce158290fb Minor Kernel Fixes (#1529)
* Skip destruction of adaptive mutex initializers

Based around similar behaviors implemented in the more-kernel branch. Hatsune Miku Project Diva X needs this.

* Fix posix_lseek result overflow

Seen when testing Spider-Man Miles Morales on more-kernel.

* Add posix_fsync

Used by Spider-Man Miles Morales. I've added the normal posix error handling to this function, though I'm aware sceKernelFsync doesn't return any errors currently. This is for future proofing and accuracy, as the actual libkernel does the usual error handling too.

* Properly handle VirtualQuery calls on PoolReserved memory.

* Export posix_getpagesize under libkernel

Bloons TD 5 needs this.

* Clang
2024-11-14 18:00:57 +02:00
Osyotr
7be35c3997 Save config in UTF-8 (#1524) 2024-11-14 12:01:33 +02:00
Vladislav Mikhalin
bf239ebc04 ajm: handle single-frame decode jobs (+mp3 imrovements) (#1520)
* ajm: handle single-frame decode jobs (+mp3 imrovements)

* disable breaking the loop in multi-frame if storage is insufficient

* simplified gapless decoding
2024-11-14 12:01:20 +02:00
Martin
8e281575b5 Update Norwegian Bokmål translations (#1525)
* specify nb_NO

* Update Norwegian Bokmål translation

* change patch wording nb_NO
2024-11-14 12:00:59 +02:00
Florian Piesche
6ae92c0aac Add FreeDesktop metadata (#1495) 2024-11-14 10:56:14 +02:00
squidbus
0c52d02043 videodec: Lower sceVideodecDecode log to trace. (#1527) 2024-11-13 18:04:13 +01:00
Florian Piesche
85f45d2788 Add scalable vector redraw of shadps4 icon (#1501)
* Add scalable vector redraw of shadps4 icon

* Update icon name in desktop file

* Fix svg
2024-11-12 09:32:56 +02:00
kalaposfos13
8a15d68a8d Update Hungarian translation (#1518) 2024-11-12 09:31:56 +02:00
squidbus
f5618e0342 imgui: Dispatch SDL text input requests to main thread on macOS. (#1519) 2024-11-12 09:27:30 +02:00
Lander Gallastegi
b64dcd2f56 Assert fix (#1521) 2024-11-12 09:26:48 +02:00
georgemoralis
7ab851592b Videocodec implementation (#1484)
* dummy videocodec

* filled videodec parameters

* vdec1 implementation

* clang format fix

* fixed codecType

* added crop offset info

* align output

* align all h/w

* some touchups

* small touch (last one)
2024-11-10 11:33:08 +02:00
DanielSvoboda
4fd7f67459 Open Folder - improvement (Save/Log) (#1513)
* Open Folder - improvement

* TR
2024-11-10 10:14:48 +02:00
squidbus
f7b458c85a ci: Change to macOS 15 (#1508) 2024-11-10 00:20:54 +02:00
Vladislav Mikhalin
75d2181489 ajm mp3: fix resampling (#1500) 2024-11-08 07:45:03 +02:00
squidbus
176d222519 vk_pipeline_cache: Skip pipelines with geometry shaders when unsupported. (#1486) 2024-11-07 14:57:31 +02:00
Quang Ngô
ed0a9c0e4e Fix emulator name in desktop entry for appimages (#1491) 2024-11-07 14:56:24 +02:00
Quang Ngô
a547b2774f Allow disable the auto updater (#1490) 2024-11-07 14:56:02 +02:00
Quang Ngô
f45cad6bc9 Fix patches not save changes properly (#1493)
Don't use ```QCheckBox::text()``` because it may return strings that contain "&" cause patch name comparison to fail.
2024-11-06 22:44:22 +02:00
Vladislav Mikhalin
46ac48c311 AJM: Added some missing features (#1489)
* AJM: Added support for different PCM formats

* updated libatrac9 ref

* remove log

* Add support for non-interleaved flag

* Added support for output sideband format query
2024-11-06 22:39:43 +02:00
georgemoralis
f98b9f7726 hot-fix : removed libSceRudp.srpx from lle modules since it appears it create more issues than solves 2024-11-06 07:20:58 +02:00
psucien
204bba9be8 hot-fix: pr merge conflict resolved 2024-11-05 22:59:45 +01:00
Lander Gallastegi
aa4c6c0178 shader_recompiler: patch fmask access instructions (#1439)
* Fix multisample texture fetch

* Patch some fmask reads

* clang-format

* Assert insteed of ignore, coordinate fixes

* Patch ImageQueryDimensions
2024-11-05 22:39:57 +01:00
SAN4EZDREAMS
fe389e560a Added uk_UA language support (#1483)
* Add Ukrainian localization

* Fixed langIndexes

* Fixed langIndexes_2

* Added uk_UA language support

* Added uk_UA language support
2024-11-05 10:46:12 +02:00
georgemoralis
f068f13e4a Ajm (#1456)
* ajm: Initial ajm implementation

* AJM code improvements (#1453)

* Fix sideband buffer order (#1454)

* ajm: Attempt to add gapless support

* ajm_at9: Return superframes decoded in a single job

* WIP (#1460)

* Fix gapless decode and combine split buffers

* Fixed linux build

* fix number of samples reported with gapless decoding

* fixed number of remaining samples calculation

should fix the small crackling sounds that play every now and again

* refactor half ajm

* refactored most of ajm

* refactored ajm

* clang-format, in-repo libatrac9, removed debug stuff

---------

Co-authored-by: auser1337 <aaravsandhu10@outlook.com>
Co-authored-by: Vladislav Mikhalin <mikhalinvlad@gmail.com>
Co-authored-by: IndecisiveTurtle <geoster3d@gmail.com>
2024-11-05 09:16:57 +02:00
squidbus
76f440889b qt: Error if installing DLC without game. (#1476) 2024-11-03 01:06:55 +02:00
Daniel R.
29183354cc libraries/videodec: Fix build errors with av_err2str 2024-11-02 19:11:57 +01:00
squidbus
0b015daff7 netctl: Add null check for gethostbyname output. (#1468) 2024-11-01 14:29:24 +02:00
baggins183
9ec75c3feb Implement shader resource tables (#1165)
* Implement shader resource tables

* fix after rebase + squash

* address some review comments

* fix pipeline_common

* cleanup debug stuff

* switch to using single codegenerator
2024-11-01 08:55:53 +02:00
DanielSvoboda
7b16085c59 Fix update loop between release (#1465) 2024-10-31 20:59:14 +02:00
Daniel R.
b7fe08519f core/gnmdriver: Proper interrupt registering (#1218) 2024-10-31 17:53:03 +02:00
georgemoralis
72440a4996 starting 0.4.1 2024-10-31 17:35:39 +02:00
georgemoralis
67dfc7916c hotfix : check if dir exists 2024-10-31 17:05:44 +02:00
georgemoralis
8d15388aeb marked 0.4.0 release 2024-10-31 16:58:57 +02:00
georgemoralis
cdae6a4ce5 Loading font libs from title id folder (#1448) 2024-10-31 16:08:34 +02:00
squidbus
4da21a016e path_util: Make sure macOS has current directory set and clean up path code. (#1463) 2024-10-31 12:36:51 +02:00
Daniel R.
8b139ff5fa clang-format 2024-10-30 14:46:22 +01:00
Daniel R.
1620481331 vk_compute_pipeline: Add missing meta check 2024-10-30 14:03:53 +01:00
voltamass
7794fc3ce7 Italian localization updated (#1449)
* Update it.ts

Translated some of the missing sentences

* Update it.ts
2024-10-27 22:31:33 +02:00
DanielSvoboda
97bb22998b Publish to Release Repository (#1452)
Stores the builds in 3 repositories, one for each operating system:
shadps4-binaries-Windows
shadps4-binaries-Linux
shadps4-binaries-Mac 

This makes it possible to download previous builds, it will be used on the website as planned by shadown
2024-10-27 22:08:25 +02:00
psucien
c59f6fd5c3 hot-fix: reduced log spam from get sdk version 2024-10-27 00:33:44 +02:00
Roll8ack
8b2c151f1f Update zh_CN.ts (#1445)
update zh_CN translation  and fixed some translation mistake.
2024-10-25 09:20:53 +03:00
Daniel R.
9d6eee6acf core/libraries: Videodec2 implementation (#1241) 2024-10-24 18:39:31 +02:00
psucien
a8d2684929 hot-fix: proper calculation of image samples num 2024-10-23 23:11:01 +02:00
Daniel R.
6e00121eb5 core/libraries: IME implementation (#1436)
* core/libraries: IME implementation

* Update ime_common.h

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-10-23 20:05:46 +03:00
kalaposfos13
406041b7ad FPS counter now appears at the top left corner every time (#1426) 2024-10-21 18:26:32 +03:00
RDN000
be1d11eb62 Update sq translation (#1424) 2024-10-21 13:17:53 +03:00
squidbus
7654a08d9a vulkan: Report only missing format feature flags. (#1420) 2024-10-21 13:17:39 +03:00
Lander Gallastegi
8e08756b6e Handle color control mode resolve (#1413) 2024-10-20 13:14:01 +03:00
squidbus
5a071f3137 liverpool_to_vk: Add more surface format mappings. (#1418) 2024-10-20 13:05:54 +03:00
Quang Ngô
e596e9350b ci: Fix controller detection on startup for Linux (#1410) 2024-10-20 11:02:24 +03:00
TheTurtle
0ecb6695de cmake: Allow disabling discord rpc (#1416) 2024-10-19 16:09:36 +03:00
Vladislav Mikhalin
c38e3f77f9 Add poll interval to libScePad (#1415) 2024-10-19 15:57:01 +03:00
TheTurtle
87f8fea4de renderer_vulkan: Commize and adjust buffer bindings (#1412)
* shader_recompiler: Implement finite cmp class

* shader_recompiler: Implement more opcodes

* renderer_vulkan: Commonize buffer binding

* liverpool: More dma data impl

* fix

* copy_shader: Handle additional instructions from Knack

* translator: Add V_CMPX_GE_I32
2024-10-19 15:30:58 +03:00
DanielSvoboda
47ba6c6344 Patch compatible version notice (#1407)
* Patch compatible version notice

* +
2024-10-18 18:56:31 +03:00
Quang Ngô
a13d1d1ab1 core/fs: fix file path (again) (#1408)
Third time's the charm.
2024-10-18 18:56:15 +03:00
Quang Ngô
24bce59f70 core/fs: fix file path on Windows (#1404)
Revert part of commit ddc35639a8.
2024-10-18 11:40:27 +03:00
Herman Semenoff
96ea686eb6 Fixed return strict const iterator, replace to range-based loop C++17 and code refactor (#548)
Signed-off-by: Herman Semenov <GermanAizek@yandex.ru>
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-10-18 11:06:11 +03:00
Alexandre Bouvier
9814a1b788 cmake: unbundle half library (#1393) 2024-10-18 07:52:57 +03:00
Quang Ngô
ddc35639a8 core/fs: fix file path when using separated update folder for *nix (#1403) 2024-10-18 07:51:51 +03:00
Yury
181b005636 New translations and fixes for ru_RU (#1402) 2024-10-18 07:51:22 +03:00
psucien
ac6b4a625d hot-fix: address check in mips overlap heuristic 2024-10-17 23:06:58 +02:00
ElBread3
88c37048ac Load Eboot/Modules from Separate Update Folder (#1397)
* load eboot from separate update folder

* clarify

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-10-17 11:49:29 +03:00
squidbus
aa958c4d19 build: Make sure pkg-config is configured correctly for macOS cross compile. (#1399) 2024-10-17 07:24:10 +03:00
psucien
b4ced58acc hot-fix: a fallback when overlap resolve fails 2024-10-16 23:46:20 +02:00
georgemoralis
f79b7f10ab Revert "Update CMakeLists.txt (#1396)"
This reverts commit 0f0d9740c2.
2024-10-16 19:51:16 +03:00
¥IGA
0f0d9740c2 Update CMakeLists.txt (#1396) 2024-10-16 19:34:17 +03:00
georgemoralis
70430313e3 hot fix: fixed sceNpGetOnlineId function 2024-10-16 19:19:10 +03:00
DanielSvoboda
b62d2f839d missing translations (#1395)
* missing translations

* clang
2024-10-16 19:05:35 +03:00
Vinicius Rangel
25de4d6b65 Devtools improvements I (#1392)
* devtools: fix showing entire depth instead of bits

* devtools: show button for stage instead of menu bar

- fix batch view dockspace not rendering when window collapsed

* devtools: removed useless "Batch" collapse & don't collapse last batch

* devtools: refactor DrawRow to templating

* devtools: reg popup size adjusted to the content

* devtools: better window names

* devtools: regview layout compacted

* devtools: option to show collapsed frame dump

keep most popups open when selection changes
best popup windows positioning

* devtools: show compute shader regs

* devtools: tips popup
2024-10-16 13:12:46 +03:00
Lander Gallastegi
877cda9b9a video_core: Rework clear values (#1381)
* Clear color convertion

* Add missing formats

* Add swap handling

* Format bits and offsets

* clang-format

* Make num_components const

* Initialize alpha to 1

* Handle SnormNz as Snorm

* Don0t leave accidental nonzero values

* parallel3 for linux-qt

* Move number_utils to common
2024-10-16 12:55:45 +03:00
Stephen Miller
170db22d9c Improve sceSystemServiceReceiveEvent stub (#992) 2024-10-15 21:55:03 +02:00
Vladislav Mikhalin
437ebc1e02 AvPlayer: Do not align w/h to 16 with vdec2 (#1388) 2024-10-15 22:31:11 +03:00
ElBread3
6fc7b3993d Minor Fixes for Separate Update Folder (#1387)
* description + string fixes

* fix use condition

* clang format

* updates now fully extract to game update folder

* don't guarantee the overwrite game condition
2024-10-15 22:29:27 +03:00
georgemoralis
08343faf01 hot fix : put linux-qt in parallel3 2024-10-15 20:10:49 +03:00
ElBread3
a588bc5da8 Separate Updates from Game Folder (#1026)
* separate updates implementation

* clang format

clang format

clang format

clang format

clang hates me

work please

* hotfix: check for sfo file instead of the folder

* tiny change

* refactor

* forgot to change this over

* add review changes

* use operator
2024-10-15 18:49:42 +03:00
DanielSvoboda
29ad2eca62 Fix translation InstallDirSelect (#1386) 2024-10-15 17:40:37 +03:00
RDN000
168ba8dbcd Fix sq.ts (#1383) 2024-10-15 14:35:19 +03:00
DanielSvoboda
7e27afb37d fix tr sq.ts (#1380)
* Update sq.ts

* InstallDirSelect
2024-10-15 09:30:10 +03:00
psucien
09725bd921 hot-fix: unexpected pass break on indirect args buffer obtaining 2024-10-14 22:33:06 +02:00
georgemoralis
a3df2448ec Small Np + trophy fixes (#1363)
* sceNpGetOnlineId returns sign out code

* return -1 if trophy xml not found . Fixes undertale
2024-10-14 15:11:21 +03:00
georgemoralis
9b54e82314 revert qt-issue
fixed linux-qt build
2024-10-14 15:00:55 +03:00
Quang Ngô
b965b094b7 test (#1371) 2024-10-14 14:34:52 +03:00
DanielSvoboda
bd9f82df94 fix descriptionText size | missing translations (#1319)
* fix descriptionText size

* +

avoid 'blinking'

* Update ru_RU.ts

* TR

* Update pt_BR.ts

* emulatorLanguage alphabetical order

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-10-13 15:49:39 +03:00
¥IGA
f0ee3919e0 improved documentation + better toolbar icons (#1364) 2024-10-13 15:03:19 +03:00
Vinicius Rangel
cf2e617f08 Devtools - Inspect regs/User data/Shader disassembly (#1358)
* devtools: pm4 - show markers

* SaveDataDialogLib: fix compile with mingw

* devtools: pm4 - show program state

* devtools: pm4 - show program disassembly

* devtools: pm4 - show frame regs

* devtools: pm4 - show color buffer info as popup

add ux improvements for open new windows with shift+click
better window titles

* imgui: skip all textures to avoid hanging with crash diagnostic enabled

not sure why this happens :c

* devtools: pm4 - show reg depth buffer
2024-10-13 15:02:22 +03:00
Vladislav Mikhalin
8776eba8c8 Added adaptive mutex initializer handling (#1353) 2024-10-13 12:22:14 +03:00
RDN000
1cc4ab7e88 Update sq translation (#1351)
* Update sq translation

* Update sq translation
2024-10-13 11:36:52 +03:00
Lander Gallastegi
d3491bfced hotfix: correctly check for valid priority (#1359) 2024-10-13 11:35:05 +03:00
Pavel
1e16fe5349 clarification of PC Requirements (#1357) 2024-10-12 21:33:45 +03:00
ElBread3
97b5289f15 use addGameInstallDir here (#1354) 2024-10-12 17:53:47 +03:00
Daniel R.
7c00ac637a core: Fix mmap being unable to map GPU memory 2024-10-12 16:35:12 +02:00
Lander Gallastegi
b412cb4cca Linux unlink implementation (#1347) 2024-10-11 21:45:26 +03:00
Vladislav Mikhalin
87a76af86f AvPlayer: Patch all guest calls (#1346) 2024-10-11 21:44:29 +03:00
adjonesey
cd085ea2de Use GetSystemTimePreciseAsFileTime to fix fps timing issues (#1344)
-ws
2024-10-11 17:52:48 +03:00
Daniel R.
169b641bd1 hotfix: map rasterizer memory on pool commit 2024-10-11 10:48:32 +02:00
georgemoralis
dbdbb40c0b Network libs fixes , stubs and more (#1324)
* some rework on netctl calls

* added libs stubs using from RE6

* added ORBIS_NET_CTL_INFO_IP_ADDRESS case in sceNetCtlGetInfo

* added sceNetInetPton

* some dummy functions and change some functions to debug level

* clang format fix

* fix for sceNetInetPton

* posix OS fix?

* linux + macOS fixes?

* fix?

* sceSharePlayGetCurrentConnectionInfo
2024-10-11 10:37:36 +03:00
KrisCris
dc99d3ebfc Slightly refactor the game install dirs code (#1329)
* fix: game dir dupes on each launch

* fix copy around settings_addon_install_dir vector

* do not show the path if it is not added

* remove installDir from config file

* format

* moved migration code to save, and added notice

* move ui->removeFolderButton->setEnabled to LoadValuesFromConfig

* avoid checking duplicates for gameDirs loaded from config

* use else condition to switch to the installDirs
2024-10-11 09:27:28 +03:00
Alexandre Bouvier
04ad430115 cmake: add install rules (#1341) 2024-10-11 09:26:30 +03:00
Lander Gallastegi
66f1bb937f ime_dialog: Initial implementation (#1267)
* Add C string types

* Prepare existing enums

* Added missing enums

* Types update

* State base

* Compile Ime Dialog UI

* UI implementation

* Scoped lock

* Functional implementation

* Link against iconv on macOS

* Fix building on windows

* Better UI

* clang-format

* Some fixes and cleanup

* Enable reserved checks

* clang-format

* Fix default text encoding max size

* clang-format (again)

* Some review changes

* Use std::vector for dynamic strings

* Use CString

* Accept dialog on enter press

* clang-format

* Use ImGUI for encoding/decoding
2024-10-11 04:53:32 +03:00
squidbus
0f91661660 resource_tracking_pass: Make sure immediate offset is accessed as correct type. (#1339) 2024-10-10 23:58:01 +03:00
squidbus
2f80d7565d resource_tracking_pass: Fix type handling of sample offsets. (#1337) 2024-10-10 23:30:09 +03:00
squidbus
21eb175aa1 shader_recompiler: Add asserts for get/set register bounds. (#1336) 2024-10-10 23:14:50 +03:00
squidbus
dcc4057dd8 shader_recompiler: Set correct operand field for VOP3b sdst. (#1335) 2024-10-10 23:04:51 +03:00
squidbus
0df0d0cb66 shader_recompiler: Fix last image sample address parameter. (#1334) 2024-10-10 22:51:11 +03:00
squidbus
0a5f46942e shader_recompiler: Make sure RuntimeInfo is zero initialized. (#1332) 2024-10-10 20:32:13 +03:00
squidbus
09cbccb40b shader_recompiler: Implement V_SUBB_U32 and V_SUBBREV_U32. (#1331) 2024-10-10 19:40:19 +03:00
squidbus
d91ad6174e shader_recompiler: Move sampling parameter resolution to tracking pass and support more derivative types. (#1290)
* shader_recompiler: Move sampling parameter resolution to tracking pass and support more derivative types.

* shader_recompiler: Only track sampler sharp on sample instructions.

* shader_recompiler: Fix Inst args size.
2024-10-10 19:27:34 +03:00
TheTurtle
fd4893f6ef hotfix: Don't unconditionally register fiber lib 2024-10-10 19:26:56 +03:00
korenkonder
6e986f8133 video_core: Implement sceGnmInsertPushColorMarker (#989) 2024-10-10 18:03:12 +03:00
Quang Ngô
3982ef7188 ci: add missing libs to enable Wayland backend for SDL (#1184) 2024-10-10 17:54:32 +03:00
Marcin Mikołajczyk
0e0de5a2a0 Stub return value of sceNpCreateRequest (#1209) 2024-10-10 17:54:07 +03:00
robyn-dressler
ab6901ae6a Using a more standard data directory for linux (#1227)
* Using a more standard data directory for linux

* Fixing format

* Using XDG_DATA_HOME by default
2024-10-10 17:53:18 +03:00
Exhigh
87f8f3a59e qt_gui: Organize settings page (#1316)
* Wire up translations and descriptions for the cursor settings.
* Move controller settings to input tab and rename it to controller (to inline it with how other settings are shown).
* Fixed unnecessary double initialization of the back button setting.
* Organize statements and functions w/ respect to their tabs and some minor QOL changes for the settings UI in general.
2024-10-10 17:52:39 +03:00
ElBread3
299a29e243 Fix Multiple Install Folders (#1328)
* attempt to fix pr

* clang format
2024-10-10 17:52:20 +03:00
Daniel R.
0a12ba4120 core/libraries: Initial fiber implementation (#1255) 2024-10-10 17:51:23 +03:00
TheTurtle
100036aecf spirv: Flush denormals if possible (#1302) 2024-10-10 17:47:39 +03:00
ElBread3
56e8ed7833 Multiple Install Folders (#1308)
* multiple install folders implimentation

* clang format

* paths setting tab

* clang format
2024-10-10 10:28:59 +03:00
psucien
c9f894c45a hot-fix: catch device loss on presentation (prevents deadlock in waiting) 2024-10-09 20:44:38 +02:00
Daniel R.
873fbc469b Fix spacing 2024-10-09 16:52:56 +02:00
baggins183
ddb0928f10 update boost submodule. Add boost includes in subproject instead of externals/CMakeLists.txt (#1307) 2024-10-09 13:46:04 +03:00
DanielSvoboda
d4eae28ce2 Play Time (#1305)
* Play Time

* SDL

* QT

* Sort / Formatting

* Timer 1 minute

* remove the seconds

removes the seconds from the screen, but in the play_time.txt file it continues to record the seconds for better accuracy, and the screen is cleaner

* fixes the invisible 0

* SDL . . .

* Fix Timer
2024-10-09 13:30:51 +03:00
voguelike
6fe26173dc sophisticated fix for amd gpu + reshade instead of workaround (#1282) 2024-10-09 09:28:25 +03:00
Alexandre Bouvier
7d4f1ce5f9 fix some warnings (#1306) 2024-10-09 09:28:09 +03:00
Alexandre Bouvier
e45eb0da9a discord-rpc: fix tracked commit (#1294) 2024-10-08 19:37:20 +03:00
georgemoralis
53b7c5cc77 Update discord_rpc_handler.cpp
Add new app ID
2024-10-08 19:03:37 +03:00
RDN000
4fa55b7aa2 Update sq translation (#1276) 2024-10-08 18:58:57 +03:00
delledev
3e7137cc6b added discord rpc (#1178)
* added discord rpc

* linting issues

* Revert "linting issues"

This reverts commit 55f4e39506.

* fix clang-format issues

* removed wrong rpc submodule

* added correct rpc submodule

* Moved cmake instructions to correct files.

* added minor suggestions from pr

* Added an option to enable/disable RPC, added rpc to emulator.cpp making it work on nonqt builds

* typo & minor stuff

* Changed getInstance implementation with Singleton class.

* Update discord_rpc_handler.cpp

discord id

* fixed ci clangformat errors

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-10-08 18:14:37 +03:00
Stephen Miller
aba803bd04 IMAGE_GATHER4_C_LZ_O (#1274)
Used by Crash Team Racing Nitro Fueled.
2024-10-08 10:35:07 +03:00
squidbus
20915eb5b8 core: Add support for Neo mode memory size. (#1196) 2024-10-08 10:29:05 +03:00
Exhigh
f139762c64 imgui/renderer: Hide Cursor on Idle Implementation (#1266)
Implement hide cursor on idle w/ idle timeout duration (configurable via GUI). While at it add always and never to hide the cursor options as well.

* Revert commit #1211 as to not interfere with the cursor states.
* Make hide cursor on idle as the default setting w/ timeout duration of 5 seconds to hide.
* Add an input tab in the settings page to add the hide cursor setting, with hiding the idle timeout box with respect to the cursor hide option.

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-10-08 09:47:42 +03:00
Vinicius Rangel
96344873d6 SaveDataLib: use param.sfo to store max_blocks instead of txt (#1287) 2024-10-08 09:16:06 +03:00
DanielSvoboda
01fb320f4e Fixes encoding in update text (#1283)
* Fixes encoding in update text

* +
2024-10-08 09:15:50 +03:00
fireph
ce53c41205 Add support to click touchpad using back button on non PS4/5 controllers (#1258)
* Working touchpad support

Tested on PS5 controller plugged in via USB.

* fix lint

* Add support to click touchpad using back button on other controllers

Takes the back button and allows the user to change the behavior of how it clicks the touchpad. The current options are left, right, center, and none.

* add description text

* make more generic so translations can be supported in combobox

* fix lint

* linter again

* support back button to touchpad for spacebar as well

* linter at it again
2024-10-08 09:15:30 +03:00
¥IGA
7389cf3e89 PM4 old removed + fixes (#1259) 2024-10-07 15:29:07 +02:00
DanielSvoboda
20db37f235 fix update linux console (#1238) 2024-10-07 14:52:38 +03:00
georgemoralis
d7e5b5f13f updated sdl to fix touchpad issue (#1275) 2024-10-07 13:04:09 +03:00
Dzmitry Dubrova
75c92a7cd1 net: Stub sceNetErrnoLoc (#1271) 2024-10-06 22:34:55 +03:00
baggins183
3c0255b953 DebugPrintf in shaders (#1252)
* Add shader debug print opcode that uses NonSemantic DebugPrintf extension

* small correction for flags in Inst

* Fix IR Debug Print. Add StringLiteral op

* add missing microinstruction changes for debugprint

* cleanup. delete vaarg stuff. Smuggle format string in Info and flags

* more cleanup

* more

* (dont merge??) update sirit submodule

* fix num args 4 -> 5

* add notes about DebugPrint IR op

* use NumArgsOf again

* copyright

* update sirit submodule

* fix clangformat

* add new Value variant for string literal. Use arg0 for fmt string

* remove string pool changes

* Update src/shader_recompiler/ir/value.cpp

Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>

---------

Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>
2024-10-06 22:34:40 +03:00
TheTurtle
310814ac71 shader_recompiler: Support for more offset layouts (#1270) 2024-10-06 18:43:59 +02:00
tGecko
4ce95e55e0 add log type to log file (#1260) 2024-10-06 14:53:53 +03:00
fireph
351e4861ca Working touchpad support (#1257)
* Working touchpad support

Tested on PS5 controller plugged in via USB.

* fix lint
2024-10-06 13:00:35 +03:00
nishinji
2fd4861d3e CI: Build outside the main branch (#1239) 2024-10-06 02:26:19 +03:00
squidbus
60092ce849 vulkan: Use view of null buffer for texel buffers if nullDescriptor not supported. (#1231) 2024-10-06 02:25:12 +03:00
squidbus
2a7d56dbf2 shader_recompiler: Remove outdated image array warning. (#1256) 2024-10-06 01:42:58 +03:00
psucien
927bb0c175 Initial support of Geometry shaders (#1244)
* video_core: initial GS support

* fix for components mapping; missing prim type
2024-10-06 01:26:50 +03:00
squidbus
5bb45dc7ba vulkan: Respect maximum sampler LOD bias. (#1254) 2024-10-06 01:05:24 +03:00
squidbus
8576d5e72c shader_recompiler: Set array size to max UBO size when 0. (#1251)
* shader_recompiler: Set array size to max UBO size when 0.

* vulkan: Account for fallbacks when setting depth attachment format.
2024-10-05 22:31:52 +03:00
squidbus
ee57c2fd69 vulkan: Fix two more validation errors. (#1250) 2024-10-05 21:35:02 +03:00
¥IGA
1dabea7514 Fix a Qt warning (#1249) 2024-10-05 21:34:53 +03:00
ElBread3
2b8c2ce423 Fix list sorting for some categories (#1242)
* fix list sorting for serial, firmware version, and game size

* bad apple!!

* qol
2024-10-05 21:34:38 +03:00
Vinicius Rangel
a5968b630d imgui: fix blocking keyboard at startup (#1237)
* imgui: dont capture any input without an active nav window

fix keyboard not being available as soon as the emulator opens

* imgui: cleanup renderer assigning unnecessary sType to vulkan structures
2024-10-04 19:06:08 +03:00
Mahmoud Adel
76644a0169 add Opcodes to switch case (#1233)
* add Opcodes to switch case

Added Opcodes to switch case, they were done here but weren't added to switch 9f79764b01 (diff-9a6c2e2027c03231e88aaaab30908baecae202661839f35c31a777fec2500c7aR659)

* clang
2024-10-04 11:24:45 +03:00
tGecko
ec6579cb4f Hide cursor on key/button press (#1211) 2024-10-04 08:49:18 +02:00
korenkonder
9f79764b01 Add various V_CVT opcodes (#1223) 2024-10-04 08:48:05 +02:00
squidbus
be411b37d4 vulkan: Fix dynamic vertex binding stride validation errors. (#1229) 2024-10-04 07:51:08 +03:00
Vinicius Rangel
49ceff71a2 Devtools fixes1 (#1228)
* imgui: fix nav with dock & fps display disabled by default

* devtools: change basic fps scale

* imgui: scale font with display dpi
2024-10-04 06:44:36 +03:00
korenkonder
da519f9091 Moved opcode to it's proper location (#1221) 2024-10-03 22:47:26 +02:00
Vinicius Rangel
af398e3684 Devtools: PM4 Explorer (#1094)
* Devtools: Pause system

* Devtools: pm4 viewer

- new menu bar
- refactored video_info layer
- dump & inspect pm4 packets
- removed dumpPM4 config
- renamed System to DebugState
- add docking space
- simple video info constrained to window size

* Devtools: pm4 viewer - add combo to select the queue

* Devtools: pm4 viewer - add hex editor

* Devtools: pm4 viewer - dump current cmd

* add monospaced font to devtools

* Devtools: pm4 viewer - use spec op name

avoid some allocations
2024-10-03 22:43:23 +02:00
¥IGA
009f956d8d imgui: Makes the window edges rounded (#1143) 2024-10-03 19:28:41 +02:00
ElBread3
ff13aff862 video_core: IMAGEGATHER4_C_O (#1210) 2024-10-03 18:48:54 +02:00
dbz400
54dafce541 Add V_CVT_F64_I32 (#1219) 2024-10-03 18:48:28 +02:00
Daniel R.
5e26294e27 video_core: disable warnings on vulkan 2024-10-03 16:57:33 +02:00
georgemoralis
ed24632ceb Fix some network,npmanager issues (#1215)
* improved np toolkit callbacks

* added ExecuteGuest in callback

* clang format
2024-10-03 14:03:26 +03:00
squidbus
7209b7d786 shader_recompiler: Shader param fixups (#1199) 2024-10-03 10:50:51 +03:00
squidbus
1a34c2a189 core: Fix some missing uses of ExecuteGuest. (#1214) 2024-10-03 08:38:24 +03:00
squidbus
388d717205 audio_core: Fix return value types and shift some error handling to library. (#1212) 2024-10-03 07:01:39 +03:00
Mikasa-san
7e533ccf50 Refactor audio handling with range checks, buffer threshold, and lock… (#1200)
* Refactor audio handling with range checks, buffer threshold, and lock fixes

- Added range checks for handle to avoid invalid index access in AudioOutOutput, AudioOutSetVolume, and AudioOutGetStatus.
- Added a constant AUDIO_STREAM_BUFFER_THRESHOLD for the buffer threshold (was previously a magic number).
- Set the freq parameter correctly in the SDL_AudioSpec structure in AudioOutOpen.
- Fixed locking issues in AudioOutOutput to avoid unlocking before it's locked.

* Refactor audio handling with range checks, buffer threshold, and lock fixes

- Added range checks for handle to avoid invalid index access in AudioOutOutput, AudioOutSetVolume, and AudioOutGetStatus.

- Added a constant AUDIO_STREAM_BUFFER_THRESHOLD for the buffer threshold (was previously a magic number).

- Set the freq parameter correctly in the SDL_AudioSpec structure in AudioOutOpen.

- Fixed locking issues in AudioOutOutput to avoid unlocking before it's locked.

- Removed tab spaces to fix format clang error
2024-10-02 18:34:16 +03:00
tGecko
93317911eb fix music playing when it shouldn't (#1203) 2024-10-02 18:33:36 +03:00
CrazyBloo
394b7fa671 replace trophy xml error with assert (#1197) 2024-10-02 12:31:55 +03:00
Paris Oplopoios
d20efcb0d2 Some nits and fixes on paths (#1190)
* Some nits and fixes

* More path conversions

* Add some more logging

* Log the path too
2024-10-02 07:18:00 +03:00
Vinicius Rangel
ee1e55d5e1 SaveData: implement sceSaveDataTransferringMount (#1191)
* SaveData: fix icon overriding

* SaveData: implement sceSaveDataTransferringMount
2024-10-02 06:38:18 +03:00
CrazyBloo
61f750bdd9 trp data extracts to game_data/serial instead of folder name (#1194)
* trp data extracts to game_data/serial instead of folder name

* format
2024-10-02 06:37:43 +03:00
squidbus
e68774d449 shader_recompiler: Define fragment output type based on number format. (#1097)
* shader_recompiler: Define fragment output type based on number format.

* shader_recompiler: Fix GetAttribute SPIR-V output type.

* shader_recompiler: Don't bitcast on SetAttribute unless integer target.
2024-10-01 23:42:37 +03:00
squidbus
75adf7c8d1 vulkan: Fix some common validation errors. (#1101)
* vulkan: Fix some extension support related validation errors.

* vulkan: Fix validation error on zero-size buffer.

* vulkan: Fix primitive list restart validation error.
2024-10-01 23:42:20 +03:00
CrazyBloo
65f72372f0 trophy icon + platinum fixes (#1093)
* trophy icon + platinum fixes

cleaned up some parts too

* format

* implement turtles review

* use fs native where possible, clang format

* implement vinicius suggestions

* format

* final reviews

* mutex for trophy queue, remove unneeded field

* format
2024-10-01 23:39:43 +03:00
qurious-pixel
f93b8c1e8d remove libgstreamermediaplugin.so from qt multimedia plugins (#1187) 2024-10-01 21:43:18 +03:00
Vladislav Mikhalin
7d96c9d634 Use correct scissor rects (#1146)
* WIP

* Proper combination of scissors

* convert static functions to lambdas
2024-10-01 21:42:01 +03:00
squidbus
3dea1a9f81 qt: Create addons directory if it does not exist. (#1186) 2024-10-01 20:11:41 +03:00
DanielSvoboda
3a36615da7 sort menu (#1183) 2024-10-01 18:02:47 +03:00
Quang Ngô
b92dc8c714 ci: fix audio for Linux (#1177) 2024-10-01 16:11:08 +03:00
squidbus
e4c8626806 qt: Fix message box for game overwrite. (#1181) 2024-10-01 15:49:30 +03:00
squidbus
bf3e43b016 vulkan: Use dynamic vertex buffer strides when dynamic bindings unavailable. (#1164) 2024-10-01 09:54:06 +03:00
ElBread3
82c7c6aed1 add mappings for kernel versions (#1171) 2024-10-01 09:16:15 +03:00
DanielSvoboda
98ea06e82d cancel-in-progress (#1162)
if 2 actions are being created to go to MAIN, the oldest one will be canceled
2024-10-01 07:54:36 +03:00
squidbus
7084fc4c41 config: Add option to change DLC install path. (#1176) 2024-10-01 07:54:15 +03:00
Lander Gallastegi
0be0f18764 Fix fedora packages (#1174) 2024-10-01 07:53:36 +03:00
DanielSvoboda
dda5cc411f fix wolf2022 cheats download (#1173) 2024-10-01 07:53:20 +03:00
bigol83
348da93ee6 Fix BB random fmv hang (#1170) 2024-09-30 19:20:57 +03:00
Paris Oplopoios
cda2317ddb Fix loading (#1169) 2024-09-30 19:05:55 +03:00
Lander Gallastegi
afe32d1e03 documentation: fix Linux build instructions (#1107)
* Fix linux build instructions

* Validation layers and arch linux packages
2024-09-30 14:25:49 +03:00
ElBread3
603f709784 Added sceKernelRmdir (#1137)
* add sceKernelRmdir

* since result is remove count, probably don't use that

* fixes + posix_rmdir

* fix return value problem
2024-09-30 14:25:25 +03:00
hspir404
fc6c755e5a Fix some typos (#1161) 2024-09-30 14:24:28 +03:00
tGecko
62c59d195f add gstreamer to appimage build (#1166) 2024-09-30 12:49:20 +03:00
Paris Oplopoios
cbbf3505e7 Fix path bugs & wrap seeks in an if (#1154)
* Fix path bugs

* Wrap most seeks in an if
2024-09-30 12:42:59 +03:00
dbz400
c7ff0419ad Fix V_CMP_CLASS_F32 (#1153) 2024-09-30 11:36:26 +03:00
squidbus
398019867b sdl: Fix use of functions that now return SDL_bool (#1160) 2024-09-30 06:47:55 +03:00
Paris Oplopoios
d9f287eaa2 Fix fmt error (#1150) 2024-09-29 14:02:46 +02:00
Daniel R.
80bf46da4c core/memory: Pooled memory implementation (#1085) 2024-09-29 10:28:41 +03:00
squidbus
5e98a3e1d8 vulkan: Fix crash when resizing window. (#1142) 2024-09-29 08:25:44 +03:00
DanielSvoboda
40d00e3066 progressBar DownloadUpdate (#1141) 2024-09-29 08:24:21 +03:00
DanielSvoboda
a4168150ed + tr (#1136) 2024-09-29 00:01:35 +03:00
¥IGA
545e94d267 Remove dead Links from readme (#1135) 2024-09-29 00:01:15 +03:00
¥IGA
36271b9cdf Best icons for flags (#1133) 2024-09-28 21:49:48 +03:00
tGecko
dc96338c2e Improve keyboard navigation in game list (#1132)
* Improve keyboard navigation

* don't start game in elf viewer mode or gridview mode with empty item selected

* fix eventFilter return
2024-09-28 21:04:47 +03:00
tGecko
7b5d66e5c1 Add volume slider for title/background music (#1130)
* add volume slider

* add translations

* stop music when checkbox unchecked

* remove GUI build command args

* combine functions

* add accidentaly removed copyright and licencing information
(thanks QT Designer)
2024-09-28 19:54:28 +03:00
Yury
1dd2e46fce ru_RU translation fixes (#1118) 2024-09-28 19:53:42 +03:00
¥IGA
bc6c0de76d Better screenshots for 0.3.0 + misc changes (#1122)
* Better screenshots for 0.3.0 + misc changes

* Update BloodBorne screenshot
2024-09-28 16:17:11 +03:00
DanielSvoboda
4e4f3d7504 menu description | rename: Release/Nightly (#1116)
* menu description

* improve texts

* TR

* Release_Nightly
2024-09-28 16:01:27 +03:00
Paris Oplopoios
65bd62e98b Reduce assert to a warning (#1115) 2024-09-28 15:44:07 +03:00
squidbus
7476287649 kernel: Quiet sceKernelWaitEventFlag error log on timeout. (#1120) 2024-09-28 09:38:42 +02:00
DanielSvoboda
a5298c4025 Update Quickstart.md (#1112) 2024-09-27 18:16:22 +03:00
DanielSvoboda
651ab4c62c add translation options music (#1111)
* add translation options music

* +
2024-09-27 18:15:56 +03:00
Plínio Larrubia
687be5b132 fix: Duplicated CI run after opening a PR with a branch in the original repo (#1110) 2024-09-27 17:35:40 +03:00
DanielSvoboda
75166ecd2a Cleaner pre-release messages (#1096)
Instead of showing all the content and just the latest commit,
it will show the link to all the changes between the latest release and the pre-release
2024-09-27 09:05:16 +03:00
tGecko
938b9b9826 fix VS intellisense (#1104) 2024-09-27 09:03:42 +03:00
IndecisiveTurtle
ebebafed64 hotfix2: Actually fix errors
Ahhhh
2024-09-27 03:21:08 +03:00
IndecisiveTurtle
cf342e7a4b hotfix: descriptor set lifetime fix 2024-09-27 02:56:50 +03:00
squidbus
50fc5e339d liverpool_to_vk: Add MRT feature flags to supported number formats. (#1087) 2024-09-27 01:57:22 +03:00
Paris Oplopoios
c73fad6772 Error reporting on failed memory allocation (#1091)
* Error reporting on failed memory allocation

* Formatting
2024-09-27 01:56:59 +03:00
Paris Oplopoios
eef0e6fc63 Fix build on GCC (#1080)
* Fix build on GCC

* Yes thank you clang-format

* Just remove static
2024-09-26 20:39:55 +03:00
georgemoralis
23f4b304b8 hot fix of the hot fix (again) 2024-09-26 18:24:05 +03:00
georgemoralis
0b7126e3be hot-fix: check if path is empty 2024-09-26 18:14:25 +03:00
DanielSvoboda
675fd4b31a fix translation (#1083)
Changed from checkUpdate.cpp to check_update.cpp

Removed this part, as the function that used it no longer exists:

<details>
<summary><strong>See removed text</strong></summary>

```ts
		<message>
			<location filename="../checkUpdate.cpp" line="352"/>
			<source>Failed to open the ZIP file</source>
			<translation>Failed to open the ZIP file</translation>
		</message>

			<location filename="../checkUpdate.cpp" line="420"/>
			<source>File name is empty. Possibly corrupted ZIP.</source>
			<translation>File name is empty. Possibly corrupted ZIP.</translation>
		</message>
		<message>
			<location filename="../checkUpdate.cpp" line="445"/>
			<source>Failed to create directory</source>
			<translation>Failed to create directory</translation>
		</message>
		<message>
			<location filename="../checkUpdate.cpp" line="464"/>
			<source>Error decompressing file</source>
			<translation>Error decompressing file</translation>
		</message>
		<message>
			<location filename="../checkUpdate.cpp" line="487"/>
			<source>Failed to open output file</source>
			<translation>Failed to open output file</translation>
		</message>
		<message>
			<location filename="../checkUpdate.cpp" line="497"/>
			<source>Unsupported compression method for file:</source>
			<translation>Unsupported compression method for file:</translation>
		</message>
		<message>
			<location filename="../checkUpdate.cpp" line="510"/>
			<source>Failed to create TAR extraction directory</source>
			<translation>Failed to create TAR extraction directory</translation>
		</message>
		<message>
			<location filename="../checkUpdate.cpp" line="525"/>
			<source>Failed to extract the TAR file</source>
			<translation>Failed to extract the TAR file</translation>
		</message>
```

</details>

And it was standardized, all files with the correct formatting.
2024-09-26 17:30:07 +03:00
Vinicius Rangel
b7e2903911 Fix fmt::UTF exception for empty strings (#1084) 2024-09-26 17:21:31 +03:00
Yury
1d23f40e02 Convert .reuse/dep5 to REUSE.toml (#1079) 2024-09-26 11:42:41 +03:00
Paris Oplopoios
6295d6c416 Use fs::path::native whenever possible, avoid unnecessary fs->string conversions in GUI code (#1064)
* Use filesystem::path whenever possible, remove fs::path::string

* My hatred for Windows grows with every passing day

* More Qt stuff

* custom u8string formatter for fmt library

* Use u8string for imgui

* Fix toml errors hopefully

* Fix not printing issue

* Oh and on SDL

* I hate Windows even more today

* fix toml reading utf-8 paths

also small fix for fmt::UTF

* Formatting

* Fix QT path to run games

* Fix path logging in save data

* Fix trophy path handling

* Update game_list_frame.cpp

fixed snd0path

* Update main_window.cpp

fix snd0path

* Update main_window.cpp

* paths finally fixed

* git info in WIP versions title

---------

Co-authored-by: Vinicius Rangel <me@viniciusrangel.dev>
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-09-26 11:41:59 +03:00
tGecko
54e2179337 Add playback of background/title music in game list (#1033)
* add playback of background/title music

* clang_format

* add windows multimedia build instructions

* fix typo accidentally made to arm

* address comments

* loop music

* feedback

* fix CI

* add newline

* playBGM off by default

---------

Co-authored-by: Charles <charles@superfocus.ai>
2024-09-26 09:12:41 +03:00
Vinicius Rangel
ddb82a690b Save lib fixes III (#1069)
* SaveDataMemory: increase memory if needed

* SaveDataDialog: fix intention to hide save details
2024-09-26 07:56:38 +03:00
TotalCaesar659
3d5a6203e1 Add FUNDING.yml (#1054)
* Add FUNDING.yml

Display a "Sponsor" button at the top of the repository.
More information:
https://github.blog/2019-05-23-announcing-github-sponsors-a-new-way-to-contribute-to-open-source/
https://help.github.com/en/articles/displaying-a-sponsor-button-in-your-repository

* Fix reuse check
2024-09-26 07:55:47 +03:00
RDN000
e67c10de01 Update sq translation (#1076) 2024-09-26 07:54:57 +03:00
psucien
6a70d08043 hot-fix: missing clear-to-blit (WAW) image barrier 2024-09-25 23:07:38 +02:00
oltolm
5a4d5b9f31 use ComPtr in gui_context_menus.h (#719)
* use ComPtr in gui_context_menus.h

* fix pragma diagnostic

* fix compiler warnings
2024-09-25 18:39:04 +03:00
squidbus
45e206e248 shader_recompiler: Sample images using correct result type. (#1068) 2024-09-25 14:20:28 +03:00
squidbus
11c155d0f1 amdgpu: Fix buffer comparison by naming padding fields for initialization. (#1050) 2024-09-25 14:08:10 +03:00
squidbus
f657ab3cc6 vulkan: Only reduce viewport minDepth if using depth clip control. (#969) 2024-09-25 12:43:54 +03:00
Lander Gallastegi
a984d44fd3 Swapchain recreation and window resizing (#933)
* Always present acquired swapchain images

Always present acquired swapchain images in order to be able to acquire them again.

fix #865

* Recreate swapchain if window is resized

* Respect aspect ratio when blitting to frame

* Make SDL window resizable

* clang-format

* designator order (building with gcc)

Fix /shadPS4/src/video_core/renderer_vulkan/vk_instance.cpp:314:9: error: designator order for field ‘vk::PhysicalDeviceVulkan12Features::samplerMirrorClampToEdge’ does not match declaration order in ‘vk::PhysicalDeviceVulkan12Features’

* Clear frame before blitting

* clang-format

* Revert "designator order (building with gcc)"

There already is a PR opened for this.

This reverts commit 7f8ccf4b1e.
2024-09-25 12:43:08 +03:00
SaynedBread
e634461ebb docs(README): gave the macOS build instructions section fancy Markdown formatting (#1005) 2024-09-25 12:22:09 +03:00
tGecko
1ec8f34a99 Add nullptr check in scePthreadSetprio function (#1028) 2024-09-25 12:20:03 +03:00
squidbus
b2de662d67 vulkan: Enable VULKAN_HPP_NO_EXCEPTIONS broadly. (#995)
* vulkan: Enable VULKAN_HPP_NO_EXCEPTIONS broadly.

* vulkan: Use structured bindings for result where possible.
2024-09-25 12:19:38 +03:00
squidbus
36ef61908d renderer_vulkan: Refactor surface and depth format mapping. (#1067)
* renderer_vulkan: Refactor surface and depth format mapping.

* image: Convert usage to feature flags for format support checks.
2024-09-25 12:10:44 +03:00
Vinicius Rangel
cc99f52606 Error dialog implementation (#1062) 2024-09-25 06:48:27 +03:00
DanielSvoboda
f79da986e3 Auto Update (#1006)
* Updater

* clang

* Adding Updater icon

* Updater

* TR

* settings_dialog.ui

* Changelog for Pre-release only

* Adding Dump and Download icons

* Forgot this...

* fix linux and resize

* powershell_unzip | changelog fix

Does not use zlin-ng to unpack, now uses powershell on windows and on linux/mac uses unzip or 7z, and if it does not find it, it will ask if you want to install it before extracting.

Do not show the changelog button if: The current version is a pre-release and the version to be downloaded is a release.

* Clang

* formatting

* links fixed

---------

Co-authored-by: Xphalnos <164882787+Xphalnos@users.noreply.github.com>
2024-09-24 23:03:15 +03:00
DanielSvoboda
cec9275c85 Fix Logic for Deleting Old Pre-Releases (#1060)
Currently, is excludes old pre-releases by only comparing the date, without considering the time. This update uses published_at instead of created_at and compares both date and time to accurately exclude older pre-releases.
2024-09-24 22:40:19 +03:00
Daniel R.
19cb4ec05d clang-format 2024-09-24 21:27:29 +02:00
Daniel R.
3f12fb0c91 core/libraries: implement configurable username 2024-09-24 21:23:18 +02:00
jnack
beb809b612 add V_CMPX_LE_I32 (#1056) 2024-09-24 18:22:31 +03:00
Paris Oplopoios
6da67645e9 Fixup designator order (#1039) 2024-09-24 17:18:35 +03:00
Paris Oplopoios
23bf8bf5e7 Patch insertq (#635)
* Patch `insertq`

* Don't clobber flags, fix asserts a bit

* Format code

* Fixup some edge cases

* A couple nits

* Remove extraneous space
2024-09-24 17:03:32 +03:00
baggins183
7f9bc0abbd fix lane inst decoding (#1051) 2024-09-24 12:29:57 +03:00
Vinicius Rangel
1620eea37b Save data: fix nullptr & concurrent file write (#1049)
* Save data: fix nullptr & concurrency file write

* Save data memory: fix overriding icon
2024-09-24 06:50:18 +03:00
SleepingSnakezzz
f97f73f0b5 Adding Kofi page link to the readme (#1044) 2024-09-23 21:15:14 +03:00
DanielSvoboda
43e7c00fdd fix pre-release token (#1043) 2024-09-23 21:14:55 +03:00
squidbus
4ba19a02b0 core: Add wrapper for calling into guest code. (#967) 2024-09-23 20:30:16 +03:00
DanielSvoboda
ad9f1370d5 Pre-release | Unifies builds (#953)
* Pre-release | Unifies builds

* Missing code...

* +

create actions for any branch, and pre-release only for MAIN

* Cache windows

* Delete old pre-releases and tags

deletes old pre-releases and their tags to keep the repository clean

* Update build.yml
2024-09-23 20:13:39 +03:00
Daniel R.
8c8a6ccddd core/memory: Fix sceKernelMTypeProtect setting VMA type (#1037)
* I hate programming and will furiously smash my monitor if I ever see another oversight of this caliber ever again in my goddamn life

* Merge both protect functions together
2024-09-23 18:49:57 +02:00
Paris Oplopoios
5799091044 Patch extrq (#943)
* Use a singleton for instruction decoding

* Use singleton class

* Patch `EXTRQ`

* Fixup signal context functions

* Update CMakeLists.txt

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-09-23 19:19:52 +03:00
Vinicius Rangel
5a8e8f5936 Frame graph + Precise 60 fps timing (#998)
* video info: add frame graph

Toggle advanced info with CTRL+F10.
Also fixed imgui using gamepad for nav in wrong situations

* 60fps!

Implemented a timer that accumulates the time spent sleeping and sleeps for the remaining time.
Also measure entire PresentThread time instead of just the time spent in Flip.

* sceKernelGettimeofday: replace chrono by win32 api. Better performance

bb uses this function too much. Consuming almost 30% of cpu time
2024-09-23 18:43:51 +03:00
georgemoralis
a016792371 starting 0.3.1 WIP 2024-09-23 18:42:11 +03:00
georgemoralis
7df3919617 added 0.3.0 version 2024-09-23 18:17:50 +03:00
TheTurtle
cd7268a70e video_core: Separate dirty flags and better gpu invalidation (#1034) 2024-09-23 18:03:42 +03:00
Vinicius Rangel
10d29cc007 Save fixes (#1031)
* Add ElfInfo to track current game info in a singleton

* SaveData compatibility with old firmwares

* sceKernelOpen: fix for write-only mode

* imgui: add font to render non-ascii characters

* save_data: fix Backup Job including old backup in the new backup

* Save backup: fix to avoid filling the queue

 Also limiting 1 backup / 10sec

* Save backup: fix search not handling empty pattern

*backup time improv
2024-09-23 14:50:49 +03:00
squidbus
a5001d11a8 shader_recompiler: Increase push constants user data to full capacity. (#1032) 2024-09-23 13:40:33 +03:00
TheTurtle
ee38eec7fe shader_recompiler: Additional scope handling and user data as push constants (#1013)
* shader_recompiler: Use push constants for user data regs

* shader: Add some GR2 instructions

* shader: Add some instructions

* shader: Add instructions for knack

* touchups

* spirv: Better names

* buffer_cache: Ignore non gpu modified images

* clang format

* Add log

* more fixes
2024-09-23 08:55:43 +02:00
psucien
fb5bc371cb hot-fix: unnecessary optimization removed 2024-09-22 19:56:07 +02:00
IndecisiveTurtle
e1d03c35fd hotfix: Fix mipmap query for images 2024-09-22 19:17:54 +03:00
squidbus
654f85a4b1 core: Reduce some library log spam. (#1023) 2024-09-22 14:13:58 +02:00
squidbus
bfe2e1e57c vulkan: Use closest available equivalent to missing clamp modes. (#1007) 2024-09-22 15:07:05 +03:00
squidbus
a18419dd73 shader_recompiler: Exclude non-float results from output modifiers. (#1016) 2024-09-22 15:03:17 +03:00
korenkonder
8811cc5cc6 Add V_CVT_PK_U8_F32 opcode (#1022) 2024-09-22 15:02:34 +03:00
korenkonder
5db27109c9 Optimise out unnecessary shifts (#1021) 2024-09-22 15:02:20 +03:00
Vinicius Rangel
581ddfec4d SaveLib PR related fixes (#1011)
* Safety checks in all SFO readings

* SaveData: log backup error and continue & fix possible concurrent file editing

* SaveData: Fix issue with old firmwares
2024-09-22 08:16:06 +03:00
TheTurtle
edde0a3e7e hotfix: Revert ADDC change 2024-09-22 01:53:10 +03:00
squidbus
dd184fd95d shader_recompiler: Use SetDst in more instructions. (#1015) 2024-09-22 01:41:19 +03:00
psucien
5f4ddc14fc Image subresources barriers (#904)
* video_core: texture: image subresources state tracking

* shader_recompiler: use one binding if the same image is read and written

* video_core: added rebinding of changed textures after overlap resolve

* don't use pointers; slight `FindTexture` refactoring

* video_core: buffer_cache: don't copy over the image size

* redundant barriers removed; fixes

* regression fixes

* texture_cache: 3d texture layers count fixup

* shader_recompiler: support for partially bound cubemaps

* added support for cubemap arrays

* don't bind unused color buffers

* fixed depth promotion to do not use stencil

* doors

* bonfire lit

* cubemap array index calculation

* final touches
2024-09-21 21:45:56 +02:00
squidbus
913a46173a resource_tracking_pass: Allow derivatives for 2D array images. (#1000) 2024-09-21 14:19:01 +02:00
squidbus
171e475f80 save_data: Fix save data list back button. (#1003)
* save_data: Fix save data list back button.

* common: Add more null checks in CString.

Co-authored-by: Vinicius Rangel <me@viniciusrangel.dev>

---------

Co-authored-by: Vinicius Rangel <me@viniciusrangel.dev>
2024-09-21 10:21:53 +03:00
squidbus
4fe81231f6 vulkan: Add alternatives when nullDescriptor is not supported. (#1001)
* vulkan: Add alternatives when nullDescriptor is not supported.

* vulkan: Set identifying name on null image/image view/buffer
2024-09-21 03:50:57 +03:00
squidbus
eaa92b5a65 vulkan: Upgrade format queries to use format feature flags 2. (#941) 2024-09-21 00:05:16 +03:00
Daniel R.
c3d5824279 libraries/kernel: add sceKernelMmap to HLE 2024-09-20 17:53:18 +02:00
SleepingSnakezzz
0c63267b1c Update Discord invite link.md (#994)
I missed one last time :P
2024-09-20 12:38:42 +03:00
Vinicius Rangel
0f4bcd8c83 Rewrite Save Data & Impl Save Data Dialog (#824)
* core: Rewrite PSF parser & add encoder

add .sfo hex pattern to /scripts

* core/fs: allow to mount path as read-only

* common: Add CString wrapper to handle native null-terminated strings

* SaveData: rewrite to implement full functionality

* mock value for SYSTEM_VER

* SavaData: backup features

* SavaData: SaveDataMemory features

* imgui Ref-counted textures

- has a background thread to decode textures

* imgui: rework gamepad navigation

* PSF: fixed psf not using enum class for PSFEntryFmt (was a standard old ugly enum)

- Add null check to CString when itself is used in a nullable field

* SaveDataDialog implementation

- Fix Mounting/Unmounting check of SaveInstance
2024-09-20 12:34:19 +03:00
ElBread3
077f8981a7 QOL: Set Log Filter On Save (#991)
* set log filter on reset

* clang format
2024-09-20 12:07:45 +03:00
squidbus
079d90211f ci: Refresh CMake cache on build. (#996) 2024-09-20 11:54:23 +03:00
¥IGA
5638735af6 Set High Priority for Windows (#961) 2024-09-20 07:54:30 +03:00
squidbus
048b8aef58 videoout: Make present thread realtime on macOS. (#990) 2024-09-20 01:28:35 +03:00
korenkonder
60f315a54d video_core: stride fix (#986)
I don't know why it was forced to be 1 while in reality it should be as is
2024-09-19 21:43:03 +02:00
psucien
7b8f0d2a19 core: file_sys: fix for racing in fs mount 2024-09-19 21:42:19 +02:00
korenkonder
07de1ee977 Sort opcodes by their indices. Group them too when applicable (#945) 2024-09-19 20:29:56 +02:00
Daniel R.
c0f7de9fde core: name avplayer threads 2024-09-19 20:19:29 +02:00
georgemoralis
7b8bc90157 MiscFixes11 (#984)
* fixed an issue in sceSaveDataSetSaveDataMemory , makes chariot CUSA00739 goes ingame

* added branch name into sdl window title
2024-09-19 18:46:07 +03:00
Plínio Larrubia
d07c81e0d2 Cache Windows CIs, solution by @Artalus (#985)
* ci: Add ccache with ninja generator for Windows builds
- Credits to @Artalus

* ci: Don't include d3d and dxc compiler DLLs

* ci: Simplify cache steps names and key names
- Windows builds will no longer cause issues when merging

* CI trigger
2024-09-19 17:38:34 +03:00
georgemoralis
cf4824a008 hotfix2 : fix previous fix 2024-09-19 12:34:45 +03:00
georgemoralis
26cca79582 hot fix : always check if eboot.bin is available in path 2024-09-19 12:17:05 +03:00
TheCamrew
38a13832b3 Improve es_ES translation & fix typos (#974)
Replaced Latin American Spanish terms with equivalent Spain-specific vocabulary.

Adjusted grammatical structures to reflect common usage in Spain.
2024-09-19 07:16:05 +03:00
adjonesey
868cffd793 Fix Regression #932 (#973) 2024-09-19 07:15:42 +03:00
psucien
2aab7e05ee libraries: gnmdriver: sceGnmResetVgtControl added (#965) 2024-09-17 22:10:50 +02:00
Raven
84e2c4d3bb Add other 64-bit floating point shader instructions (#944) 2024-09-17 18:01:33 +02:00
psucien
4a0bd876ff hot-fix: make profiler to show real frame time 2024-09-17 09:45:10 +02:00
squidbus
28ec489dbe cpu_patches: Revert to ahead-of-time patching on Linux for now. (#949) 2024-09-17 00:53:41 +03:00
squidbus
ecb5a5fdec build: Ignore macOS ARM homebrew path when cross compiling. (#922) 2024-09-16 13:24:47 +03:00
squidbus
da1e4ff5eb signals: Fix compilation on GCC. (#934) 2024-09-16 12:54:47 +03:00
Vladislav Mikhalin
faea291295 Do not wait for audio packets without audio stream (#939) 2024-09-16 12:54:20 +03:00
Daniel R.
dcf245b814 shader_recompiler: Implement basic 64-bit floating point support (#915)
* shader_recompiler: Implement basic 64-bit floating point support

* Fix formatting
2024-09-15 22:53:08 +02:00
squidbus
75a4df53a5 cpu_patches: Patch just-in-time using signal handlers. (#852)
* cpu_patches: Patch just-in-time using illegal instruction handler.

* core: Add common signal dispatch system and use for on-demand TCB patches.

* page_manager: Re-add userfaultfd implementation.
2024-09-15 23:48:34 +03:00
TheTurtle
b09b28c7f3 graphics_pipeline: Move some depth configuration to dynamic state (#931)
* graphics_pipeline: More proper masking

* pipeline_cache: Skip setting depth/stencil fields when test is disabled

* pipeline_cache: More fixes to depth stencil state

* vk_rasterizer: Use dynamic state for depth bounds and bias

* pipeline_cache: Missed depth bias enable

* vk_rasterizer: Add stencil dynamic states

* thread: Reduce spammy log

* Remove some leftover state

* pipeline_cache: Allocate pipelines from pools

* vk_graphics_pipeline: Remove bindings member

Saves about 1KB from each pipeline
2024-09-15 22:42:14 +02:00
TheTurtle
c8d0d5637a semaphore: Fix semaphore wait list leaking (#928)
Co-authored-by: Daniel R. <47796739+polybiusproxy@users.noreply.github.com>
2024-09-15 19:08:37 +03:00
psucien
9203e28b21 Merge pull request #918 from raven02/patch-5
Add PM4 opcodes
2024-09-14 20:24:41 +02:00
Raven
b14f447060 Add DS_READ2ST64_B32 (#916)
* Add DS_READ2ST64_B32

* Fix CLANG

* Fix CI again

* Parameter update for DS_READ
2024-09-14 21:16:12 +03:00
Raven
1879c9d12f Add PM4 opcodes 2024-09-15 01:46:39 +08:00
Daniel R.
febc1a9e17 core/libraries/save_data: Fix inaccurate behaviour on sceSaveDataSetupSaveDataMemory (#913) 2024-09-14 19:00:22 +02:00
Raven
5c5c02cb04 Add S_XOR_B32 opcode (#911)
* Add S_XOR_B32

* Stub S_OR_B32
2024-09-14 18:52:30 +03:00
Raven
12a0a02e38 Map BUFFER_AUTOMIC SMIN/SAMX/AND/OR/XOR/INC/DEC (#910) 2024-09-14 18:52:20 +03:00
squidbus
e30255e0d2 vulkan: Disable exceptions for getImageFormatProperties and account for errors. (#906) 2024-09-14 17:12:08 +03:00
nnn27
1ea6db6045 Fix initialization of change_layers (#907) 2024-09-14 15:07:34 +02:00
Emulator-Team-2
c924457e28 Implement IMAGE_SAMPLE_L_O opcode (#899) 2024-09-13 19:20:35 +02:00
Luke Warner
c181102a02 Implement S_ABSDIFF_I32 shader instruction (#902) 2024-09-13 19:02:17 +02:00
CrazyBloo
ab201398b2 Enable patches on cli builds (#897)
* patch support for cli

* fix mac build

* format
2024-09-13 07:44:20 +03:00
georgemoralis
de183d3b80 Merge pull request #896 from adjonesey/adjo/fix-regression-895
Fix Regression 895
2024-09-13 07:43:31 +03:00
Adam Jones
3a888ebb9f Fix Regression 895 2024-09-13 02:23:55 +01:00
TheTurtle
1b6cc447b4 hotfix: Restore unreachable 2024-09-12 23:46:29 +03:00
illusion0001
b911c70d35 Silence unhandled case warns (#823) 2024-09-12 23:01:13 +03:00
squidbus
a49c7e9dcb shader_recompiler: Add buffer offset calculation when swizzle is enabled. (#834) 2024-09-12 22:59:52 +03:00
squidbus
fc90f279e2 vulkan: Limit multisampling to supported sample counts. (#828) 2024-09-12 22:59:23 +03:00
baggins183
bc66fe8fb5 Fix copyGpuBuffers when resize invalidates commands in flight (#876)
* Fix copyGpuBuffers when resize invalidates commands in flight

* Use _MB macro for size constant
2024-09-12 21:54:54 +02:00
georgemoralis
1b12138cda Merge pull request #878 from vladmikhalin/fix-avplayer-is-active
Fixed the return value of sceAvPlayerIsActive
2024-09-12 10:17:21 +03:00
Vladislav Mikhalin
6606da808b Fixed the return value of sceAvPlayerIsActive 2024-09-12 10:16:03 +03:00
CrazyBloo
5e12303b06 implement more nptrophy functions (#874)
* fix review's from last pr

* save timestamp when trophies are unlocked

* implement GetTrophyInfo()

* use strncpy instead of strcpy_s, should fix actions

* nptrophy: GetGameInfo(), GetGroupInfo()

* various fixes

* format
2024-09-12 06:49:04 +03:00
psucien
8a76cd888f hot-fix: mark null image as tracked by default to avoid its updates 2024-09-11 22:39:21 +02:00
squidbus
136f6072b9 shader_recompiler: Use correct integer type for OpImageWrite. (#871) 2024-09-11 23:04:02 +03:00
georgemoralis
0ebae4ca6f Misc Fixes 10 (#781)
* libSceRazorCpu needed for gravity rush

* libSceCesCs needed for blue reflection

* clang format fix

* set scePadSetVibration to log debug

* initial sceNetCtl module implementation

* improved error codes in file system

* some intial work on netctl callbacks (helps a bit CUSA10135)

* misc

* improved callbacks handling in sceNetCtl

* small fixes

* added libSceRudp.sprx to lle modules

* draft work for npcallbacks
2024-09-11 16:48:16 +03:00
Pipi86
1c0dfc60a1 Typo fix (#820)
* Update pm4_cmds.h

* Update pm4_cmds.h
2024-09-11 13:40:19 +03:00
georgemoralis
ccf02d0aed Revert "sceNetAccept sleep and SDLAudio::AudioOutOutput latency and cpu improvements (#507)"
This reverts commit d66d129357.
2024-09-11 12:56:41 +03:00
georgemoralis
dd61c2a0d1 Revert "Add UI to configure keyboard-to-controller mapping (#308)"
This reverts commit fdb13a3b90.
2024-09-11 12:56:27 +03:00
squidbus
c27d79c2e7 vulkan: Skip draw when primitive type is None. (#867) 2024-09-11 08:58:20 +03:00
kh0nsu
d66d129357 sceNetAccept sleep and SDLAudio::AudioOutOutput latency and cpu improvements (#507)
* Add 5-second sleep on sceNetAccept as this can be called in an infinite loop and would normally block (this isn't ideal for non-blocking sockets but it's all stubs at the moment anyway)

* SDLAudio::AudioOutOutput: protect against invalid handle, support NULL input (wait only), replace fixed 65536 with an amount based on settable latency target (20ms for now)

* Fix whitespace

---------

Co-authored-by: j <j@local>
2024-09-11 08:57:05 +03:00
Vasyl_Baran
fdb13a3b90 Add UI to configure keyboard-to-controller mapping (#308)
* Add UI to configure keyboard-to-controller mapping

* Add an optional "---fix" argument to format-checking script

* clang fix

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-09-11 08:51:18 +03:00
CrazyBloo
74c2888aaa support for unlocking trophies (#854)
* add pugixml

* trophy_viewer: support for trophy unlocking

* nptrophy: UnlockTrophy(), DestroyContext()

* initial imgui popup

* queue to handle multiple trophies at once

* extract trophy info on game start + various fixes

* platinum trophy support + extract trophy data on startup

* format

* nptrophy: GetTrophyUnlockState

* implement vinicius' reviews
2024-09-11 06:50:55 +03:00
georgemoralis
c5b8e492f6 Merge pull request #858 from DanielSvoboda/main
use github api to download patches
2024-09-10 22:05:23 +03:00
SleepingSnakezzz
5fc90b5565 Update Discord link (#861)
The current Discord link was made before we enabled the "accept the rules" on Discord. This leads to users who use the current link to enter the Discord server to skip this moderation step. Updating the link to one created after we enabled this should fix this.
2024-09-10 20:58:47 +03:00
TheTurtle
b0bbb16aae video_core: Add fallback path for pipelines with more than 32 bindings (#837)
* video_core: Small fixes

* renderer_vulkan: Add fallback path for pipelines with more than 32 bindings

* vk_resource_pool: Rewrite desc heap

* work
2024-09-10 20:54:39 +03:00
DanielSvoboda
14e7cd587d use github api to download patches
removing this workaround makes the code cleaner
2024-09-10 11:30:35 -03:00
georgemoralis
3a65052b8e Merge pull request #851 from shadps4-emu/stabilization/barriers
Various barrier fixes
2024-09-10 06:45:15 +03:00
adjonesey
dcab06ff2b Fix deadlocks by enabling reuse of exited threads (#855)
Simplify loop

const correctness

Simplify setting is_free

Co-authored-by: Adam Jones <a.c.jones@outlook.com>
2024-09-09 23:13:28 +03:00
Yussur Mustafa Oraji
f23c6dc852 Fix compilation on linux (#846) 2024-09-09 22:53:49 +03:00
Lizardy
6b5cd04893 [libSceAudio3d] Initialize Audio3d Library (#761)
* init libSceAudio3d

* complete header and func params

* clang

* rm incl

* incl stddef

* revert module num

* print params

* correct logs

* clang

---------

Co-authored-by: microsoftv <6063922+microsoftv@users.noreply.github.com>
2024-09-09 22:51:15 +03:00
Andrew Middendorp
4502a5ddcc Added S_ANDN2_B32 and S_NAND_B32 opcodes (#833)
* Added S_ANDN2_B32 and S_NAND_B32 opcodes

* Update src/shader_recompiler/frontend/translate/scalar_alu.cpp

Co-authored-by: baggins183 <baggins31084@proton.me>

* Fix result and src1

Co-authored-by: baggins183 <baggins31084@proton.me>

* update result

Co-authored-by: baggins183 <baggins31084@proton.me>

* Update src1

Co-authored-by: baggins183 <baggins31084@proton.me>

---------

Co-authored-by: baggins183 <baggins31084@proton.me>
2024-09-09 22:46:57 +03:00
squidbus
411449cd51 Initial support for compiling on ARM64. (#788) 2024-09-09 13:23:16 +03:00
psucien
adfb3af95f hot-fix: nullGpu functionality restored 2024-09-09 08:59:47 +02:00
Vinicius Rangel
a0cf4ce7de imgui: fix End call when window is collapsed (#850) 2024-09-09 07:00:19 +03:00
psucien
1da1946ef5 presentation barriers fixed 2024-09-09 00:10:33 +02:00
psucien
56cc70dc97 fix for image view storage flag handling 2024-09-09 00:09:38 +02:00
TheTurtle
e3c2a91477 kernel: Delete cond attr
May solve memory leaks in games that create/destroy these often
2024-09-09 00:48:00 +03:00
Zack McKevitt
96f7a75f38 Redefined ffmpeg's av_err2str macro to be c++ friendly (#815)
* Fixed compiler error for av_err2string by redefining in c++ friendly way

* removed link from comment, putting in PR

* fixed formatting

* Minor fix: enable qt gui to find PKG files with lowercase extension .pkg

* Added missing dependencies and instructions for enabling QT for linux builds
2024-09-09 00:30:18 +03:00
¥IGA
9101bd7ad4 Improved Dark theme, search bar and icon theme (#830)
* Improved Dark theme, search bar and icon theme

* Update FR translation
2024-09-08 23:39:48 +03:00
Vinicius Rangel
446d8c4ff1 Message Dialog library (#767)
* system/MsgDialog: types & basic text display

* system/MsgDialog: User message dialog

* system/MsgDialog: RAII for MsgDialog ui

* system/MsgDialog: Progress bar dialog

* system/MsgDialog: System message texts

* system/MsgDialog: copy all ui state to local memory

handles when game release memory before close
extracted all UI code to it's own file
use single window instead of creating new one every single dialogOpen

* system/MsgDialog: debug logging
2024-09-08 23:27:50 +03:00
Vinicius Rangel
035cb3eeaa Dear ImGui Implementation (#598)
* added imgui as dependency

* imgui renderer/basic input implementation

* imgui: add layers system

Add video info layer to show fps. Press F10 to toggle it.

* imgui: add custom imgui config

* imgui: gamepad capture, stopping propagation

* imgui: changed config & log file path to use portable dir

* videoout: render blank frame when video output is closed

required to render imgui even when game has no video output

- fixed merge compile-error
2024-09-08 22:50:32 +03:00
psucien
f1becb2507 hot-fix: linear cubemaps check assert removed (verified) 2024-09-08 14:18:48 +02:00
psucien
047a115b3e hot-fix: exclude tiling condition from promotion of textures to depth 2024-09-08 11:12:25 +02:00
Blargle
749fe92882 Small fix for EmitQuadToTriangleListIndices (#831) 2024-09-07 15:52:48 +03:00
Daniel R.
fda5689ddb core/libraries: reduce log pressure (#829) 2024-09-07 12:38:00 +03:00
Plínio Larrubia
81f7c830be ci: enable cmake cache on all platforms (SDL/Qt) (#622)
- uses actions/cache@v4 and hendrikmuhs/ccache-action@v1.2.14
- Keeps the cache from CMake Cache configuration (Windows, Linux, macOS)
- Keeps the cache from CMake build objects (Linux/macOS)
- Use ccache for Linux builds
- Use sccache for macOS builds
- Add hashes to the s/ccache keys
- Update cache names with OS-qt/sdl as a prefix
- All old caches are invalidated, delete them or wait for cache eviction
2024-09-07 00:01:55 +02:00
¥IGA
16363ac692 Adding Refresh icon to toolbar (#816) 2024-09-07 00:26:56 +03:00
TheTurtle
13743b27fc shader_recompiler: Implement data share append and consume operations (#814)
* shader_recompiler: Add more format swap modes

* texture_cache: Handle stencil texture reads

* emulator: Support loading font library

* readme: Add thanks section

* shader_recompiler: Constant buffers as integers

* shader_recompiler: Typed buffers as integers

* shader_recompiler: Separate thread bit scalars

* We can assume guest shader never mixes them with normal sgprs. This helps avoid errors where ssa could view an sgpr write dominating a thread bit read, due to how control flow is structurized, even though its not possible in actual control flow

* shader_recompiler: Implement data append/consume operations

* clang format

* buffer_cache: Simplify invalidation scheme

* video_core: Remove some invalidation remnants

* adjust
2024-09-07 00:14:51 +03:00
CrazyBloo
649527a235 libSceRtc HLE (#697)
* SetTick + GetTick, adding functions, checkvalid

* format

* more functions

* format

* implement lizardy's changes

* fix linux build

* various formatting improvements and fixes

* fix sceRtcGetCurrentClockLocalTime,

fixes sceRtcGetCurrentClockLocalTime using lizardy's suggestions.

also implements various formatting improvements and logging changes

* fix mac and linux builds, const for UNIX_EPOCH

* fix ConvertUtcToLocalTime,RtcConvertLocalTimeToUtc

* format rfc2822, format rfc3339

* format

* GetDosTime, GetTime_t, GetWin32FileTime

+various formatting improvements

* sceRtcParseRFC3339, sceRtcParseDateTime
2024-09-06 23:08:32 +02:00
Daniel R.
ffd0f7b53a core/libraries/save_data: Implement wildcard searches on sceSaveDataDirNameSearch (#817)
* libraries/save_data: Implement wildcards and params

* clang-format
2024-09-07 00:01:00 +03:00
psucien
f1fd846762 Merge pull request #770 from OFFTKP/jump
Get rid of unnecessary jump
2024-09-06 22:56:44 +02:00
Stephen Miller
09ce12a868 shader_recompiler: Add more opcodes (#802)
* Implement some missing shader opcodes

Implements TBUFFER_STORE_FORMAT_XYZW, IMAGE_SAMPLE_CD, and IMAGE_GATHER4_C_LZ.

These are seen in https://github.com/shadps4-emu/shadPS4/issues/496.

* Implement IMAGE_STORE_MIP

Not sure if this is the right way to do this, let me know if this needs changing.

* Revert "Implement IMAGE_STORE_MIP"

This reverts commit cff78b5924.
2024-09-06 23:51:20 +03:00
baggins183
bb29224daf Implement V_MOVREL variants (#745)
* shader_recompiler: Implement V_MOVRELS_B32, V_MOVRELD_B32,
V_MOVRELSD_B32

Generates a ton of OpSelects to hardcode reading or writing from each
possible vgpr depending on the value of m0

Future work is to do range analysis to put an upper bound on m0 and
check fewer registers.

* fix runtime info after rebase
2024-09-06 23:47:47 +03:00
Daniel R.
416e23fe76 Fix incompatible format images being passed on overlap resolve (#794) 2024-09-06 20:09:28 +03:00
RDN000
b97b5a7db4 Updated sq translation (#791) 2024-09-06 16:35:42 +03:00
squidbus
8d1641e4d3 vulkan: Add VK_KHR_format_feature_flags_2 to extensions. (#803) 2024-09-06 14:12:29 +03:00
squidbus
1d7ee198e1 shader_recompiler: Add ConvertF16F32 to FP16 detection. (#800) 2024-09-06 14:12:07 +03:00
squidbus
a48bfb0fa6 Standardize game_data directory for game metadata. (#809) 2024-09-06 13:27:23 +03:00
psucien
bad3d5a68e sceKernelWaitEventFlag log noise reduced 2024-09-05 18:25:56 +02:00
TheTurtle
b08baaeb13 video_core: Improve handling of image buffer aliases (#757)
* texture_cache: Use invalidate threshhold

* It's possible for shaders to bind huge buffers and only write to lower portion of it. This is a problem if upper parts of the buffer overlap with render targets. If the image is very far away from buffer base it's unlikely the shader will want to write it, so skip invalidation for it

* video_core: Allow using texture cache to validate texture buffers

* texture_cache: Use buffer cache in all cases for data source

* Allows to correctly handle compute written micro tiled textures

* texture_cache: Fix depth pitch

* kernel: Remove missed code

* clang format

* video_core: Adjust depth format

* buffer_cache: Do not cache buffer views

* thread_management: Do not call createMutex on unlock

* temp: Revert this when pr is done

* buffer_cache: Dont skip cpu uploads with image sync

* Sometimes image does not fully overlap with a region

* fix build

* video_core: Improve invalidate heuristic

* small fixes

* video_core: Hopefully fix some vertex explosions
2024-09-05 17:25:45 +03:00
psucien
4e0dc91040 hot-fix: don't skip draws with DS decompression 2024-09-05 09:58:51 +02:00
Daniel R.
eb2520a240 video_core/renderer_vulkan: Ignore unsupported shader stages (#778)
* video_core/renderer_vulkan: Ignore unsupported shader stages

* clang-format
2024-09-05 00:55:06 +03:00
Stephen Miller
76f4ceda31 Forgot one (#783)
I forgot to readd the processed variable to the for loop.
2024-09-05 00:24:30 +03:00
Stephen Miller
89fb1a024f Update sceBatchMap2 (#782)
* Update sceKernelBatchMap2

Improves placement of new BatchMap op types, and re-adds the BatchMap2 changes from https://github.com/shadps4-emu/shadPS4/pull/602.

* Update some logs.
2024-09-05 00:12:04 +03:00
psucien
28feb77982 Surface management rework (3/3) (#370)
* texture_cache: images overlap support

* renderer_vk: log messages on surfaces which require degamma

* missing barriers

* forced sync2 + better barriers

* Handling of depth target aliasing; added formats compatibility check

* Don't bind empty texel buffers

* Promote r32f textures to depth target if shader expects so

* Promote textures to depth if they use depth tiling

* fix for image leaking; detiler stream buffer removed
2024-09-04 23:47:57 +03:00
menaman123
b9c6093717 Implemented sceKernelMTypeProtect and sceKernelMProtect (#387)
* Fixed ORBIS_KERNEL_MAP_OP_TYPE_PROTECT for batchmap2

* Fix merge

* Changed 4 to ORBIS_KERNEL_MAP_OP_TYPE_PROTECT

* Removed MProtect from AddressSpace

* Added Mtyprotect and moved Mprotect to ORBIS_KERNEL_MAP_OP_PROTECT

* Changed Protect for Windows

* reverted the previous function

* Fixed Mtypeprotect and MProtect

* ''

* ''

* Took out logs stopping build

* clang-format issues

* Fixed the order of mtypeprotect and mprotect in batchmap2

* ''

* update branch

* ''

* Fixed nits

* ''

* Update submodules to latest commits

* ''

* reverted ffmpeg

* ''

* Fixed the nits

* ''

* ''

* ''

* ''

* ''

* Fix clang formatting, DEBUG_ASSERT, and extra spacing

* Fix build issues

* Revert "Fix build issues"

This reverts commit 9185f96ec9.

* ''

* ''

* ''

* Changes for MemoryProt Format

* ''

* ''

* ''
2024-09-04 23:36:23 +03:00
georgemoralis
0dd6e257c5 Merge pull request #573 from polybiusproxy/shader_recompiler/format
shader_recompiler/frontend: Miscellaneous fixes
2024-09-04 23:21:23 +03:00
georgemoralis
bea5f643ca Merge pull request #764 from StevenMiller123/scePadOpenFix
Add "support" for ORBIS_PAD_PORT_TYPE_REMOTE_CONTROL
2024-09-04 17:55:05 +03:00
Sebastian Kassai
0a5c36482e shader_recompiler: change ir.SetScalarReg() -> SetDst() (#777)
Fixes an out-of-bounds crash on Amplitude and Rock Band 4 startup.
2024-09-04 17:30:43 +03:00
georgemoralis
2709b45877 Merge pull request #756 from DanielSvoboda/main
adds TR in all missing places
2024-09-04 12:57:11 +03:00
georgemoralis
ba0c1df545 Merge pull request #768 from squidbus/warning-fix
misc: Fix a few compiler warnings.
2024-09-04 12:56:09 +03:00
offtkp
f31c92ffd1 Get rid of unnecessary jump 2024-09-04 12:31:12 +03:00
squidbus
9eadec849c misc: Fix a few compiler warnings. 2024-09-03 21:32:19 -07:00
Stephen Miller
0b0c82452e Add "support" for pad type remote control
Needed for the Dragon Ball Xenoverse titles.
2024-09-03 19:57:24 -05:00
DanielSvoboda
8ccec1b956 Game List 2024-09-03 20:41:55 -03:00
squidbus
b87e6f3838 vulkan: Emulate depth clip control when extension is not available. (#762) 2024-09-04 01:07:05 +03:00
DanielSvoboda
d24f8ddf03 Icon,Name,Serial,Region,Firmware,Size,Version,Path 2024-09-03 18:42:43 -03:00
georgemoralis
e340583a7f Merge pull request #736 from StevenMiller123/MoreVirtualQuery
Additional VirtualQuery improvements
2024-09-03 23:05:01 +03:00
psucien
34ffd95306 video_core: added VK_LAYER_LUNARG_crash_diagnostic (#751) 2024-09-03 21:56:23 +02:00
DanielSvoboda
d7f799c6b7 fix PL text 2024-09-03 16:19:16 -03:00
DanielSvoboda
3a388fec1e Save,Apply,Restore Defaults,Close
Save,Apply,Restore Defaults,Close
2024-09-03 16:08:49 -03:00
oltolm
e9ef726185 Fix warnings (#749)
* suppress warning in vk_mem_alloc.h

* fix warnings in cheats_patches.cpp
2024-09-03 21:41:59 +03:00
Paris Oplopoios
42ab101908 Set CF correctly on BLSR/BLSMSK patch (#724)
* Set CF correctly on BLSR patch

* Set CF correctly on BLSMSK patch
2024-09-03 21:40:46 +03:00
squidbus
d48836d5ae shader_recompiler: Limit src0 to 4-bit in V_CVT_OFF_F32_I4 (#759) 2024-09-03 21:37:52 +03:00
squidbus
6012e3cc86 vulkan: Improve format support info for vertex buffer formats. (#753) 2024-09-03 21:08:29 +03:00
Paris Oplopoios
cfe49fbfba Preserve flags on some patched instructions (#720)
* Preserve flags on some patched instructions

* Move flag saving to Save/RestoreContext
2024-09-03 20:41:35 +03:00
Paris Oplopoios
f4ff0d493c Set CF correctly on BLSI patch (#722)
* Set CF correctly on BLSI patch

* Remove redundant CLC
2024-09-03 20:41:22 +03:00
illusion0001
1b37f61102 Update patch url (#755)
* Update patch url

* Update cheats_patches.cpp
2024-09-03 20:39:32 +03:00
DanielSvoboda
6877cc12c1 Merge branch 'main' of https://github.com/DanielSvoboda/shadPS4 2024-09-03 14:18:33 -03:00
DanielSvoboda
ee7e6f0b1d add more information download patches
If the patch does not appear, it may be that it does not exist for the specific serial and version of the game. It may be necessary to update the game.
2024-09-03 14:17:57 -03:00
DanielSvoboda
83a7bac945 Update src/qt_gui/translations/pl_PL.ts
Co-authored-by: Marcin Mitura <mitura07@wp.pl>
2024-09-03 13:45:43 -03:00
DanielSvoboda
51610cba43 add TR for PR 700 2024-09-03 13:27:51 -03:00
georgemoralis
a1377029cc Merge pull request #738 from DanielSvoboda/Fix-download-Cheats/Patches-on-Linux
Fix download Cheats/Patches on Linux
2024-09-03 16:16:37 +03:00
TheTurtle
f087f43736 shader_recompiler: Implement render target swizzles when no format is available (#739)
* shader_recompiler: Use null image when shader is compiled with unbound sharp

* video_core: Refactor and render target swizzles

* liverpool_to_vk: Add missing swap format from RDR

* video_core: Refactor shader recompiler interface

* Makes it much easier to pass runtime information to the recompiler and have it treated as part of the shader key. Also pulls out most runtime state from Info struct

* shader_recompiler: Avoid some asserts
2024-09-03 14:04:30 +03:00
baggins183
3f8a8d3a24 video_core: Add bounds checking for subspan use in liverpool functions (#717) 2024-09-03 13:58:45 +03:00
georgemoralis
1bf9be89bf Merge pull request #748 from squidbus/vk-loading
vulkan: Better support for directly linking a Vulkan support library.
2024-09-03 11:59:38 +03:00
georgemoralis
a886b44347 Merge pull request #740 from LeDragoX/complete-msys2
docs: update SDL and Qt steps for MSYS2
2024-09-03 11:59:28 +03:00
georgemoralis
d56708c87d Merge pull request #743 from squidbus/macos-build-guide
Note macOS and Xcode version requirements.
2024-09-03 11:59:00 +03:00
squidbus
af107d4ef9 vulkan: Better support for directly linking a Vulkan support library. 2024-09-03 01:40:51 -07:00
squidbus
bf7a91b5f7 Note macOS and Xcode version requirements. 2024-09-02 23:19:22 -07:00
georgemoralis
6bc3ed57a6 Merge pull request #741 from squidbus/macos-build-guide
Add macOS build guide.
2024-09-03 08:31:21 +03:00
squidbus
3cb16d9c4f Add macOS build guide. 2024-09-02 22:26:39 -07:00
Plínio Larrubia
cf9ec6548c docs: fix sdl and qt steps for MSYS2
- Add required dependencies
- Add Qt steps
- Fix README typo
2024-09-02 21:31:41 -03:00
DanielSvoboda
f2c7fac20b Update CMakeLists.txt 2024-09-02 20:18:36 -03:00
DanielSvoboda
9ccd60459d Update CMakeLists.txt 2024-09-02 15:30:50 -03:00
DanielSvoboda
6944a16407 Update linux-appimage-qt.sh 2024-09-02 15:30:40 -03:00
DanielSvoboda
e1ca445b78 Fix download Cheats/Patches on Linux 2024-09-02 13:25:12 -03:00
Stephen Miller
04fbd7b9e7 Clang 2024-09-02 10:04:56 -05:00
Stephen Miller
9a772aa2f5 Clang fix 2024-09-02 10:03:39 -05:00
Stephen Miller
dc1313ea3c Always assign memory_type and offset
The memory_type default is based on fpPS4 behavior.

I'm not entirely sure how the offset should be handled, but since the value we use defaults to 0 anyway, that should be better than leaving random data in that area.
2024-09-02 09:43:27 -05:00
Stephen Miller
0503054b40 Grammar 2024-09-02 09:39:46 -05:00
Stephen Miller
f8d71b59d9 Fix MemoryManager::VirtualQuery header
The headers for these functions were technically not the same as the actual function definition. This didn't cause any emulation issues, but caused some weird issues with my IDE.
2024-09-02 09:30:32 -05:00
Stephen Miller
816288962b Assign is_stack and is_pooled
Properly set these values to avoid potential errors, and future proof for when these types of memory are emulated.
2024-09-02 09:28:35 -05:00
georgemoralis
b7e0df34a7 Merge pull request #731 from RDN000/main
Add Albanian translation
2024-09-02 13:25:29 +03:00
RDN000
0a1fed9b75 Update Albanian translation 2024-09-02 10:14:54 +02:00
RDN000
26201f3dae Add Albanian translation 2024-09-02 08:37:54 +02:00
georgemoralis
3b0e251518 Merge pull request #729 from StevenMiller123/VirtualQuery-Fixes
Fix VirtualQuery
2024-09-02 07:18:33 +03:00
Stephen Miller
f3a62891ed Fix VirtualQuery
Found this issue while looking at code from fpPS4. VirtualQuery was setting is_commited to true when the queried region was reserved.

Also sets the protection value in the VirtualQueryInfo, as I'd assume not storing that could cause issues in games.

This fixes all games currently hanging on the sceKernelmprotect stub.
2024-09-01 22:39:22 -05:00
baggins183
101aeb920d Implement V_BFM_B32 and V_FFBH_U32 (#663)
* Implement V_BFM_B32

* Render.Recompiler: Implement V_FFBH_U32

* fix clang-format
2024-09-01 22:20:42 +03:00
Paris Oplopoios
f514fdfd18 Replace recursive_mutex with mutex (#708)
* Replace recursive_mutex with mutex

* Move mutex lock outside of ObtainBuffer
2024-09-01 22:20:22 +03:00
georgemoralis
1d8359f828 Merge pull request #705 from tGecko/ci-git-hash
CI: include build date and git hash in build artifact name
2024-09-01 22:19:12 +03:00
georgemoralis
2311070203 Merge pull request #716 from mavethee/main
translations: Correct machine translations in Polish
2024-09-01 22:18:37 +03:00
Grégoire Hage
1bd9317509 Implement V_READFIRSTLANE_B32 (#681)
* Implement V_READFIRSTLANE_B32

* refactor
2024-09-01 21:49:42 +03:00
Emulator-Team-2
e4d8857eb5 Adding missing data format - (1_5_5_5) (#701)
* added data_format=17 and num_format=0

* Set `sceSaveDataDialogIsReadyToDisplay` temporary to 1 until is properly implemented.
2024-09-01 21:49:01 +03:00
Random
0276ed92a6 Force PIE usage on linux (#625)
* force PIE usage on linux

* get rid of explicit -pie linker flag

* change UNIX with UNIX AND NOT APPLE in CMakeLists.txt

* cmake: add proper check for PIE support at link time

---------

Co-authored-by: Mikhail Paulyshka <me@mixaill.net>
2024-09-01 21:48:34 +03:00
Marcin Mitura
450c825873 Correct machine translations 2024-09-01 19:18:59 +02:00
tGecko
ad22e2cfac include build date
use pwsh instead of cmd on windows workflows
2024-09-01 17:24:53 +02:00
georgemoralis
63d78aee0a Merge pull request #703 from squidbus/mac-tcb
macos: Remove need for TLS patch by storing TCB pointer in FS.
2024-09-01 17:34:23 +03:00
georgemoralis
dbc603cdc8 Merge pull request #677 from mavethee/macos-path
[macOS] Place `shadPS4/user` folder in `Application Support`
2024-09-01 17:33:33 +03:00
georgemoralis
5e089ada08 Merge pull request #691 from Xphalnos/main
Qt: Update Game List
2024-09-01 17:12:11 +03:00
georgemoralis
9b6cd9ec9f Merge pull request #686 from Exhigh/savedata-fix-5
savedata: Handle a missing case in saveDataMount
2024-09-01 17:11:14 +03:00
tGecko
df7e25d9aa Merge branch 'shadps4-emu:main' into ci-git-hash 2024-09-01 13:03:52 +02:00
tGecko
079ae9ef43 include git short hash in artifact filename 2024-09-01 12:40:51 +02:00
Marcin Mitura
7415cee34c [macOS] Place shadPS4/user folder in Application Support
Partially resolves #509
2024-09-01 11:49:29 +02:00
squidbus
9e5047947b macos: Remove need for TLS patch by storing TCB pointer in FS. 2024-09-01 02:22:42 -07:00
georgemoralis
723068049e Merge pull request #702 from tGecko/improve-german-translation
Add/improve German translation
2024-09-01 12:09:05 +03:00
georgemoralis
1157e6e764 Merge pull request #699 from bigQY/zh_CN
update zh_CN translation
2024-09-01 12:08:52 +03:00
georgemoralis
c9aa7c802d Merge pull request #698 from Fejbien/patch-1
whitespace added, "patch" consistency Polish translation
2024-09-01 12:08:34 +03:00
georgemoralis
7b95b08a20 Merge pull request #700 from CrazyBloo/cheatsAtRuntime
only apply cheats at runtime
2024-09-01 12:08:14 +03:00
tGecko
6510083778 improve german translation 2024-09-01 10:33:46 +02:00
CrazyBloo
5b2779d548 only apply cheats at runtime 2024-09-01 01:44:51 -04:00
Fabian
946dec7df8 whitespace added, "patch" consistency 2024-09-01 01:00:24 +02:00
huss2342
7551f061ad Added arabic translation (#693)
* added arabic translation

* added arabic translation
2024-09-01 01:01:14 +03:00
Mmpr87
0c90ab92da Added Persian(Farsi) Translation (#689)
* Adding Persian(Farsi)Translation

* Update Copyright
2024-09-01 01:01:01 +03:00
georgemoralis
95d58b8b18 Merge pull request #695 from squidbus/mac-translations
ci: Remove translations folder from Windows/macOS upload.
2024-09-01 00:17:40 +03:00
georgemoralis
3abc7d6b43 Merge pull request #685 from squidbus/patch-fixes
core: Fix CPU patch stack issues
2024-08-31 23:43:26 +03:00
squidbus
95943e42ed ci: Remove translations folder from Windows upload. 2024-08-31 13:28:22 -07:00
squidbus
5aaab7f841 ci: Remove translations folder from macOS upload. 2024-08-31 13:12:59 -07:00
psucien
766c286d62 libraries: gnmdriver: sceGnmValidateCommandBuffers added 2024-08-31 22:01:08 +02:00
Xphalnos
fb5c7c5062 Qt: Update Game List 2024-08-31 17:30:19 +02:00
bigqy
382f104369 update zh_CN translation 2024-08-31 22:48:59 +08:00
Exhigh
ebfed28f6b savedata: Handle a missing case in saveDataMount
This should potentially fix the mount issue in Resistance : Retribution (CUSA32636)

Testing is welcome.
2024-08-31 08:21:23 +04:00
squidbus
61db246c5e core: Fix CPU patch stack issues 2024-08-30 20:47:07 -07:00
psucien
4182740384 Don't load sync2 ext if nv_checkpoints isn't used 2024-08-31 00:10:47 +02:00
psucien
ca1613258f video_core: added support for indirect draws (#678)
* video_core: added support for indirect draws

* barriers simplified
2024-08-30 22:59:56 +02:00
georgemoralis
3d375a28eb Merge pull request #671 from Xphalnos/main
Reorganization of includes (Part 2)
2024-08-30 22:10:49 +03:00
jnack
69d4fecdfe Allow graphics/compute shader list for skipping (#674)
* Allow graphics/compute shader list for skipping

* nintendo ultra 64 + formatting

* indentation..

* allow empty array in ShouldSkipShader

* simpler check for skip hashes
2024-08-30 21:51:20 +03:00
Xphalnos
7886761476 Reorganization of includes (Part 2) 2024-08-30 15:48:21 +02:00
squidbus
6080066f75 vulkan: Few fixes for MoltenVK (#670)
* vulkan: Use SPIR-V 1.5 when Vulkan version is 1.2

* vulkan: Fix Format2_10_10_10 mismap
2024-08-30 16:40:39 +03:00
Daniel R.
84f1690dfb Merge branch 'shadps4-emu:main' into shader_recompiler/format 2024-08-30 15:40:17 +02:00
georgemoralis
f1fe6b9f96 Merge pull request #668 from squidbus/fix-patch-stack
Initialize patch stack before thread TLS.
2024-08-30 14:58:34 +03:00
squidbus
6e552aac6a Initialize patch stack before thread TLS. 2024-08-30 04:43:11 -07:00
adjonesey
0f87d1e3d4 Remove from_compute check in texture cache invalidation (#665)
* Remove from_compute check in texture cache invalidation (hack)

* Remove from_compute parameter

---------

Co-authored-by: Adam Jones <a.c.jones@outlook.com>
2024-08-30 13:01:59 +03:00
georgemoralis
68fa5e292f Merge pull request #666 from bigol83/patch-3
Update Italian translation
2024-08-30 12:39:30 +03:00
bigol83
bdfff5e8ea Update it.ts 2024-08-30 11:01:48 +02:00
georgemoralis
cdd193d5b1 Merge pull request #638 from squidbus/f16c
Add patches for F16C instructions under Rosetta 2.
2024-08-30 11:16:21 +03:00
georgemoralis
30ab2b7f71 Merge pull request #658 from DanielSvoboda/main
fix tr
2024-08-30 11:15:09 +03:00
DanielSvoboda
f2b6843f9d fix tr 2024-08-29 23:11:20 -03:00
squidbus
a17150960f Add patches for F16C instructions under Rosetta 2. 2024-08-29 17:31:25 -07:00
Grégoire Hage
1651db24fe Implement S_XNOR_B64 (#654) 2024-08-30 02:43:12 +03:00
IndecisiveTurtle
6bf42aa985 vk_graphics_pipeline: Fix texel buffer offset 2024-08-30 01:09:39 +03:00
georgemoralis
8d41695e74 Merge pull request #651 from LeDragoX/pt-br-update-1
Update PT-BR localization
2024-08-30 01:08:07 +03:00
IndecisiveTurtle
cb5190e31a vk_graphics_pipeline: Fix copy paste error 2024-08-30 00:59:12 +03:00
IndecisiveTurtle
cf706f8cc7 buffer: Don't leak texel buffers, blacklist stream buffer with texel buffers 2024-08-30 00:26:08 +03:00
IndecisiveTurtle
6fbbe3d79b translator: Add missed flow instruction 2024-08-30 00:26:01 +03:00
IndecisiveTurtle
fab390b860 spirv: More correct texel buffer usage 2024-08-30 00:25:56 +03:00
Plínio Larrubia
5a96ac1a4f Update PT-BR translation
- Support DLC texts
- Fixed some errors on Cheats (Trapaças) translation
2024-08-29 18:22:36 -03:00
georgemoralis
ac2fa103fa Merge pull request #649 from f1amy/ru-translation-fixes
ru DLC translation and translation fixes
2024-08-29 23:47:47 +03:00
georgemoralis
7e7854346d Merge pull request #650 from DanielSvoboda/main
Fix creation files.json in 'Download All Patches'
2024-08-29 23:47:25 +03:00
DanielSvoboda
751f6f9bab Fix creation files.json in 'Download ALL' 2024-08-29 17:26:06 -03:00
Flamy
1c835a1aa4 ru DLC translation and translation fixes 2024-08-29 23:59:52 +05:00
georgemoralis
07c8c28000 Merge pull request #647 from DanielSvoboda/main
fix tr cheats_patches.cpp
2024-08-29 19:44:04 +03:00
TheTurtle
66e96dd944 video_core: Account of runtime state changes when compiling shaders (#575)
* video_core: Compile shader permutations

* spirv: Only specific storage image format for atomics

* ir: Avoid cube coord patching for storage image

* spirv: Fix default attributes

* data_share: Add more instructions

* video_core: Query storage flag with runtime state

* kernel: Use std::list for semaphore

* video_core: Use texture buffers for untyped format load/store

* buffer_cache: Limit view usage

* vk_pipeline_cache: Fix invalid iterator

* image_view: Reduce log spam when alpha=1 in storage swizzle

* video_core: More features and proper spirv feature detection

* video_core: Attempt no2 for specialization

* spirv: Remove conflict

* vk_shader_cache: Small cleanup
2024-08-29 19:29:54 +03:00
DanielSvoboda
aef7498c49 fix tr cheats_patches.cpp
the 2 words were not being translated
2024-08-29 13:21:58 -03:00
georgemoralis
790d19e59b Merge pull request #646 from kiwidoggie/patch-1
Add /hostapp support
2024-08-29 17:03:35 +03:00
georgemoralis
3ae18c9073 Merge pull request #645 from mavethee/dlc-polish-localization
DLCs - Polish localization
2024-08-29 17:02:55 +03:00
georgemoralis
83e343f77e Merge pull request #637 from shadps4-emu/amdgpu/indirect_dispatch
video_core: added support for indirect dispatches (gfx only)
2024-08-29 17:02:37 +03:00
kiwipuppeh
81eb3a4d14 Add /hostapp support
In the case of certain games, such as Battlefield 4 (CUSA00110), the local pathing will resolve to /hostapp instead of /app0, which works fine on PS4, but was failing to resolve to any meaningful mount in shadPS4, this corrects this issue when running from eboot.bin directly.
2024-08-29 08:22:19 -04:00
Marcin Mitura
37786e06c2 DLCs - Polish localization
Translates strings introduced in #596.
2024-08-29 13:27:11 +02:00
psucien
9d349a1308 video_core: added support for indirect dispatches (gfx only) 2024-08-29 12:32:37 +02:00
bigol83
c997490645 DLC Italian translation (#644) 2024-08-29 13:31:48 +03:00
bigol83
600c5079ce Cheats/patches Italian translation (#642)
* Update it.ts

* Update it.ts
2024-08-29 13:11:17 +03:00
Dzmitry Dubrova
8827c72a1c Add DLC support (#596)
* fs/core: Add DLC support

* fs/core: Fix extraction paths

* Fix DLC mounting

* gui: Add translations
2024-08-29 12:55:40 +03:00
georgemoralis
18e95ae4c0 Merge branch 'main' into shader_recompiler/format 2024-08-29 10:18:12 +03:00
¥IGA
e1382b43c8 Update French translation (#641) 2024-08-29 10:02:36 +03:00
DanielSvoboda
614a23b369 Cheats/Patches (#493)
* Cheats/Patches

Adds the possibility of applying cheats/patches according to the specific game serial+version

The logic for adding modifications has not yet been implemented!

Interface based on issues/372 https://github.com/shadps4-emu/shadPS4/issues/372

[X]Front-end
[]Back-end

Create a synchronized fork of the cheats/patches repository

* Clang Format

* separate files

The code has been separated into separate files as suggested by georgemoralis.
Added the Patch tab, which has not been implemented yet.
Added the 'applyCheat' area to apply the modification, not implemented yet...
And added LOG_INFO.

* reuse

* initial implementation of cheat functionality

* Update cheats_patches.cpp

sets all added buttons to the size of the largest button.
and fixes some aesthetic issues.

* move eboot_address to module.h

fixes the non-qt builds and makes more sense to be there anyway

* Patchs menu and fixes

adds the possibility to download Patches, it does not modify the memory yet.
and some other fixes

* MemoryPatcher namespace, activate cheats on start

* format

* initial patch implementation

* format

* format again...

* convertValueToHex

* Fixes

Choosing which cheat file to use.
And some other fixes

* fix bytes16, bytes32, bytes64 type patches

If a patch is any of these types we convert it from little endian to big endian

* format

* format again :(

* Implement pattern scanning for mask type patches

* add check to stop patches applying to wrong game

previously if you added a patch to a game, but closed the window and opened a different game it would still try to apply the patch, this is now fixed

* format

* Fix 'Hint' 0x400000 |  and Author

* Management |save checkbox | shadps4 repository

MENU - Cheats/Patches Management (implementing Patches)
save patches checkbox
add shadps4 repository

* Load saved patches, miscellaneous fixes

* Fix an issue with mask patches not being saved

* format + remove debug log

* multiple patches | TR translation for cheats/patches

* clang

* ENABLE_QT_GUI

* OK

* move memory_patcher to qt_gui

* clang

* add cheats hu_HU

* fix log

* Remove the item from the patchesListView if no patches were added (the game has patches, but not for the current version)

---------

Co-authored-by: CrazyBloo <CrazyBloo@users.noreply.github.com>
2024-08-29 07:18:50 +03:00
georgemoralis
a6a9fff666 Merge pull request #636 from CyntexMore/main
Added HU translation
2024-08-29 00:08:51 +03:00
psucien
3fbb68048e shader_recompiler: frontend: SOPC and SOPK handling separated; more cmp opcodes (#634) 2024-08-28 22:27:47 +02:00
CyntexMore
55be97bca3 feat(translation): hu_HU translated 2024-08-28 22:15:03 +02:00
georgemoralis
d2e4a200fb Merge pull request #631 from Emulator-Team-2/Fix
Misc fixes
2024-08-28 22:26:50 +03:00
georgemoralis
a291800418 Merge pull request #632 from bigol83/patch-2
Update Italian translation
2024-08-28 21:13:47 +03:00
bigol83
365e17f64e Update it.ts 2024-08-28 19:14:33 +02:00
Emulator-Team-2
af18728962 clang-format fix 2024-08-28 18:45:32 +02:00
Emulator-Team-2
6f938a10ce added data_format=3 and num_format=4 2024-08-28 18:12:59 +02:00
Emulator-Team-2
08036d2b49 added data_format=36 and num_format=9 2024-08-28 18:10:23 +02:00
georgemoralis
e57d55e6e9 Merge pull request #624 from Exhigh/savedata-fix-4
savedata: Add another missed case in saveDataMount
2024-08-28 18:07:50 +03:00
georgemoralis
163019e3dc Merge pull request #629 from counter185/gamepad-tp-and-reconnect
Auto reconnect controllers + touchpad functionality
2024-08-28 18:03:13 +03:00
counter185
bc661039c5 get rid of one space 2024-08-28 14:25:07 +02:00
counter185
2e2f3bb2c6 clang format 2024-08-28 14:22:59 +02:00
counter185
89bdd3bba2 it's actually 1920x941 2024-08-28 14:15:01 +02:00
counter185
15fc267f0d Update controller.h 2024-08-28 13:58:37 +02:00
counter185
0b24ac6991 actually get rid of that comment 2024-08-28 13:56:49 +02:00
counter185
698dade864 * 2024-08-28 13:53:07 +02:00
counter185
4e6e90dfb9 add touchpad support, auto reconnect 2024-08-28 13:48:50 +02:00
georgemoralis
be49871c68 Merge pull request #618 from vertver/main
video_core: Added copyGPUCmdBuffers option
2024-08-28 14:00:26 +03:00
squidbus
905d49fd96 memory: Fixes for direct memory allocation. (#615)
* memory: Size direct memory based on requested flexible memory.

* memory: Guard against OrbisProcParam without an OrbisKernelMemParam.

* memory: Account for alignment in direct memory suitability checks and add more debugging.
2024-08-28 13:42:53 +03:00
georgemoralis
dcc4762c7e Merge pull request #628 from squidbus/pkg-fix
crypto: Fix deallocation of key data while in use.
2024-08-28 13:42:01 +03:00
squidbus
4a6ce1e0d6 crypto: Fix deallocation of key data while in use. 2024-08-28 03:39:51 -07:00
georgemoralis
878fac7f94 Merge pull request #626 from InvoxiPlayGames/special-pad
pad: add support for configurable special pad class
2024-08-28 13:24:37 +03:00
squidbus
da966bedfd kernel: Reimplement POSIX semaphores using std::counting_semaphore. (#600) 2024-08-28 13:13:33 +03:00
Vinicius Rangel
8192eaa668 video_core: re-enable culling (#551) 2024-08-28 13:11:55 +03:00
0xsegf4ult
9f4e55a8e7 shader_recompiler: constant propagation bitwise operations + S_CMPK_EQ_U32 fix (#613)
* rebase on main branch impl of V_LSHL_B64

* remove V_LSHR_B64

* fix S_CMPK_EQ_u32

* fix conflicts

* fix broken merge

* remove duplicate cases

* remove duplicate declaration
2024-08-28 13:10:21 +03:00
InvoxiPlayGames
9d59ea06c7 clang-format fix: scePadOpenExt 2024-08-28 11:10:20 +01:00
tGecko
990da7edcc DOCS: Correct and expand windows build instructions (#617)
* correct and expand windows build instructions

* fix numbering

* remove instructions to clone a different branch
2024-08-28 13:10:04 +03:00
InvoxiPlayGames
550cf0188d return proper error code for scePadOpen failure 2024-08-28 10:51:30 +01:00
InvoxiPlayGames
79e86a39fc add support for configurable special pad type 2024-08-28 10:27:51 +01:00
Anton Kovalev
dfb30ea955 Use pair of spans instead of references in copy command buffers function 2024-08-28 11:24:15 +02:00
Random
c37679154e Handle PM4 type-2 packets (#556)
* video_core: handle PM4 type-2 packets

* video_core: rewrite pm4 comand type handling into a switch statement
2024-08-28 09:53:27 +02:00
Anton Kovalev
87ccfdfbbd Fixed type on function 2024-08-28 09:42:31 +02:00
Exhigh
ed42db47af savedata: Add another missed case in saveDataMount
This should potentially fix Deadpool (CUSA03528) #554.
2024-08-28 08:52:20 +04:00
Anton Kovalev
1a02efbd15 clang-format style fix 2024-08-28 05:42:48 +02:00
georgemoralis
e4254ebdaa Merge pull request #605 from SolidStateDj/add-toggle-fullscreen
Add a toggle fullscreen button
2024-08-28 06:32:21 +03:00
georgemoralis
e65bf19118 Merge pull request #620 from GermanAizek/fixes
crypto: added destructors and fixed direct memleaks
2024-08-28 06:31:07 +03:00
Semenov Herman
860b935054 crypto: added destructors fix memleak FakeKeyset, DebugRifKeyset, PkgDerivedKey3Keyset 2024-08-28 01:32:14 +03:00
Anton Kovalev
3842993a43 Use input dcb and ccb instead of copy 2024-08-28 00:21:12 +02:00
Anton Kovalev
3d46a5d492 Do not shrink buffer's size on submit 2024-08-27 23:33:24 +02:00
Anton Kovalev
595b845df0 clang-format fix 2024-08-27 23:31:04 +02:00
Anton Kovalev
659e7a4675 video_core: Added copyGPUCmdBuffers option 2024-08-27 23:16:14 +02:00
psucien
3eb47226d9 libraries: kernel: fix scePthreadMutexattrSettype error value return 2024-08-27 22:25:46 +02:00
psucien
371d1d009a Added missing headers and 2D MSAA image type 2024-08-27 19:17:23 +02:00
Lizardy
59b651be07 [Libs] Error Codes (#612)
* ngs2: all errors w/ official names

* ajm errors

* gnm errors

* random errors

* clang

* random error

* linux

---------

Co-authored-by: microsoftv <6063922+microsoftv@users.noreply.github.com>
2024-08-27 15:53:38 +03:00
Grégoire Hage
288db9a0cf Implement V_LSHL_B64 (#608) 2024-08-27 14:15:32 +03:00
georgemoralis
62f165a7e4 Merge pull request #610 from vladmikhalin/avplayer-handle-init-errors
AvPlayer: Handle Initialization errors
2024-08-27 09:59:19 +03:00
Vladislav Mikhalin
2d354a095a AvPlayer: Handle Initialization errors 2024-08-27 09:32:42 +03:00
SolidStateDj
7ecc1d3be0 Add a toggle fullscreen button
Assigns F11 as the key for toggling fullscreen.
2024-08-26 18:27:31 -04:00
psucien
af4356bfe1 shader_recompiler: fix for pattern detection in TryDisableAnisoLod0
Also fix for forgotten log message params.
2024-08-26 23:49:36 +02:00
psucien
3e94b533b6 libraries: kernel: skip for protection op; processing logic fixes (#602) 2024-08-26 23:14:22 +02:00
georgemoralis
287c3a4ab1 Merge pull request #599 from Exhigh/savedata-fix-3
savedata: Handle another missed case in saveDataMount
2024-08-27 00:02:41 +03:00
Exhigh
7c7d04133e savedata: Handle another missed case in saveDataMount
This should potentially fix (CUSA01019) - The Walking Dead: The Complete First Season.
2024-08-26 19:34:35 +04:00
Plínio Larrubia
ad8373095a fix typo in LOG_INFO (#559)
fix: file name typo constant_propogation_pass.cpp

fix typo from 'symbol_vitrual_addr' variable

fix typo in emit_spirv_context_get_set.cpp

fix typo from constant_propagation_pass.cpp in CMakeLists

fix typo in these some config.cpp functions
- setSliderPosition
- setSliderPositionGrid
- getSliderPosition
- getSliderPositionGrid

fix typo inside src\core\aerolib\stubs.cpp

fix typo in a comment from src\core\file_format\pkg.cpp

fix typo inside src\core\file_sys\fs.cpp + fs.h
- NeedsCaseInsensiveSearch -> NeedsCaseInsensitiveSearch

fix 2 function typos: sceAppContentAddcontEnqueueDownloadByEntitlemetId and sceAppContentAddcontMountByEntitlemetId

fix typo on comment inside src\core\libraries\kernel\file_system.cpp

fix typo on src\core\libraries\videoout\driver.cpp

fix typo in src\core\memory.cpp

fix typo from comment in src\qt_gui\game_list_utils.h

fix typo in src\video_core\amdgpu\liverpool.h
- window_offset_disble to window_offset_disable

fix typo from comments in src\video_core\host_shaders\detile_m32x1.comp + detile_m32x2.comp
- subotimal -> suboptimal

fix typo from comment in src\video_core\renderer_vulkan\renderer_vulkan.cpp
- dimentions -> dimensions

fix typo from enum in src\common\debug.h and other files
- MarkersPallete -> MarkersPalette

fix last typo in src\video_core\amdgpu\pm4_opcodes.h
- PremableCntl -> PreambleCntl
2024-08-26 15:22:11 +03:00
Lizardy
aae6e5be73 shader_recompiler: BUFFER_ATOMIC_SWAP Opcode (#566)
* shader_recompiler: BUFFER_ATOMIC_SWAP Opcode

* clang

* follow 32 convention

---------

Co-authored-by: microsoftv <6063922+microsoftv@users.noreply.github.com>
2024-08-26 15:21:20 +03:00
Batu
cd6b5abccf added tr language support (#587) 2024-08-26 13:20:53 +03:00
Plínio Larrubia
6520f3ca17 feat: add pt_BR translation (#584)
* feat: add pt_BR translation
- Made by @LeDragoX
- Revised by @gabsF

* fix: change translation string 'Mostrar Tela Inicial' to 'Mostrar Splash Inicial'
2024-08-26 13:20:40 +03:00
Cristóbal Martí Méndez
d3b6b17c75 Add spanish translation (#583)
* Add spanish transalation

* Update es_ES.ts
2024-08-26 13:20:26 +03:00
Marcin Mitura
0b5616c493 Polish localization (#580)
Initial polish localization for shadPS4
2024-08-26 13:20:12 +03:00
georgemoralis
3627393707 Merge pull request #593 from shadps4-emu/fix/better_timings
libraries: kernel: fix for inaccurate `sceKernelGetProcessTime`
2024-08-26 10:56:54 +03:00
nishinji
6e340bcdc1 Fix ja_JP.ts (#594)
* Fix ja_JP.ts

* a
2024-08-26 10:56:11 +03:00
psucien
78e24852f8 libraries: kernel: fix for inaccurate sceKernelGetProcessTime 2024-08-26 08:54:38 +02:00
georgemoralis
7f6d08a3c8 Merge pull request #589 from greggameplayer/feature/TBUFFER_STORE_FORMAT_XY
Implement missing TBUFFER_STORE_FORMAT_XY
2024-08-26 09:40:40 +03:00
nishinji
7aa8cf992f Add Japanese translation (#591) 2024-08-26 09:39:49 +03:00
¥IGA
e16aa2a012 Update French tranlations (#592) 2024-08-26 09:39:24 +03:00
greggameplayer
86870e7c8d Implement TBUFFER_STORE_FORMAT_XY 2024-08-26 03:39:38 +02:00
Daniel R.
fae0c0ae85 core/kernel: Miscellaneous memory fixes (#557)
* core/libraries/kernel: Fix inaccurate direct memory size

* core/memory: Fix available dmem query on non-free dmem areas

* core/kernel: return ENOMEM if memory area size is zero

* core/kernel: Fix returns on `sceKernelAvailableDirectMemorySize`

* core/memory: Remove unneeded size alignment
2024-08-26 04:14:21 +03:00
Yury
5d7407dc7d Add ru translation (#579) 2024-08-26 03:22:30 +03:00
bigol83
bcc3a10557 Add Italian translation (#585)
* Update it.ts

* Update it.ts
2024-08-26 03:22:07 +03:00
psucien
6fd4264b5d video_core: vk_rasterizer: fix for crash on markers with nullGpu 2024-08-25 22:24:10 +02:00
DanielSvoboda
2a737d0800 V_NOP | PfpSyncMe | S_CMPK_EQ_U32 (#426)
* V_NOP

V_NOP = Do nothing

* PfpSyncMe

PfpSyncMe ensures that all previous commands are completed before continuing.
'break' should be enough for now

* S_CMPK_EQ_U32

S_CMPK_EQ_U32
SCC = (D.u == SIMM16)

* S_CMPK_EQ_U32

* OperandField::Undefined:

* Update translate.cpp

remove  OperandField::Undefined:

* Update image_view.cpp

[Render.Vulkan] <Error> image_view.cpp:ImageViewInfo:109: Storage image (num_comps = 4) requires swizzling [BGRA]
format 43 dst_sel 3886

* Update liverpool_to_vk.cpp

* S_CMPK_EQ_U32

* S_CMPK_EQ_U32
2024-08-25 22:07:46 +02:00
psucien
b687ae5e34 GnmDriver: Clear context support (#567)
* gnmdriver: added support for gpu context reset

* shader_recompiler: minor validation fixes

* shader_recompiler: added `V_CMPX_GT_I32`

* shader_recompiler: fix for crash on inline sampler access

* compilation warnings and dead code elimination

* amdgpu: fix for registers addressing

* libraries: videoout: reduce logging pressure

* shader_recompiler: fix for devergence scope detection
2024-08-25 23:01:05 +03:00
Daniel R
3a8a666df0 shader_recompiler/frontend: fix IMAGE_SAMPLE_CD format
* Seen on Dark Souls
2024-08-25 19:53:45 +02:00
georgemoralis
c2ddfe51e1 Merge pull request #569 from CyntexMore/main
Added fancy formating to the README and made some texts "better"
2024-08-25 17:27:53 +03:00
georgemoralis
abc7f55c06 Merge pull request #572 from dima-xd/qt_translations
gui: Implement gui translations
2024-08-25 17:24:55 +03:00
Dzmitry Dubrova
26b5661dea ci: Fix linux-qt CI 2024-08-25 16:03:25 +03:00
SaynedBread
6a87c37aeb docs: Removed misinformation 2024-08-25 14:37:17 +02:00
SaynedBread
5664d45305 docs: Updated Status 2024-08-25 14:12:16 +02:00
Daniel R.
977371e7e1 shader_recompiler/frontend: fix IMAGE_GATHER4_C_LZ format 2024-08-25 14:06:41 +02:00
Daniel R
ba140b9680 shader_recompiler/frontend: add information on instruction format assert 2024-08-25 13:17:59 +02:00
Daniel R
5691838eca shader_recompiler/frontend: fix V_NOP instruction format 2024-08-25 13:17:24 +02:00
Dzmitry Dubrova
21ce86003b Merge branch 'qt_translations' of https://github.com/dima-xd/shadPS4 into qt_translations 2024-08-25 13:59:51 +03:00
Dzmitry Dubrova
83b43363fa ci: Fix CI 2024-08-25 13:59:22 +03:00
¥IGA
e603165e2b Implement French translation 2024-08-25 13:31:45 +03:00
Dzmitry Dubrova
7766a653d5 ci: Add LinguistTools to CIs 2024-08-25 13:18:46 +03:00
Dzmitry Dubrova
3f445eca40 gui: Implement gui translations 2024-08-25 12:17:54 +03:00
SaynedBread
41a93dcae4 docs: Added some fancy Markdown formating to the README 2024-08-25 02:54:46 +02:00
SaynedBread
1e90f45941 docs: Added some fancy Markdown formating to the README 2024-08-25 02:53:13 +02:00
Daniel R.
d241867c7b shader_recompiler/frontend: implement V_NOP 2024-08-24 23:18:04 +02:00
TheTurtle
c79b10edc1 video_core: Bloodborne stabilization pt1 (#543)
* shader_recompiler: Writelane elimination pass + null image fix

* spirv: Implement image derivatives

* texture_cache: Reduce page bit size

* clang format

* slot_vector: Back to debug assert

* vk_graphics_pipeline: Handle null tsharp

* spirv: Revert some change

* vk_instance: Support primitive restart on list topology

* page_manager: Adjust windows exception handler

* clang format

* Remove subres tracking

* Will be done separately
2024-08-24 22:51:47 +03:00
Vinicius Rangel
9e4fc17e6c shader_recompiler: handle fetch shader address offsets (#538)
* shader_recompiler: handle fetch shader address offsets

parse index & offset sgpr from fetch shader and propagate them to vkBindVertexBuffers

* shader_recompiler: fix fetch_shader when offset is not present

* video_core: propagate index/offset SGPRs to vkCmdDraw instead of offsetting the buffer address

* video_core: add vertex_offset to non-indexed draw calls

renamed fetch offset fields
2024-08-24 17:36:40 +02:00
georgemoralis
208575d392 Merge pull request #560 from vladmikhalin/avplayer-and-texture-cache-fixes
Fixed video dimensions alignment and image cache
2024-08-24 17:24:36 +03:00
georgemoralis
8b0fd59149 Merge pull request #558 from Exhigh/savedata-fix-2
savedata: Add another missing case to saveDataMount
2024-08-24 17:14:10 +03:00
Vladislav Mikhalin
41dec15869 Fixed video dimensions alignment and image cache 2024-08-24 16:59:30 +03:00
Exhigh
6a84f6e188 savedata: Add another missing case to saveDataMount
This helps Five Nights at Freddy's: Sister Location (CUSA17983) boot and is playable.
Fixes issue #554
2024-08-24 17:48:39 +04:00
Herman Semenov
243fd0be78 core,shader_recompiler: align structures for 64-bit platforms (#447)
Decreased sizes:
 * TextureDefinition 32 bytes -> 24 bytes
 * PortOut 72 bytes -> 64 bytes
 * Request 48 bytes -> 40 bytes
 * WindowSystemInfo 32 bytes -> 24 bytes
2024-08-24 16:18:12 +03:00
Random
fc745ee767 Fix a few issues with the intel anv vulkan driver from mesa (#514)
* add fallback format for d16UnormS8Uint which is not supported by intel

* fix depth/stencil buffer creation issues causing asserts in intel driver
2024-08-24 14:50:46 +02:00
psucien
2c540fbecb Merge pull request #497 from xezrunner/xezrunner/cfg-msb-fix
shader_recompiler: fix BranchTarget sign flip for sopp.simm
2024-08-24 11:39:10 +02:00
georgemoralis
0b3a88cf22 Merge pull request #550 from richarm4/patch-1
Fix typo in CONTRIBUTING.md comment
2024-08-24 10:06:09 +03:00
Matthew Wells
0ed4614464 Fix typo in CONTRIBUTING.md comment
"intitialize" -> "initialize"
2024-08-23 18:29:00 -07:00
georgemoralis
9852f95c58 Merge pull request #547 from GermanAizek/fix2
Fixed invalid set public exponent Crypto::DebugRifKeyset_init()
2024-08-23 22:41:15 +03:00
georgemoralis
df03783948 Merge pull request #546 from abouvier/cmake-compat
cmake: fix version constraints
2024-08-23 22:40:12 +03:00
¥IGA
0c5b91e1fb Warnings fixes (#541)
* Warnings fixes

* Warnings fixes
2024-08-23 22:38:55 +03:00
Herman Semenov
a0774c0e87 Fixed invalid set public exponent Crypto::DebugRifKeyset_init() 2024-08-23 22:04:55 +03:00
Alexandre Bouvier
a71d0d8dbb cmake: fix version constraints 2024-08-23 19:40:11 +02:00
georgemoralis
fda2fdae69 Merge pull request #544 from Exhigh/Savedata-Fix
savedata: Handle missed case in saveDataMount
2024-08-23 20:05:52 +03:00
Exhigh
6545b09b74 savedata: Handle missed case in saveDataMount
This should help P5D get past the intro.

P.S:  The game requires Fiber and USBD modules to boot.
2024-08-23 16:27:03 +04:00
georgemoralis
bce3a9c9e7 Merge pull request #530 from Xphalnos/main
Lot of small fixes
2024-08-22 21:54:20 +03:00
georgemoralis
3310fd9a1f Merge pull request #531 from shadps4-emu/pad_fix
possible R2/L2 fix
2024-08-22 19:58:43 +03:00
georgemoralis
3e8d7c2040 possible R2/L2 fix 2024-08-22 19:43:45 +03:00
Xphalnos
d4be3dbb31 Lot of small fixes 2024-08-22 18:01:30 +02:00
georgemoralis
83bcced16c Merge pull request #502 from Borchev/ROMappedFileWorkaround
Workaround for readonly memory mapping of files issue
2024-08-22 13:49:19 +03:00
georgemoralis
746559658c Merge pull request #525 from shadps4-emu/libc_removal
HLE libc removal
2024-08-22 11:59:56 +03:00
georgemoralis
12a65e3fb8 LLE libc removal 2024-08-22 11:24:31 +03:00
georgemoralis
834a25fa2b Merge pull request #521 from GermanAizek/fix
Added const reference params if possible, removed less 16 size
2024-08-22 10:18:02 +03:00
Herman Semenov
aed9a737d6 Added const reference params if possible, removed less 16 size 2024-08-22 02:56:01 +03:00
Aiden Turner
ca4b520272 Added logging for debugging configs (#518)
* added logging for config file

* forgot a setting

* fixed bloated settings logging.

* fixed compile error
2024-08-22 01:52:08 +03:00
Vladislav Mikhalin
79680c50c0 Misc fixes (#517)
* Misc fixes

* Removed the skip for draw calls without RTs

* Remove Srgb image stores to rework later
2024-08-21 23:54:23 +03:00
georgemoralis
dfd305ff77 Update Debugging.md
fixed reuse
2024-08-21 22:16:03 +03:00
Sebastian Kassai
ba0a6ab038 Expand documentation on configuration and debugging (#513)
* documents: more info on config.toml

* documents: add Debugging

* documents: link to Debugging in README

* documents: link to main branch for Debugging

Once it's merged, it should link properly.
Quickstart already exists in main.

* documents: remove "troubleshooting" from Debugging

Not entirely relevant.

* documents: elaborate on a few points with stack traces

* documents: formatting, indentation fixup

* documents: remove unnecessary indent

* documents: fix some inline code blocks + misc

* documents: move the technical jargon out of Quickstart

* documents: improve configuration sections

Simplified the Quickstart config listing, added more technical info to the Debugging listing.

* documents: link quickstart config link to proper section

* documents: something ate my hash symbol

* documents: use *:Critical for log silencing example

* documents: add note about Start Without Debugging

* documents: use correct CUSA code in example
2024-08-21 22:13:06 +03:00
georgemoralis
132ca9c5a8 Merge pull request #506 from squidbus/macos-translocation
Untranslocate app bundle path if needed on macOS.
2024-08-21 18:13:08 +03:00
georgemoralis
3426ad8cc0 Merge pull request #511 from dima-xd/sample
avplayer: Fix data returned by sceAvPlayerGetAudioData
2024-08-21 16:53:01 +03:00
Dzmitry Dubrova
6d0d2eaa59 avplayer: Fix sceAvPlayerGetAudioData 2024-08-21 14:37:34 +03:00
squidbus
9275b0966e Untranslocate app bundle path if needed on macOS. 2024-08-21 03:06:10 -07:00
Borchev
fc300b5265 Fix unmapping bug 2024-08-20 20:07:32 -07:00
Borchev
6596fe091c Workaround for readonly memory mapping of files issue 2024-08-20 16:10:38 -07:00
georgemoralis
958db559c6 Merge pull request #495 from jdpatdiscord/main
Allow builds on MSYS2 & improve Windows build steps documentation
2024-08-21 02:08:40 +03:00
TheTurtle
3f9c86ad33 vk_pipeline_cache: Avoid recompiling new shaders on each new PL (#480)
* cfg: Add one more divergence case

* Seen in RDR shaders

* renderer_vulkan: Reduce number of compiled shaders

* vk_pipeline_cache: Remove some unnecessary checks
2024-08-21 02:00:24 +03:00
Lizardy
32cb3649d3 rtc errors (#485)
* rtc errors

* add system libs to cmakelists

* this.[func]

* fix errors

* declaration

* log handle addr

* missed

---------

Co-authored-by: microsoftv <6063922+microsoftv@users.noreply.github.com>
2024-08-21 00:47:17 +03:00
xezrunner
42c4d8353a Fix control.sopp.simm flipping sign in CFG label generation
This used to cause a fatal crash that would prevent Amplitude [CUSA02480] from booting beyond initialization.

A conditional true label would get an address starting with 0xffff...., which wasn't realistic with the given shader.

The multiplication by 4 causes the value to have its MSB set due to the smaller type.
2024-08-20 22:48:28 +02:00
jdp_
6080649b7c Merge branch 'main' of https://github.com/jdpatdiscord/shadPS4 2024-08-20 14:28:34 -04:00
jdp_
34a1339a2b Allow builds on MSYS2 & improve Windows build steps documentation 2024-08-20 14:27:26 -04:00
jdp_
e070dab2f0 Allow builds on MSYS2 & improve Windows build steps documentation 2024-08-20 12:26:35 -04:00
kotn3l
c60bfbe2a5 Set game window size based on the config (in windowed mode) (#481)
* Set windowed mode size based on config

* fix formatting oops

* emulator.cpp clang format fix (hopefully?)

* formatting fix for real
2024-08-20 15:39:56 +03:00
georgemoralis
95c89ca6a9 Merge pull request #375 from notgonnaleo/main
qt_gui: Added feature to toggle (show/hide) game list view
2024-08-20 11:47:00 +03:00
georgemoralis
8d90e6d997 Merge pull request #475 from bax-cz/main
PlayGo: basic implementation, credits to red-prig
2024-08-20 11:43:37 +03:00
bax-cz
0b3356bd1a linux build fix 2024-08-20 09:28:07 +02:00
bax-cz
8f7b3c2e8c clang: fixed formatting 2024-08-19 20:40:23 +02:00
Random
09da94b7b2 fix gcc compilation error in vk_graphics_pipeline.cpp (#477)
gcc fails to infer the type of the two parts of a ternary expression whose types are different but both contain an implicit cast operator to the same type
2024-08-19 18:45:42 +03:00
¥IGA
9d45b99171 Adding icons to categories (#479) 2024-08-19 18:42:23 +03:00
Dzmitry Dubrova
1f416134e7 Add messages to asserts (#476) 2024-08-19 15:29:13 +03:00
bax-cz
516a3e7104 PlayGo: basic implementation, credits to red-prig 2024-08-19 13:14:14 +02:00
Lizardy
138c9ce787 [WIP] libSceNgs2 (#439)
* init ngs2

* clang

* ngs2 HLE for missing LLE

* clang

* clang

* orbis ngs2 error codes

* resolve, error codes, ngs2_impl

* clang

* clang

* mac atomic

* clang

* mac

* clang

---------

Co-authored-by: microsoftv <6063922+microsoftv@users.noreply.github.com>
2024-08-19 10:03:05 +03:00
georgemoralis
360b7e1d71 Merge pull request #471 from DanielSvoboda/Copy_submenu
Copy info - submenu
2024-08-19 09:45:44 +03:00
DanielSvoboda
d5e978c6f2 Copy submenu 2024-08-19 01:25:15 -03:00
georgemoralis
09b71a9a3f Merge pull request #466 from DanielSvoboda/alphabetical-order-console-language
Alphabetical order console language
2024-08-18 23:37:34 +03:00
DanielSvoboda
c58ad6d3b5 alphabetical order console language 2024-08-18 17:24:41 -03:00
DanielSvoboda
c9a502b31a alphabetical order console language 2024-08-18 17:24:35 -03:00
georgemoralis
5551c61000 Merge pull request #463 from Xphalnos/main
Misc changes
2024-08-18 22:26:53 +03:00
DanielSvoboda
ed96a9fb8e alphabetical order console language 2024-08-18 16:15:06 -03:00
DanielSvoboda
5891900c6e alphabetical order console language 2024-08-18 16:04:48 -03:00
Vladislav Mikhalin
1c898d0842 Fix stencil buffer not being used (#464) 2024-08-18 20:37:29 +03:00
Xphalnos
70576035b0 Misc changes 2024-08-18 17:56:29 +02:00
Lizardy
63938ba8dd shader_recompiler: BUFFER_ATOMIC & DS_* Opcodes (#428)
* BUFFER_ATOMIC | DS_MINMAX_U32

- Emission of BufferAtomicU32
- Addition of Buffer opcodes to IR
- Translator for BUFFER_ATOMIC Opcode
- Translators for DS_MAXMIN_U32 Opcodes

* Clang Format & UNREACHABLE_MSG

* clang

* no crash on compile

* clang

* Shared Atomics

* reuse

* rm vscode

* resolve

* opcodes

* side effects

* attempt fix shader comp

* failed attempt to fix

* clang

* do correct vdata set (still fails)

* clang

* fixed BUFFER_ATOMIC_ADD, DS_ADD_U32 fails

* data share should work

* clang

* resource tracking for buffer atomic

* clang

* distinguish RTN opcodes

* clean IsBufferInstruction

---------

Co-authored-by: microsoftv <6063922+microsoftv@users.noreply.github.com>
2024-08-17 22:06:06 +03:00
¥IGA
3be2e4b2b8 About Window (#458) 2024-08-17 19:13:37 +03:00
georgemoralis
ecf7f36763 Merge pull request #455 from Xphalnos/main
Qt-GUI: Improvements (Part 2)
2024-08-17 10:58:11 +03:00
georgemoralis
43e92bb987 Merge pull request #456 from StevenMiller123/sem_fix
Improve posix_sem functions
2024-08-17 10:57:19 +03:00
Xphalnos
73adc3ed1b Logger update 2024-08-17 08:22:31 +02:00
Stephen Miller
2935ca0fef clang-format fix 2024-08-16 17:22:06 -05:00
Stephen Miller
9fce6f7c01 Add SetPosixErrno function
I used a switch statement for future proofing, as some codes differ between Windows, Mac, Linux, or Orbis. Right now I've only added the codes that should be possible to encounter.
2024-08-16 17:20:21 -05:00
Stephen Miller
93f14e8ae9 Might fix clang-format? 2024-08-16 15:10:20 -05:00
Stephen Miller
6510af90be another clang-format fix 2024-08-16 15:07:19 -05:00
Stephen Miller
f36440dc09 clang-format fix 2024-08-16 14:55:55 -05:00
Stephen Miller
786db80742 Improve posix_sem functions
Use ErrSceToPosix to update g_posix_errno appropriately after sem function calls.
2024-08-16 14:33:48 -05:00
Xphalnos
558fcf6597 Reduce window size 2024-08-16 19:48:18 +02:00
Dzmitry Dubrova
dcb057dd7f misc changes, part ?/? (#441)
* gui: add option to boot a game by choosing elf file

* core: some small implementations

* fs: implement open func

* add some validations

* spirv: add image format

* video_core: add eR16Uint to formats
2024-08-16 20:16:15 +03:00
Dzmitry Dubrova
9e810b7524 core: Some small pad stubs (#424)
* core: Some small pad stubs

* core: handle scePadSetLightBar wrong lightbar setting
2024-08-16 20:11:55 +03:00
TheTurtle
1d1c88ad31 control_flow_graph: Initial divergence handling (#434)
* control_flow_graph: Initial divergence handling

* cfg: Handle additional case

* spirv: Handle tgid enable bits

* clang format

* spirv: Use proper format

* translator: Add more instructions
2024-08-16 20:05:37 +03:00
Vinicius Rangel
ff33b00c3a gpu: primitive_restart bit check typo (#454) 2024-08-16 20:03:19 +03:00
Alexandre Bouvier
154771cca5 cmake: prefer system renderdoc library (#452) 2024-08-16 19:49:32 +03:00
Vinicius Rangel
444cdfbba5 gpu: check right register for primitive restart index (#453)
@red-prig suggestion

Not sure if it is possible to have trash in the register (maybe if primitive restart is toggled off), but just to make sure.
2024-08-16 19:49:15 +03:00
Alexandre Bouvier
ad60ae1d40 cmake: prefer system ffmpeg library (#451) 2024-08-16 18:56:47 +03:00
Herman Semenov
c1fb5d5bca core,shader_recompiler: added const ref filesystem::path and removed if type size less 16 (#446) 2024-08-16 11:36:05 +03:00
georgemoralis
3197ad336e Merge pull request #400 from vladmikhalin/basic-av-player
Basic AvPlayer implementation
2024-08-16 11:17:56 +03:00
Xphalnos
910e96c420 Qt-GUI: Improvements 2024-08-16 09:45:59 +02:00
Vladislav Mikhalin
23dddca1f0 last minute fixes 2024-08-16 10:30:48 +03:00
georgemoralis
5c70adc6ab Merge pull request #449 from squidbus/libc++
Enable -fexperimental-library when using clang libc++
2024-08-16 10:28:03 +03:00
squidbus
62741434db Enable -fexperimental-library when using clang libc++ 2024-08-15 23:22:38 -07:00
Vladislav Mikhalin
b3ef959b25 Fixed threading, migrated to CVs, added looping 2024-08-15 22:02:04 +03:00
Vladislav Mikhalin
5c4ac98d49 fixing build on linux and mac 2024-08-15 22:00:51 +03:00
Vladislav Mikhalin
0d6e8e227a Fixed some sound and threading issues.
Details:
* Switched SDL audio mutex to RW lock. This fixes games that continiously call SetVolume in a different thread (like Ghostbusters)
* Added contition to buffer audio packets independent of video packets. This fixes choppy audio across many games.
* Increased the number of audio frame buffers from 2 to 4. Just in case.
* Migrated to std::jthread and std::mutex from pthreads.
* Fixed a race condition with joins on avplayer close that caused a crash.
2024-08-15 22:00:51 +03:00
Vladislav Mikhalin
e33ff10212 Added some logs, fixed some crashes, fixed align. 2024-08-15 22:00:51 +03:00
Vladislav Mikhalin
b5c69189e5 avplayer WIP 2024-08-15 22:00:51 +03:00
georgemoralis
e96e66eedd starting 0.2.1 2024-08-15 19:58:18 +03:00
georgemoralis
da9b26fa1e tagged 0.2.0 release 2024-08-15 19:41:42 +03:00
psucien
d32e584839 libraries: vide_out: redundant assert removed 2024-08-15 17:41:53 +02:00
¥IGA
0b1d7839a3 Qt-GUI: Cleaning the option menu (#443) 2024-08-15 17:49:13 +03:00
Vinicius Rangel
d45563f92c gpu: handle primitive restart index register (#438) 2024-08-15 15:43:27 +03:00
¥IGA
a0fb47b0ab Qt-GUI: Adding User Name selection (#440)
* Qt-GUI: Adding User Name selection

* fix

* fix 2

* fix 3 (thanks Poly)

* Change the username emplacement
2024-08-15 15:06:09 +03:00
¥IGA
8c77d4dde6 Ability to change username (#432) 2024-08-15 12:33:10 +03:00
psucien
9adc638220 shader_recompiler: basic implementation of BUFFER_STORE_FORMAT_ (#431)
* shader_recompiler: basic implementation of buffer store w\ fmt conversion

* added `Format16` dfmt
2024-08-15 00:15:07 +02:00
Dzmitry Dubrova
6f4e1a47b9 core: misc changes (#430)
* core: misc changes

* video_core: add some formats for detiling

* clang format
2024-08-14 20:37:05 +02:00
Stephen Miller
5f963772a0 scePthreadAttrSetstack implementation (#391)
* scePthreadAttrSetstack implementation

Used by Final Fantasy XV

* Address Comments

Verify parameters before calling the pthread_attr_setstack function.
Swap uses of SCE prefix with ORBIS prefix.

* Quick fix

Addresses the newest review and appears to fix issues caused in games by my previous commit.
2024-08-14 18:43:00 +02:00
TheTurtle
d332a5e611 spirv: Simplify shared memory handling (#427)
* spirv: Simplify shared memory handling

* spirv: Ignore clip plane

* spirv: Fix image offsets

* ir_pass: Implement shared memory lowering pass

* NVIDIA doesn't like using shared mem in fragment shader and softlocks driver

* spirv: Add log for ignoring pos1
2024-08-14 19:01:17 +03:00
georgemoralis
4b11dabd9e Merge pull request #429 from polybiusproxy/memory-vq
core/memory: Fix error on virtual queries of reserved regions
2024-08-14 17:16:46 +03:00
Daniel R.
6cc4a682fd core/memory: Fix error on virtual queries of reserved regions 2024-08-14 15:34:17 +02:00
psucien
27cb218584 video_core: CPU flip relay (#415)
* video_core: cpu flip is propagated via gpu thread now

* tentative fix for cpu flips racing

* libraries: videoout: better flip status handling
2024-08-14 11:36:11 +02:00
Samuel Fontes
ad3b6c793c qt-gui: Added GPU device selection functionality (#399)
* qt-gui: Added GPU device selection functionality

* Getting list of GPU only when application starts

* Fixed formatting

* Fixed formatting

* Fixed formatting

* Added warning when GPU doesn't support API version.

* Changed Unsupported Vulkan Version warning

* Removed unused size checking on GetPhysicalDevices

The method is only being called once so this doesn't make sense. It was some left over of me trying to get this done some other way.

* Fix formatting

* Fix formatting

* SettingsDialog: Passing physical devices as span

* Fixed formatting
2024-08-14 00:21:06 +03:00
TheTurtle
d8b9d82ffa video_core: Various fixes (#423)
* video_core: Various fixes

* clang format
2024-08-13 20:05:10 +03:00
counter185
bb159eafb9 Basic gamepad support through SDL (#407)
* Add basic gamepad support through SDL

* lightbar, vibration, code style changes

* okay fine

* one day clang format will finally pass
2024-08-13 12:54:08 +03:00
squidbus
d1a033b6af Fix some Vulkan validation errors on macOS. (#420) 2024-08-13 10:30:47 +03:00
TheTurtle
1fb0da9b89 video_core: Crucial buffer cache fixes + proper GPU clears (#414)
* translator: Use templates for stronger type guarantees

* spirv: Define buffer offsets upfront

* Saves a lot of shader instructions

* buffer_cache: Use dynamic vertex input when available

* Fixes issues when games like dark souls rebind vertex buffers with different stride

* externals: Update boost

* spirv: Use runtime array for ssbos

* ssbos can be large and typically their size will vary, especially in generic copy/clear cs shaders

* fs: Lock when doing case insensitive search

* Dark Souls does fs lookups from different threads

* texture_cache: More precise invalidation from compute

* Fixes unrelated render targets being cleared

* texture_cache: Use hashes for protect gpu modified images from reupload

* translator: Treat V_CNDMASK as float

* Sometimes it can have input modifiers. Worst this will cause is some extra calls to uintBitsToFloat and opposite. But most often this is used as float anyway

* translator: Small optimization for V_SAD_U32

* Fix review

* clang format
2024-08-13 09:21:48 +03:00
Vinicius Rangel
dfcfd62d4f spirv: fix image sample lod/clamp/offset translation (#402)
* spirv: fix image sample lod/clamp translation

* spirv: fix image sample offsets

* fix ImageSample opcodes & offset emission
2024-08-13 09:12:38 +03:00
Lizardy
5eecd089ab thread_management.cpp: Various Mandatory Threading Fixes | Resolve #398 (#394)
* Handle empty mutex attribute

- scePthreadMutexInit did not return default when the mutex attributes were empty, now it does

* fix conditional unsafety

* Update thread_management.cpp

fix deref

* accurate heap api

- modified HeapAPI to a struct with preset function fields
- utilized the full array parameter passed to _sceKernelRtldSetApplicationHeapAPI

* fallback to std malloc

* clang format

* Declare all HeapAPI replacement functions

- calloc, realloc, memalign, reallocalign, malloc_stats, malloc_stats_fast, malloc_usable_size
- posix_memalign corrected parameters

* resolve suggestions

- `using` definition replacement for AppHeapAPI
- linux uses heap_malloc, windows uses std::malloc

---------

Co-authored-by: microsoftv <6063922+microsoftv@users.noreply.github.com>
2024-08-13 09:08:03 +03:00
Borchev
18f1799280 Add partial unmap support (#322)
* Add partial unmap support

* undo accidental whitespace removal

* Fix assertions

* Adjust Reserve and Free functions for partial unmapping
2024-08-13 09:05:30 +03:00
psucien
a8b6a55559 Merge pull request #419 from squidbus/macos-fix
Enable VK_EXT_robustness2 nullDescriptor only if supported.
2024-08-13 00:15:48 +02:00
squidbus
284035d3e2 Enable VK_EXT_robustness2 nullDescriptor only if supported. 2024-08-12 14:52:46 -07:00
psucien
a15a93997c unlink sync2 if not present (tentative fix for #418) 2024-08-12 22:52:21 +02:00
psucien
2ba3221fc9 fix for Linux compilation (#416) 2024-08-12 20:10:42 +02:00
psucien
3d0fdf11f0 Build stabilization (#413)
* shader_recompiler: fix for float convert and debug asserts

* libraries: kernel: correct return code on invalid semaphore

* amdgpu: additional case for cb extents retrieval heuristic

* removed redundant check in assert

* amdgpu: fix for linear tiling mode detection fin color buffers

* texture_cache: fix for unexpected scheduler flushes by detiler

* renderer_vulkan: missing depth barrier

* texture_cache: missed slices in rt view; + detiler format
2024-08-12 17:23:01 +03:00
psucien
ace39957ef Video Core: debug tools (#412)
* video_core: better use of rdoc markers

* renderer_vulkan: added gpu assisted validation

* renderer_vulkan: make nv_checkpoints operational

* video_core: unified Vulkan objects names
2024-08-12 13:46:45 +02:00
psucien
3e2d4d6b79 Gnmdriver: More functions (#410)
* libraries: gnmdriver: added `sceGnmGetGpuCoreClockFrequency`

* libraries: gnmdriver: `sceGnmSetVgtControl` added

* amdgpu: gpuclock64 in write eop packet
2024-08-12 13:29:57 +02:00
georgemoralis
834e3a500e added a fix for audio (seems that some games calls sceAudioOutInit twice) Thanks Roamic for tracing this! 2024-08-11 13:16:50 +03:00
georgemoralis
924e9de97a Merge pull request #390 from dima-xd/qt_settings_dialog
gui: Implement settings dialog
2024-08-10 20:59:32 +03:00
Dzmitry Dubrova
3163cd135b gui: Add console language to settings 2024-08-09 18:28:50 +03:00
Dzmitry Dubrova
96fb00d411 gui: Implement settings dialog 2024-08-09 17:28:16 +03:00
Leonardo
14947232a7 Fixed coding style again on the if brackets 2024-08-09 09:24:14 -03:00
georgemoralis
ea4ae56f4d Merge pull request #368 from shadps4-emu/subupdatesAndFixes
Submodules updates + misc fixes
2024-08-09 13:31:57 +03:00
georgemoralis
54b20e2938 update submodules for some neccesary sdl addons 2024-08-09 13:04:00 +03:00
georgemoralis
61a6f633fd mount temp dir 2024-08-09 12:56:03 +03:00
georgemoralis
d81dbc5b5b console language is better name 2024-08-09 12:24:42 +03:00
georgemoralis
425e5491a8 added setting for change language
(reference to https://github.com/shadps4-emu/shadPS4/wiki/PS4-Modules#supported-languages for values)
2024-08-09 11:58:42 +03:00
Leonardo
0d56be629b Removed else that duplicated while commiting the typo fixes 2024-08-08 18:33:06 -03:00
Leonardo
4375e6fa3a Fixed if else formatting 2024-08-08 18:30:58 -03:00
georgemoralis
250b2e4969 small playgo adjustments 2024-08-09 00:02:26 +03:00
georgemoralis
6a2e09a1df update submodules (possible mac fix?) 2024-08-09 00:02:25 +03:00
georgemoralis
3ef69cae5e some pad fixes (fixing metal slug 3 and risk of rain) 2024-08-09 00:02:25 +03:00
georgemoralis
7b7d1cb26f added missing NIDs in thread management 2024-08-09 00:02:25 +03:00
georgemoralis
a83ac4c05e removed duplicate libSceJson2.sprx loading 2024-08-09 00:02:25 +03:00
georgemoralis
816700d34d fixed to scePadGetControllerInformation , (fixes CUSA04892 - power rangers multi user issue) 2024-08-09 00:02:25 +03:00
georgemoralis
4ffb812e94 more linux fix? 2024-08-09 00:02:25 +03:00
georgemoralis
13331cdda9 linux fix? 2024-08-09 00:02:25 +03:00
georgemoralis
5a68224a13 update submodules , fixed sdl update , rewrote config with new toml11 v4 2024-08-09 00:02:24 +03:00
SleepingSnakezzz
ab56665d4b Update latest build instructions.md (#385)
Expands on the existing instructions for more clarity.
2024-08-08 23:43:21 +03:00
Stephen Miller
48c58d5ce0 Kernel-Related Fixes (#386)
* Fix OrbisKernelBatchMapEntry struct

UE4 games and GTA V cause the BatchMap offset to overflow on Windows. Changing the type fixes this, and doesn't seem to cause any regressions on Windows or Linux.

* Implement posix_sem_trywait

Grand Theft Auto V needs this.

* Add missing scePthreadAttrGetdetachstate NID

Noticed this missing NID while testing games.
2024-08-08 23:42:51 +03:00
georgemoralis
3943d13871 Merge pull request #382 from shadps4-emu/smallrevert
revert some sdl switches
2024-08-08 22:55:00 +03:00
georgemoralis
c96854f1f1 Merge pull request #381 from SamuelFontes/issues/361
361: Game directory window appears every time
2024-08-08 22:33:42 +03:00
georgemoralis
e5087877ae revert some sdl switches 2024-08-08 22:31:14 +03:00
georgemoralis
14e56e267a Merge pull request #380 from SamuelFontes/bugfix/refresh_game_list_after_path_change
qt_gui: Refreshing game list after install directory change
2024-08-08 22:25:14 +03:00
SamuelFontes
564b2f6310 361: Game directory window appears every time
qt_gui: When a command line argument is passed to the GUI version, it will always prompt to change the game directory. This happens because the "user" folder is created on the elf or eboot.bin location.
This change will ignore the game install directory configuration at startup when an command line argument is passed.
Since if a game was passed, it should start automatically as this is the expected behaviour.
2024-08-08 16:14:35 -03:00
SamuelFontes
7e5cc6162c qt_gui: Refreshing game list after install directory change
The game list wasn't being refreshed automaticly after a manual directory change on the QT GUI,  now the RefreshGameTable will be called after the GameInstallDialog is executed.
2024-08-08 15:57:43 -03:00
georgemoralis
81be8f270f Merge pull request #379 from ElBread3/dbc-game
qt_gui: Added double-click game icon to start game
2024-08-08 21:51:17 +03:00
ElBread3
351f2e1073 double click to open games 2024-08-08 13:23:44 -05:00
Xphalnos
254b9ffb50 Workflows cleanup + misc fixes (#371)
* Workflows cleanup

* clang-format

* SDL3: Disabling unnecessary options

* Revert CMakeLists.txt changes
2024-08-08 18:19:44 +03:00
IndecisiveTurtle
3fd2abdd5b vk_graphics_pipeline: Fix regression 2024-08-08 17:01:03 +03:00
TheTurtle
341034fc30 filter: Add random library 2024-08-08 15:44:05 +03:00
TheTurtle
381ba8c7a5 video_core: Implement guest buffer manager (#373)
* video_core: Introduce buffer cache

* video_core: Use multi level page table for caches

* renderer_vulkan: Remove unused stream buffer

* fix build

* oops forgot optimize off
2024-08-08 15:02:10 +03:00
Leonardo
ddec111da6 qt_gui: Added feature to toggle (show/hide) game list view
"Show Game List" button originally didn't have any action assigned to it, so this PR is supposed to implement the change that would make sense to it (even though I don't think anyone would be using this too much.)
2024-08-08 00:23:54 -03:00
TheTurtle
159be2c7f4 video_core: Minor fixes (#366)
* data_share: Fix DS instruction

* vk_graphics_pipeline: Fix unnecessary invalidate

* spirv: Remove subgroup id

* vector_alu: Simplify mbcnt pattern

* shader_recompiler: More instructions

* clang format

* kernel: Fix cond memory leak and reduce spam

* liverpool: Print error on exception

* build fix
2024-08-05 13:45:28 +03:00
DanielSvoboda
cdff4af38d add-SurfaceFormat (#365)
[Debug] <Critical> liverpool_to_vk.cpp:SurfaceFormat:395: Unreachable code!

CUSA24620
Unknown data_format=7 and num_format=7

CUSA03082
Unknown data_format=2 and num_format=4

CUSA19345
Unknown data_format=34 and num_format=7

CUSA02411
Unknown data_format=1 and num_format=9

A duplicate was also removed.
2024-08-04 22:17:34 +02:00
DanielSvoboda
7308864537 SampleCountFlagBits::e16 - GetGpuClock64 (#360)
* SampleCountFlagBits::e16

* GpuClock64

* GpuClock64

* Update pm4_cmds.h

* Update pm4_cmds.h
2024-08-04 15:49:43 +02:00
Xphalnos
21462523de Minor Qt GUI update (#363)
* Minor Qt GUI update

* Update gui_context_menus.h

* Update gui_context_menus.h

* Update game_info.cpp
2024-08-04 16:07:10 +03:00
Alexandre Bouvier
6d0a763145 reuse: fix license for externals (#358) 2024-08-02 15:57:16 +03:00
georgemoralis
9f2e73c1fd Merge pull request #356 from squidbus/macos-icon
Add macOS icon.
2024-08-01 08:42:44 +03:00
georgemoralis
305224650a Merge pull request #352 from Xphalnos/main
Better logo for shadPS4
2024-08-01 08:42:24 +03:00
squidbus
be829389ea Add new icons file to reuse config. 2024-07-31 19:40:25 -07:00
squidbus
56b362bb24 Add macOS icon. 2024-07-31 19:37:55 -07:00
georgemoralis
54e831746d Merge pull request #355 from shadps4-emu/git_version
Added Git version info
2024-08-01 02:16:34 +03:00
georgemoralis
bd48e24c32 print git info to log as well 2024-08-01 01:11:58 +03:00
georgemoralis
62e501f31f print git info in windows title 2024-08-01 00:56:10 +03:00
Xphalnos
a4e46c4362 Merge branch 'main' of https://github.com/Xphalnos/shadPS4 2024-07-31 18:15:09 +02:00
Xphalnos
9968d03b90 Better logo for shadPS4 2024-07-31 18:14:22 +02:00
georgemoralis
0ac9f8ffa4 Merge pull request #346 from shadps4-emu/savedata_1
SaveData Fixes
2024-07-31 17:34:44 +03:00
georgemoralis
a121e8e76a Merge pull request #351 from Xphalnos/main
Adding macOS to readme + minor changes
2024-07-31 14:52:22 +03:00
Xphalnos
205c0b961b Adding macOS to readme + minor changes 2024-07-31 13:43:30 +02:00
Dzmitry Dubrova
0fe766db6c core: Implement sceRandomGetRandomNumber (#350) 2024-07-31 14:01:22 +03:00
Xphalnos
a7f2f09a44 Reorganization of includes (#348)
* Reorganization of includes

* fix
2024-07-31 13:25:55 +03:00
raziel1000
413402600b missing eR8Srgb 2024-07-31 02:07:02 -06:00
raziel1000
ec1335911b added data_format=1 and num_format=9 2024-07-31 01:24:44 -06:00
raziel1000
51c89a9958 added data_format=10 and num_format=5 2024-07-31 00:32:50 -06:00
raziel1000
d017bab21e Kernel: added sceKernelConvertLocaltimeToUtc 2024-07-31 00:21:23 -06:00
raziel1000
d7acb93d6f - Implemented sceSaveDataSetParam and sceSaveDataGetParam
- Fixed sceSaveDataDirNameSearch
2024-07-30 22:55:58 -06:00
TheTurtle
a7c9bfa5c5 shader_recompiler: Small instruction parsing refactor/bugfixes (#340)
* translator: Implemtn f32 to f16 convert

* shader_recompiler: Add bit instructions

* shader_recompiler: More data share instructions

* shader_recompiler: Remove exec contexts, fix S_MOV_B64

* shader_recompiler: Split instruction parsing into categories

* shader_recompiler: Better BFS search

* shader_recompiler: Constant propagation pass for cmp_class_f32

* shader_recompiler: Partial readfirstlane implementation

* shader_recompiler: Stub readlane/writelane only for non-compute

* hack: Fix swizzle on RDR

* Will properly fix this when merging this

* clang format

* address_space: Bump user area size to full

* shader_recompiler: V_INTERP_MOV_F32

* Should work the same as spirv will emit flat decoration on demand

* kernel: Add MAP_OP_MAP_FLEXIBLE

* image_view: Attempt to apply storage swizzle on format

* vk_scheduler: Barrier attachments on renderpass end

* clang format

* liverpool: cs state backup

* shader_recompiler: More instructions and formats

* vector_alu: Proper V_MBCNT_U32_B32

* shader_recompiler: Port some dark souls things

* file_system: Implement sceKernelRename

* more formats

* clang format

* resource_tracking_pass: Back to assert

* translate: Tracedata

* kernel: Remove tracy lock

* Solves random crashes in Dark Souls

* code: Review comments
2024-07-30 23:32:40 +02:00
georgemoralis
ac6dc20c3b Merge pull request #343 from Borchev/AddPthreadGetStackSizeThunk
Add pthread_attr_getstacksize thunk
2024-07-30 23:36:39 +03:00
Xphalnos
b3525d7f79 Don't download unnecessary DLLs (#341) 2024-07-30 22:41:31 +03:00
Borchev
361271826e Fix SearchFree function bug (#339) 2024-07-30 22:40:42 +03:00
Borchev
867f38fe13 Add pthread_attr_getstacksize thunk 2024-07-30 12:37:05 -07:00
georgemoralis
c1d01709be kernel: Implement sceKernelSetVirtualRangeName (#338)
* Fix in searchFree should fix #337

* clang format fix

* sceKernelSetVirtualRangeName implementation

* improved vaddr conversion

* updated VirtualQuery to include name too

* unmap also removed name thanks @red_prig

* fixed copy...
2024-07-29 19:08:06 +03:00
georgemoralis
9b1092c995 Merge pull request #336 from squidbus/sem-polyfill
Add sem_timedwait polyfill for macOS.
2024-07-29 07:56:18 +03:00
squidbus
43d60a8ac9 Add sem_timedwait polyfill for macOS. 2024-07-28 16:42:33 -07:00
psucien
aa795f5c59 Merge pull request #335 from VasylBaran/apple_detiler_artifacts_fixup
Fixup for detiler artifacts on macOS
2024-07-28 21:42:05 +02:00
Vasyl Baran
3e6af54ea3 Fixup for detiler artifacts on macOS 2024-07-28 22:21:18 +03:00
Dzmitry Dubrova
aa7c8ca2b6 Implement some pthread calls (#332) 2024-07-28 18:43:44 +03:00
DanielSvoboda
fb145342ce log improvement ThrowInvalidType (#330)
* log improvement ThrowInvalidType

* log improvement ThrowInvalidType
2024-07-28 18:42:54 +03:00
psucien
30198d5ffc Surface management rework (2/3) (#329)
* texture_cache: interface refactoring

* a bit of fixes and improvements

* texture_cache: macro tile extents for bpp 128

* texture_cache: detiler: prefer host memory for large buffers upload
2024-07-28 17:20:42 +02:00
TheTurtle
0d6edaa0a0 Move presentation to separate thread/improve sync (#303)
* video_out: Move presentation to separate thread

* liverpool: Better sync for CPU flips

* driver: Make flip blocking

* videoout: Proper flip rate and vblank management

* config: Add vblank divider option

* clang format

* videoout: added `sceVideoOutWaitVblank`

* clang format

* vk_scheduler: Silly merge conflict

* externals: Add renderdoc API

* clang format

* reuse

* rdoc: manual capture trigger

* clang fmt

---------

Co-authored-by: psucien <168137814+psucien@users.noreply.github.com>
2024-07-28 15:54:09 +02:00
Vinicius Rangel
361412031c fix tls patch on windows (#328)
* fix tls patch on windows

based on TlsGetValue in kernel32.dll

* fix tls patch on windows for expansion slots
2024-07-27 20:16:21 +03:00
Vinicius Rangel
680192a0c4 64 bits OP, impl V_ADDC_U32 & V_MAD_U64_U32 (#310)
* impl V_ADDC_U32 & V_MAD_U64_U32

* shader recompiler: add 64 bits version to get register / GetSrc

* fix V_ADDC_U32 carry

* shader recompiler: removed automatic conversion to force_flt in GetSRc

* shader recompiler: auto cast between u32 and u64 during ssa pass

* shader recompiler: fix SetVectorReg64 & standardize switches-case

* shader translate: fix overflow detection in V_ADD_I32

use vcc lo instead of vcc thread bit

* shader recompiler: more 64-bit work

- removed bit_size parameter from Get[Scalar/Vector]Register
- add BitwiseOr64
- add SetDst64 as a replacement for SetScalarReg64 & SetVectorReg64
- add GetSrc64 for 64-bit value

* shader recompiler: add V_MAD_U64_U32 vcc output

- add V_MAD_U64_U32 vcc output
- ILessThan for 64-bits

* shader recompiler: removed unnecessary changes & missing consts

* shader_recompiler: Add s64 type in constant propagation
2024-07-27 17:23:59 +03:00
TheTurtle
d84b4adc83 semaphore: Yet another race condition fix (#327) 2024-07-27 17:18:18 +03:00
georgemoralis
b7c3ff932b Merge pull request #325 from DanielSvoboda/BUFFER_STORE_DWORDX2
BUFFER_STORE_DWORDX2
2024-07-26 13:17:16 +03:00
georgemoralis
14e78591e8 Merge pull request #320 from shadps4-emu/miscFixes7
Misc Fixes 7
2024-07-26 13:14:04 +03:00
raziel1000
600a13c38f fs: added /download0 mount
fs: get rid of double slashes
2024-07-26 08:07:22 -06:00
georgemoralis
2841eba538 added /dev/urandom 2024-07-26 08:50:39 +03:00
georgemoralis
a4912b8245 commented sem_timedwait for linux untill @squidbus fix it 2024-07-26 08:16:32 +03:00
georgemoralis
64d305faeb cleanup memory_management 2024-07-26 08:08:47 +03:00
raziel1000
a11ac5a687 ... 2024-07-26 07:59:55 +03:00
raziel1000
fa76a723ad Applied feedback from @raphaelthegreat 2024-07-26 07:59:35 +03:00
georgemoralis
b62836d29f forgot a file 2024-07-26 07:53:46 +03:00
georgemoralis
b4916ef2ca some fixup to playgo , makes Worms go further 2024-07-26 07:53:45 +03:00
raziel1000
a475b38e5f - fixed sceAppContentTemporaryDataMount2 2024-07-26 07:53:19 +03:00
raziel1000
f35518d527 sdl window: Added game title (serial, title and app_ver) 2024-07-26 07:53:18 +03:00
raziel1000
f29293c9fb thread_management: some pthread functions 2024-07-26 07:53:18 +03:00
raziel1000
02d4af27df save_data: fix/accuracy for saveDataMem functions 2024-07-26 07:53:18 +03:00
DanielSvoboda
b2ba84aa11 BUFFER_STORE_DWORDX2 2024-07-26 00:25:29 -03:00
TheTurtle
a2cd1669b6 memory: Cleanups and refactors (#324)
* memory: Various fixes

* Added (Partial) sceKernelBatchMap/sceKernelBatchMap2

* memory: Rename and implement batch unmap

* memory: Remove uneeded assert

* memory: Commonize free search routine

* memory: Contains check is inclusive

* memory: Address some alignment issues

* clang format

---------

Co-authored-by: raziel1000 <ckraziel@gmail.com>
2024-07-25 23:01:12 +03:00
georgemoralis
bc28ed66e8 Merge pull request #323 from shadps4-emu/win-fix
address_space: Fix windows placeholder mapping
2024-07-25 12:15:25 +03:00
georgemoralis
8fa6a8c036 clang fix 2024-07-25 11:59:39 +03:00
IndecisiveTurtle
8bb6c0ddf0 address_space: Fix windows placeholder mapping 2024-07-24 22:59:56 +03:00
Younes
1d6a42c39a Merge pull request #319 from DanielSvoboda/fixed--patch-version-is-older
Fixed the button- PKG patch version is older
2024-07-23 23:17:26 -06:00
DanielSvoboda
de6f703d7d I fixed the button, PKG patch version is older
I fixed the button, PKG patch version is older
2024-07-23 19:21:54 -03:00
squidbus
de3864dba7 Install x86_64 MoltenVK from Homebrew. (#318) 2024-07-23 22:17:50 +03:00
georgemoralis
0691e316e0 Merge pull request #317 from VasylBaran/fix_macos_build_molten_vk
Fix macOS builds
2024-07-23 20:26:48 +03:00
VasylBaran
4e81d91f88 Install molten-vk using brew (vs getching it directly with url) to fix macOS build 2024-07-23 20:24:35 +03:00
Foxi
f593204729 Update CONTRIBUTING.md (#316)
Syntax highlighting for the example code
2024-07-23 18:56:31 +03:00
georgemoralis
7f990ea90d Merge pull request #314 from squidbus/game-data-path
Replace remaining uses of `QDir::currentPath() / "user"` with `GetUserPath(UserDir)`.
2024-07-22 18:27:34 +03:00
squidbus
54b5900498 Replace remaining uses of QDir::currentPath() / user with UserDir. 2024-07-21 14:01:10 -07:00
georgemoralis
062ee9e092 one more memory fix 2024-07-21 23:16:46 +03:00
georgemoralis
fe9b07da54 memory fix 2024-07-21 23:14:40 +03:00
georgemoralis
36ec7a1a43 Merge pull request #312 from Borchev/main
Add sceKernelGetDirectMemoryType, update sceKernelReserveVirtualRange
2024-07-21 22:52:50 +03:00
squidbus
70708fc69b Allocate more system reserved space on macOS and document restrictions. 2024-07-21 22:36:12 +03:00
squidbus
615f4e770f Support RIP relative memory operands in patched instructions. 2024-07-21 22:36:12 +03:00
squidbus
088130863b Update MoltenVK to 1.2.10 2024-07-21 22:36:12 +03:00
squidbus
43c0f313f2 Fix user data path on macOS. 2024-07-21 22:36:12 +03:00
squidbus
225ca3ac5b Update format list for rebase and sort and remove duplicates. 2024-07-21 22:36:12 +03:00
squidbus
cf03743631 Restore old keybindings for Windows and Linux. 2024-07-21 22:36:12 +03:00
squidbus
426d82d07b Only use date library on macOS. 2024-07-21 22:36:12 +03:00
squidbus
b557de2c62 Make sure only system managed region can be moved on Windows. 2024-07-21 22:36:12 +03:00
squidbus
26e0fc6ad5 Only patch BMI1 instructions under Rosetta 2. 2024-07-21 22:36:12 +03:00
squidbus
fadf03909c Add a few missing used formats from detiling. 2024-07-21 22:36:12 +03:00
squidbus
3e84d2b76c Define tessellation_factors_ring_addr relative to end of system reserved area. 2024-07-21 22:36:12 +03:00
squidbus
e2adbd75c3 Reduce system reserved space to 0x700000000 and map fixed on macOS. 2024-07-21 22:36:12 +03:00
squidbus
f943ce2710 Address review comments around memory and patches. 2024-07-21 22:36:12 +03:00
squidbus
b3d97dcd89 Make sure system managed memory is in correct location on macOS. 2024-07-21 22:36:12 +03:00
squidbus
685b0bfd5e Fix missing logging on memory manager initalization. 2024-07-21 22:36:12 +03:00
squidbus
4fd3af995e Change format list from vector to array/span. 2024-07-21 22:36:12 +03:00
squidbus
68e1a6a596 Tidy up Vulkan extension list. 2024-07-21 22:36:12 +03:00
squidbus
e06039d727 Set minimum macOS target to 11 and fix compile errors. 2024-07-21 22:36:12 +03:00
squidbus
35bbbb1bd9 Add GitHub Actions workflows for macOS. 2024-07-21 22:36:12 +03:00
squidbus
a4fd0d6386 Remap SDL face buttons to be usable without a keypad. 2024-07-21 22:36:12 +03:00
squidbus
175ffe8ce3 Add fallback system for unsupported pixel formats. 2024-07-21 22:36:12 +03:00
squidbus
35d629a730 Downgrade Vulkan requirement to 1.2 with extensions. 2024-07-21 22:36:12 +03:00
squidbus
d9231b239c Migrate TLS patches to new patching system. 2024-07-21 22:36:12 +03:00
squidbus
6a6d5bad42 Fix one-off bug with user data registers. 2024-07-21 22:36:12 +03:00
squidbus
66fa29059c Add initial macOS support. 2024-07-21 22:36:12 +03:00
Borchev
5419212088 Fix formatting 2024-07-21 12:35:01 -07:00
Borchev
f556f85279 Add sceKernelGetDirectMemoryType and update sceKernelReserveVirtualRange to search for free region when virtual_addr==0 2024-07-21 11:29:24 -07:00
TheTurtle
36d528743a vk_scheduler: Fix pending op check 2024-07-21 17:41:46 +03:00
TheTurtle
403a5a57b1 vk_scheduler: Add api for defering operations (#311) 2024-07-21 15:42:32 +03:00
psucien
64459f1a76 Surface management rework (1/3) (#307)
* amdgpu: proper CB and DB sizes calculation; minor refactoring

* texture_cache: separate file for image_info

* texture_cache: image guest address moved into image info

* texture_cache: surface size calculation

* shader_recompiler: fixed sin/cos

Thanks to red_pring and gandalfthewhite0173

* initial preparations for subresources upload

* review comments
2024-07-20 12:51:21 +03:00
psucien
2b52a17845 externals: Tracy updated to 0.11 2024-07-20 11:30:55 +02:00
TheTurtle
bfe3322977 spirv: Address some regressions in buffer loads (#304)
* spirv: Use correct index

* spirv: Fix indices during buffer load

* clang-format fix

* spirv: Index can be const

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-07-19 19:36:07 +03:00
georgemoralis
60b1aa62a3 Merge pull request #281 from shadps4-emu/miscFixes6
Misc Fixes (forgot the number)
2024-07-19 16:35:19 +03:00
georgemoralis
fcc931956e submodules updated 2024-07-19 09:02:36 +03:00
georgemoralis
d00a2465d5 update fixes for winpthreads 2024-07-19 08:50:55 +03:00
Vladislav Mikhalin
d0d7ef06e8 Fixed buffer_store_* regression (#302) 2024-07-18 21:04:12 +03:00
georgemoralis
c578ccc435 load every available prx from sce_module folder of game 2024-07-18 18:34:08 +03:00
georgemoralis
250bfbb494 Update liverpool_to_vk.cpp 2024-07-18 18:19:46 +03:00
georgemoralis
25e95c959a Merge branch 'main' into miscFixes6 2024-07-18 18:18:10 +03:00
Dzmitry Dubrova
485d4fd0fb kernel: Implement posix_pthread_once (#297)
* kernel: Implement posix_pthread_once

* Fix clang format
2024-07-17 23:34:22 +03:00
georgemoralis
384ea359ed Merge pull request #300 from shadps4-emu/regression-fix
code: Fixup some regressions
2024-07-17 20:40:23 +03:00
georgemoralis
0ed9ea5b85 force imedialog to input "shadps4" as name . That way we can pass games that want username . temp solution till imgui dialog prepared 2024-07-17 20:32:14 +03:00
georgemoralis
439c0be9a6 clang format fix 2024-07-17 17:57:54 +03:00
IndecisiveTurtle
1208661d64 Remove bc6 2024-07-17 17:06:09 +03:00
IndecisiveTurtle
cd009cfec6 shader_recompiler: Normal gathers 2024-07-17 16:49:45 +03:00
IndecisiveTurtle
53fb73e95f rasterizer: Bump staging to 1GB
* Less chances of crashing
2024-07-17 16:22:04 +03:00
IndecisiveTurtle
fcbaec51df liverpool_to_vk: Add more surface formats 2024-07-17 16:19:08 +03:00
IndecisiveTurtle
01dc7f5bfc Add comments 2024-07-17 15:52:40 +03:00
IndecisiveTurtle
b89941fbd9 emulator: Add libSceUlt too 2024-07-17 15:44:20 +03:00
IndecisiveTurtle
0408d8596d emulator: Add libSceFiber and simplify logic 2024-07-17 15:37:32 +03:00
IndecisiveTurtle
b6f011c8f6 event_queue: Add clear flag to events and don't return error 2024-07-17 14:50:26 +03:00
IndecisiveTurtle
c64694c673 gnmdriver: Fix incorrect trailing nop insertion in indirect draws 2024-07-17 14:48:30 +03:00
IndecisiveTurtle
815ce11d2b fs: Defeat games with double slashes 2024-07-17 14:46:37 +03:00
georgemoralis
7ad44317f8 Merge pull request #252 from qurious-pixel/patch-1
Move "game_data" to RW directory inside user folder for linux
2024-07-16 23:05:29 +03:00
Vladislav Mikhalin
f9e96793cc Implemented load_buffer_format_* conversions (#295)
* Implemented load_buffer_format_* conversions

* clang-format insists on ugly things
2024-07-16 15:03:07 +03:00
georgemoralis
c6cdfcfb0b Merge pull request #299 from squidbus/poll-ebusy
Return EBUSY from sceKernelPollEventFlag instead of ETIMEDOUT.
2024-07-16 15:00:38 +03:00
squidbus
3ff11818ab Return EBUSY from sceKernelPollEventFlag instead of ETIMEDOUT. 2024-07-16 04:53:37 -07:00
TheTurtle
0dda5eb6ef fs: Fix nullptr check in GetFile 2024-07-15 16:52:24 +03:00
TheTurtle
3b0a5aed33 fs: Use proper append operator 2024-07-15 15:42:35 +03:00
georgemoralis
0de914995f Merge pull request #293 from shadps4-emu/misc-fixes3
Various linux fixes
2024-07-15 15:25:20 +03:00
IndecisiveTurtle
3c8b3f9a29 fs: Remove some unnecessary string conversions 2024-07-15 15:14:04 +03:00
IndecisiveTurtle
10a7110c7d Merge branch 'misc-fixes3' of https://github.com/shadps4-emu/shadPS4 into misc-fixes3 2024-07-15 15:05:29 +03:00
IndecisiveTurtle
356b59b041 kernel: Remove linux hack
* Breaks many games, only benefits BB. Tbd
2024-07-15 14:51:45 +03:00
IndecisiveTurtle
0599f4e6a5 fs: Fix case of getting the mount itself 2024-07-15 14:50:28 +03:00
georgemoralis
0298889131 windows std::filesystem fixes 2024-07-15 14:50:23 +03:00
georgemoralis
ba0be91c73 clang format fix 2024-07-15 14:18:28 +03:00
IndecisiveTurtle
58d1cbd9b7 ssa_rewrite_pass: Correct phi node type for thread bitmask 2024-07-15 13:34:34 +03:00
georgemoralis
c49afb4c17 Merge pull request #287 from polybiusproxy/dev
gnmdriver: Implement shader functions
2024-07-15 07:47:33 +03:00
jas0n098
6ec4a3d1b9 Replace deprecated pthread functions (#290)
pthread_attr_(set,get)stackaddr are deprecated and don't exist anymore on musl libc
2024-07-15 03:55:58 +03:00
IndecisiveTurtle
ce6a01bd41 clang format 2024-07-15 03:47:10 +03:00
IndecisiveTurtle
dbeed80e3b fs: Actually functional linux case insensitive search 2024-07-15 03:37:30 +03:00
IndecisiveTurtle
26f8fbf628 tls: Use gs segment for linux 2024-07-15 01:48:57 +03:00
IndecisiveTurtle
432defd992 externals: Disable sdl pipewire
* Fixes audio problems in certain games
2024-07-15 01:29:16 +03:00
IndecisiveTurtle
73d4aafc09 liverpool: Num submits should be atomic 2024-07-15 01:28:36 +03:00
IndecisiveTurtle
dd7d232ac3 event_queues: Use std placeholders 2024-07-15 01:28:08 +03:00
psucien
ed37fb32a7 review comments applied 2024-07-14 23:25:41 +02:00
raziel1000
02cba0100d Some functions called by Stardew Valley 2024-07-14 23:23:11 +03:00
georgemoralis
056dcf52ca initial ime dialog handling 2024-07-14 23:23:10 +03:00
georgemoralis
b07bbecab4 replace unreachable with default return in sceKernelClockGettime 2024-07-14 23:23:10 +03:00
georgemoralis
4de9d9cf0d dataformat used by DMC4 2024-07-14 23:23:10 +03:00
raziel1000
ecad6cd1a7 - sceSaveDataDirNameSearch wip, needs testing and more work. 2024-07-14 23:23:10 +03:00
georgemoralis
b4df90d8e4 Merge pull request #292 from shadps4-emu/games/00144
Missing graphics features for flOw & Flower
2024-07-14 23:07:46 +03:00
psucien
034301de88 libraries: gnmdriver: added missing ASC PM4 dump 2024-07-14 18:27:28 +02:00
psucien
746792eda0 libraries: kernel: added sceKernelGetEventId 2024-07-14 18:20:31 +02:00
psucien
dc50cc55fb missing line fix 2024-07-14 17:11:54 +02:00
psucien
b8916787b2 renderer: debug markers for ability to match cmdlists with rdoc captures 2024-07-14 11:37:52 +02:00
psucien
8144f835a9 amdgpu: additional heuristic for CB extents detection
Found in CUSA00144
2024-07-14 10:59:22 +02:00
Live session user
a1fbab5de7 Move game_data to RW directory inside user folder for linux 2024-07-13 16:44:13 -07:00
psucien
f041276b04 recompiler: added support for discard on export with masked EXEC 2024-07-13 14:57:01 +02:00
Daniel R
83c8204d23 shader_recompiler/frontend: Implement opcodes (#289)
`S_ASHR_I32` and `BUFFER_LOAD_DWORD`.
2024-07-13 12:37:25 +03:00
psucien
1b94f07a6a recompiler: proper VS inputs initialization 2024-07-13 01:00:24 +02:00
Daniel R.
379e3b7607 Merge branch 'dev' of https://github.com/polybiusproxy/shadPS4 into dev 2024-07-12 11:04:23 +02:00
Daniel R.
0649234fc2 clang-format 2024-07-12 11:03:55 +02:00
Daniel R
547490a664 Merge branch 'shadps4-emu:main' into dev 2024-07-12 11:00:58 +02:00
Daniel R.
88426e0399 gnmdriver: Implement shader functions 2024-07-12 11:00:11 +02:00
psucien
a75851f7e2 hot fix: reduce geometry staging 3Gb -> 512Mb 2024-07-11 20:29:53 +02:00
georgemoralis
f3baad7fc8 Merge pull request #284 from polybiusproxy/linux-fix
Fix Linux builds
2024-07-11 16:40:21 +03:00
Daniel R.
1421f82bf5 Another ifdef (sigh) 2024-07-11 15:29:36 +02:00
Daniel R.
a049bd3135 Fix Linux builds 2024-07-11 15:16:50 +02:00
georgemoralis
5f26bfc70c Merge pull request #283 from vladmikhalin/fix-shader-attribute-components
Fixed an issue with number of components of shader attributes
2024-07-11 16:11:56 +03:00
Vladislav Mikhalin
262bf3d337 Fixed an issue with number of components of shader attributes 2024-07-11 16:10:23 +03:00
georgemoralis
6a5855b645 Merge pull request #282 from BigTreezZ/patch-3
Update CMakeLists.txt to fix compilation error
2024-07-11 16:07:03 +03:00
Daniel R
914aa10875 Misc implementations and fixes. (#250)
* Implement `sceKernelFtruncate` and `sceKernelUnlink`.

* Remove unused variable.

* Implement `sceKernelReserveVirtualRange`, misc fixes

* Fix `sceKernelReserveVirtualRange`.

* Add TODO on reserve

* Replace comment with assert.

* Add missing copyright header

* Add `UNREACHABLE` for `IOFile::Unlink`.

* Move NT API initialization out of the header

* Fix bug where files were always mapped as read only.

* `clang-format`
2024-07-11 15:35:58 +03:00
TreezZ
090071bf16 Update CMakeLists.txt to fix compilation error
Changed Boost version from 1.83.0 to 1.84.0 (thanks nullptr on Discord)
2024-07-11 13:33:42 +01:00
Vladislav Mikhalin
989f88837d Filesystem errors and Base Array Layers (#280)
* Filesystem errors and Base Array Layers

* Fixed build for POSIX

* forgot 1 file
2024-07-11 14:37:21 +03:00
georgemoralis
59be090c83 Merge pull request #277 from shadps4-emu/kernel/hr_timers
HR Timers support and event queue refactoring
2024-07-11 13:31:59 +03:00
georgemoralis
63795ddb3a fixed CMakeLists 2024-07-11 13:14:42 +03:00
georgemoralis
18f922b28b changed path to boost so it doesn't conflict with previous 2024-07-11 13:14:42 +03:00
psucien
ba5fb78c5a fix for large delays precision + Linux build 2024-07-11 13:14:42 +03:00
psucien
d3e8e95334 boost: submodule update 2024-07-11 13:14:42 +03:00
psucien
bad51953ac boost: latest updates 2024-07-11 13:14:42 +03:00
psucien
034b76eb33 boost submodule added 2024-07-11 13:14:42 +03:00
psucien
d6d2ed6e33 boost submodule removed 2024-07-11 13:14:42 +03:00
psucien
0bb5240202 kernel: added HR timers and asio service thread 2024-07-11 13:14:42 +03:00
psucien
465cb0413e kernel: equeue: minor refactoring 2024-07-11 13:14:42 +03:00
georgemoralis
ea7465a82d Merge pull request #278 from Xphalnos/main
Adding Bloodborne screenshot
2024-07-11 08:07:49 +03:00
Xphalnos
999733f172 Merge branch 'main' of https://github.com/Xphalnos/shadPS4 2024-07-10 19:49:38 +02:00
Xphalnos
820498c663 Adding Bloodborne screenshot 2024-07-10 19:49:22 +02:00
Xphalnos
f3e188853d Adding Bloodborne screenshot 2024-07-10 19:01:59 +02:00
georgemoralis
5a078e3902 forgot to register avplayer module 2024-07-10 19:15:58 +03:00
georgemoralis
5beb607435 More HLE stuff and fixes (#273)
* sceKernelOpen truncate is not neccesary

* fixup scePthreadCondSignal

* dummy error , ime dialogs stubbed

* sceErrorDialog implemenation (no ui)

* small fix in sceSaveDataGetEventResult and sceAppContentTemporaryDataMount2.

* ime dialog structs and functions definations

* added stubbed avplayer

* Open folder should be first on context menu

---------

Co-authored-by: raziel1000 <ckraziel@gmail.com>
2024-07-10 19:20:19 +03:00
TreezZ
d156dda7b6 Update building-linux.md with thread numbers (#275)
Final-ish (?)
2024-07-10 02:24:42 +03:00
Vinicius Rangel
94d1a6b0b9 impl V_CMP_CLASS_F32 common filter masks (#276) 2024-07-10 02:24:01 +03:00
georgemoralis
f420e33592 Merge pull request #269 from DanielSvoboda/fix-shortcut-name-with-unaccepted-characters
fix shortcut name with unaccepted characters
2024-07-09 10:04:47 +03:00
DanielSvoboda
aef6d2e488 fix shortcut name with unaccepted characters 2024-07-09 00:55:48 -03:00
DanielSvoboda
63b0465a33 add V_MAD_U32_U24 (#262)
* V_MAD_U32_U24

* adjust V_MAD_I32_I24 for bit extraction

* optional bit extraction parameter

* Update vector_alu.cpp

* clang-format

* Update src/shader_recompiler/frontend/translate/vector_alu.cpp

Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>

* Update vector_alu.cpp

* Update translate.h

---------

Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>
2024-07-09 01:35:01 +03:00
psucien
ab6a1fb5f0 Merge pull request #247 from viniciuslrangel/device-selector
Improve physical device selection in Vulkan renderer
2024-07-08 22:04:51 +02:00
TreezZ
64e283c948 Update building-linux.md with full instructions (#260)
* Update building-linux.md with full instructions

* Update documents/building-linux.md

Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>

* Update documents/building-linux.md

Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>

* Update building-linux.md with build-essentials

* Update building-linux.md

---------

Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>
2024-07-08 12:25:04 +03:00
Stolas
2620919f0b Added Legacy Min/Max ops (#266)
* Forwarding V_MAX_LEGACY_F32 to V_MAX3_F32. Fixes Translation error in Geometry Wars 3.

* Forwarded to correct op

* Implemented Legacy Max/Min using NMax/NMin

* Added extra argument to Min/Max op codes

* Removed extra translator functions, replaced with bool

* Formatting
2024-07-08 12:24:12 +03:00
georgemoralis
550e05b3ca Merge pull request #267 from viniciuslrangel/audio-param-fix
Fix sceAudioOutOpen not handling audio param attributes
2024-07-08 08:59:12 +03:00
Vinicius Rangel
574b8a458c Fix sceAudioOutOpen not handling audio param attributes
and returning error incorrectly when some mask is applied
2024-07-08 01:29:58 -03:00
wheremyfoodat
f8c2dc0a18 Merge pull request #264 from OFFTKP/thessaloniki
Eliminate compiler warning
2024-07-07 22:21:28 +00:00
offtkp
0619af24a7 Eliminate compiler warning 2024-07-08 01:17:42 +03:00
Vinicius Rangel
6cc8381d62 Improve physical device selection in Vulkan renderer
Fix when two discrete gpu are present & memory heap size is now considered while sorting physical devices
2024-07-07 17:02:35 -03:00
TheTurtle
a9f482cdfc config: Disable splash by default 2024-07-07 22:30:52 +03:00
georgemoralis
189033ae24 Merge pull request #253 from shadps4-emu/graphics/features_and_fixes
Graphics: missing features and fixes
2024-07-07 20:42:13 +03:00
psucien
6dbb842bec renderer: a bit more formats to support 2024-07-07 14:34:36 +02:00
psucien
c7af8df2ad gnmdriver: added sceGnmFindResourcesPublic stub 2024-07-07 13:47:01 +02:00
psucien
19c85c78cf recompiler: switch instance data to storage buffers 2024-07-07 13:08:39 +02:00
psucien
bf4bf4ccb2 recompiler: fix for gather4 components return 2024-07-07 13:00:52 +02:00
TheTurtle
379ec554a8 memory: Set virtual query offset 2024-07-07 01:26:17 +03:00
georgemoralis
575acc4bd9 Merge pull request #254 from DanielSvoboda/Create-Shortcut
fix linux again
2024-07-06 22:39:31 +03:00
psucien
1d608427ed renderer: don't let unbound color attachment affect pass's rendering area 2024-07-06 20:13:12 +02:00
DanielSvoboda
971d2f02ef fix name file shortcut linux 2024-07-06 15:10:28 -03:00
DanielSvoboda
d9c1456f28 fix linux again 2024-07-06 15:00:18 -03:00
georgemoralis
3f3acc5543 Merge pull request #246 from DanielSvoboda/Create-Shortcut
Create shortcut
2024-07-06 20:03:30 +03:00
DanielSvoboda
311ddbe2f9 fiz linux 2024-07-06 13:42:53 -03:00
DanielSvoboda
f8e2b6d0cd fix linux 2024-07-06 13:40:26 -03:00
psucien
cfbe8b9e6d renderer: added support for instance step rates 2024-07-06 18:03:43 +02:00
psucien
986ed0662c gnmdriver, amdgpu: added gpu idle IRQ; submission lock logic improved 2024-07-06 18:03:34 +02:00
DanielSvoboda
eff8a9e514 fix linux? 2024-07-06 12:55:24 -03:00
georgemoralis
bf74888be4 Merge pull request #239 from shadps4-emu/miscFixes3
Misc fixes 3
2024-07-06 11:16:53 +03:00
georgemoralis
d4d7e9f5f6 removed hardware info seems make perfomance issues , will test something more lightweight 2024-07-06 10:27:57 +03:00
DanielSvoboda
c3bf56f3eb add 'Create Shortcut' option
Added 'Create Shortcut' option to gui_context_menus

Implemented functionality to create shortcuts:
convertPngToIco: Converts PNG icons to ICO format.
createShortcutWin: Creates shortcuts on Windows using COM interfaces.
createShortcutLinux: Generates .desktop files for shortcut creation on Linux.
Note: Linux functionality has not been tested.
2024-07-05 20:57:54 -03:00
Xphalnos
a0aac5985e CMakeLists.txt cleanup (#244)
* Update ci.yml

* Update CMakeLists.txt
2024-07-06 02:42:34 +03:00
TheTurtle
38080b60af shader_recompiler: Check usage before enabling capabilities (#245)
* vk_instance: Better feature check

* shader_recompiler: Make most features optional

* vk_instance: Bump extension vector size

* resource_tracking_pass: Perform BFS for sharp tracking

* The Witness triggered this
2024-07-06 02:42:16 +03:00
DanielSvoboda
56af77f1f4 add command line arguments GUI 2024-07-05 18:20:19 -03:00
georgemoralis
4ae879875e scePthreadMutexTimedlock added 2024-07-05 15:23:35 +03:00
georgemoralis
134541bdcd submodules updates 2024-07-05 15:08:33 +03:00
georgemoralis
67af53fd58 Merge pull request #233 from shadps4-emu/miscFixes2
Misc Fixes
2024-07-05 09:36:01 +03:00
raziel1000
7ea87f69ea forgot duplicate. 2024-07-04 21:02:59 -06:00
Younes
8ce6ed4b59 Merge branch 'main' into miscFixes2 2024-07-04 20:51:04 -06:00
TheTurtle
3f123bbce2 thread_management: Fix windows build 2024-07-05 00:20:55 +03:00
DanielSvoboda
1d58a0403e Fix ShowSplash size (#235)
* Fix ShowSplash size

* enable isShowSplash
2024-07-05 00:16:06 +03:00
psucien
dd97b517f7 Recompiler: sampler patching (#236)
* recompiler: restored bfs in image instruction producers search

* recompiler: added pattern check for s# anisotropy modification

* added check if s# comes from constant load (e.g. EUD)
2024-07-05 00:15:57 +03:00
TheTurtle
6ceab6dfac shader_recompiler: Implement most integer image atomics, workgroup barriers and shared memory load/store (#231)
* shader_recompiler: Add LDEXP

* shader_recompiler: Add most image integer atomic ops

* shader_recompiler: Implement shared memory load/store

* shader_recompiler: More image atomics

* externals: Update sirit

* clang format

* cmake: Add missing files

* shader_recompiler: Fix some atomic bugs

* shader_recompiler: Vs outputs

* shader_recompiler: Shared mem has side-effects, fix format component order

* shader_recompiler: Inline constant buffer impl

* video_core: Fix regressions

* Work

* Fixup a few things
2024-07-05 00:15:44 +03:00
georgemoralis
724869e088 fixed submodule 2024-07-04 14:31:58 +03:00
georgemoralis
a91c049754 added library to print system info to be able to debug user files better 2024-07-04 14:30:34 +03:00
georgemoralis
fd39c50910 improved sceAppContentAppParamGetInt 2024-07-04 13:49:11 +03:00
georgemoralis
8d17f87a08 improved file not found return in sceKernelOpen 2024-07-04 11:38:23 +03:00
raziel1000
bdcadf63d2 scePthreadSetprio, scePthreadGetprio 2024-07-04 02:22:43 -06:00
raziel1000
e22ad65e70 .... 2024-07-04 01:57:03 -06:00
raziel1000
1968b2aa81 ... 2024-07-04 01:54:50 -06:00
raziel1000
c2c55fea87 mr clang format 2024-07-04 01:53:06 -06:00
raziel1000
0ecc54032c - Several SaveData functions. Dysmantle and we are doomed should save and load now. 2024-07-04 01:51:46 -06:00
georgemoralis
3875c00281 fixed linux compile? 2024-07-04 09:38:25 +03:00
georgemoralis
0228b5861c added scePthreadGetthreadid 2024-07-03 20:05:21 +03:00
georgemoralis
608301f86c dummy sceAppContentGetAddcontInfoList and fixed structs 2024-07-03 20:04:56 +03:00
georgemoralis
af3bbc33e9 increase version 2024-07-02 00:39:10 +03:00
georgemoralis
94f83ad505 Updated version to 0.1.0 - Release 2024-07-02 00:35:54 +03:00
georgemoralis
dc8d3b208c Merge pull request #230 from shadps4-emu/stabilization12
reduced logging
2024-07-01 23:53:59 +03:00
georgemoralis
33683cfdd7 Merge pull request #229 from shadps4-emu/stabilization11
video_core: Address regressions from last few PRs
2024-07-01 23:50:10 +03:00
georgemoralis
afba6dbd66 clang format fix 2024-07-01 23:48:30 +03:00
georgemoralis
3b87c3c128 moved elf logging to DebugDump fuction , which can be enabled in config . This reduces main log file a lot 2024-07-01 23:07:57 +03:00
IndecisiveTurtle
fe5bfa9d61 texture_cache: Always validate for now 2024-07-01 22:53:01 +03:00
IndecisiveTurtle
a603bc7d88 shader_recompiler: More instructions 2024-07-01 22:42:45 +03:00
georgemoralis
b2508c502b Merge pull request #228 from Xphalnos/main
Adding keyboard mapping
2024-07-01 21:09:34 +03:00
IndecisiveTurtle
2fe897eeda host_shaders: Fix R8G8 detiler 2024-07-01 20:25:43 +03:00
Xphalnos
d424c65e8d Update externals 2024-07-01 18:39:12 +02:00
Xphalnos
937bfc8018 Adding keyboard mapping 2024-07-01 18:27:22 +02:00
IndecisiveTurtle
7d4f0da40e video_core: Fix some regressions 2024-07-01 18:26:22 +03:00
IndecisiveTurtle
20e83b4d53 clang format 2024-07-01 13:56:14 +03:00
IndecisiveTurtle
410ba37ec2 code: Add additional logging during init 2024-07-01 13:56:14 +03:00
IndecisiveTurtle
7c7e9427ba tls: Switch to trace logs 2024-07-01 13:56:14 +03:00
IndecisiveTurtle
6774216038 shader_recompiler: Apply buffer swizzle on vertex attribs 2024-07-01 13:56:14 +03:00
IndecisiveTurtle
b4d24d8737 renderer_vulkan: Prefer depth stencil read-only layout when possible
* Persona reads a depth attachment while it is being attached with writes disabled. Now this works without spamming vk validation errors
2024-07-01 13:56:14 +03:00
IndecisiveTurtle
22b930ba5e video_core: Track renderpass scopes properly 2024-07-01 13:56:14 +03:00
IndecisiveTurtle
ad10020836 video_core: Fix a few problems 2024-07-01 13:56:14 +03:00
IndecisiveTurtle
114f06d3f2 tls: Fix linux crash 2024-07-01 13:56:14 +03:00
IndecisiveTurtle
10ef357f1f image: Fix image type of 1D Array 2024-07-01 13:56:14 +03:00
IndecisiveTurtle
5da79d4798 spirv: Add fragdepth and implement image query 2024-07-01 13:56:14 +03:00
georgemoralis
1f83824a8a Merge pull request #225 from shadps4-emu/stabilization/10
Various fixes and improvements
2024-07-01 13:09:11 +03:00
psucien
f03262421e texture_cache: force storage usage bit to all images 2024-07-01 09:58:52 +02:00
georgemoralis
d2c1e58313 Merge pull request #220 from shadps4-emu/stabilization9
HLE stuff
2024-07-01 01:18:41 +03:00
georgemoralis
90b27352f8 eventflag : changed an assert to log as error 2024-07-01 00:51:38 +03:00
georgemoralis
24f78fac20 fixed name style 2024-07-01 00:50:07 +03:00
psucien
1f55eff9d8 libraries: gnmdriver: added initialization preamble to every first submit in a frame 2024-06-30 18:22:39 +02:00
psucien
14377b39b5 texture_cache: detiler: added missing micro8x2 2024-06-30 15:54:59 +02:00
georgemoralis
1413a70a92 added posix error write to errno 2024-06-30 10:40:06 +03:00
georgemoralis
8e01a1b6d8 libSceJpegEnc,libSceJson2 can be loaded LLE 2024-06-30 10:12:36 +03:00
georgemoralis
d0278715cb added case for savedata (needed by flow) 2024-06-30 10:12:07 +03:00
georgemoralis
084b2ab6d5 added sceKernelDeleteEventFlag 2024-06-30 10:11:44 +03:00
psucien
2386b46726 libraries: gnmdriver: sceGnmDrawInitToDefaultContextState and sceGnmDrawInitToDefaultContextState400 implementation 2024-06-30 01:21:39 +03:00
psucien
9121ecf123 renderer_vulkan: more formats conversion 2024-06-30 01:21:39 +03:00
psucien
3663c60f3d libraries: gnmdriver: fix for incorrect offset in sceGnmDrawInitDefaultHardwareState175 2024-06-30 01:21:39 +03:00
psucien
cc945fb92e shader_recompiler: a simple bfs in image arg producer search 2024-06-30 01:21:39 +03:00
psucien
c4061c3b95 amdgpu: fix for wrong constant ram offset in WriteConstRam decoding 2024-06-30 01:21:39 +03:00
georgemoralis
0a33f8f799 updated sdl to fix keyboard issue 2024-06-30 00:32:42 +03:00
psucien
2cbbcbd371 Metadata support (#223)
* texture_cache: more image usage flags

* texture_cache: metadata registration

* renderer_vulkan: initial CMask support

* renderer_vulkan: skip redundant FCE and FMask decompression passes

* renderer_vulkan: redundant VO surface registration removed

* renderer_vulkan: initial HTile support

* renderer_vulkan: added support for MSAA attachments

* renderer_vulkan: skip unnecessary metadata updates
2024-06-29 16:49:59 +03:00
georgemoralis
b3f15dfe2e fixed posix_open return code 2024-06-28 23:19:33 +03:00
georgemoralis
1e717ab046 sceKernelOpen handle directory doesn't exist case 2024-06-28 23:06:15 +03:00
georgemoralis
a810e47876 few more sceNet work 2024-06-28 23:00:01 +03:00
georgemoralis
e54d574241 implemented a part of sceNet calls 2024-06-27 18:42:36 +03:00
georgemoralis
059f54838a Merge pull request #219 from shadps4-emu/gnmdriver/hw_init
Complete HW state init functions
2024-06-27 17:33:58 +03:00
psucien
7fd832b68c things prettified 2024-06-27 15:47:18 +02:00
georgemoralis
0ada442cbc Stabilization8 (#218)
* disable configured flexible memory size (caused issues in some games)

* fixed case S_OR_B64 for blazing chrome

* submodules updates and fixes for latest SDL

* stubbed _sigprocmask (not handled and spams too much)

* added ReplaceOp case in Stencilop

* dummy ajm module added
2024-06-27 16:37:17 +03:00
psucien
91940781b8 libraries: gnmdriver: complete HW stat init functions 2024-06-27 13:36:55 +02:00
Alexandre Bouvier
f5541e3c3d cmake: prefer system libraries (#216) 2024-06-27 13:46:55 +03:00
georgemoralis
f522948df8 Merge pull request #217 from shadps4-emu/stabilization7
kernel/shader_recompiler: Fixes and cleanups to improve stability
2024-06-26 20:39:05 +03:00
georgemoralis
521ff4d14b clang format fixes 2024-06-26 20:32:08 +03:00
IndecisiveTurtle
550bfa1c88 liverpool: Fix assert for compute queues 2024-06-26 20:00:09 +03:00
IndecisiveTurtle
c8ed338d5a kernel: Const correctness 2024-06-26 18:24:06 +03:00
IndecisiveTurtle
c081663aac translator: Merge ANDN2 with AND and impl ORN2 2024-06-26 18:16:01 +03:00
IndecisiveTurtle
e94149340e kernel: Fix pread and pwrite 2024-06-26 18:09:58 +03:00
IndecisiveTurtle
3a80df007e linker: More null check 2024-06-26 18:05:31 +03:00
IndecisiveTurtle
4846704832 shader_recompiler: More instructions and fix for swords of ditto 2024-06-26 18:03:09 +03:00
IndecisiveTurtle
9bd3898829 kernel: Rework semaphore implementation 2024-06-26 17:57:18 +03:00
IndecisiveTurtle
a2394109ee kernel: Cleanup filesystem code 2024-06-26 17:54:36 +03:00
psucien
3532fd1c9c Merge pull request #215 from shadps4-emu/miscFixAgain
Misc fixes (mostly LLE)
2024-06-26 14:15:07 +02:00
psucien
5ed0794c20 Merge pull request #211 from abouvier/fix-include
fix system include paths
2024-06-26 14:02:50 +02:00
georgemoralis
8a617be3b7 missed from previous commit 2024-06-26 14:57:18 +03:00
georgemoralis
7ef11a7bd8 added sceKernelGetFsSandboxRandomWord and dummy posix_connect 2024-06-26 14:56:41 +03:00
georgemoralis
c511b1b0cf sceAudioOutGetPortState added 2024-06-26 14:48:32 +03:00
georgemoralis
84a39e2fb0 load existing lle modules from sys_module folder 2024-06-26 14:43:01 +03:00
Alexandre Bouvier
a2224a9b6b fix system include paths 2024-06-25 18:17:16 +02:00
georgemoralis
8f45be7d44 Merge pull request #213 from shadps4-emu/hle/trophies
A better stub for trophies
2024-06-25 18:38:35 +03:00
psucien
9b3a89467e fix for Linux build 2024-06-25 17:14:12 +02:00
georgemoralis
c8a149c983 Merge pull request #214 from shadps4-emu/miscFixes
Misc fixes
2024-06-25 17:55:57 +03:00
psucien
3b2a312f15 kernel: thread_management: silence compilation warning 2024-06-25 09:56:19 +02:00
psucien
ff64dd74f6 libraries: trophy: a better stubs implementation 2024-06-25 09:43:26 +02:00
psucien
acc4ef7b4c common: slot_vector: added is_allocated to check if the slot already exists 2024-06-25 09:43:25 +02:00
psucien
8475a62a46 common: Common namespace for the slot vector container 2024-06-25 09:31:32 +02:00
georgemoralis
cee55355bf Merge pull request #208 from Xphalnos/main
Adding Quickstart
2024-06-25 09:42:14 +03:00
georgemoralis
52ff825171 Merge pull request #212 from shadps4-emu/missing_gnm
More GnmDriver functions implementation
2024-06-25 08:36:11 +03:00
psucien
c04fbb75d8 libraries: gnm_driver: added sceGnmDrawIndexIndirect and sceGnmDrawIndirect 2024-06-24 22:53:59 +02:00
Xphalnos
444e4d5336 Quickstart 2024-06-24 20:40:24 +02:00
Xphalnos
3f657b5f36 Quickstart 2024-06-24 20:34:06 +02:00
psucien
508d034263 libraries: gnm_driver: added sceGnmSetEmbeddedPsShader 2024-06-24 14:51:17 +02:00
georgemoralis
1b6cb32b34 re-fix 2024-06-24 13:46:45 +03:00
georgemoralis
640354667e insure we reset padData 2024-06-24 13:41:18 +03:00
georgemoralis
ad4db71e00 missing touchpad reset in scePadReadState 2024-06-24 13:26:18 +03:00
georgemoralis
6d2b2779ea added sceKernelPwrite 2024-06-24 13:25:50 +03:00
Xphalnos
c845b12990 Merge branch 'main' of https://github.com/Xphalnos/shadPS4 2024-06-23 09:04:30 +02:00
Xphalnos
7fe5f12f29 Screenshots fix 2024-06-23 09:04:16 +02:00
Xphalnos
acd9b57c88 Corrections de captures d'écran 2024-06-23 08:57:32 +02:00
psucien
cb6b21de1f Initial instancing and asynchronous compute queues (#207)
* gnm_driver: added `sceGnmRegisterOwner` and `sceGnmRegisterResource`

* video_out: `sceVideoOutGetDeviceCapabilityInfo` for sdk runtime

* gnm_driver: correct vqid index range

* amdgpu: indirect buffer, release mem and some additional irq modes

* amdgpu: added ASC commands processor

* shader_recompiler: added support for fetch instance id

* amdgpu: classic bitfields for T# representation (debugging experience)

* renderer_vulkan: skip zero sized VBs from binding

* texture_cache: image upload logic moved into `Image` object

* gnm_driver: `sceGnmDingDong` implementation

* texture_cache: `Image` usage flags moved; correct VO buffer pitch
2024-06-22 19:50:20 +03:00
georgemoralis
a9cbd8287c Merge pull request #206 from shadps4-emu/shader-again
Add more shader instructions and some memory functions
2024-06-22 18:19:08 +03:00
georgemoralis
94b9992d99 more clang format fix (final) 2024-06-22 18:17:40 +03:00
georgemoralis
32225f4a8b more clang fix 2024-06-22 18:15:42 +03:00
georgemoralis
11a3906243 clang fix 2024-06-22 18:12:04 +03:00
IndecisiveTurtle
73d60b7e8d linker: Set rela bits for all symbol types 2024-06-22 18:09:04 +03:00
IndecisiveTurtle
11bfdf2348 kernel: Add noreturn 2024-06-22 18:09:04 +03:00
IndecisiveTurtle
741427040f shader_recompiler: Even more instructions 2024-06-22 18:09:04 +03:00
IndecisiveTurtle
30199fe701 kernel: Add scePthreadExit 2024-06-22 18:09:04 +03:00
IndecisiveTurtle
30351ad112 linker: Fix TLS for dynamic modules
* Technically not fully accurate but it works. TlsGetAddr should handle dynamic allocation of TLS blocks
2024-06-22 18:09:04 +03:00
IndecisiveTurtle
2506a285f4 kernel: Implement some functions 2024-06-22 18:09:03 +03:00
IndecisiveTurtle
7bdaeafdfd kernel: Make sceKernelUsleep interruptible 2024-06-22 18:09:03 +03:00
IndecisiveTurtle
8850c2f4be shader_recompiler: Add more instructions 2024-06-22 18:09:03 +03:00
georgemoralis
ce31fad222 Merge pull request #200 from shadps4-emu/padrewrite
scePad library rewrite
2024-06-22 18:04:15 +03:00
georgemoralis
7519d4610c added missing buttons and analog buttons to keyboard 2024-06-21 14:37:49 +03:00
georgemoralis
19edb8155f fixed stupid directory iterator issue 2024-06-20 22:29:08 +03:00
georgemoralis
1b2c3ccc42 better dirents 2024-06-20 21:13:17 +03:00
georgemoralis
49601f58ed initial dents support 2024-06-20 18:09:40 +03:00
georgemoralis
0325e4795a posix_pthread_yield , scePadGetHandle 2024-06-20 17:10:14 +03:00
georgemoralis
b17a57cb3d analog sticks works better now 2024-06-17 14:33:03 +03:00
georgemoralis
91e6d35e89 analog support via keyboard 2024-06-17 13:42:39 +03:00
georgemoralis
48d6ccd9bb partially added analog controls 2024-06-17 12:52:25 +03:00
georgemoralis
57c65cadb8 fixes to the old pad code 2024-06-17 09:02:06 +03:00
georgemoralis
9501bd77d4 clang fix 2024-06-17 09:02:06 +03:00
georgemoralis
0aa29428e1 new pad module structured using modulegenerator , added common pad structures and function signatures 2024-06-17 09:02:06 +03:00
georgemoralis
d9f2758850 Merge pull request #203 from shadps4-emu/video_core/more_functionality
More instructions support and trivial additions
2024-06-17 08:59:36 +03:00
psucien
5595da0a24 final touch: assert instead of log crit to crash earlier 2024-06-17 00:42:26 +02:00
psucien
abe2771c73 switch to the org's sirit submodule 2024-06-17 00:33:12 +02:00
psucien
0c32ea242b shader_recompiler: list all missing instructions during translation pass 2024-06-16 23:45:39 +02:00
psucien
396812bab6 shader_recompiler: added V_TRUNC VOP1/3 (496) 2024-06-16 23:39:45 +02:00
psucien
d3ab612bdc shader_recompiler: pretty print for missing shader instructions 2024-06-16 23:11:36 +02:00
psucien
ab4cc8b218 texture_cache: return back image view usage override 2024-06-16 22:30:18 +02:00
psucien
6e7fd21338 renderer_vulkan: simplified sRGB hack 2024-06-16 22:29:23 +02:00
psucien
3f92a68129 renderer_vulkan: BC3 formats conversion 2024-06-16 22:29:04 +02:00
psucien
d054c3e0ad shader_recompiler: added V_MAX VOP2 (431, 433) 2024-06-16 21:34:23 +02:00
psucien
be67fdc9c9 shader_recompiler: correct format for SSBO store op 2024-06-16 21:21:19 +02:00
psucien
37ceea2314 renderer_vulkan: added log entry for CS compiling 2024-06-16 20:51:35 +02:00
psucien
54f8616d6a shader_recompiler: added MUL_HI VOP2 (896) 2024-06-16 20:39:53 +02:00
psucien
1fc86a6c9d shader_recompiler: added SOPK MOVK (45) 2024-06-16 20:26:24 +02:00
raziel1000
52f3b74fdd Missing sceKernelUuidCreate nid 2024-06-15 17:01:20 -06:00
TheTurtle
ca25333a1e core: Address a few more regressions (#202)
* tls: Actaully fix TLS on linux

* emulator: Remove nptoolkit

* Not quite supported yet, makes games misbehave

* kernel: Back to SCHED_OTHER

* kernel: Remove unused signal function

* address_space: Fix Unmap call on linux

* clang format
2024-06-16 01:50:07 +03:00
georgemoralis
3552484b33 Merge pull request #201 from shadps4-emu/stabilization_4
Proper color buffers color handling and various fixes
2024-06-16 01:18:43 +03:00
psucien
b02ec385b2 video_out: proper sRGB output workflow 2024-06-15 23:24:34 +02:00
psucien
b2b45bf480 video_core: added support for alternate CB channels order 2024-06-15 23:24:33 +02:00
psucien
b9602afc82 renderer_vulkan: sRGB swapchain 2024-06-15 23:24:33 +02:00
psucien
e6f773f950 videoout: register buffers in texture cache at VO creation time 2024-06-15 23:24:33 +02:00
psucien
bdb235716a texture_cache: don't set color attachment usage flag for packed images 2024-06-15 23:24:33 +02:00
psucien
fd8ceacef7 video_core: shaders hash switched to one from binary header 2024-06-15 23:24:32 +02:00
psucien
37cbdad57b renderer_vulkan: static vector for vertex buffers ranges 2024-06-15 23:20:14 +02:00
psucien
a0fe34b01f tracy: added PthreadMutex markup 2024-06-15 23:20:14 +02:00
psucien
142ad54876 gnmdriver: fix for pm4 dump name in some erroneous cases 2024-06-15 23:20:14 +02:00
psucien
be6f523b6e renderer_vulkan: fixed buffers alignments 2024-06-15 23:20:13 +02:00
psucien
1e69f83d9e libraries: fix for Windows crash during LLE libc initialization 2024-06-15 20:04:36 +02:00
Younes
0fa7d5d02c - sceKernelUuidCreate, sceAppContentAppParamGetInt, sceAppContentTemporaryDataMount2 (#199)
- PlayGo
- stub libusbd
-added /temp0 and /data mounts at emu start.
(Ghost Files: Memory of a Crime, Abyss: The Wraiths of Eden)
- some posix functions
2024-06-15 17:51:51 +03:00
TheTurtle
c5d1d579b1 core: Many things (#194)
* video_core: Add a few missed things

* libkernel: More proper memory mapped files

* memory: Fix tessellation buffer mapping

* Cuphead work

* sceKernelPollSema fix

* clang format

* fixed ngs2 lle loading and rtc lib

* draft pthreads keys implementation

* fixed return codes

* return error code if sceKernelLoadStartModule module is invalid

* re-enabled system modules and disable debug in libs.h

* Improve linux support

* fix windows build

* kernel: Rework keys

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-06-15 14:36:07 +03:00
georgemoralis
6a47f8ae50 Merge pull request #197 from Xphalnos/main
More screenshots for README
2024-06-14 17:28:56 +03:00
Xphalnos
d1f409f373 Screenshots 2024-06-14 14:59:22 +02:00
Xphalnos
edf6724e74 Merge branch 'main' of https://github.com/Xphalnos/shadPS4 2024-06-14 14:33:08 +02:00
Xphalnos
eb22704771 More screenshots for README 2024-06-14 14:32:41 +02:00
georgemoralis
1a26983181 Merge pull request #196 from shadps4-emu/LibPngDec
Added LibPngDec
2024-06-14 11:02:19 +03:00
raziel1000
080ec3e23e Added LibPngDec
(tested with Metal Slug 3, Risk of Rain, Deadbolt and Nidhogg)
2024-06-14 01:37:26 -06:00
TheTurtle
31bd502764 core: Fixup linux support (#195)
* tls: Implement for linux

* core: Implement memory manager for linux
2024-06-14 00:58:57 +03:00
Xphalnos
e62690759d Fix missing SDL3.dll error message for Windows-Qt (#193) 2024-06-12 19:09:54 +03:00
georgemoralis
400d910743 Merge pull request #184 from shadps4-emu/externals/tracy
Tracy profiler
2024-06-12 17:19:44 +03:00
georgemoralis
dfe2c345dc Merge pull request #192 from Xphalnos/main
Minor fixes
2024-06-12 17:19:25 +03:00
psucien
64569ff737 tracy: guards for missing vk profiler context 2024-06-11 22:57:37 +02:00
georgemoralis
8362e2c497 fixed windows qt build 2024-06-11 23:26:13 +03:00
Xphalnos
7599ba1761 Merge branch 'shadps4-emu:main' into main 2024-06-11 22:10:04 +02:00
psucien
955752a24b tracy: submodule update 2024-06-11 21:58:35 +02:00
psucien
d7565dec57 tracy: added Vulkan GPU profiling 2024-06-11 21:52:48 +02:00
georgemoralis
8612907831 really fixed typo 2024-06-11 22:41:35 +03:00
Xphalnos
ac0d073050 Improve Building and Readme 2024-06-11 21:29:29 +02:00
georgemoralis
991d44bde6 fix typo 2024-06-11 19:36:17 +03:00
Xphalnos
7c7b617852 Minor fixes 2024-06-11 18:15:36 +02:00
georgemoralis
e8fa9e0e89 added libScePosix nanosleep 2024-06-11 16:42:15 +03:00
psucien
04b1226e9c tracy: basic markup and project palette 2024-06-11 12:14:33 +02:00
psucien
e89b2d1cdd Added Tracy profiler 2024-06-11 11:17:46 +02:00
georgemoralis
bff2f006fb Merge pull request #190 from shadps4-emu/stabilization_three
Stabilization three
2024-06-11 07:25:55 +03:00
georgemoralis
e3fd089881 Merge pull request #189 from shadps4-emu/qt-again
Qt fixes and improvemments, trophy decryption/viewer.
2024-06-11 07:04:31 +03:00
raziel1000
1abccb29f9 clang format 2024-06-10 20:44:16 -06:00
raziel1000
0f27e0edf2 - Added trophy decryption when extracting a fpkg. trp icons and xmls are dumped to game_data/<title> (can be restored if deleted by accident by opening the trophy viewer)
- Added a trophy viewer (right click on game ==> trophy viewer)
- Enabled Run button.
- Switched gui settings to toml.
- Added recent files (6 max)
- Applied @raphaelthegreat suggestions and corrections (Thanks a lot).
- Fixed several bugs and crashes.
- Full screen should disabled by default.
- Added region in list mode.
- Added a simple temp elf list widget.
- Added messages when extracting pkg (ex: installing a patch before the game...etc)
2024-06-10 20:42:21 -06:00
psucien
cb2cf7d93c recompiler: trivial missing ops (VALU OR and SALU LE, GE) added 2024-06-10 23:49:23 +02:00
psucien
7fcb758da2 timer_management: sceKernelUsleep on <1ms delays 2024-06-10 23:48:06 +02:00
psucien
c2dc7c3fd4 renderer_vulkan: another fix for vertex buffer offsets 2024-06-10 23:20:32 +02:00
Xphalnos
71dda8c776 Separation between release mode and RelWithDebInfo (#186) 2024-06-10 22:59:28 +03:00
TheTurtle
8ce58389ad kernel: Implement gettimeofday + other misc fixes (#187)
* kernel: Add gettimeofday

* kernel: Move sceKernelReleaseDirectMemory where it belongs

* savedata: Stub sceSaveDataDialogUpdateStatus to return finished

* memory: Add lock to VirtualQuery and remove debug print

* clang format

* fixed linux build?

* special case for sceKernelWrite (stdin,stdout,stderr)

* special case for case savedata mount

* reduced mutex spamming

* added missing default rwlock attributes init

* kernel: Add more sleep functions

* file_system: Add some functions

* memory: Missed adding some functions

* kernel: Moved some functions to time

* kernel: Fix build error

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-06-10 22:59:12 +03:00
TheTurtle
7b1a317b09 video_core: Preliminary storage image support and more (#188)
* vk_rasterizer: Clear depth buffer when DB_RENDER_CONTROL says so

* video_core: Preliminary storage image support, more opcodes

* renderer_vulkan: a fix for vertex buffers merging

* renderer_vulkan: a heuristic for blend override when alpha out is masked

---------

Co-authored-by: psucien <bad_cast@protonmail.com>
2024-06-10 22:35:14 +03:00
georgemoralis
23f11a3fda Merge pull request #182 from shadps4-emu/miscfixes
Miscfixes
2024-06-10 18:42:49 +03:00
georgemoralis
e84d2cf9cf wrong spdx 2024-06-10 18:36:18 +03:00
georgemoralis
beb631607a review fixes 2024-06-10 18:26:37 +03:00
georgemoralis
6f8d99fbf2 fixed posix_stat error return 2024-06-10 18:09:22 +03:00
georgemoralis
3318f12639 fixed possible nullptr crash on rwlock create 2024-06-10 18:01:50 +03:00
georgemoralis
0c1ede1060 Merge pull request #183 from shadps4-emu/bc_detiler
Micro detiler for 2D BC textures
2024-06-10 15:33:55 +03:00
georgemoralis
81a1cbf6b1 more clang fix 2024-06-10 15:24:34 +03:00
georgemoralis
deda3026d8 clang fix 2024-06-10 15:21:50 +03:00
georgemoralis
d89e4463e7 moved main code , to emulator,cpp , emulator.h class 2024-06-10 15:18:42 +03:00
georgemoralis
dfc4f1c35b don't make fullscreen default 2024-06-10 14:04:59 +03:00
georgemoralis
13cd22aea6 depedencies updates and fixes 2024-06-10 14:04:32 +03:00
georgemoralis
4287bfcb91 Merge pull request #181 from shadps4-emu/new_memory
core: Rework memory manager
2024-06-10 12:33:57 +03:00
raphaelthegreat
1092b1bcff Fix linux build 2024-06-10 12:13:24 +03:00
raphaelthegreat
fc887bf3f5 core: Rework memory manager 2024-06-10 02:13:44 +03:00
psucien
01f09cfa63 texture_cache: detiler: added support for block coded 64bit images 2024-06-09 18:18:49 +02:00
Xphalnos
623b1d6837 Synchronization between Qt build title and version.h (#178) 2024-06-09 18:45:25 +03:00
psucien
fa73812f32 texture_cache: detiler: added support for block coded 128bit images 2024-06-09 12:54:19 +02:00
Xphalnos
1563dffd46 Added Fullscreen mode (#173)
* Added Fullscreen mode

* fix for config.toml

* fix for config.toml

* Apply review comment
2024-06-09 13:25:00 +03:00
georgemoralis
1a66fa098f Merge pull request #174 from shadps4-emu/kernel_stuff
- sceKernelOpen: added rdwr and append modes
2024-06-09 08:26:03 +03:00
raziel1000
a790c30c28 added sceKernelSleep and small fix on usleep 2024-06-08 18:43:08 -06:00
georgemoralis
ac192134e8 Merge pull request #175 from shadps4-emu/missing_gnm_calls
Additional GnmDriver functions
2024-06-09 00:58:45 +03:00
psucien
eef05cf1f8 Merge pull request #176 from shadps4-emu/bunnies
Bunny must die
2024-06-08 23:46:43 +02:00
psucien
d902339867 gnmdriver: sceGnmDrawInitDefaultHardwareState175 added 2024-06-08 23:42:09 +02:00
georgemoralis
908eaa102d clang format fix 2024-06-09 00:26:12 +03:00
georgemoralis
84dca0a5dd added sceKernelTriggerUserEvent,sceKernelDeleteUserEvent 2024-06-09 00:23:58 +03:00
georgemoralis
2e6c28c34c partial sceKernelFStat 2024-06-08 23:53:38 +03:00
georgemoralis
5be6777220 added sceKernelPread 2024-06-08 23:25:20 +03:00
georgemoralis
a1efcd9832 added rtc and disc_map modules 2024-06-08 22:41:25 +03:00
raziel1000
d3adcf2e6c posix_pthread_mutex_trylock
posix_pthread_attr_setdetachstate
posix_pthread_attr_destroy
posix_pthread_create_name_np
posix_pthread_join
2024-06-08 11:13:02 -06:00
georgemoralis
c16275fe16 posix_usleep,posix_pthread_equal 2024-06-08 20:01:28 +03:00
raphaelthegreat
e9679f8309 address_space: Don't reserve space again 2024-06-08 19:10:32 +03:00
georgemoralis
05e4a4b4e1 hackish random/urandom support 2024-06-08 10:22:28 +03:00
georgemoralis
8115665a90 fixed sceKernelClose when decriptor is negative value 2024-06-08 09:56:57 +03:00
raziel1000
3b34aebe06 - sceKernelOpen: added rdwr and append modes
- saveDataMount: added mount mode 9, 28 and 34
- pthread: added a bunch of needed functions
- mem: added sceKernelMapNamedDirectMemory
2024-06-08 00:23:55 -06:00
psucien
edaeee194d libs: gnmdriver: get tessellation ring factor address 2024-06-08 01:19:52 +02:00
psucien
9ca083ee06 libs: gnmdriver: map compute queue 2024-06-08 01:19:52 +02:00
psucien
9230d04a0a common: slot_vector moved into common 2024-06-08 01:19:51 +02:00
georgemoralis
5d24a961cb RWLocks implementation (#171)
* added dummy rwlock

* implemented part of rwlock functions (WIP)

* implemented the most important functions for rwlocks
2024-06-07 21:30:26 +03:00
TheTurtle
998d046210 video_core: Add depth buffer support and fix some bugs (#172)
* memory: Avoid crash when alignment is zero

* Also remove unused file

* shader_recompiler: Add more instructions

* Also fix some minor issues with a few existing instructions

* control_flow: Don't emit discard for null exports

* renderer_vulkan: Add depth buffer support

* liverpool: Fix wrong color buffer number type and viewport zscale

* Also add some more formats
2024-06-07 16:26:43 +03:00
georgemoralis
e5621759a2 Merge pull request #169 from shadps4-emu/stabilization_two
Stabilization & bugfixes
2024-06-07 12:53:16 +03:00
psucien
fe3b546d93 renderer_vulkan, config: option to toggle VK validation layer 2024-06-07 11:21:02 +02:00
psucien
dd5a25fda2 review iteration 2024-06-07 08:39:03 +02:00
psucien
e790ec775f texture_cache: detiler: more verbosity in print 2024-06-07 00:12:16 +02:00
psucien
cfc297622f texture_cache: fix for forgotten cb tiling info update 2024-06-07 00:12:16 +02:00
psucien
b17b4ab787 texture_cache: detiler: redundant flag removed 2024-06-07 00:12:15 +02:00
psucien
cb07778008 renderer_vulkan: proper barriers 2024-06-06 23:40:31 +02:00
psucien
729d02d699 renderer_vulkan: proper min uniform alignment 2024-06-06 22:24:20 +02:00
psucien
6814d5f108 renderer_vulkan: fix for vertex buffer mapping offset 2024-06-06 21:41:59 +02:00
georgemoralis
3faeba8f0c Merge pull request #165 from shadps4-emu/bad-phi
shader_recompiler: Address some minor issues
2024-06-06 03:09:05 +03:00
raphaelthegreat
5aa3a4d4a0 shader: Fix block processing order in dead code elimination pass 2024-06-06 02:46:36 +03:00
raphaelthegreat
705d326a6d kernel: Fix stack corruption from OrbisTimesec 2024-06-05 22:27:28 +03:00
raphaelthegreat
ae7e6dafd5 shader_recompiler: Add more instructions and fix a few thinhs 2024-06-05 22:22:34 +03:00
TheTurtle
728249f58d core: Properly implement TLS (#164)
* core: Split module code from linker

* linker: Properly implement thread local storage

* kernel: Fix a few memory functions

* kernel: Implement module loading

* Now it's easy to do anyway with new module rework
2024-06-05 22:08:18 +03:00
georgemoralis
7d61b7ab9b Merge pull request #163 from shadps4-emu/video_core/surface_works
Basic detiling
2024-06-05 20:13:31 +03:00
psucien
f9e5c70414 texture_cache: detiler image view moved into image class 2024-06-05 18:37:06 +02:00
psucien
b59e525408 texture_cache: detiler: change staging to faster stream buffer 2024-06-05 18:16:31 +02:00
psucien
bee444b6da fix for re-use 2024-06-05 17:57:05 +02:00
psucien
3a5ba82eae final touch 2024-06-05 16:34:17 +02:00
psucien
0b63a76b51 amdgpu: render target size hint for old runtime 2024-06-05 16:34:04 +02:00
psucien
19994424c5 texture_cache: detiler: shader module release and debug name 2024-06-05 16:33:26 +02:00
psucien
440a60a43b texture_cache: detiler: m8x1 and m8x4 shaders 2024-06-05 16:14:22 +02:00
psucien
184b7b7fc2 video_core: added shader header files generator from Citra 2024-06-05 14:31:50 +02:00
psucien
2c87171b95 texture_cache: a support for m8x1 and m8x4 layouts added to the detiler 2024-06-05 13:10:48 +02:00
georgemoralis
c936f8e2b9 Merge pull request #161 from Xphalnos/main
Creating a better Readme
2024-06-05 13:44:22 +03:00
Xphalnos
47323fa76d screenshot under logo 2024-06-05 07:25:07 +02:00
Xphalnos
d52f8dbcad Adding screenshot 2024-06-04 23:05:03 +02:00
Xphalnos
a48333bfac Small update of the readme (again) 2024-06-04 21:38:21 +02:00
psucien
cd87005ded renderer_vulkan: unused extension removed 2024-06-04 12:43:23 +02:00
psucien
d491bbf366 amdgpu: tiling mode introduced 2024-06-04 12:40:08 +02:00
psucien
d7d324ac76 amdgpu: surface bits per element LUT 2024-06-02 22:46:40 +02:00
psucien
23cc60bf06 video_core: amdgpu: simply crash if an exception occured in coro 2024-06-02 19:16:05 +02:00
psucien
863d80c16c fix for name of the first dumped cmdb 2024-06-02 18:59:41 +02:00
georgemoralis
4087a73145 Merge pull request #160 from shadps4-emu/shader
shader_recompiler: Better branch detection + more opcodes
2024-06-02 09:00:28 +03:00
raphaelthegreat
02a50265f8 shader_recompiler: Better branch detection + more opcodes 2024-06-02 03:05:40 +03:00
psucien
f624f7749c Fixes and QoL (#159)
* to ensure that we're not unlocking submits too early

* a final touch

* video_core: texture_cache: fix for page table corruption

* core: linker: a name for the game main thread

* libraries: gnmdriver: an option to dump application command lists

* libraries: kernel: named guest threads

* video_core: added a heuristic for determination of CB/DB surface extents

* fix for rebase leftover
2024-06-01 23:50:03 +03:00
georgemoralis
8f9436080e Merge pull request #157 from Xphalnos/main
Various changes
2024-06-01 09:22:28 +03:00
Xphalnos
309e90783e Various changes 2024-06-01 08:18:33 +02:00
georgemoralis
323e66f765 added app_content module 2024-05-31 15:03:05 +03:00
georgemoralis
f292f551ae Merge pull request #152 from shadps4-emu/gamefixes
Games fixes
2024-05-30 22:03:38 +03:00
georgemoralis
3320156a27 fixed a case in sceKernelCreateEventFlag (found in Super Meat boy) 2024-05-30 20:16:16 +03:00
georgemoralis
e7e86c74ad Merge pull request #154 from shadps4-emu/rand
video_core: Moar shader instruction
2024-05-30 19:16:13 +03:00
georgemoralis
3d749bc904 added sceSaveDataMount needed for Cursed Castilla 2024-05-30 19:14:06 +03:00
georgemoralis
4749782a68 scePthreadCondTimedwait needed for Hyper Light Drifter 2024-05-30 19:14:06 +03:00
georgemoralis
dc3ab91a76 fixed sonic mania savedata 2024-05-30 19:14:06 +03:00
raphaelthegreat
dd91456b48 video_core: Moar shader instruction 2024-05-30 18:17:54 +03:00
georgemoralis
ff21750815 Merge pull request #153 from shadps4-emu/small_additions
video_core: multiple render targets binding
2024-05-30 18:06:40 +03:00
psucien
365df2a3ac video_core: renderer_vulkan: write mask fallback 2024-05-30 16:27:39 +02:00
psucien
8e6d492524 video_core: renderer_vulkan: added color mask support 2024-05-30 12:55:37 +02:00
psucien
767e13cccb Linux build fix 2024-05-30 12:09:33 +02:00
psucien
0212e68752 shader_recompiler: redundant IR opcode removed 2024-05-30 11:50:42 +02:00
psucien
9227a2b868 video_core: multiple color attachments support 2024-05-30 11:21:26 +02:00
psucien
3741f013a3 shader_recompiler: added NOP and RSQ instructions 2024-05-30 09:43:49 +02:00
psucien
d05cbd88bb video_core: renderer_vulkan: support for passes w\o a fs 2024-05-30 09:42:44 +02:00
georgemoralis
674bd4a2ed Merge pull request #151 from shadps4-emu/sonic
video_core: Implement basic compute shaders and more instructions
2024-05-30 06:31:26 +03:00
raphaelthegreat
58de7ff55a video_core: Implement basic compute shaders and more instructions 2024-05-30 01:39:24 +03:00
georgemoralis
10bceb1643 Merge pull request #150 from shadps4-emu/stabilization_one
video_core: various fixes
2024-05-29 23:58:52 +03:00
psucien
7fc273c6bc clang fmt 2024-05-29 20:31:34 +02:00
psucien
055dec1149 video_core: texture_cache: proper UniqueImage class movers 2024-05-29 17:17:24 +02:00
psucien
a67b8f7a0b video_core: renderer_vulkan: proper inclusion of maintenance4 2024-05-29 17:06:46 +02:00
psucien
5f37a6be83 video_core: amdgpu: fix for a deadlock in wait on idle 2024-05-29 16:03:37 +02:00
psucien
db113bbc7b videoout, platform: fix for ooo irqs 2024-05-29 16:02:51 +02:00
psucien
e5486cc57f video_core: amdgpu: proper destruction of processing thread 2024-05-29 16:02:51 +02:00
psucien
fb237bddad libraries: libc: fix for FSin implementation 2024-05-29 16:02:49 +02:00
georgemoralis
efeb78f59c Merge pull request #149 from shadps4-emu/event_flag
Event Flags
2024-05-28 18:44:13 +03:00
georgemoralis
d30703b4eb improvements in definations 2024-05-28 18:24:42 +03:00
georgemoralis
4d5e9d1da4 set,poll event flag 2024-05-28 15:13:56 +03:00
georgemoralis
1dfa91b638 event flag implementation from previous pr 2024-05-28 14:29:53 +03:00
psucien
5f67b59180 Merge pull request #148 from shadps4-emu/images
video_core: Add linear image support
2024-05-27 21:40:00 +02:00
raphaelthegreat
4d728e943d video_core: Address some feedback 2024-05-27 22:13:55 +03:00
raphaelthegreat
d59b102b6f video_core: Add image support 2024-05-27 18:25:45 +03:00
georgemoralis
729e166cd3 Merge pull request #146 from shadps4-emu/video_out/new_gpu_frontend
video_core: initial support for CE and ASC queues
2024-05-27 13:50:25 +03:00
psucien
09c7379fe0 fix for leaks of coroutine handle 2024-05-27 13:48:35 +03:00
TheTurtle
8dfa5782b2 video_core: Add constant buffer support (#147) 2024-05-26 15:51:35 +03:00
psucien
2963790e0d video_core: initial support for CE and ASC queues 2024-05-26 12:39:30 +02:00
TheTurtle
3c90b8ac00 video_core: Bringup some basic functionality (#145)
* video_core: Remove hack in rasterizer

* The hack was to skip the first draw as the display buffer had not been created yet and the texture cache couldn't create one itself. With this patch it now can, using the color buffer parameters from registers

* shader_recompiler: Implement attribute loads/stores

* video_core: Add basic vertex, index buffer handling and pipeline caching

* externals: Make xxhash lowercase
2024-05-25 15:33:15 +03:00
georgemoralis
e9f64bb76c Merge pull request #143 from shadps4-emu/video_core/null_gpu
video core: null GPU
2024-05-23 07:52:27 +03:00
psucien
62fd72009b video_core: a fix for multi submits processing (temporary code) 2024-05-22 22:20:33 +02:00
psucien
66b695f5c7 platform: restored use of magic_enum 2024-05-22 20:20:13 +02:00
psucien
d752aa5357 config, video_core: null gpu configuration added 2024-05-22 20:19:42 +02:00
georgemoralis
b0243dd3e5 fixed a few compiler issues 2024-05-22 14:18:05 +03:00
TheTurtle
8730968385 video: Import new shader recompiler + display a triangle (#142) 2024-05-22 01:35:12 +03:00
Xphalnos
8cf64a33b2 Migrating from third-party to externals (#138)
* third-party migration to externals

* Fix

* Lower case for Linux
2024-05-18 20:05:18 +03:00
georgemoralis
b0978f4168 Merge pull request #136 from shadps4-emu/more_kernel_stuff_and_others
More kernel stuff and others
2024-05-18 10:04:46 +03:00
georgemoralis
0b8baedab7 improved sceKernelWaitEqueue 2024-05-18 10:02:40 +03:00
georgemoralis
67c1772771 added _read in libkernel 2024-05-18 09:51:47 +03:00
georgemoralis
42fb9f6473 fixed sceKernelGetCompiledSdkVersion thanks raziel1000 2024-05-18 09:51:47 +03:00
georgemoralis
4b5e2e80fc added sceKernelGetCompiledSdkVersion (which return games system version ) 2024-05-18 09:51:46 +03:00
georgemoralis
cc98b11860 clang format 2024-05-18 09:51:46 +03:00
georgemoralis
43773d12d9 added scePthreadEqual 2024-05-18 09:51:46 +03:00
georgemoralis
bb89b1c95a Merge pull request #140 from shadps4-emu/additional_evq_func
A bunch of new functional and small improvements
2024-05-18 09:46:14 +03:00
psucien
aa88458ad8 Merge pull request #139 from shadps4-emu/render_vk/img_state_trk
renderer_vulkan: state tracking for `Image` resources
2024-05-17 23:40:11 +02:00
psucien
45e73d324a kernel: event queue improvements 2024-05-17 23:32:15 +02:00
psucien
133acdc120 video_out: added vblank event 2024-05-17 23:31:55 +02:00
psucien
8455574615 gnmdriver: submission lock moved out from gpu 2024-05-17 23:31:19 +02:00
psucien
058e728e29 platform: multiple persistent irq handlers 2024-05-17 23:30:34 +02:00
psucien
9ad7495661 kernel: user event and data functions 2024-05-17 23:29:10 +02:00
psucien
85704e26a0 renderer_vulkan: state tracking for Image resources 2024-05-17 12:44:07 +02:00
georgemoralis
3f692a4d7d Merge pull request #137 from shadps4-emu/video_core/multi_submits
amdgpu: multiple GFX submits
2024-05-17 13:13:46 +03:00
psucien
64b2e58285 a fair multi-submissions support 2024-05-17 08:47:38 +02:00
psucien
dbdb3dc77e amdgpu: non-blocking submitDone 2024-05-17 08:22:47 +02:00
psucien
9df1a8d15b amdgpu: added support for several single GFX submits per frame 2024-05-17 00:01:47 +02:00
georgemoralis
f881753944 Merge pull request #135 from shadps4-emu/video_core/splash
Show title splash while the game is loading
2024-05-16 17:13:56 +03:00
psucien
38061ae636 fix for crash in apps when splash is missing 2024-05-16 16:59:38 +03:00
georgemoralis
77cf875585 Update linux.yml
switched to ubuntu 24.04
2024-05-16 16:59:04 +03:00
psucien
8c4f72f404 review comments 2024-05-16 16:59:04 +03:00
psucien
3d5be23671 stb image moved to externals 2024-05-16 16:59:04 +03:00
georgemoralis
c9b5b5e963 show title splash while the game is loading 2024-05-16 16:58:14 +03:00
TheTurtle
55855b4195 core: Implement new memory manager (#133)
* core: Implement new memory manager

* ci: Attempt to fix linux build

* code: Fix a few build errors
2024-05-16 15:55:50 +03:00
georgemoralis
67f6d8b2e4 Merge pull request #131 from shadps4-emu/ngs2_work
Trying for ngs2 lle
2024-05-15 15:34:26 +03:00
georgemoralis
266fa57c43 clang format fix 2024-05-15 13:10:51 +03:00
georgemoralis
1431731503 even more linux fixes 2024-05-15 13:09:05 +03:00
georgemoralis
074f3d3f88 fixing linux compile 2024-05-15 12:57:58 +03:00
georgemoralis
055ffff463 Merge pull request #132 from shadps4-emu/gpu_flip
graphics: separate IRQ for GPU driven flips
2024-05-14 23:56:12 +03:00
psucien
45e354fd77 renderer_vk: missing barriers (#134) 2024-05-14 23:46:34 +03:00
psucien
8677972505 graphics: separate IRQ for GPU driven flips 2024-05-14 21:33:20 +02:00
georgemoralis
932f0435e8 scePthreadCondSignal added 2024-05-13 22:53:50 +03:00
georgemoralis
413b67f8ce scePthreadMutexTrylock and some more libcinternal functions 2024-05-13 20:09:32 +03:00
georgemoralis
f1883870fd Initial LibcInternal 2024-05-13 16:13:33 +03:00
georgemoralis
99e4301dcc pthread_self , scePthreadCondSignal , scePthreadCondWait ,scePthreadCondattrDestroy 2024-05-13 15:08:15 +03:00
georgemoralis
882292f1ce added sys_modules folder and ability to load system modules (currently we try ngs2) 2024-05-13 15:01:45 +03:00
georgemoralis
98316575fb Merge pull request #130 from shadps4-emu/kernel_stuff
Kernel stuff & others
2024-05-13 14:19:33 +03:00
georgemoralis
84de60a29a scePthreadDetach , scePthreadAttrSetstacksize , clock_gettime 2024-05-13 14:04:25 +03:00
georgemoralis
d0d84221fd possible fix for linux(?) 2024-05-12 19:36:40 +03:00
georgemoralis
d84752bfbb reuse fix (again) 2024-05-12 19:13:37 +03:00
georgemoralis
c70736d6b7 reuse fix 2024-05-12 19:08:26 +03:00
georgemoralis
64cabdadf2 sceKernelConvertUtcToLocaltime implemented 2024-05-12 19:03:51 +03:00
georgemoralis
6196336533 updated aerolib 2024-05-12 17:51:20 +03:00
georgemoralis
2038d179fe Merge remote-tracking branch 'origin/main' into kernel_stuff 2024-05-11 10:20:32 +03:00
georgemoralis
b326ce5f69 Merge pull request #128 from psucien/gnm_driver/basic_sync
gnm_driver: Gnm eventq and GPU flips
2024-05-11 01:22:17 +03:00
psucien
d804a66aa2 review comments applied 2024-05-11 00:04:04 +02:00
psucien
37014394fd amdgpu: return perfcounter on EOP 2024-05-10 23:16:56 +02:00
psucien
b849b07442 gnm_driver: fixed a typo and fields initialization 2024-05-10 22:58:53 +02:00
psucien
59e7bbdec4 kernel: sceKernelDeleteEqueue added 2024-05-10 22:04:41 +02:00
psucien
923baf0164 core: gpu interrupt dispatcher 2024-05-10 21:48:01 +02:00
psucien
581688c1ac amdgpu: EOS event packet handling 2024-05-10 11:55:04 +02:00
georgemoralis
fc0288d1e5 submodules updated 2024-05-10 00:48:23 +03:00
georgemoralis
a647f95ae5 fixed workflows 2024-05-10 00:05:54 +03:00
georgemoralis
e239df73b4 removed old vulkan headers 2024-05-10 00:04:11 +03:00
psucien
8e0c67f12e amdgpu: wait_reg_mem and write_data implementation
Command list parsing is temporary moved to async task
2024-05-09 22:59:35 +02:00
georgemoralis
b00b849d3f use winpthreads from mingw64 2024-05-09 23:45:09 +03:00
psucien
bfb18135fb amdgpu: EOP irq and dummy PM4 handlers 2024-05-08 23:27:56 +02:00
psucien
498c5eb0cd gnm_driver: sceGnmSubmitAndFlipCommandBuffers implementation 2024-05-08 22:55:39 +02:00
psucien
c7cfe2622d video_out: sceVideoOutSubmitEopFlip stub added 2024-05-08 22:54:34 +02:00
psucien
4746f514ff gnm_driver: various fixes 2024-05-08 22:53:55 +02:00
psucien
72ea0be9ff gnm_driver: sceGnmSetEmbeddedVsShader added 2024-05-08 21:00:01 +02:00
Xphalnos
93797af73f Update Workflows (#127)
* Update Workflows

* Update clang-format.sh

* Revert "Update clang-format.sh"

This reverts commit 391bf7e639.

* Clang 17
2024-05-08 14:17:41 +03:00
psucien
5f83ad2ecb gnm_driver: sceGnmInsertWaitFlipDone added 2024-05-08 07:36:14 +02:00
psucien
50bcd13482 video_out: added display buffer labels 2024-05-08 07:35:10 +02:00
psucien
4206ec3c94 video_core, kernel: added gfx eop event handling 2024-05-07 22:46:54 +02:00
georgemoralis
96cf59efea Merge pull request #125 from shadps4-emu/savedata
Savedata + filesystem implementations
2024-05-07 16:38:39 +03:00
georgemoralis
91dd175d6b added sceKernelGetTscFrequency 2024-05-07 16:28:42 +03:00
georgemoralis
9dff1975a3 libc hle : added ftell , powf , roundf 2024-05-07 16:25:58 +03:00
georgemoralis
b32332956d Merge pull request #126 from psucien/gnm_driver/basic_functionality2
core: libraries: gnmdriver: bit more of basic Gnm driver functions
2024-05-06 23:57:37 +03:00
psucien
1b811e08f1 core: libraries: gnmdriver: bit more of basic Gnm driver functions 2024-05-06 22:13:33 +02:00
georgemoralis
930f239556 clang format 2024-05-05 16:50:55 +03:00
georgemoralis
806781a110 dummy ksernelMunmap (allows we are doomed to progress further) 2024-05-05 12:59:26 +03:00
georgemoralis
ad6724eeba improvements in sceKernelOpen, rewrote sceKernelLseek, added sceKernelWrite, added sceKernelMkdir , partial sceKernelStat 2024-05-05 12:43:01 +03:00
georgemoralis
277e16c7ba sceSaveDataMount2,sceSaveDataUmount some implementation 2024-05-04 22:08:04 +03:00
georgemoralis
2b9b3e76bf moved savedata to proper folder 2024-05-04 19:08:46 +03:00
Xphalnos
235b6e8781 Readme: improvements (#121)
* Update README.md

* Minor fixes

* Update building-windows.md

* Update linux_building.md

* Update readme.txt

* Build status

* Add psucien
2024-05-03 15:49:13 +03:00
georgemoralis
ce4bdee0aa Merge pull request #124 from shadps4-emu/npmodules
added dummy np* modules and screenshot module
2024-05-02 18:27:14 +03:00
georgemoralis
e4d43f8e07 added dummy np* modules and screenshot module 2024-05-02 18:16:10 +03:00
georgemoralis
7d6a717599 Merge pull request #123 from shadps4-emu/sonicmania_work
Sonicmania work
2024-05-02 17:36:59 +03:00
georgemoralis
150854c583 added a login event in sceUserServiceGetEvent 2024-05-02 17:14:55 +03:00
georgemoralis
d2cc256b28 create_thread : sometime thread name is null 2024-05-02 17:14:30 +03:00
georgemoralis
90e3e47c4d added stubbed mostly version of flexible memory - it allows sonic mania to go further 2024-05-02 17:13:51 +03:00
georgemoralis
2f9f4e1eeb Merge pull request #122 from shadps4-emu/psf_info_+_stack_allocation
Psf info + stack allocation
2024-05-02 16:05:09 +03:00
georgemoralis
2308d7f1d6 better way for compiler option 2024-05-02 15:48:48 +03:00
georgemoralis
b0b73f1283 print param.sfo info at startup 2024-05-02 10:57:45 +03:00
georgemoralis
6f1e488b37 fixed stack allocation issue 2024-05-02 10:57:24 +03:00
psucien
7e8d90d609 core: libraries: gnmdriver: basic functionality extension (#120)
Also a bit of refactoring in `video_core`
2024-05-01 19:29:06 +03:00
TheTurtle
1b9bf924ca core: Rewrite thread local storage implementation (#118) 2024-05-01 13:38:41 +03:00
TheTurtle
b94efcba5a video_core: Add basic command list processing (#117) 2024-04-30 01:23:28 +03:00
psucien
2696733cad video_core: prefer discrete gpu if available (#116)
* video_core: prefer discrete gpu if available

* ci: Upgrade to clang format 17

* rewrite w\o std::zip usage

---------

Co-authored-by: raphaelthegreat <47210458+raphaelthegreat@users.noreply.github.com>
2024-04-30 00:19:12 +03:00
georgemoralis
d496fab492 Merge pull request #111 from raphaelthegreat/main
core: Rewrite videoout library and bringup new vulkan backend
2024-04-29 19:33:56 +03:00
georgemoralis
0727775c88 give texture cache exception handler priority over tls exception handler 2024-04-29 19:26:35 +03:00
raphaelthegreat
25c04ad42f texture_cache: Fix linear image uploads
* Also fixed build for clang-cl with libc
2024-04-29 18:22:04 +03:00
georgemoralis
7d96308759 fix config for gpu settings 2024-04-28 19:14:56 +03:00
psucien
35777a9fb3 clang format fix 2024-04-28 01:34:14 +02:00
psucien
453b24eb20 config: option to select gpu for vk device 2024-04-28 01:19:04 +02:00
psucien
249373bf0d texture_cache: protection flags re-worked
* actually I gave up on clang fmt
2024-04-28 01:00:24 +02:00
psucien
d2c53d0fde clang format fix 2024-04-28 00:51:34 +02:00
psucien
1047293bf2 Merge branch 'main' of github.com:raphaelthegreat/shadps4 into raph-main 2024-04-28 00:29:15 +02:00
psucien
e0a4c3f1a3 texture_cache: added memory protection for Windows 2024-04-28 00:21:04 +02:00
raphaelthegreat
40c86b7688 Address feedback 2024-04-28 01:09:03 +03:00
georgemoralis
fec7f6cdc2 added sceVideoOutGetVblankStatus 2024-04-18 22:32:15 +03:00
georgemoralis
1275378e21 fixing qt buids once again 2024-04-15 22:51:36 +03:00
georgemoralis
7b5d8e5ff9 trying to fix actions (again) 2024-04-15 20:35:49 +03:00
georgemoralis
096316619a fixing qt builds 2024-04-15 20:20:00 +03:00
georgemoralis
4394191fae boost submodule was added wrong 2024-04-14 20:18:20 +03:00
georgemoralis
de770bc668 define a linux only code 2024-04-14 19:57:58 +03:00
GPUCode
c01b6f8397 video_core: Rewrite vulkan and videoout 2024-04-14 17:10:40 +03:00
georgemoralis
5979fa74c5 Merge pull request #113 from shadps4-emu/cleanup
src: Reorganize and cleanup libraries
2024-04-14 11:32:57 +03:00
GPUCode
0a94899c86 src: Move control to input directory 2024-04-14 01:18:25 +03:00
GPUCode
5e2ac6c72b src: Reorganize and cleanup libraries 2024-04-14 00:37:17 +03:00
georgemoralis
e99129d72f several fixes (#112)
* updated fmt

* submodules updated

* fixed _TIMESPEC_DEFINED for winpthreads under windows

* fixed sdl3 under qt

* virtual_memory: Ensure mapped addresses stay inside the user area

* Fixes LLE Libc crashing on linux

---------

Co-authored-by: GPUCode <geoster3d@gmail.com>
2024-04-13 22:37:21 +03:00
georgemoralis
5ed4891a1f Merge pull request #110 from shadps4-emu/fixesagain
Fixesagain
2024-04-11 11:49:16 +03:00
georgemoralis
6ca53f8b99 update sdl3 to latest 2024-04-09 13:49:26 +03:00
georgemoralis
6f1c2d3060 clang format fix 2024-04-09 13:40:03 +03:00
georgemoralis
7b16e9af23 improved linker resolver 2024-04-09 13:39:35 +03:00
georgemoralis
3a7834b821 Merge pull request #109 from shadps4-emu/undertale-etc
undertale and other stuff
2024-04-09 11:25:52 +03:00
georgemoralis
bb8a400b7b dummy libscesavedatadialog 2024-04-08 19:03:51 +03:00
georgemoralis
b0cd6e5178 added sceVideoOutGetVblankStatus 2024-04-07 09:27:41 +03:00
georgemoralis
598a6a88e0 Merge pull request #107 from shadps4-emu/modules4
More module work focused on undertale
2024-04-05 20:41:26 +03:00
georgemoralis
5663da21c2 more linux fix 2024-04-05 19:53:54 +03:00
georgemoralis
ea4bb4773e linux build fix 2024-04-05 19:33:38 +03:00
georgemoralis
fc5e133c44 added sceAudioOutSetVolume 2024-04-05 09:59:28 +03:00
georgemoralis
81143b4a9e scePadRead,scePthreadYield implementations 2024-04-05 09:27:13 +03:00
georgemoralis
5409576197 posix nanosleep call 2024-04-04 20:20:50 +03:00
georgemoralis
c29f514e63 just disable audioInOpen 2024-04-04 20:07:33 +03:00
georgemoralis
935842291d dummy sceAudioIn lib 2024-04-04 20:04:18 +03:00
georgemoralis
a049d4c491 added clock_gettime 2024-04-04 19:47:59 +03:00
georgemoralis
121759d836 somehow working scePthreadCreate 2024-04-04 19:16:10 +03:00
georgemoralis
33209a77f1 Merge pull request #102 from shadps4-emu/gui-rewrite
Gui rewrite.
2024-04-02 23:51:13 +03:00
georgemoralis
c832e3831a scePthreadAttrGet , and some mutex work 2024-04-02 18:07:24 +03:00
georgemoralis
2cc03e851e added some debug info to gnm 2024-04-02 17:21:04 +03:00
georgemoralis
0b8cc8eba9 added sceKernelClockGettime 2024-04-02 08:51:17 +03:00
georgemoralis
9d8fc61954 sceSaveDataMount2 just return save data not found for now 2024-04-01 22:31:25 +03:00
georgemoralis
6066c89607 scePadGetControllerInformation added , dummy scePadSetMotionSensorState 2024-04-01 14:45:27 +03:00
georgemoralis
92e4c6b798 scePthreadMutexDestroy implemented 2024-04-01 14:21:40 +03:00
georgemoralis
0d49214da3 Merge pull request #104 from shadps4-emu/modules3
More modules work
2024-04-01 08:45:03 +03:00
georgemoralis
06d6ad09ea log debug message to tty 2024-04-01 08:44:07 +03:00
Jonah
9af38c3309 - Removed unnecessary std::future from game_grid_frame(populate/resize) Thanks SachinVin! 2024-03-31 12:24:08 -06:00
georgemoralis
2382e77898 sceKernelClose,sceKernelRead,sceKernelLseek implementation 2024-03-31 18:04:47 +03:00
georgemoralis
03b3194c44 fixed (?) _write function 2024-03-31 18:04:11 +03:00
georgemoralis
a21722a1db fixed linux issue with enums 2024-03-31 17:37:09 +03:00
georgemoralis
186fa35f13 added ps4_ prefix to libkernel to make sure it deosn't conflict with linux function names 2024-03-31 17:14:21 +03:00
georgemoralis
0525481a9b partial implementation of _write function , which is used as debug ouput from lle libc 2024-03-31 13:33:38 +03:00
georgemoralis
8fa5874fb1 dummy libkernel module 2024-03-31 11:30:43 +03:00
georgemoralis
ad7e750fa7 scePthreadAttrDestroy,scePthreadAttrGetaffinity added 2024-03-30 22:19:42 +02:00
georgemoralis
30946e21dd more clang fixes 2024-03-30 15:41:12 +02:00
georgemoralis
5373d7367d clang format fix 2024-03-30 15:39:21 +02:00
georgemoralis
94cd3be814 dummy sysmodule module 2024-03-30 15:34:01 +02:00
georgemoralis
0719e9c46f Merge pull request #105 from Xphalnos/main
URL migration for Build
2024-03-30 10:43:02 +02:00
georgemoralis
8e8a82a310 some dummy net functions 2024-03-30 09:35:00 +02:00
Xphalnos
f54e1f39cb URL migration for Build
I forwarded the URL for Build ShadPS4 from georgemoralis to shadps4-emu. As the old link was archived, this will allow the document to be modified. I also updated the versions for Windows.
2024-03-30 08:34:44 +01:00
Jonah
c5e68ab819 PKG Viewer:
- Fixed crash when other file extensions are present in the same folder as the packages.
- Fixed display: check patch using serial and not name. fixed display when some games contain a semicolon in the title(STEINS;GATE 0)
- Fixed column resize on first run.
- Added status bar showing the number of packages.
- Removed: saving every single pkg path in config file.
2024-03-30 00:03:15 -06:00
georgemoralis
37813c1f59 clang format fix 2024-03-29 23:28:06 +02:00
georgemoralis
b36df1383a added more dummy modules 2024-03-29 23:25:52 +02:00
Jonah
aaa75a7ce1 - fix grid mode not populating on first run(fresh run with no settings saved).
- refresh game list button.
2024-03-29 00:48:17 -06:00
Jonah
2007c0610e *facepalm* 2024-03-28 23:53:34 -06:00
Jonah
0d1a1fae07 Reuse.. 2024-03-28 23:51:38 -06:00
raziel1000
ca6f582ea8 - Gui rewrite.
- Gui: Bug fixes and cleanup.
- Gui: Performance improvement (loading, resizing...etc)
- Added a simple PKG Viewer(Settings-> Utils -> PKG Viewer), added pkg folders will be saved.
- PKG Viewer: Shows game info(name, id, region...etc)
- PKG Viewer: Right click -> Install PKG to install/extract a game. Patch installation is also possible.
- Added option to dump game list  (Settings -> Utils -> Dump Game List), will be dumped to emu folder GameList.txt
2024-03-28 23:43:46 -06:00
georgemoralis
2d0414c365 Update README.md 2024-03-28 16:38:14 +02:00
georgemoralis
b1e18529ac Merge pull request #101 from Xphalnos/main
Proposed new logo for ShadPS4
2024-03-28 16:37:12 +02:00
Xphalnos
c78f3ad4c5 Change logo 2024-03-28 15:29:21 +01:00
georgemoralis
c3d26e92c6 Merge pull request #100 from shadps4-emu/libc_part2
Libc LLE
2024-03-28 07:24:06 +02:00
georgemoralis
b60a627d44 clang format 2024-03-27 15:02:21 +02:00
georgemoralis
a1468c9d79 loading libSceFios2.prx as lle as well 2024-03-27 13:00:27 +02:00
whereismyfoodat
e272b152ed small fixes , cleanups 2024-03-27 08:41:14 +02:00
georgemoralis
9d4149f006 clang format fix 2024-03-26 19:51:10 +02:00
georgemoralis
489dd2c8fc scePthreadMutexattrDestroy again 2024-03-26 19:20:55 +02:00
georgemoralis
377d962478 dummy sceLibcHeapGetTraceInfo and scePthreadMutexattrDestroy 2024-03-26 19:19:52 +02:00
georgemoralis
da7b4df1c3 implemented sceKernelGetProcParam 2024-03-26 18:48:26 +02:00
georgemoralis
683a0d55bf we can now load libc.prx 2024-03-26 18:29:37 +02:00
georgemoralis
1a7f5f7b31 function to start modules 2024-03-26 18:13:27 +02:00
georgemoralis
bc7228fcb2 relocate before execution 2024-03-26 17:33:48 +02:00
georgemoralis
e5a224aa96 rewrote relocations 2024-03-26 17:17:59 +02:00
georgemoralis
7dbe258edc improved LoadSymbols for export support 2024-03-26 14:05:18 +02:00
georgemoralis
f70fbcac19 linker : Resolve can now load exports as well 2024-03-26 12:57:18 +02:00
georgemoralis
354a9c3cdb clang format fix 2024-03-26 12:33:00 +02:00
georgemoralis
596831947e small improvements on linker Resolve method 2024-03-26 12:31:46 +02:00
georgemoralis
365ae2aac9 some elf improvements 2024-03-26 00:21:38 +02:00
georgemoralis
f2f04142b0 improved symbols_resolver and output 2024-03-25 09:46:36 +02:00
georgemoralis
540c21d382 config option to enable libc lle 2024-03-25 09:26:59 +02:00
georgemoralis
63d8d4d833 started 0.0.4 2024-03-25 09:09:39 +02:00
967 changed files with 688252 additions and 26340 deletions

View File

@@ -10,7 +10,7 @@ if grep -nrI '\s$' src *.yml *.txt *.md Doxyfile .gitignore .gitmodules .ci* dis
fi
# Default clang-format points to default 3.5 version one
CLANG_FORMAT=clang-format-15
CLANG_FORMAT=clang-format-19
$CLANG_FORMAT --version
if [ "$GITHUB_EVENT_NAME" = "pull_request" ]; then

1
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1 @@
ko_fi: shadps4

View File

@@ -0,0 +1,76 @@
# SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
# Docs - https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema
name: Application Bug Report
description: Problem with the application itself (ie. bad file path handling, UX issue)
title: "[APP BUG]: "
body:
- type: markdown
attributes:
value: |
## Important: Read First
**Please do not make support requests on GitHub. Our issue tracker is for tracking bugs and feature requests only.
If you have a support request or are unsure about the nature of your issue please contact us on [discord](https://discord.gg/bFJxfftGW6).**
Please make an effort to make sure your issue isn't already reported.
Do not create issues involving software piracy, our rules specifically prohibit this. Otherwise your issue will be closed and you will be banned in this repository.
- type: checkboxes
id: checklist
attributes:
label: Checklist
options:
- label: I have searched for a similar issue in this repository and did not find one.
required: true
- label: I am using an official build obtained from [releases](https://github.com/shadps4-emu/shadPS4/releases) or updated one of those builds using its in-app updater.
required: true
- type: textarea
id: desc
attributes:
label: Describe the Bug
description: "A clear and concise description of what the bug is"
validations:
required: true
- type: textarea
id: repro
attributes:
label: Reproduction Steps
description: "Detailed steps to reproduce the behavior"
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: "A clear and concise description of what you expected to happen"
validations:
required: false
- type: input
id: os
attributes:
label: Specify OS Version
placeholder: "Example: Windows 11, Arch Linux, MacOS 15"
validations:
required: true
- type: input
id: cpu
attributes:
label: CPU
placeholder: "Example: Intel Core i7-8700"
validations:
required: true
- type: input
id: gpu
attributes:
label: GPU
placeholder: "Example: nVidia GTX 1650"
validations:
required: true
- type: input
id: ram
attributes:
label: Amount of RAM in GB
placeholder: "Example: 16 GB"
validations:
required: true

10
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,10 @@
# SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
blank_issues_enabled: false
contact_links:
- name: Discord
url: https://discord.gg/bFJxfftGW6
about: Get direct support and hang out with us
- name: Wiki
url: https://github.com/shadps4-emu/shadPS4/wiki
about: Information, guides, etc.

View File

@@ -0,0 +1,54 @@
# SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
# Docs - https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema
name: Feature Request
description: Suggest a new feature or improve an existing one
title: "[Feature Request]: "
body:
- type: markdown
attributes:
value: |
## Important: Read First
Please make an effort to make sure your issue isn't already reported.
Do not create issues involving software piracy, our rules specifically prohibit this. Otherwise your issue will be closed and you will be banned in this repository.
- type: checkboxes
id: checklist
attributes:
label: Checklist
options:
- label: I have searched for a similar issue in this repository and did not find one.
required: true
- type: textarea
id: desc
attributes:
label: Description
description: |
A concise description of the feature you want
Include step by step examples of how the feature should work under various circumstances
validations:
required: true
- type: textarea
id: reason
attributes:
label: Reason
description: |
Give a reason why you want this feature
- How will it make things easier for you?
- How does this feature help your enjoyment of the emulator?
- What does it provide that isn't being provided currently?
validations:
required: true
- type: textarea
id: examples
attributes:
label: Examples
description: |
Provide examples of the feature as implemented by other software
Include screenshots or video if you like to help demonstrate how you'd like this feature to work
validations:
required: false

View File

@@ -0,0 +1,95 @@
# SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
# Docs - https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema
name: Game Emulation Bug Report
description: Problem in a game (ie. graphical artifacts, crashes, etc.)
title: "[GAME BUG]: "
body:
- type: markdown
attributes:
value: |
## Important: Read First
**Please do not make support requests on GitHub. Our issue tracker is for tracking bugs and feature requests only.
If you have a support request or are unsure about the nature of your issue please contact us on [discord](https://discord.gg/bFJxfftGW6).**
This repository does not provide support for modded games. You should perform and test a clean game installation before submitting an issue.
This repository does not provide support for game patches. If you are having issues with patches please refer to [Cheats and Patches Repository](https://github.com/shadps4-emu/ps4_cheats).
Before submitting an issue please check [Game Compatibility Repository](https://github.com/shadps4-emu/shadps4-game-compatibility) for the information about the status of the game.
Please make an effort to make sure your issue isn't already reported.
Do not create issues involving software piracy, our rules specifically prohibit this. Otherwise your issue will be closed and you will be banned in this repository.
- type: checkboxes
id: checklist
attributes:
label: Checklist (we expect you to perform these steps before opening the issue)
options:
- label: I have searched for a similar issue in this repository and did not find one.
required: true
- label: I am using an official build obtained from [releases](https://github.com/shadps4-emu/shadPS4/releases) or updated one of those builds using its in-app updater.
required: true
- label: I have re-dumped the game and performed a clean install without mods and the issue is still present.
required: true
- label: I have disabled all patches and cheats and the issue is still present.
required: true
- label: I have all the required [system modules](https://github.com/shadps4-emu/shadps4-game-compatibility?tab=readme-ov-file#informations) installed.
required: true
- type: textarea
id: desc
attributes:
label: Describe the Bug
description: "A clear and concise description of what the bug is"
validations:
required: true
- type: textarea
id: repro
attributes:
label: Reproduction Steps
description: "Detailed steps to reproduce the behavior"
validations:
required: true
- type: input
id: os
attributes:
label: Specify OS Version
placeholder: "Example: Windows 11, Arch Linux, MacOS 15"
validations:
required: true
- type: input
id: cpu
attributes:
label: CPU
placeholder: "Example: Intel Core i7-8700"
validations:
required: true
- type: input
id: gpu
attributes:
label: GPU
placeholder: "Example: nVidia GTX 1650"
validations:
required: true
- type: input
id: ram
attributes:
label: Amount of RAM in GB
placeholder: "Example: 16 GB"
validations:
required: true
- type: input
id: vram
attributes:
label: Amount of VRAM in GB
placeholder: "Example: 8 GB"
validations:
required: true
- type: textarea
id: logs
attributes:
label: "Log File"
description: Drag and drop the log file here. It can be found by right clicking on a game name -> Open Folder... -> Open Log Folder. Make sure that the log type is set to `sync`.
validations:
required: true

View File

@@ -7,7 +7,10 @@ if [[ -z $GITHUB_WORKSPACE ]]; then
GITHUB_WORKSPACE="${PWD%/*}"
fi
export Qt6_DIR="/usr/lib/qt6"
export PATH="$Qt6_DIR/bin:$PATH"
export EXTRA_QT_PLUGINS="waylandcompositor"
export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so"
# Prepare Tools for building the AppImage
wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
@@ -21,5 +24,10 @@ chmod a+x linuxdeploy-plugin-checkrt-x86_64.sh
# Build AppImage
./linuxdeploy-x86_64.AppImage --appdir AppDir
./linuxdeploy-plugin-checkrt-x86_64.sh --appdir AppDir
./linuxdeploy-x86_64.AppImage --appdir AppDir -d "$GITHUB_WORKSPACE"/.github/shadps4.desktop -e "$GITHUB_WORKSPACE"/build/shadps4 -i "$GITHUB_WORKSPACE"/.github/shadps4.png --plugin qt --output appimage
mv Shadps4-x86_64.AppImage Shadps4-qt.AppImage
cp -a "$GITHUB_WORKSPACE/build/translations" AppDir/usr/bin
./linuxdeploy-x86_64.AppImage --appdir AppDir -d "$GITHUB_WORKSPACE"/dist/net.shadps4.shadPS4.desktop -e "$GITHUB_WORKSPACE"/build/shadps4 -i "$GITHUB_WORKSPACE"/src/images/net.shadps4.shadPS4.svg --plugin qt
rm AppDir/usr/plugins/multimedia/libgstreamermediaplugin.so
./linuxdeploy-x86_64.AppImage --appdir AppDir --output appimage
mv shadPS4-x86_64.AppImage Shadps4-qt.AppImage

View File

@@ -17,5 +17,5 @@ chmod a+x linuxdeploy-plugin-checkrt-x86_64.sh
# Build AppImage
./linuxdeploy-x86_64.AppImage --appdir AppDir
./linuxdeploy-plugin-checkrt-x86_64.sh --appdir AppDir
./linuxdeploy-x86_64.AppImage --appdir AppDir -d "$GITHUB_WORKSPACE"/.github/shadps4.desktop -e "$GITHUB_WORKSPACE"/build/shadps4 -i "$GITHUB_WORKSPACE"/.github/shadps4.png --output appimage
mv Shadps4-x86_64.AppImage Shadps4-sdl.AppImage
./linuxdeploy-x86_64.AppImage --appdir AppDir -d "$GITHUB_WORKSPACE"/dist/net.shadps4.shadPS4.desktop -e "$GITHUB_WORKSPACE"/build/shadps4 -i "$GITHUB_WORKSPACE"/src/images/net.shadps4.shadPS4.svg --output appimage
mv shadPS4-x86_64.AppImage Shadps4-sdl.AppImage

View File

@@ -1,9 +0,0 @@
[Desktop Entry]
Name=Shadps4
Exec=shadps4
Terminal=false
Type=Application
Icon=shadps4
Comment=shadps4 emulator
Categories=Game;
StartupWMClass=shadps4;

BIN
.github/shadps4.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 130 KiB

611
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,611 @@
# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
name: Build and Release
on: [push, pull_request]
concurrency:
group: ci-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'push' }}
env:
BUILD_TYPE: Release
jobs:
reuse:
runs-on: ubuntu-24.04
continue-on-error: true
steps:
- uses: actions/checkout@v4
- uses: fsfe/reuse-action@v5
clang-format:
runs-on: ubuntu-24.04
continue-on-error: true
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo add-apt-repository 'deb http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main'
sudo apt update
sudo apt install clang-format-19
- name: Build
env:
COMMIT_RANGE: ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}
run: ./.ci/clang-format.sh
get-info:
runs-on: ubuntu-24.04
outputs:
date: ${{ steps.vars.outputs.date }}
shorthash: ${{ steps.vars.outputs.shorthash }}
fullhash: ${{ steps.vars.outputs.fullhash }}
steps:
- uses: actions/checkout@v4
- name: Get date and git hash
id: vars
run: |
echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
echo "shorthash=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
echo "fullhash=$(git rev-parse HEAD)" >> $GITHUB_ENV
echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
echo "shorthash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
echo "fullhash=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
windows-sdl:
runs-on: windows-2025
needs: get-info
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Cache CMake Configuration
uses: actions/cache@v4
env:
cache-name: ${{ runner.os }}-sdl-ninja-cache-cmake-configuration
with:
path: |
${{github.workspace}}/build
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
restore-keys: |
${{ env.cache-name }}-
- name: Cache CMake Build
uses: hendrikmuhs/ccache-action@v1.2.17
env:
cache-name: ${{ runner.os }}-sdl-cache-cmake-build
with:
append-timestamp: false
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
- name: Setup VS Environment
uses: ilammy/msvc-dev-cmd@v1.13.0
with:
arch: amd64
- name: Configure CMake
run: cmake --fresh -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=ON -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $env:NUMBER_OF_PROCESSORS
- name: Upload Windows SDL artifact
uses: actions/upload-artifact@v4
with:
name: shadps4-win64-sdl-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}
path: ${{github.workspace}}/build/shadPS4.exe
windows-qt:
runs-on: windows-2025
needs: get-info
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Qt
uses: jurplel/install-qt-action@v4
with:
version: 6.9.0
host: windows
target: desktop
arch: win64_msvc2022_64
archives: qtbase qttools
modules: qtmultimedia
- name: Cache CMake Configuration
uses: actions/cache@v4
env:
cache-name: ${{ runner.os }}-qt-ninja-cache-cmake-configuration
with:
path: |
${{github.workspace}}/build
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
restore-keys: |
${{ env.cache-name }}-
- name: Cache CMake Build
uses: hendrikmuhs/ccache-action@v1.2.17
env:
cache-name: ${{ runner.os }}-qt-cache-cmake-build
with:
append-timestamp: false
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
- name: Setup VS Environment
uses: ilammy/msvc-dev-cmd@v1.13.0
with:
arch: amd64
- name: Configure CMake
run: cmake --fresh -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_QT_GUI=ON -DENABLE_UPDATER=ON -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=ON -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $env:NUMBER_OF_PROCESSORS
- name: Deploy and Package
run: |
mkdir upload
move build/shadPS4.exe upload
windeployqt --no-compiler-runtime --no-system-d3d-compiler --no-system-dxc-compiler --dir upload upload/shadPS4.exe
Compress-Archive -Path upload/* -DestinationPath shadps4-win64-qt-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}.zip
- name: Upload Windows Qt artifact
uses: actions/upload-artifact@v4
with:
name: shadps4-win64-qt-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}
path: upload/
macos-sdl:
runs-on: macos-15
needs: get-info
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup latest Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest
- name: Cache CMake Configuration
uses: actions/cache@v4
env:
cache-name: ${{ runner.os }}-sdl-cache-cmake-configuration
with:
path: |
${{github.workspace}}/build
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
restore-keys: |
${{ env.cache-name }}-
- name: Cache CMake Build
uses: hendrikmuhs/ccache-action@v1.2.17
env:
cache-name: ${{runner.os}}-sdl-cache-cmake-build
with:
append-timestamp: false
create-symlink: true
key: ${{env.cache-name}}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
variant: sccache
- name: Configure CMake
run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=ON -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(sysctl -n hw.ncpu)
- name: Package and Upload macOS SDL artifact
run: |
mkdir upload
mv ${{github.workspace}}/build/shadps4 upload
mv ${{github.workspace}}/build/MoltenVK_icd.json upload
mv ${{github.workspace}}/build/libMoltenVK.dylib upload
- uses: actions/upload-artifact@v4
with:
name: shadps4-macos-sdl-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}
path: upload/
macos-qt:
runs-on: macos-15
needs: get-info
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup latest Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest
- name: Setup Qt
uses: jurplel/install-qt-action@v4
with:
version: 6.9.0
host: mac
target: desktop
arch: clang_64
archives: qtbase qttools
modules: qtmultimedia
- name: Cache CMake Configuration
uses: actions/cache@v4
env:
cache-name: ${{ runner.os }}-qt-cache-cmake-configuration
with:
path: |
${{github.workspace}}/build
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
restore-keys: |
${{ env.cache-name }}-
- name: Cache CMake Build
uses: hendrikmuhs/ccache-action@v1.2.17
env:
cache-name: ${{runner.os}}-qt-cache-cmake-build
with:
append-timestamp: false
create-symlink: true
key: ${{env.cache-name}}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
variant: sccache
- name: Configure CMake
run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_OSX_ARCHITECTURES=x86_64 -DENABLE_QT_GUI=ON -DENABLE_UPDATER=ON -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=ON -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(sysctl -n hw.ncpu)
- name: Package and Upload macOS Qt artifact
run: |
mkdir upload
mv ${{github.workspace}}/build/shadps4.app upload
macdeployqt upload/shadps4.app
tar cf shadps4-macos-qt.tar.gz -C upload .
- uses: actions/upload-artifact@v4
with:
name: shadps4-macos-qt-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}
path: shadps4-macos-qt.tar.gz
linux-sdl:
runs-on: ubuntu-24.04
needs: get-info
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Add LLVM repository
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo add-apt-repository 'deb http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main'
- name: Install dependencies
run: sudo apt-get update && sudo apt install -y libx11-dev libxext-dev libwayland-dev libdecor-0-dev libxkbcommon-dev libglfw3-dev libgles2-mesa-dev libfuse2 clang-19 mold build-essential libasound2-dev libpulse-dev libopenal-dev libudev-dev
- name: Cache CMake Configuration
uses: actions/cache@v4
env:
cache-name: ${{ runner.os }}-sdl-cache-cmake-configuration
with:
path: |
${{github.workspace}}/build
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
restore-keys: |
${{ env.cache-name }}-
- name: Cache CMake Build
uses: hendrikmuhs/ccache-action@v1.2.17
env:
cache-name: ${{ runner.os }}-sdl-cache-cmake-build
with:
append-timestamp: false
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
- name: Configure CMake
run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=ON -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=mold" -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=mold" -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(nproc)
- name: Package and Upload Linux(ubuntu64) SDL artifact
run: |
ls -la ${{ github.workspace }}/build/shadps4
- uses: actions/upload-artifact@v4
with:
name: shadps4-ubuntu64-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}
path: ${{ github.workspace }}/build/shadps4
- name: Run AppImage packaging script
run: ./.github/linux-appimage-sdl.sh
- name: Package and Upload Linux SDL artifact
run: |
tar cf shadps4-linux-sdl.tar.gz -C ${{github.workspace}}/build shadps4
- uses: actions/upload-artifact@v4
with:
name: shadps4-linux-sdl-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}
path: Shadps4-sdl.AppImage
linux-qt:
runs-on: ubuntu-24.04
needs: get-info
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Add LLVM repository
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo add-apt-repository 'deb http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main'
- name: Install dependencies
run: sudo apt-get update && sudo apt install -y libx11-dev libxext-dev libwayland-dev libdecor-0-dev libxkbcommon-dev libglfw3-dev libgles2-mesa-dev libfuse2 clang-19 mold build-essential qt6-base-dev qt6-tools-dev qt6-multimedia-dev libasound2-dev libpulse-dev libopenal-dev libudev-dev
- name: Cache CMake Configuration
uses: actions/cache@v4
env:
cache-name: ${{ runner.os }}-qt-cache-cmake-configuration
with:
path: |
${{github.workspace}}/build
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
restore-keys: |
${{ env.cache-name }}-
- name: Cache CMake Build
uses: hendrikmuhs/ccache-action@v1.2.17
env:
cache-name: ${{ runner.os }}-qt-cache-cmake-build
with:
append-timestamp: false
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
- name: Configure CMake
run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=ON -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=mold" -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=mold" -DENABLE_QT_GUI=ON -DENABLE_UPDATER=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(nproc)
- name: Run AppImage packaging script
run: ./.github/linux-appimage-qt.sh
- name: Package and Upload Linux Qt artifact
run: |
tar cf shadps4-linux-qt.tar.gz -C ${{github.workspace}}/build shadps4
- uses: actions/upload-artifact@v4
with:
name: shadps4-linux-qt-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}
path: Shadps4-qt.AppImage
linux-sdl-gcc:
runs-on: ubuntu-24.04
needs: get-info
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install dependencies
run: sudo apt-get update && sudo apt install -y libx11-dev libxext-dev libwayland-dev libdecor-0-dev libxkbcommon-dev libglfw3-dev libgles2-mesa-dev libfuse2 gcc-14 mold build-essential libasound2-dev libpulse-dev libopenal-dev libudev-dev
- name: Cache CMake Configuration
uses: actions/cache@v4
env:
cache-name: ${{ runner.os }}-sdl-gcc-cache-cmake-configuration
with:
path: |
${{github.workspace}}/build
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
restore-keys: |
${{ env.cache-name }}-
- name: Cache CMake Build
uses: hendrikmuhs/ccache-action@v1.2.17
env:
cache-name: ${{ runner.os }}-sdl-gcc-cache-cmake-build
with:
append-timestamp: false
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
- name: Configure CMake
run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=ON -DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=mold" -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=mold" -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(nproc)
linux-qt-gcc:
runs-on: ubuntu-24.04
needs: get-info
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install dependencies
run: sudo apt-get update && sudo apt install -y libx11-dev libxext-dev libwayland-dev libdecor-0-dev libxkbcommon-dev libglfw3-dev libgles2-mesa-dev libfuse2 gcc-14 mold build-essential qt6-base-dev qt6-tools-dev qt6-multimedia-dev libasound2-dev libpulse-dev libopenal-dev libudev-dev
- name: Cache CMake Configuration
uses: actions/cache@v4
env:
cache-name: ${{ runner.os }}-qt-gcc-cache-cmake-configuration
with:
path: |
${{github.workspace}}/build
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
restore-keys: |
${{ env.cache-name }}-
- name: Cache CMake Build
uses: hendrikmuhs/ccache-action@v1.2.17
env:
cache-name: ${{ runner.os }}-qt-gcc-cache-cmake-build
with:
append-timestamp: false
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
- name: Configure CMake
run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=ON -DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=mold" -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=mold" -DENABLE_QT_GUI=ON -DENABLE_UPDATER=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(nproc)
pre-release:
if: github.ref == 'refs/heads/main' && github.repository == 'shadps4-emu/shadPS4' && github.event_name == 'push'
needs: [get-info, windows-sdl, windows-qt, macos-sdl, macos-qt, linux-sdl, linux-qt]
runs-on: ubuntu-latest
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: ./artifacts
- name: Compress individual directories (without parent directory)
run: |
cd ./artifacts
for dir in */; do
if [ -d "$dir" ]; then
dir_name=${dir%/}
echo "Creating zip for $dir_name"
(cd "$dir_name" && zip -r "../${dir_name}.zip" .)
fi
done
- name: Get latest release information
id: get_latest_release
env:
GITHUB_TOKEN: ${{ secrets.SHADPS4_TOKEN_REPO }}
run: |
api_url="https://api.github.com/repos/${{ github.repository }}"
latest_release_info=$(curl -H "Authorization: token $GITHUB_TOKEN" "$api_url/releases/latest")
echo "last_release_tag=$(echo "$latest_release_info" | jq -r '.tag_name')" >> $GITHUB_ENV
- name: Create Pre-Release on GitHub
id: create_release
uses: ncipollo/release-action@v1
with:
token: ${{ secrets.SHADPS4_TOKEN_REPO }}
name: "Pre-release-shadPS4-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}"
tag: "Pre-release-shadPS4-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}"
draft: false
prerelease: true
body: "Full Changelog: [${{ env.last_release_tag }}...${{ needs.get-info.outputs.shorthash }}](https://github.com/shadps4-emu/shadPS4/compare/${{ env.last_release_tag }}...${{ needs.get-info.outputs.fullhash }})"
artifacts: ./artifacts/*.zip
- name: Publish to Release Repository
env:
GITHUB_TOKEN: ${{ secrets.SHADPS4_TOKEN_REPO }}
run: |
ARTIFACTS_DIR=./artifacts
REPO_WINDOWS="shadps4-emu/shadps4-binaries-Windows"
REPO_LINUX="shadps4-emu/shadps4-binaries-Linux"
REPO_MAC="shadps4-emu/shadps4-binaries-Mac"
for file in "$ARTIFACTS_DIR"/*.zip; do
filename=$(basename "$file")
REPO=""
# Determine repository based on file name
if [[ "$filename" == *"win64"* ]]; then
REPO=$REPO_WINDOWS
elif [[ "$filename" == *"linux"* ]] || [[ "$filename" == *"ubuntu64"* ]]; then
REPO=$REPO_LINUX
elif [[ "$filename" == *"macos"* ]]; then
REPO=$REPO_MAC
fi
# If REPO is empty, skip file
if [[ -z "$REPO" ]]; then
echo "No matching repository for $filename"
continue
fi
# Check if release already exists and get ID
release_id=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/repos/$REPO/releases/tags/Pre-release-shadPS4-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}" | jq -r '.id')
if [[ "$release_id" == "null" ]]; then
echo "Creating release in $REPO for $filename"
release_id=$(curl -s -X POST -H "Authorization: token $GITHUB_TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
-d '{
"tag_name": "Pre-release-shadPS4-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}",
"name": "Pre-release-shadPS4-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}",
"draft": false,
"prerelease": true,
"body": "Commit: [${{ needs.get-info.outputs.fullhash }}](https://github.com/shadps4-emu/shadPS4/commit/${{ needs.get-info.outputs.fullhash }})"
}' "https://api.github.com/repos/$REPO/releases" | jq -r '.id')
else
echo "Release already exists in $REPO with ID $release_id"
fi
# Artifact upload
echo "Uploading $filename to release $release_id in $REPO"
upload_url="https://uploads.github.com/repos/$REPO/releases/$release_id/assets?name=$filename"
curl -X POST -H "Authorization: token $GITHUB_TOKEN" -H "Content-Type: application/octet-stream" --data-binary @"$file" "$upload_url"
done
- name: Get current pre-release information
env:
GITHUB_TOKEN: ${{ secrets.SHADPS4_TOKEN_REPO }}
run: |
api_url="https://api.github.com/repos/${{ github.repository }}/releases"
# Get all releases (sorted by date)
releases=$(curl -H "Authorization: token $GITHUB_TOKEN" "$api_url")
# Capture the most recent pre-release (assuming the first one is the latest)
current_release=$(echo "$releases" | jq -c '.[] | select(.prerelease == true) | .published_at' | sort -r | head -n 1)
# Remove extra quotes from captured date
current_release=$(echo $current_release | tr -d '"')
# Export the current published_at to be available for the next step
echo "CURRENT_PUBLISHED_AT=$current_release" >> $GITHUB_ENV
- name: Delete old pre-releases and tags
env:
GITHUB_TOKEN: ${{ secrets.SHADPS4_TOKEN_REPO }}
run: |
api_url="https://api.github.com/repos/${{ github.repository }}/releases"
# Get current pre-releases
releases=$(curl -H "Authorization: token $GITHUB_TOKEN" "$api_url")
# Remove extra quotes from captured date
CURRENT_PUBLISHED_AT=$(echo $CURRENT_PUBLISHED_AT | tr -d '"')
# Convert CURRENT_PUBLISHED_AT para timestamp Unix
current_published_ts=$(date -d "$CURRENT_PUBLISHED_AT" +%s)
# Identify pre-releases
echo "$releases" | jq -c '.[] | select(.prerelease == true)' | while read -r release; do
release_date=$(echo "$release" | jq -r '.published_at')
release_id=$(echo "$release" | jq -r '.id')
release_tag=$(echo "$release" | jq -r '.tag_name')
# Remove extra quotes from captured date
release_date=$(echo $release_date | tr -d '"')
# Convert release_date para timestamp Unix
release_date_ts=$(date -d "$release_date" +%s)
# Compare timestamps and delete old pre-releases
if [[ "$release_date_ts" -lt "$current_published_ts" ]]; then
echo "Deleting old pre-release: $release_id from $release_date with tag: $release_tag"
# Delete the pre-release
curl -X DELETE -H "Authorization: token $GITHUB_TOKEN" "$api_url/$release_id"
# Delete the tag
curl -X DELETE -H "Authorization: token $GITHUB_TOKEN" "https://api.github.com/repos/${{ github.repository }}/git/refs/tags/$release_tag"
else
echo "Skipping pre-release: $release_id (newer or same date)"
fi
done

View File

@@ -1,18 +0,0 @@
# SPDX-FileCopyrightText: 2021 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
name: Reuse
on:
push:
branches: [ main ]
tags: [ "*" ]
pull_request:
branches: [ main ]
jobs:
reuse:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: fsfe/reuse-action@v1

View File

@@ -1,24 +0,0 @@
# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
name: Clang Format
on:
push:
branches: [ "*" ]
pull_request:
branches: [ main ]
jobs:
clang-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install
run: sudo apt-get install clang-format-15
- name: Build
env:
COMMIT_RANGE: ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}
run: ./.ci/clang-format.sh

View File

@@ -1,62 +0,0 @@
# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
name: Linux-Qt
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
CLANG_VER: 17
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Fetch submodules
run: git submodule update --init --recursive
- name: Install misc packages
run: >
sudo apt-get update && sudo apt install libx11-dev libgl1-mesa-glx mesa-common-dev libfuse2
libwayland-dev libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-icccm4 libxcb-image0-dev
libxcb-cursor-dev libxxhash-dev libvulkan-dev
- name: Install newer Clang
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x ./llvm.sh
sudo ./llvm.sh ${{env.CLANG_VER}}
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: 6.6.1
host: linux
target: desktop
#arch: clang++-17
dir: ${{ runner.temp }}
#modules: qtcharts qt3d
setup-python: false
- name: Configure CMake
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang-${{env.CLANG_VER}} -DCMAKE_CXX_COMPILER=clang++-${{env.CLANG_VER}} -DENABLE_QT_GUI=ON
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel
- name: Run AppImage packaging script
run: ./.github/linux-appimage-qt.sh
- name: Upload executable
uses: actions/upload-artifact@v4
with:
name: shadps4-linux-qt
path: Shadps4-qt.AppImage

View File

@@ -1,58 +0,0 @@
# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
name: Linux
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
CLANG_VER: 17
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install misc packages
run: >
sudo apt-get update && sudo apt install libx11-dev libgl1-mesa-glx mesa-common-dev libfuse2 libwayland-dev libxxhash-dev libvulkan-dev
- name: Install newer Clang
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x ./llvm.sh
sudo ./llvm.sh ${{env.CLANG_VER}}
- name: Configure CMake
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang-${{env.CLANG_VER}} -DCMAKE_CXX_COMPILER=clang++-${{env.CLANG_VER}}
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel
- name: Upload executable
uses: actions/upload-artifact@v4
with:
name: shadps4-ubuntu64
path: |
${{github.workspace}}/build/shadps4
${{github.workspace}}/build/libSDL3.so.0.0.0
- name: Run AppImage packaging script
run: ./.github/linux-appimage-sdl.sh
- name: Upload executable
uses: actions/upload-artifact@v4
with:
name: shadps4-sdl-appimage
path: Shadps4-sdl.AppImage

View File

@@ -0,0 +1,11 @@
#!/bin/bash
set -e
sudo apt-get -y install qt6-l10n-tools python3
SCRIPT_PATH="src/qt_gui/translations/update_translation.sh"
chmod +x "$SCRIPT_PATH"
PATH=/usr/lib/qt6/bin:$PATH "$SCRIPT_PATH"

View File

@@ -0,0 +1,30 @@
name: Update Translation
on:
schedule:
- cron: "0 0 * * *" # Every day at 12am UTC.
workflow_dispatch: # As well as manually.
jobs:
update:
if: github.repository == 'shadps4-emu/shadPS4'
name: "Update Translation"
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Set execution permissions for the script
run: chmod +x ./.github/workflows/scripts/update_translation.sh
- name: Update Base Translation
run: ./.github/workflows/scripts/update_translation.sh
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.SHADPS4_TOKEN_REPO }}
title: "Qt GUI: Update Translation"
commit-message: "[ci skip] Qt GUI: Update Translation."
body: "Daily update of translation sources."
branch: update-translation
delete-branch: true

View File

@@ -1,55 +0,0 @@
# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
name: Windows-Qt
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
permissions:
contents: read
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Setup Qt
uses: jurplel/install-qt-action@v3
with:
arch: win64_msvc2019_64
version: 6.6.1
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -T ClangCL -DENABLE_QT_GUI=ON
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel
- name: Deploy
run: |
mkdir upload
move build/Release/shadps4.exe upload
move build/Release/zlib-ng2.dll upload
move build/Release/libwinpthread-1.dll upload
windeployqt --dir upload upload/shadps4.exe
- name: Upload executable
uses: actions/upload-artifact@v2
with:
name: shadps4-win64-qt
path: upload

View File

@@ -1,41 +0,0 @@
# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
name: Windows
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
permissions:
contents: read
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -T ClangCL
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel
- name: Upload a Build Artifact
uses: actions/upload-artifact@v3.1.2
with:
name: shadps4-win64
# A file, directory or wildcard pattern that describes what to upload
path: |
${{github.workspace}}/build/Release/shadps4.exe
${{github.workspace}}/build/Release/SDL3.dll
${{github.workspace}}/build/Release/libwinpthread-1.dll

18
.gitignore vendored
View File

@@ -382,11 +382,13 @@ FodyWeavers.xsd
# VS Code files for those working on multiple tools
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.vscode/settings.json
.vscode/tasks.json
.vscode/launch.json
.vscode/extensions.json
*.code-workspace
/CMakeUserPresets.json
/compile_commands.json
# Local History for Visual Studio Code
.history/
@@ -408,3 +410,11 @@ FodyWeavers.xsd
/emulator/eboot.bin
/out/*
/third-party/out/*
/src/common/scm_rev.cpp
# for macOS
**/.DS_Store
# JetBrains
.idea
cmake-build-*

146
.gitmodules vendored
View File

@@ -1,50 +1,108 @@
[submodule "third-party/fmt"]
path = third-party/fmt
url = https://github.com/fmtlib/fmt.git
shallow = true
[submodule "third-party/magic_enum"]
path = third-party/magic_enum
url = https://github.com/Neargye/magic_enum.git
shallow = true
[submodule "third-party/zydis"]
path = third-party/zydis
url = https://github.com/zyantific/zydis.git
shallow = true
[submodule "third-party/winpthread"]
path = third-party/winpthread
url = https://github.com/shadps4/winpthread.git
branch = main
[submodule "third-party/toml11"]
path = third-party/toml11
url = https://github.com/ToruNiina/toml11
branch = master
[submodule "third-party/xxHash"]
path = third-party/xxHash
url = https://github.com/Cyan4973/xxHash.git
branch = dev
[submodule "third-party/vulkan"]
path = third-party/vulkan
url = https://github.com/GPUCode/vulkan
[submodule "externals/discord-rpc"]
path = externals/discord-rpc
url = https://github.com/shadps4-emu/ext-discord-rpc.git
branch = master
[submodule "externals/cryptopp-cmake"]
path = externals/cryptopp-cmake
url = https://github.com/shadps4-emu/ext-cryptopp-cmake.git
branch = master
[submodule "externals/cryptopp"]
path = externals/cryptopp
url = https://github.com/shadps4-emu/ext-cryptopp.git
branch = master
[submodule "externals/cryptoppwin"]
path = externals/cryptoppwin
url = https://github.com/shadps4-emu/ext-cryptoppwin.git
branch = main
[submodule "externals/zlib-ng"]
path = externals/zlib-ng
url = https://github.com/shadps4-emu/ext-zlib-ng.git
shallow = true
[submodule "externals/sdl3"]
path = externals/sdl3
url = https://github.com/shadps4-emu/ext-SDL.git
shallow = true
[submodule "externals/fmt"]
path = externals/fmt
url = https://github.com/shadps4-emu/ext-fmt.git
shallow = true
[submodule "externals/vulkan-headers"]
path = externals/vulkan-headers
url = https://github.com/KhronosGroup/Vulkan-Headers.git
shallow = true
[submodule "externals/vma"]
path = externals/vma
url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
shallow = true
[submodule "externals/glslang"]
path = externals/glslang
url = https://github.com/KhronosGroup/glslang.git
shallow = true
[submodule "externals/robin-map"]
path = externals/robin-map
url = https://github.com/Tessil/robin-map.git
shallow = true
[submodule "externals/xbyak"]
path = externals/xbyak
url = https://github.com/herumi/xbyak.git
shallow = true
[submodule "externals/magic_enum"]
path = externals/magic_enum
url = https://github.com/Neargye/magic_enum.git
shallow = true
[submodule "externals/toml11"]
path = externals/toml11
url = https://github.com/ToruNiina/toml11.git
shallow = true
[submodule "externals/zydis"]
path = externals/zydis
url = https://github.com/zyantific/zydis.git
shallow = true
[submodule "externals/sirit"]
path = externals/sirit
url = https://github.com/shadps4-emu/sirit.git
shallow = true
[submodule "externals/xxhash"]
path = externals/xxhash
url = https://github.com/Cyan4973/xxHash.git
shallow = true
[submodule "externals/tracy"]
path = externals/tracy
url = https://github.com/shadps4-emu/tracy.git
shallow = true
[submodule "externals/ext-boost"]
path = externals/ext-boost
url = https://github.com/shadps4-emu/ext-boost.git
shallow = true
[submodule "externals/date"]
path = externals/date
url = https://github.com/HowardHinnant/date.git
shallow = true
[submodule "externals/ffmpeg-core"]
path = externals/ffmpeg-core
url = https://github.com/shadps4-emu/ext-ffmpeg-core.git
shallow = true
[submodule "externals/half"]
path = externals/half
url = https://github.com/ROCm/half.git
shallow = true
[submodule "externals/dear_imgui"]
path = externals/dear_imgui
url = https://github.com/shadps4-emu/ext-imgui.git
shallow = true
branch = docking
[submodule "externals/pugixml"]
path = externals/pugixml
url = https://github.com/zeux/pugixml.git
shallow = true
[submodule "externals/discord-rpc"]
path = externals/discord-rpc
url = https://github.com/shadps4-emu/ext-discord-rpc.git
shallow = true
[submodule "externals/LibAtrac9"]
path = externals/LibAtrac9
url = https://github.com/shadps4-emu/ext-LibAtrac9.git
shallow = true
[submodule "externals/libpng"]
path = externals/libpng
url = https://github.com/pnggroup/libpng
shallow = true
[submodule "externals/MoltenVK/SPIRV-Cross"]
path = externals/MoltenVK/SPIRV-Cross
url = https://github.com/KhronosGroup/SPIRV-Cross
shallow = true
[submodule "externals/MoltenVK/MoltenVK"]
path = externals/MoltenVK/MoltenVK
url = https://github.com/KhronosGroup/MoltenVK
shallow = true
[submodule "externals/MoltenVK/cereal"]
path = externals/MoltenVK/cereal
url = https://github.com/USCiLab/cereal
shallow = true
[submodule "externals/libusb"]
path = externals/libusb
url = https://github.com/libusb/libusb-cmake.git

View File

@@ -1,31 +0,0 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Comment: It is best to use this file to record copyright information about
generated, binary and third party files
Files: CMakeSettings.json
scripts/ps4_names.txt
documents/changelog.txt
documents/readme.txt
.github/shadps4.desktop
.github/shadps4.png
.gitmodules
src/images/shadps4.ico
screenshots/screenshot.png
src/images/controller_icon.png
src/images/exit_icon.png
src/images/file_icon.png
src/images/folder_icon.png
src/images/grid_icon.png
src/images/iconsize_icon.png
src/images/list_icon.png
src/images/list_mode_icon.png
src/images/pause_icon.png
src/images/play_icon.png
src/images/refresh_icon.png
src/images/settings_icon.png
src/images/stop_icon.png
src/images/themes_icon.png
src/shadps4.rc
src/shadps4.qrc
Copyright: shadPS4 Emulator Project
License: GPL-2.0-or-later

File diff suppressed because it is too large Load Diff

View File

@@ -1,26 +1,40 @@
{
"configurations": [
{
"name": "x64-Clang-Release",
"generator": "Ninja",
"configurationType": "Release",
"buildRoot": "${projectDir}\\Build\\${name}",
"installRoot": "${projectDir}\\Install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "clang_cl_x64_x64" ],
"intelliSenseMode": "windows-clang-x64"
},
{
"name": "x64-Clang-Debug",
"generator": "Ninja",
"configurationType": "Debug",
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"buildRoot": "${projectDir}\\Build\\${name}",
"installRoot": "${projectDir}\\Install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "clang_cl_x64_x64" ]
"inheritEnvironments": [ "clang_cl_x64_x64" ],
"intelliSenseMode": "windows-clang-x64"
},
{
"name": "x64-Clang-Release",
"name": "x64-Clang-RelWithDebInfo",
"generator": "Ninja",
"configurationType": "RelWithDebInfo",
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"buildRoot": "${projectDir}\\Build\\${name}",
"installRoot": "${projectDir}\\Install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "clang_cl_x64_x64" ]
"inheritEnvironments": [ "clang_cl_x64_x64" ],
"intelliSenseMode": "windows-clang-x64"
}
]
}

View File

@@ -31,7 +31,7 @@ Follow the indentation/whitespace style shown below. Do not use tabs, use 4-spac
* For doc-comments (Doxygen comments), use /// if it's a single line, else use the /** */ style featured in the example. Start the text on the second line, not the first containing /**.
* For items that are both defined and declared in two separate files, put the doc-comment only next to the associated declaration. (In a header file, usually.) Otherwise, put it next to the implementation. Never duplicate doc-comments in both places.
```
```c++
// Includes should be sorted lexicographically
// STD includes first
#include <array>
@@ -69,7 +69,7 @@ enum class SomeEnum {
* Note that the asterisks are indented by one space to align to the first line.
*/
struct Position {
// Always intitialize member variables!
// Always initialize member variables!
int x{};
int y{};
};

11
LICENSES/BSD-3-Clause.txt Normal file
View File

@@ -0,0 +1,11 @@
Copyright (c) <year> <owner>.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

7
LICENSES/BSL-1.0.txt Normal file
View File

@@ -0,0 +1,7 @@
Boost Software License - Version 1.0 - August 17th, 2003
Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following:
The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

121
LICENSES/CC0-1.0.txt Normal file
View File

@@ -0,0 +1,121 @@
Creative Commons Legal Code
CC0 1.0 Universal
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
HEREUNDER.
Statement of Purpose
The laws of most jurisdictions throughout the world automatically confer
exclusive Copyright and Related Rights (defined below) upon the creator
and subsequent owner(s) (each and all, an "owner") of an original work of
authorship and/or a database (each, a "Work").
Certain owners wish to permanently relinquish those rights to a Work for
the purpose of contributing to a commons of creative, cultural and
scientific works ("Commons") that the public can reliably and without fear
of later claims of infringement build upon, modify, incorporate in other
works, reuse and redistribute as freely as possible in any form whatsoever
and for any purposes, including without limitation commercial purposes.
These owners may contribute to the Commons to promote the ideal of a free
culture and the further production of creative, cultural and scientific
works, or to gain reputation or greater distribution for their Work in
part through the use and efforts of others.
For these and/or other purposes and motivations, and without any
expectation of additional consideration or compensation, the person
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
is an owner of Copyright and Related Rights in the Work, voluntarily
elects to apply CC0 to the Work and publicly distribute the Work under its
terms, with knowledge of his or her Copyright and Related Rights in the
Work and the meaning and intended legal effect of CC0 on those rights.
1. Copyright and Related Rights. A Work made available under CC0 may be
protected by copyright and related or neighboring rights ("Copyright and
Related Rights"). Copyright and Related Rights include, but are not
limited to, the following:
i. the right to reproduce, adapt, distribute, perform, display,
communicate, and translate a Work;
ii. moral rights retained by the original author(s) and/or performer(s);
iii. publicity and privacy rights pertaining to a person's image or
likeness depicted in a Work;
iv. rights protecting against unfair competition in regards to a Work,
subject to the limitations in paragraph 4(a), below;
v. rights protecting the extraction, dissemination, use and reuse of data
in a Work;
vi. database rights (such as those arising under Directive 96/9/EC of the
European Parliament and of the Council of 11 March 1996 on the legal
protection of databases, and under any national implementation
thereof, including any amended or successor version of such
directive); and
vii. other similar, equivalent or corresponding rights throughout the
world based on applicable law or treaty, and any national
implementations thereof.
2. Waiver. To the greatest extent permitted by, but not in contravention
of, applicable law, Affirmer hereby overtly, fully, permanently,
irrevocably and unconditionally waives, abandons, and surrenders all of
Affirmer's Copyright and Related Rights and associated claims and causes
of action, whether now known or unknown (including existing as well as
future claims and causes of action), in the Work (i) in all territories
worldwide, (ii) for the maximum duration provided by applicable law or
treaty (including future time extensions), (iii) in any current or future
medium and for any number of copies, and (iv) for any purpose whatsoever,
including without limitation commercial, advertising or promotional
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
member of the public at large and to the detriment of Affirmer's heirs and
successors, fully intending that such Waiver shall not be subject to
revocation, rescission, cancellation, termination, or any other legal or
equitable action to disrupt the quiet enjoyment of the Work by the public
as contemplated by Affirmer's express Statement of Purpose.
3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non exclusive,
irrevocable and unconditional license to exercise Affirmer's Copyright and
Related Rights in the Work (i) in all territories worldwide, (ii) for the
maximum duration provided by applicable law or treaty (including future
time extensions), (iii) in any current or future medium and for any number
of copies, and (iv) for any purpose whatsoever, including without
limitation commercial, advertising or promotional purposes (the
"License"). The License shall be deemed effective as of the date CC0 was
applied by Affirmer to the Work. Should any part of the License for any
reason be judged legally invalid or ineffective under applicable law, such
partial invalidity or ineffectiveness shall not invalidate the remainder
of the License, and in such case Affirmer hereby affirms that he or she
will not (i) exercise any of his or her remaining Copyright and Related
Rights in the Work or (ii) assert any associated claims and causes of
action with respect to the Work, in either case contrary to Affirmer's
express Statement of Purpose.
4. Limitations and Disclaimers.
a. No trademark or patent rights held by Affirmer are waived, abandoned,
surrendered, licensed or otherwise affected by this document.
b. Affirmer offers the Work as-is and makes no representations or
warranties of any kind concerning the Work, express, implied,
statutory or otherwise, including without limitation warranties of
title, merchantability, fitness for a particular purpose, non
infringement, or the absence of latent or other defects, accuracy, or
the present or absence of errors, whether or not discoverable, all to
the greatest extent permissible under applicable law.
c. Affirmer disclaims responsibility for clearing rights of other persons
that may apply to the Work or any use thereof, including without
limitation any person's Copyright and Related Rights in the Work.
Further, Affirmer disclaims responsibility for obtaining any necessary
consents, permissions or other rights required for any use of the
Work.
d. Affirmer understands and acknowledges that Creative Commons is not a
party to this document and has no duty or obligation with respect to
this CC0 or use of the Work.

43
LICENSES/OFL-1.1.txt Normal file
View File

@@ -0,0 +1,43 @@
SIL OPEN FONT LICENSE
Version 1.1 - 26 February 2007
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting, or substituting — in part or in whole — any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

184
README.md
View File

@@ -3,52 +3,186 @@ SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
SPDX-License-Identifier: GPL-2.0-or-later
-->
# shadPS4
<h1 align="center">
<br>
<a href="https://shadps4.net/"><img src="https://github.com/shadps4-emu/shadPS4/blob/main/.github/shadps4.png" width="220"></a>
<br>
<b>shadPS4</b>
<br>
</h1>
An early PS4 emulator for Windows and Linux written in C++
by shadow , skmp , wheremyfoodat , GPUCode
<h1 align="center">
<a href="https://discord.gg/bFJxfftGW6">
<img src="https://img.shields.io/discord/1080089157554155590?color=5865F2&label=shadPS4%20Discord&logo=Discord&logoColor=white" width="275">
<a href="https://github.com/shadps4-emu/shadPS4/releases/latest">
<img src="https://img.shields.io/github/downloads/shadps4-emu/shadPS4/total.svg" width="140">
<a href="https://shadps4.net/">
<img src="https://img.shields.io/badge/shadPS4-website-8A2BE2" width="150">
<a href="https://x.com/shadps4">
<img src="https://img.shields.io/badge/-Join%20us-black?logo=X&logoColor=white" width="100">
<a href="https://github.com/shadps4-emu/shadPS4/stargazers">
<img src="https://img.shields.io/github/stars/shadps4-emu/shadPS4" width="120">
</h1>
[Check us on twitter](https://twitter.com/shadps4 "Check us on twitter")
<p align="center">
<a href="https://shadps4.net/">
<img src="https://github.com/shadps4-emu/shadPS4/blob/main/documents/Screenshots/1.png" width="400">
<img src="https://github.com/shadps4-emu/shadPS4/blob/main/documents/Screenshots/2.png" width="400">
<img src="https://github.com/shadps4-emu/shadPS4/blob/main/documents/Screenshots/3.png" width="400">
<img src="https://github.com/shadps4-emu/shadPS4/blob/main/documents/Screenshots/4.png" width="400">
</p>
# General information
**shadPS4** is an early **PlayStation 4** emulator for **Windows**, **Linux** and **macOS** written in C++.
If you encounter problems or have doubts, do not hesitate to look at the [**Quickstart**](https://github.com/shadps4-emu/shadPS4/blob/main/documents/Quickstart/Quickstart.md).\
To verify that a game works, you can look at [**shadPS4 Game Compatibility**](https://github.com/shadps4-emu/shadps4-game-compatibility).\
To discuss shadPS4 development, suggest ideas or to ask for help, join our [**Discord server**](https://discord.gg/bFJxfftGW6).\
To get the latest news, go to our [**X (Twitter)**](https://x.com/shadps4) or our [**website**](https://shadps4.net/).\
For those who'd like to donate to the project, we now have a [**Kofi page**](https://ko-fi.com/shadps4)!
# Status
Early progress , a small amount of ps4 sdk demos and homebrew games working
> [!IMPORTANT]
> shadPS4 is early in development, don't expect a flawless experience.
# Why?
Currently, the emulator can successfully run games like [**Bloodborne**](https://www.youtube.com/watch?v=wC6s0avpQRE), [**Dark Souls Remastered**](https://www.youtube.com/watch?v=-3PA-Xwszts), [**Red Dead Redemption**](https://www.youtube.com/watch?v=Al7yz_5nLag) and many other games.
The project started as a fun project. Due to short free time, it will probably take a while since it will be able to run something decent, but I am trying to do regular small commits.
# Why
# Build
This project began as a fun project. Given our limited free time, it may take some time before shadPS4 can run more complex games, but we're committed to making small, regular updates.
# Building
> [!IMPORTANT]
> If you want to use shadPS4 to play your games, you don't have to follow the build instructions, you can simply download the emulator from either the [**release tab**](https://github.com/shadps4-emu/shadPS4/releases) or the [**action tab**](https://github.com/shadps4-emu/shadPS4/actions).
## Windows
Check building instructions in [windows build](https://github.com/georgemoralis/shadPS4/blob/main/documents/building-windows.md)
Check the build instructions for [**Windows**](https://github.com/shadps4-emu/shadPS4/blob/main/documents/building-windows.md).
## Linux
Check building instructions in [linux build](https://github.com/georgemoralis/shadPS4/blob/main/documents/linux_building.md)
Check the build instructions for [**Linux**](https://github.com/shadps4-emu/shadPS4/blob/main/documents/building-linux.md).
## Build status
## macOS
Check the build instructions for [**macOS**](https://github.com/shadps4-emu/shadPS4/blob/main/documents/building-macos.md).
> [!IMPORTANT]
> macOS users need at least macOS 15.4 to run shadPS4. Due to GPU issues there are currently heavy bugs on Intel Macs.
# Debugging and reporting issues
For more information on how to test, debug and report issues with the emulator or games, read the [**Debugging documentation**](https://github.com/shadps4-emu/shadPS4/blob/main/documents/Debugging/Debugging.md).
# Keyboard and Mouse Mappings
> [!NOTE]
> Some keyboards may also require you to hold the Fn key to use the F\* keys. Mac users should use the Command key instead of Control, and need to use Command+F11 for full screen to avoid conflicting with system key bindings.
| Button | Function |
|-------------|-------------|
F10 | FPS Counter
Ctrl+F10 | Video Debug Info
F11 | Fullscreen
F12 | Trigger RenderDoc Capture
> [!NOTE]
> Xbox and DualShock controllers work out of the box.
| Controller button | Keyboard equivalent |
|-------------|-------------|
LEFT AXIS UP | W |
LEFT AXIS DOWN | S |
LEFT AXIS LEFT | A |
LEFT AXIS RIGHT | D |
RIGHT AXIS UP | I |
RIGHT AXIS DOWN | K |
RIGHT AXIS LEFT | J |
RIGHT AXIS RIGHT | L |
TRIANGLE | Numpad 8 or C |
CIRCLE | Numpad 6 or B |
CROSS | Numpad 2 or N |
SQUARE | Numpad 4 or V |
PAD UP | UP |
PAD DOWN | DOWN |
PAD LEFT | LEFT |
PAD RIGHT | RIGHT |
OPTIONS | RETURN |
BACK BUTTON / TOUCH PAD | SPACE |
L1 | Q |
R1 | U |
L2 | E |
R2 | O |
L3 | X |
R3 | M |
Keyboard and mouse inputs can be customized in the settings menu by clicking the Controller button, and further details and help on controls are also found there. Custom bindings are saved per-game. Inputs support up to three keys per binding, mouse buttons, mouse movement mapped to joystick input, and more.
# Firmware files
shadPS4 can load some PlayStation 4 firmware files, these must be dumped from your legally owned PlayStation 4 console.\
The following firmware modules are supported and must be placed in shadPS4's `user/sys_modules` folder.
<div align="center">
| Modules | Modules | Modules | Modules |
|-------------------------|-------------------------|-------------------------|-------------------------|
| libSceCesCs.sprx | libSceFont.sprx | libSceFontFt.sprx | libSceFreeTypeOt.sprx |
| libSceJson.sprx | libSceJson2.sprx | libSceLibcInternal.sprx | libSceNgs2.sprx |
| libSceRtc.sprx | libSceUlt.sprx | | |
</div>
> [!Caution]
> The above modules are required to run the games properly and must be extracted from your PlayStation 4.\
> **We do not provide any information or support on how to do this**.
|Platform|Build status|
|--------|------------|
|Windows SDL build|[![Windows-sdl](https://github.com/shadps4-emu/shadPS4/actions/workflows/windows.yml/badge.svg)](https://github.com/shadps4-emu/shadPS4/actions/workflows/windows.yml)
|Linux SDL build|[![Linux-sdl](https://github.com/shadps4-emu/shadPS4/actions/workflows/linux.yml/badge.svg)](https://github.com/shadps4-emu/shadPS4/actions/workflows/linux.yml)
To discuss the development of this emulator, please join our Discord server: [![Discord](https://img.shields.io/discord/1080089157554155590)](https://discord.gg/MyZRaBngxA)
# Main team
- gmoralis (a.k.a. shadow)
- gpucode (a.k.a. emufan4568)
- skmp (a.k.a. drk||Raziel)
- wheremyfoodat (a.k.a. rodakinos)
- [**georgemoralis**](https://github.com/georgemoralis)
- [**psucien**](https://github.com/psucien)
- [**viniciuslrangel**](https://github.com/viniciuslrangel)
- [**roamic**](https://github.com/vladmikhalin)
- [**squidbus**](https://github.com/squidbus)
- [**frodo**](https://github.com/baggins183)
- [**Stephen Miller**](https://github.com/StevenMiller123)
- [**kalaposfos13**](https://github.com/kalaposfos13)
# Contribution
Logo is done by [**Xphalnos**](https://github.com/Xphalnos)
We currently accept any contribution, just open a pr and we will check it :)
# Contributing
If you want to contribute, please look the [**CONTRIBUTING.md**](https://github.com/shadps4-emu/shadPS4/blob/main/CONTRIBUTING.md) file.\
Open a PR and we'll check it :)
# Translations
If you want to translate shadPS4 to your language we use [**Crowdin**](https://crowdin.com/project/shadps4-emulator).
# Contributors
<a href="https://github.com/shadps4-emu/shadPS4/graphs/contributors">
<img src="https://contrib.rocks/image?repo=shadps4-emu/shadPS4&max=24">
</a>
# Sister Projects
- [Panda3DS](https://github.com/wheremyfoodat/Panda3DS): An multiplatform 3DS emulator from our co-author wheremyfoodat
- [hydra](https://github.com/hydra-emu/hydra): An multisystem , multiplatform emulator (chip-8,GB,NES,N64) from Paris
# Special Thanks
A few noteworthy teams/projects who've helped us along the way are:
- [**Panda3DS**](https://github.com/wheremyfoodat/Panda3DS): A multiplatform 3DS emulator from our co-author wheremyfoodat. They have been incredibly helpful in understanding and solving problems that came up from natively executing the x64 code of PS4 binaries
- [**fpPS4**](https://github.com/red-prig/fpPS4): The fpPS4 team has assisted massively with understanding some of the more complex parts of the PS4 operating system and libraries, by helping with reverse engineering work and research.
- **yuzu**: Our shader compiler has been designed with yuzu's Hades compiler as a blueprint. This allowed us to focus on the challenges of emulating a modern AMD GPU while having a high-quality optimizing shader compiler implementation as a base.
- [**felix86**](https://github.com/OFFTKP/felix86): A new x86-64 → RISC-V Linux userspace emulator
# License
- [**GPL-2.0 license**](https://github.com/shadps4-emu/shadPS4/blob/main/LICENSE)

129
REUSE.toml Normal file
View File

@@ -0,0 +1,129 @@
version = 1
[[annotations]]
path = [
"REUSE.toml",
"crowdin.yml",
"CMakeSettings.json",
".github/FUNDING.yml",
".github/shadps4.png",
".github/workflows/scripts/update_translation.sh",
".github/workflows/update_translation.yml",
".gitmodules",
"dist/MacOSBundleInfo.plist.in",
"dist/net.shadps4.shadPS4.desktop",
"dist/net.shadps4.shadPS4_metadata.pot",
"dist/net.shadps4.shadPS4.metainfo.xml",
"documents/changelog.md",
"documents/Quickstart/2.png",
"documents/Screenshots/*",
"documents/Screenshots/Linux/*",
"externals/MoltenVK/MoltenVK_icd.json",
"scripts/ps4_names.txt",
"src/images/bronze.png",
"src/images/gold.png",
"src/images/platinum.png",
"src/images/silver.png",
"src/images/about_icon.png",
"src/images/controller_icon.png",
"src/images/discord.png",
"src/images/dump_icon.png",
"src/images/exit_icon.png",
"src/images/file_icon.png",
"src/images/trophy_icon.png",
"src/images/flag_china.png",
"src/images/flag_eu.png",
"src/images/flag_jp.png",
"src/images/flag_unk.png",
"src/images/flag_us.png",
"src/images/flag_world.png",
"src/images/folder_icon.png",
"src/images/github.png",
"src/images/grid_icon.png",
"src/images/keyboard_icon.png",
"src/images/iconsize_icon.png",
"src/images/KBM.png",
"src/images/ko-fi.png",
"src/images/list_icon.png",
"src/images/list_mode_icon.png",
"src/images/pause_icon.png",
"src/images/play_icon.png",
"src/images/ps4_controller.png",
"src/images/restart_game_icon.png",
"src/images/refreshlist_icon.png",
"src/images/settings_icon.png",
"src/images/fullscreen_icon.png",
"src/images/stop_icon.png",
"src/images/utils_icon.png",
"src/images/shadPS4.icns",
"src/images/shadps4.ico",
"src/images/shadps4.png",
"src/images/net.shadps4.shadPS4.svg",
"src/images/themes_icon.png",
"src/images/update_icon.png",
"src/images/youtube.png",
"src/images/website.png",
"src/images/discord.svg",
"src/images/github.svg",
"src/images/ko-fi.svg",
"src/images/shadps4.svg",
"src/images/website.svg",
"src/images/youtube.svg",
"src/shadps4.qrc",
"src/shadps4.rc",
"src/qt_gui/translations/update_translation.sh",
]
precedence = "aggregate"
SPDX-FileCopyrightText = "shadPS4 Emulator Project"
SPDX-License-Identifier = "GPL-2.0-or-later"
[[annotations]]
path = "externals/cmake-modules/**"
precedence = "aggregate"
SPDX-FileCopyrightText = "2009-2010 Iowa State University"
SPDX-License-Identifier = "BSL-1.0"
[[annotations]]
path = "externals/renderdoc/**"
precedence = "aggregate"
SPDX-FileCopyrightText = "2019-2024 Baldur Karlsson"
SPDX-License-Identifier = "MIT"
[[annotations]]
path = "externals/stb/**"
precedence = "aggregate"
SPDX-FileCopyrightText = "2017 Sean Barrett"
SPDX-License-Identifier = "MIT"
[[annotations]]
path = "externals/tracy/**"
precedence = "aggregate"
SPDX-FileCopyrightText = "2017-2024 Bartosz Taudul <wolf@nereid.pl>"
SPDX-License-Identifier = "BSD-3-Clause"
[[annotations]]
path = "src/imgui/renderer/fonts/NotoSansJP-Regular.ttf"
precedence = "aggregate"
SPDX-FileCopyrightText = "2012 Google Inc. All Rights Reserved."
SPDX-License-Identifier = "OFL-1.1"
[[annotations]]
path = "src/imgui/renderer/fonts/ProggyVector-Regular.ttf"
precedence = "aggregate"
SPDX-FileCopyrightText = "Copyright (c) 2004, 2005 Tristan Grimmer"
SPDX-License-Identifier = "MIT"
[[annotations]]
path = "externals/gcn/include/**"
SPDX-FileCopyrightText = "NONE"
SPDX-License-Identifier = "CC0-1.0"
[[annotations]]
path = "cmake/CMakeRC.cmake"
SPDX-FileCopyrightText = "Copyright (c) 2017 vector-of-bool <vectorofbool@gmail.com>"
SPDX-License-Identifier = "MIT"
[[annotations]]
path = "src/video_core/host_shaders/fsr/*"
SPDX-FileCopyrightText = "Copyright (c) 2021 Advanced Micro Devices, Inc. All rights reserved."
SPDX-License-Identifier = "MIT"

666
cmake/CMakeRC.cmake Normal file
View File

@@ -0,0 +1,666 @@
# MIT License
#
# Copyright (c) 2017 vector-of-bool <vectorofbool@gmail.com>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
# This block is executed when generating an intermediate resource file, not when
# running in CMake configure mode
if(_CMRC_GENERATE_MODE)
# Read in the digits
file(READ "${INPUT_FILE}" bytes HEX)
# Format each pair into a character literal. Heuristics seem to favor doing
# the conversion in groups of five for fastest conversion
string(REGEX REPLACE "(..)(..)(..)(..)(..)" "'\\\\x\\1','\\\\x\\2','\\\\x\\3','\\\\x\\4','\\\\x\\5'," chars "${bytes}")
# Since we did this in groups, we have some leftovers to clean up
string(LENGTH "${bytes}" n_bytes2)
math(EXPR n_bytes "${n_bytes2} / 2")
math(EXPR remainder "${n_bytes} % 5") # <-- '5' is the grouping count from above
set(cleanup_re "$")
set(cleanup_sub )
while(remainder)
set(cleanup_re "(..)${cleanup_re}")
set(cleanup_sub "'\\\\x\\${remainder}',${cleanup_sub}")
math(EXPR remainder "${remainder} - 1")
endwhile()
if(NOT cleanup_re STREQUAL "$")
string(REGEX REPLACE "${cleanup_re}" "${cleanup_sub}" chars "${chars}")
endif()
string(CONFIGURE [[
namespace { const char file_array[] = { @chars@ 0 }; }
namespace cmrc { namespace @NAMESPACE@ { namespace res_chars {
extern const char* const @SYMBOL@_begin = file_array;
extern const char* const @SYMBOL@_end = file_array + @n_bytes@;
}}}
]] code)
file(WRITE "${OUTPUT_FILE}" "${code}")
# Exit from the script. Nothing else needs to be processed
return()
endif()
set(_version 2.0.0)
cmake_minimum_required(VERSION 3.12)
include(CMakeParseArguments)
if(COMMAND cmrc_add_resource_library)
if(NOT DEFINED _CMRC_VERSION OR NOT (_version STREQUAL _CMRC_VERSION))
message(WARNING "More than one CMakeRC version has been included in this project.")
endif()
# CMakeRC has already been included! Don't do anything
return()
endif()
set(_CMRC_VERSION "${_version}" CACHE INTERNAL "CMakeRC version. Used for checking for conflicts")
set(_CMRC_SCRIPT "${CMAKE_CURRENT_LIST_FILE}" CACHE INTERNAL "Path to CMakeRC script")
function(_cmrc_normalize_path var)
set(path "${${var}}")
file(TO_CMAKE_PATH "${path}" path)
while(path MATCHES "//")
string(REPLACE "//" "/" path "${path}")
endwhile()
string(REGEX REPLACE "/+$" "" path "${path}")
set("${var}" "${path}" PARENT_SCOPE)
endfunction()
get_filename_component(_inc_dir "${CMAKE_BINARY_DIR}/_cmrc/include" ABSOLUTE)
set(CMRC_INCLUDE_DIR "${_inc_dir}" CACHE INTERNAL "Directory for CMakeRC include files")
# Let's generate the primary include file
file(MAKE_DIRECTORY "${CMRC_INCLUDE_DIR}/cmrc")
set(hpp_content [==[
#ifndef CMRC_CMRC_HPP_INCLUDED
#define CMRC_CMRC_HPP_INCLUDED
#include <cassert>
#include <functional>
#include <iterator>
#include <list>
#include <map>
#include <mutex>
#include <string>
#include <system_error>
#include <type_traits>
#if !(defined(__EXCEPTIONS) || defined(__cpp_exceptions) || defined(_CPPUNWIND) || defined(CMRC_NO_EXCEPTIONS))
#define CMRC_NO_EXCEPTIONS 1
#endif
namespace cmrc { namespace detail { struct dummy; } }
#define CMRC_DECLARE(libid) \
namespace cmrc { namespace detail { \
struct dummy; \
static_assert(std::is_same<dummy, ::cmrc::detail::dummy>::value, "CMRC_DECLARE() must only appear at the global namespace"); \
} } \
namespace cmrc { namespace libid { \
cmrc::embedded_filesystem get_filesystem(); \
} } static_assert(true, "")
namespace cmrc {
class file {
const char* _begin = nullptr;
const char* _end = nullptr;
public:
using iterator = const char*;
using const_iterator = iterator;
iterator begin() const noexcept { return _begin; }
iterator cbegin() const noexcept { return _begin; }
iterator end() const noexcept { return _end; }
iterator cend() const noexcept { return _end; }
std::size_t size() const { return static_cast<std::size_t>(std::distance(begin(), end())); }
file() = default;
file(iterator beg, iterator end) noexcept : _begin(beg), _end(end) {}
};
class directory_entry;
namespace detail {
class directory;
class file_data;
class file_or_directory {
union _data_t {
class file_data* file_data;
class directory* directory;
} _data;
bool _is_file = true;
public:
explicit file_or_directory(file_data& f) {
_data.file_data = &f;
}
explicit file_or_directory(directory& d) {
_data.directory = &d;
_is_file = false;
}
bool is_file() const noexcept {
return _is_file;
}
bool is_directory() const noexcept {
return !is_file();
}
const directory& as_directory() const noexcept {
assert(!is_file());
return *_data.directory;
}
const file_data& as_file() const noexcept {
assert(is_file());
return *_data.file_data;
}
};
class file_data {
public:
const char* begin_ptr;
const char* end_ptr;
file_data(const file_data&) = delete;
file_data(const char* b, const char* e) : begin_ptr(b), end_ptr(e) {}
};
inline std::pair<std::string, std::string> split_path(const std::string& path) {
auto first_sep = path.find("/");
if (first_sep == path.npos) {
return std::make_pair(path, "");
} else {
return std::make_pair(path.substr(0, first_sep), path.substr(first_sep + 1));
}
}
struct created_subdirectory {
class directory& directory;
class file_or_directory& index_entry;
};
class directory {
std::list<file_data> _files;
std::list<directory> _dirs;
std::map<std::string, file_or_directory> _index;
using base_iterator = std::map<std::string, file_or_directory>::const_iterator;
public:
directory() = default;
directory(const directory&) = delete;
created_subdirectory add_subdir(std::string name) & {
_dirs.emplace_back();
auto& back = _dirs.back();
auto& fod = _index.emplace(name, file_or_directory{back}).first->second;
return created_subdirectory{back, fod};
}
file_or_directory* add_file(std::string name, const char* begin, const char* end) & {
assert(_index.find(name) == _index.end());
_files.emplace_back(begin, end);
return &_index.emplace(name, file_or_directory{_files.back()}).first->second;
}
const file_or_directory* get(const std::string& path) const {
auto pair = split_path(path);
auto child = _index.find(pair.first);
if (child == _index.end()) {
return nullptr;
}
auto& entry = child->second;
if (pair.second.empty()) {
// We're at the end of the path
return &entry;
}
if (entry.is_file()) {
// We can't traverse into a file. Stop.
return nullptr;
}
// Keep going down
return entry.as_directory().get(pair.second);
}
class iterator {
base_iterator _base_iter;
base_iterator _end_iter;
public:
using value_type = directory_entry;
using difference_type = std::ptrdiff_t;
using pointer = const value_type*;
using reference = const value_type&;
using iterator_category = std::input_iterator_tag;
iterator() = default;
explicit iterator(base_iterator iter, base_iterator end) : _base_iter(iter), _end_iter(end) {}
iterator begin() const noexcept {
return *this;
}
iterator end() const noexcept {
return iterator(_end_iter, _end_iter);
}
inline value_type operator*() const noexcept;
bool operator==(const iterator& rhs) const noexcept {
return _base_iter == rhs._base_iter;
}
bool operator!=(const iterator& rhs) const noexcept {
return !(*this == rhs);
}
iterator& operator++() noexcept {
++_base_iter;
return *this;
}
iterator operator++(int) noexcept {
auto cp = *this;
++_base_iter;
return cp;
}
};
using const_iterator = iterator;
iterator begin() const noexcept {
return iterator(_index.begin(), _index.end());
}
iterator end() const noexcept {
return iterator();
}
};
inline std::string normalize_path(std::string path) {
while (path.find("/") == 0) {
path.erase(path.begin());
}
while (!path.empty() && (path.rfind("/") == path.size() - 1)) {
path.pop_back();
}
auto off = path.npos;
while ((off = path.find("//")) != path.npos) {
path.erase(path.begin() + static_cast<std::string::difference_type>(off));
}
return path;
}
using index_type = std::map<std::string, const cmrc::detail::file_or_directory*>;
} // detail
class directory_entry {
std::string _fname;
const detail::file_or_directory* _item;
public:
directory_entry() = delete;
explicit directory_entry(std::string filename, const detail::file_or_directory& item)
: _fname(filename)
, _item(&item)
{}
const std::string& filename() const & {
return _fname;
}
std::string filename() const && {
return std::move(_fname);
}
bool is_file() const {
return _item->is_file();
}
bool is_directory() const {
return _item->is_directory();
}
};
directory_entry detail::directory::iterator::operator*() const noexcept {
assert(begin() != end());
return directory_entry(_base_iter->first, _base_iter->second);
}
using directory_iterator = detail::directory::iterator;
class embedded_filesystem {
// Never-null:
const cmrc::detail::index_type* _index;
const detail::file_or_directory* _get(std::string path) const {
path = detail::normalize_path(path);
auto found = _index->find(path);
if (found == _index->end()) {
return nullptr;
} else {
return found->second;
}
}
public:
explicit embedded_filesystem(const detail::index_type& index)
: _index(&index)
{}
file open(const std::string& path) const {
auto entry_ptr = _get(path);
if (!entry_ptr || !entry_ptr->is_file()) {
#ifdef CMRC_NO_EXCEPTIONS
fprintf(stderr, "Error no such file or directory: %s\n", path.c_str());
abort();
#else
throw std::system_error(make_error_code(std::errc::no_such_file_or_directory), path);
#endif
}
auto& dat = entry_ptr->as_file();
return file{dat.begin_ptr, dat.end_ptr};
}
bool is_file(const std::string& path) const noexcept {
auto entry_ptr = _get(path);
return entry_ptr && entry_ptr->is_file();
}
bool is_directory(const std::string& path) const noexcept {
auto entry_ptr = _get(path);
return entry_ptr && entry_ptr->is_directory();
}
bool exists(const std::string& path) const noexcept {
return !!_get(path);
}
directory_iterator iterate_directory(const std::string& path) const {
auto entry_ptr = _get(path);
if (!entry_ptr) {
#ifdef CMRC_NO_EXCEPTIONS
fprintf(stderr, "Error no such file or directory: %s\n", path.c_str());
abort();
#else
throw std::system_error(make_error_code(std::errc::no_such_file_or_directory), path);
#endif
}
if (!entry_ptr->is_directory()) {
#ifdef CMRC_NO_EXCEPTIONS
fprintf(stderr, "Error not a directory: %s\n", path.c_str());
abort();
#else
throw std::system_error(make_error_code(std::errc::not_a_directory), path);
#endif
}
return entry_ptr->as_directory().begin();
}
};
}
#endif // CMRC_CMRC_HPP_INCLUDED
]==])
set(cmrc_hpp "${CMRC_INCLUDE_DIR}/cmrc/cmrc.hpp" CACHE INTERNAL "")
set(_generate 1)
if(EXISTS "${cmrc_hpp}")
file(READ "${cmrc_hpp}" _current)
if(_current STREQUAL hpp_content)
set(_generate 0)
endif()
endif()
file(GENERATE OUTPUT "${cmrc_hpp}" CONTENT "${hpp_content}" CONDITION ${_generate})
add_library(cmrc-base INTERFACE)
target_include_directories(cmrc-base INTERFACE $<BUILD_INTERFACE:${CMRC_INCLUDE_DIR}>)
# Signal a basic C++11 feature to require C++11.
target_compile_features(cmrc-base INTERFACE cxx_nullptr)
set_property(TARGET cmrc-base PROPERTY INTERFACE_CXX_EXTENSIONS OFF)
add_library(cmrc::base ALIAS cmrc-base)
function(cmrc_add_resource_library name)
set(args ALIAS NAMESPACE TYPE)
cmake_parse_arguments(ARG "" "${args}" "" "${ARGN}")
# Generate the identifier for the resource library's namespace
set(ns_re "[a-zA-Z_][a-zA-Z0-9_]*")
if(NOT DEFINED ARG_NAMESPACE)
# Check that the library name is also a valid namespace
if(NOT name MATCHES "${ns_re}")
message(SEND_ERROR "Library name is not a valid namespace. Specify the NAMESPACE argument")
endif()
set(ARG_NAMESPACE "${name}")
else()
if(NOT ARG_NAMESPACE MATCHES "${ns_re}")
message(SEND_ERROR "NAMESPACE for ${name} is not a valid C++ namespace identifier (${ARG_NAMESPACE})")
endif()
endif()
set(libname "${name}")
# Check that type is either "STATIC" or "OBJECT", or default to "STATIC" if
# not set
if(NOT DEFINED ARG_TYPE)
set(ARG_TYPE STATIC)
elseif(NOT "${ARG_TYPE}" MATCHES "^(STATIC|OBJECT)$")
message(SEND_ERROR "${ARG_TYPE} is not a valid TYPE (STATIC and OBJECT are acceptable)")
set(ARG_TYPE STATIC)
endif()
# Generate a library with the compiled in character arrays.
string(CONFIGURE [=[
#include <cmrc/cmrc.hpp>
#include <map>
#include <utility>
namespace cmrc {
namespace @ARG_NAMESPACE@ {
namespace res_chars {
// These are the files which are available in this resource library
$<JOIN:$<TARGET_PROPERTY:@libname@,CMRC_EXTERN_DECLS>,
>
}
namespace {
const cmrc::detail::index_type&
get_root_index() {
static cmrc::detail::directory root_directory_;
static cmrc::detail::file_or_directory root_directory_fod{root_directory_};
static cmrc::detail::index_type root_index;
root_index.emplace("", &root_directory_fod);
struct dir_inl {
class cmrc::detail::directory& directory;
};
dir_inl root_directory_dir{root_directory_};
(void)root_directory_dir;
$<JOIN:$<TARGET_PROPERTY:@libname@,CMRC_MAKE_DIRS>,
>
$<JOIN:$<TARGET_PROPERTY:@libname@,CMRC_MAKE_FILES>,
>
return root_index;
}
}
cmrc::embedded_filesystem get_filesystem() {
static auto& index = get_root_index();
return cmrc::embedded_filesystem{index};
}
} // @ARG_NAMESPACE@
} // cmrc
]=] cpp_content @ONLY)
get_filename_component(libdir "${CMAKE_CURRENT_BINARY_DIR}/__cmrc_${name}" ABSOLUTE)
get_filename_component(lib_tmp_cpp "${libdir}/lib_.cpp" ABSOLUTE)
string(REPLACE "\n " "\n" cpp_content "${cpp_content}")
file(GENERATE OUTPUT "${lib_tmp_cpp}" CONTENT "${cpp_content}")
get_filename_component(libcpp "${libdir}/lib.cpp" ABSOLUTE)
add_custom_command(OUTPUT "${libcpp}"
DEPENDS "${lib_tmp_cpp}" "${cmrc_hpp}"
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${lib_tmp_cpp}" "${libcpp}"
COMMENT "Generating ${name} resource loader"
)
# Generate the actual static library. Each source file is just a single file
# with a character array compiled in containing the contents of the
# corresponding resource file.
add_library(${name} ${ARG_TYPE} ${libcpp})
set_property(TARGET ${name} PROPERTY CMRC_LIBDIR "${libdir}")
set_property(TARGET ${name} PROPERTY CMRC_NAMESPACE "${ARG_NAMESPACE}")
target_link_libraries(${name} PUBLIC cmrc::base)
set_property(TARGET ${name} PROPERTY CMRC_IS_RESOURCE_LIBRARY TRUE)
if(ARG_ALIAS)
add_library("${ARG_ALIAS}" ALIAS ${name})
endif()
cmrc_add_resources(${name} ${ARG_UNPARSED_ARGUMENTS})
endfunction()
function(_cmrc_register_dirs name dirpath)
if(dirpath STREQUAL "")
return()
endif()
# Skip this dir if we have already registered it
get_target_property(registered "${name}" _CMRC_REGISTERED_DIRS)
if(dirpath IN_LIST registered)
return()
endif()
# Register the parent directory first
get_filename_component(parent "${dirpath}" DIRECTORY)
if(NOT parent STREQUAL "")
_cmrc_register_dirs("${name}" "${parent}")
endif()
# Now generate the registration
set_property(TARGET "${name}" APPEND PROPERTY _CMRC_REGISTERED_DIRS "${dirpath}")
_cm_encode_fpath(sym "${dirpath}")
if(parent STREQUAL "")
set(parent_sym root_directory)
else()
_cm_encode_fpath(parent_sym "${parent}")
endif()
get_filename_component(leaf "${dirpath}" NAME)
set_property(
TARGET "${name}"
APPEND PROPERTY CMRC_MAKE_DIRS
"static auto ${sym}_dir = ${parent_sym}_dir.directory.add_subdir(\"${leaf}\")\;"
"root_index.emplace(\"${dirpath}\", &${sym}_dir.index_entry)\;"
)
endfunction()
function(cmrc_add_resources name)
get_target_property(is_reslib ${name} CMRC_IS_RESOURCE_LIBRARY)
if(NOT TARGET ${name} OR NOT is_reslib)
message(SEND_ERROR "cmrc_add_resources called on target '${name}' which is not an existing resource library")
return()
endif()
set(options)
set(args WHENCE PREFIX)
set(list_args)
cmake_parse_arguments(ARG "${options}" "${args}" "${list_args}" "${ARGN}")
if(NOT ARG_WHENCE)
set(ARG_WHENCE ${CMAKE_CURRENT_SOURCE_DIR})
endif()
_cmrc_normalize_path(ARG_WHENCE)
get_filename_component(ARG_WHENCE "${ARG_WHENCE}" ABSOLUTE)
# Generate the identifier for the resource library's namespace
get_target_property(lib_ns "${name}" CMRC_NAMESPACE)
get_target_property(libdir ${name} CMRC_LIBDIR)
get_target_property(target_dir ${name} SOURCE_DIR)
file(RELATIVE_PATH reldir "${target_dir}" "${CMAKE_CURRENT_SOURCE_DIR}")
if(reldir MATCHES "^\\.\\.")
message(SEND_ERROR "Cannot call cmrc_add_resources in a parent directory from the resource library target")
return()
endif()
foreach(input IN LISTS ARG_UNPARSED_ARGUMENTS)
_cmrc_normalize_path(input)
get_filename_component(abs_in "${input}" ABSOLUTE)
# Generate a filename based on the input filename that we can put in
# the intermediate directory.
file(RELATIVE_PATH relpath "${ARG_WHENCE}" "${abs_in}")
if(relpath MATCHES "^\\.\\.")
# For now we just error on files that exist outside of the soure dir.
message(SEND_ERROR "Cannot add file '${input}': File must be in a subdirectory of ${ARG_WHENCE}")
continue()
endif()
if(DEFINED ARG_PREFIX)
_cmrc_normalize_path(ARG_PREFIX)
endif()
if(ARG_PREFIX AND NOT ARG_PREFIX MATCHES "/$")
set(ARG_PREFIX "${ARG_PREFIX}/")
endif()
get_filename_component(dirpath "${ARG_PREFIX}${relpath}" DIRECTORY)
_cmrc_register_dirs("${name}" "${dirpath}")
get_filename_component(abs_out "${libdir}/intermediate/${ARG_PREFIX}${relpath}.cpp" ABSOLUTE)
# Generate a symbol name relpath the file's character array
_cm_encode_fpath(sym "${relpath}")
# Get the symbol name for the parent directory
if(dirpath STREQUAL "")
set(parent_sym root_directory)
else()
_cm_encode_fpath(parent_sym "${dirpath}")
endif()
# Generate the rule for the intermediate source file
_cmrc_generate_intermediate_cpp(${lib_ns} ${sym} "${abs_out}" "${abs_in}")
target_sources(${name} PRIVATE "${abs_out}")
set_property(TARGET ${name} APPEND PROPERTY CMRC_EXTERN_DECLS
"// Pointers to ${input}"
"extern const char* const ${sym}_begin\;"
"extern const char* const ${sym}_end\;"
)
get_filename_component(leaf "${relpath}" NAME)
set_property(
TARGET ${name}
APPEND PROPERTY CMRC_MAKE_FILES
"root_index.emplace("
" \"${ARG_PREFIX}${relpath}\","
" ${parent_sym}_dir.directory.add_file("
" \"${leaf}\","
" res_chars::${sym}_begin,"
" res_chars::${sym}_end"
" )"
")\;"
)
endforeach()
endfunction()
function(_cmrc_generate_intermediate_cpp lib_ns symbol outfile infile)
add_custom_command(
# This is the file we will generate
OUTPUT "${outfile}"
# These are the primary files that affect the output
DEPENDS "${infile}" "${_CMRC_SCRIPT}"
COMMAND
"${CMAKE_COMMAND}"
-D_CMRC_GENERATE_MODE=TRUE
-DNAMESPACE=${lib_ns}
-DSYMBOL=${symbol}
"-DINPUT_FILE=${infile}"
"-DOUTPUT_FILE=${outfile}"
-P "${_CMRC_SCRIPT}"
COMMENT "Generating intermediate file for ${infile}"
)
endfunction()
function(_cm_encode_fpath var fpath)
string(MAKE_C_IDENTIFIER "${fpath}" ident)
string(MD5 hash "${fpath}")
string(SUBSTRING "${hash}" 0 4 hash)
set(${var} f_${hash}_${ident} PARENT_SCOPE)
endfunction()

23
cmake/FindFFmpeg.cmake Normal file
View File

@@ -0,0 +1,23 @@
# SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
find_package(PkgConfig QUIET)
pkg_check_modules(FFMPEG QUIET IMPORTED_TARGET libavcodec libavfilter libavformat libavutil libswresample libswscale)
find_file(FFMPEG_VERSION_FILE libavutil/ffversion.h HINTS "${FFMPEG_libavutil_INCLUDEDIR}")
if (FFMPEG_VERSION_FILE)
file(STRINGS "${FFMPEG_VERSION_FILE}" FFMPEG_VERSION_LINE REGEX "FFMPEG_VERSION")
string(REGEX MATCH "[0-9.]+" FFMPEG_VERSION "${FFMPEG_VERSION_LINE}")
unset(FFMPEG_VERSION_LINE)
unset(FFMPEG_VERSION_FILE)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(FFmpeg
REQUIRED_VARS FFMPEG_LINK_LIBRARIES
VERSION_VAR FFMPEG_VERSION
)
if (FFmpeg_FOUND AND NOT TARGET FFmpeg::ffmpeg)
add_library(FFmpeg::ffmpeg ALIAS PkgConfig::FFMPEG)
endif()

25
cmake/FindRenderDoc.cmake Normal file
View File

@@ -0,0 +1,25 @@
# SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
find_path(RENDERDOC_INCLUDE_DIR renderdoc_app.h)
if (RENDERDOC_INCLUDE_DIR AND EXISTS "${RENDERDOC_INCLUDE_DIR}/renderdoc_app.h")
file(STRINGS "${RENDERDOC_INCLUDE_DIR}/renderdoc_app.h" RENDERDOC_VERSION_LINE REGEX "typedef struct RENDERDOC_API")
string(REGEX REPLACE ".*typedef struct RENDERDOC_API_([0-9]+)_([0-9]+)_([0-9]+).*" "\\1.\\2.\\3" RENDERDOC_VERSION "${RENDERDOC_VERSION_LINE}")
unset(RENDERDOC_VERSION_LINE)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(RenderDoc
REQUIRED_VARS RENDERDOC_INCLUDE_DIR
VERSION_VAR RENDERDOC_VERSION
)
if (RenderDoc_FOUND AND NOT TARGET RenderDoc::API)
add_library(RenderDoc::API INTERFACE IMPORTED)
set_target_properties(RenderDoc::API PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${RENDERDOC_INCLUDE_DIR}"
)
endif()
mark_as_advanced(RENDERDOC_INCLUDE_DIR)

28
cmake/Findhalf.cmake Normal file
View File

@@ -0,0 +1,28 @@
# SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
find_path(half_INCLUDE_DIR NAMES half.hpp PATH_SUFFIXES half)
if (half_INCLUDE_DIR)
file(STRINGS "${half_INCLUDE_DIR}/half.hpp" _ver_line
REGEX "^// Version [0-9.]+$"
LIMIT_COUNT 1
)
string(REGEX MATCH "[0-9.]+" half_VERSION "${_ver_line}")
unset(_ver_line)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(half
REQUIRED_VARS half_INCLUDE_DIR
VERSION_VAR half_VERSION
)
if (half_FOUND AND NOT TARGET half::half)
add_library(half::half INTERFACE IMPORTED)
set_target_properties(half::half PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${half_INCLUDE_DIR}"
)
endif()
mark_as_advanced(half_INCLUDE_DIR)

15
cmake/Findlibusb.cmake Normal file
View File

@@ -0,0 +1,15 @@
# SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
find_package(PkgConfig QUIET)
pkg_search_module(LIBUSB QUIET IMPORTED_TARGET libusb-1.0)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(libusb
REQUIRED_VARS LIBUSB_LINK_LIBRARIES
VERSION_VAR LIBUSB_VERSION
)
if (libusb_FOUND AND NOT TARGET libusb::usb)
add_library(libusb::usb ALIAS PkgConfig::LIBUSB)
endif()

19
cmake/Findstb.cmake Normal file
View File

@@ -0,0 +1,19 @@
# SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
find_path(stb_image_INCLUDE_DIR stb_image.h PATH_SUFFIXES stb)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(stb
REQUIRED_VARS stb_image_INCLUDE_DIR
)
if (stb_FOUND AND NOT TARGET stb::headers)
add_library(stb::headers INTERFACE IMPORTED)
set_property(TARGET stb::headers PROPERTY
INTERFACE_INCLUDE_DIRECTORIES
"${stb_image_INCLUDE_DIR}"
)
endif()
mark_as_advanced(stb_image_INCLUDE_DIR)

15
cmake/FindxxHash.cmake Normal file
View File

@@ -0,0 +1,15 @@
# SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
find_package(PkgConfig QUIET)
pkg_search_module(XXHASH QUIET IMPORTED_TARGET libxxhash)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(xxHash
REQUIRED_VARS XXHASH_LINK_LIBRARIES
VERSION_VAR XXHASH_VERSION
)
if (xxHash_FOUND AND NOT TARGET xxHash::xxhash)
add_library(xxHash::xxhash ALIAS PkgConfig::XXHASH)
endif()

3
crowdin.yml Normal file
View File

@@ -0,0 +1,3 @@
files:
- source: /src/qt_gui/translations/en_US.ts
translation: /%original_path%/%locale_with_underscore%.ts

46
dist/MacOSBundleInfo.plist.in vendored Normal file
View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleName</key>
<string>shadps4</string>
<key>CFBundleIdentifier</key>
<string>com.shadps4-emu.shadps4</string>
<key>CFBundleExecutable</key>
<string>shadps4</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>CFBundleShortVersionString</key>
<string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
<key>LSMinimumSystemVersion</key>
<string>${CMAKE_OSX_DEPLOYMENT_TARGET}</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.games</string>
<key>GCSupportsGameMode</key>
<true/>
<key>NSHumanReadableCopyright</key>
<string></string>
<key>CFBundleIconFile</key>
<string>${MACOSX_BUNDLE_ICON_FILE}</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleAllowMixedLocalizations</key>
<true/>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSSupportsAutomaticGraphicsSwitching</key>
<true/>
</dict>
</plist>

9
dist/net.shadps4.shadPS4.desktop vendored Normal file
View File

@@ -0,0 +1,9 @@
[Desktop Entry]
Name=shadPS4
Exec=shadps4
Terminal=false
Type=Application
Icon=net.shadps4.shadPS4
Comment=PlayStation 4 emulator
Categories=Game;Emulator;
StartupWMClass=shadps4;

96
dist/net.shadps4.shadPS4.metainfo.xml vendored Normal file
View File

@@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id translate="no">net.shadps4.shadPS4</id>
<name translate="no">shadPS4</name>
<developer id="net.shadps4.shadPS4">
<name>shadPS4 Contributors</name>
<url translate="no">https://github.com/shadps4-emu/shadps4/graphs/contributors</url>
</developer>
<summary>PS4 Emulator</summary>
<metadata_license translate="no">CC0-1.0</metadata_license>
<project_license translate="no">GPL-2.0</project_license>
<launchable type="desktop-id" translate="no">net.shadps4.shadPS4.desktop</launchable>
<url type="homepage" translate="no">https://shadps4.net/</url>
<description>
<p>shadPS4 is an early PlayStation 4 emulator for Windows, Linux and macOS written in C++.</p>
<p>The emulator is still early in development, so don't expect a flawless experience. Nonetheless, the emulator can already run a number of commercial games.</p>
</description>
<screenshots>
<screenshot type="default">
<image type="source" translate="no" >https://cdn.jsdelivr.net/gh/shadps4-emu/shadps4@main/documents/Screenshots/1.png</image>
<caption>Bloodborne</caption>
</screenshot>
<screenshot>
<image type="source" translate="no">https://cdn.jsdelivr.net/gh/shadps4-emu/shadps4@main/documents/Screenshots/2.png</image>
<caption>Hatsune Miku: Project DIVA Future Tone</caption>
</screenshot>
<screenshot>
<image type="source" translate="no">https://cdn.jsdelivr.net/gh/shadps4-emu/shadps4@main/documents/Screenshots/3.png</image>
<caption>Yakuza 0</caption>
</screenshot>
<screenshot>
<image type="source" translate="no">https://cdn.jsdelivr.net/gh/shadps4-emu/shadps4@main/documents/Screenshots/4.png</image>
<caption>Persona 4 Golden</caption>
</screenshot>
</screenshots>
<categories>
<category translate="no">Game</category>
</categories>
<releases>
<release version="0.9.0" date="2025-05-22">
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.9.0</url>
</release>
<release version="0.8.0" date="2025-04-23">
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.8.0</url>
</release>
<release version="0.7.0" date="2025-03-23">
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.7.0</url>
</release>
<release version="0.6.0" date="2025-01-31">
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.6.0</url>
</release>
<release version="0.5.0" date="2024-12-25">
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.5.0</url>
</release>
<release version="0.4.0" date="2024-10-31">
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.4.0</url>
</release>
<release version="0.3.0" date="2024-09-23">
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.3.0</url>
</release>
<release version="0.2.0" date="2024-08-15">
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.2.0</url>
</release>
<release version="0.1.0" date="2024-07-01">
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/0.1.0</url>
</release>
<release version="0.0.3" date="2024-03-23">
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v0.0.3</url>
</release>
<release version="0.0.2" date="2023-10-21">
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v0.0.2</url>
</release>
<release version="0.0.1" date="2024-09-29">
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v0.0.1</url>
</release>
</releases>
<content_rating type="oars-1.1"/>
<supports>
<control translate="no">keyboard</control>
</supports>
<recommends>
<control translate="no">gamepad</control>
</recommends>
<requires>
<internet translate="no">offline-only</internet>
</requires>
<provides>
<binary translate="no">shadps4</binary>
</provides>
<keywords>
<keyword>emulator</keyword>
<keyword>emulation</keyword>
<keyword translate="no">playstation</keyword>
<keyword translate="no">ps4</keyword>
</keywords>
</component>

65
dist/net.shadps4.shadPS4_metadata.pot vendored Normal file
View File

@@ -0,0 +1,65 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2024-11-08 09:07+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. (itstool) path: component/name
#: ./net.shadps4.shadPS4.metainfo.xml:4
msgid "shadPS4"
msgstr ""
#. (itstool) path: developer/name
#: ./net.shadps4.shadPS4.metainfo.xml:6
msgid "shadPS4 Contributors"
msgstr ""
#. (itstool) path: component/summary
#: ./net.shadps4.shadPS4.metainfo.xml:9
msgid "PS4 Emulator"
msgstr ""
#. (itstool) path: description/p
#: ./net.shadps4.shadPS4.metainfo.xml:16
msgid "shadPS4 is an early PlayStation 4 emulator for Windows, Linux and macOS written in C++."
msgstr ""
#. (itstool) path: description/p
#: ./net.shadps4.shadPS4.metainfo.xml:17
msgid "The emulator is still early in development, so don't expect a flawless experience. Nonetheless, the emulator can already run a number of commercial games."
msgstr ""
#. (itstool) path: screenshot/caption
#: ./net.shadps4.shadPS4.metainfo.xml:22
msgid "Bloodborne"
msgstr ""
#. (itstool) path: screenshot/caption
#: ./net.shadps4.shadPS4.metainfo.xml:26
msgid "Hatsune Miku: Project DIVA Future Tone"
msgstr ""
#. (itstool) path: screenshot/caption
#: ./net.shadps4.shadPS4.metainfo.xml:30
msgid "Yakuza Kiwami"
msgstr ""
#. (itstool) path: screenshot/caption
#: ./net.shadps4.shadPS4.metainfo.xml:34
msgid "Persona 4 Golden"
msgstr ""
#. (itstool) path: keywords/keyword
#: ./net.shadps4.shadPS4.metainfo.xml:59
msgid "emulator"
msgstr ""
#. (itstool) path: keywords/keyword
#: ./net.shadps4.shadPS4.metainfo.xml:60
msgid "emulation"
msgstr ""

View File

@@ -0,0 +1,156 @@
<!--
SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
SPDX-License-Identifier: GPL-2.0-or-later
-->
# Debugging and reporting issues about shadPS4 and games
This document covers information about debugging, troubleshooting and reporting developer-side issues related to shadPS4 and games.
## Setup
This section will guide you through setting up tools for debugging the emulator. This list will likely expand as more tools and platforms receive consistent setups.
<details>
<summary>Windows and Visual Studio</summary>
Make sure you have the project set up for building on Windows with Visual Studio and CMake: [Build shadPS4 for Windows
](https://github.com/shadps4-emu/shadPS4/blob/main/documents/building-windows.md)
1. Open the project folder in Visual Studio **as a folder**. _Do not run `cmake ..` or other commands that set up the project._
2. In the Solution Explorer, click the **Switch between solutions and available views** button.\
![image](https://github.com/user-attachments/assets/4e2be2b1-ba5a-4451-9ab2-f4ecf246213d)
3. Double-click on **CMake Targets View**.\
![image](https://github.com/user-attachments/assets/5ce7cf90-cd61-4cfa-bef5-645909827290)
4. Under **shadPS4 Project**, right-click on the **shadps4 (executable)** solution and click **Set as Startup Item**. This will let you start and debug shadPS4 using the VS debug buttons, as well as the default F5 shortcut.\
![image](https://github.com/user-attachments/assets/34c7c047-28a3-499f-be8f-df781134d104)
5. Right-click the **shadps4 (executable)** solution once more and click **Add debug configuration**.
6. Add an `"args: []"` section into the first `configurations` entry.\
List your game path as an argument, as if you were launching the non-GUI emulator from the command line.
![image](https://github.com/user-attachments/assets/8c7c3e69-f38f-4d6b-bdfd-4f1c41c50be7)
7. Set the appropriate CMake configuration for debugging or testing.
- For debugging the emulator and games within it, select `x64-Clang-Debug`.
- For testing the emulator with compiler optimizations as a release build, it is recommended to select `x64-Clang-RelWithDebInfo`,
as debug symbols will still be generated in case you encounter release configuration-exclusive bugs/errors.
![image](https://github.com/user-attachments/assets/0d975f7a-7bea-4f89-87ef-5d685bea4381)
Launch and debug the emulator through **Debug > Start Debugging** (F5 by default), or **Debug > Start Without Debugging** (Ctrl+F5 by default) when testing games for performance.
</details>
## Configuration
You can configure the emulator by editing the `config.toml` file found in the `user` folder created after starting the application.
<details>
<summary>Some configuration entries worth changing</summary>
- `[General]`
- `logType`: Configures logging synchronization (`sync`/`async`)
- By default, the emulator logs messages asynchronously for better performance. Some log messages may end up being received out-of-order.
- It can be beneficial to set this to `sync` in order for the log to accurately maintain message order, at the cost of performance.
- When communicating about issues with games and the log messages aren't clear due to potentially confusing order, set this to `sync` and send that log as well.
- `logFilter`: Sets the logging category for various logging classes.
- Format: `<class>:<level> ...`
- Multiple classes can be set by separating them with a space. (example: `Render:Warning Debug:Critical Lib.Pad:Error`)
- Sub-classes can be specified in the same format as seen in the console/log (such as `Core.Linker`).
- All classes and sub-classes can be set by specifying a `*` symbol. (example: `Kernel.*:Critical`)
- Valid log levels: `Trace, Debug, Info, Warning, Error, Critical` - in this order, setting a level silences all levels preceding it and logs every level after it.
- Examples:
- If the log is being spammed with messages coming from Lib.Pad, you can use `Lib.Pad:Critical` to only log critical-level messages.
- If you'd like to mute everything, but still want to receive messages from Vulkan rendering: `*:Critical Render.Vulkan:Info`
- `Fullscreen`: Display the game in a full screen borderless window.
- `[GPU]`
- `dumpShaders`: Dump shaders that are loaded by the emulator. Dump path: `../user/shader/dumps`
- `nullGpu`: Disables rendering.
- `screenWidth` and `screenHeight`: Configures the game window width and height.
- `[Vulkan]`
- `validation`-related settings: Use when debugging Vulkan.
- `rdocEnable`: Automatically hook RenderDoc when installed. Useful for debugging shaders and game rendering.
- `rdocMarkersEnable`: Enable automatic RenderDoc event annotation
- `[LLE]`
- `libc`: Use LLE with `libc`.
</details>
## Quick analysis
This section will provide some preliminary steps to take and tips on what to do when you encounter scenarios that require debugging.
<details open>
<summary>When a game crashes and breaks in the debugger</summary>
1. Analyze the log
- A console will open by default when you launch the emulator. It shows the same log messages that go into the log file found at `<emulator executable>/user/log/shad_log.txt`.
- It is recommended that you start analyzing the log bottom-up first:
- Are there any critical or error-level messages at the end of the log that would point to a reason for the game crashing?
- Do any of the last few messages contain information about the game loading files?
- Did the game window draw anything on-screen?
- Continue analyzing the log from the start to see other errors (such as with initialization, memory mapping, linker errors etc.)
2. Analyze the stack trace
- When the emulator is launched through a debugger, it will **break** when an exception or violation is encountered.\
_(**breaking** in this context means pausing execution of the program before it continues or stops altogether.
Breaks can be intentional as well - these are set with various kinds of **breakpoints**.)_
- Default setups of most debuggers include a **Stack trace** window/panel that lists the functions the program has called before breaking.
- The stack trace entries can be navigated to and will show the relevant function, as well as switch to the state that the program was in at the time of execution.\
Use the **Locals** and **Watch** windows to investigate variables and other code in these contexts.
3. Identify the reason for the crash
- **Logs aren't always accurate in determining the reason for a crash.**\
Some log entries are reported as errors but may not be fatal for the execution to stop. `Critical` entries are most likely to be the cause for crashes.
- Pinpoint the area of the emulator where the crash occured\
If the stack trace ends with functions that are relevant to rendering, it is safe to assume that the issue is with **rendering**.\
Similarly, if a crash is in a library responsible for playing videos, your issue can be narrowed down to the scope of video playback in the emulator.
- **⚠ Some crashes are intentional**
- If you identify **Access violations for writing operations** where the function is (or in cases of game libraries, _looks like_ it is) copying memory,
it most likely is an **intentional exception** meant to catch game data being written by the game.
This is used by the emulator developers to identify procedures that have to do with game data changing.
- Debugging tools usually include an option to not break on certain types of exceptions. **Exclude access violations and other intentional exceptions when debugging to skip these exceptions.**
- You can also identify such cases if the game works in Release builds of the emulator. These intentional exceptions are development-time only.
- Attempt to **Continue** and observe whether the stack trace and/or variables and registers change when you encounter exceptions.
</details>
## Reporting and communicating about issues
When communicating with the project about game-specific issues, specify an **uniquely identifable game name** along with its `CUSA-xxxxx` code that is specific to the region/variant of the game you're testing.\
The version number is also important to add at least in the description, especially if you can verify that the game behaves differently across versions.\
Accurately identifying games will help other developers that own that game recognize your issue by its title and jump in to help test and debug it.
- Examples of good naming schemes:
- Amplitude (2016) `CUSA02480`
- Rock Band 4 (`CUSA02084`) v1.0
- inFamous: Second Son \[`CUSA-00004`\]
- Examples of unideal naming schemes:
- _The Witness_
- _GTA 5_
- _Watch Dogs_
- If your issue is small or you aren't sure whether you have properly identified something, [join the Discord server](https://discord.gg/MyZRaBngxA) and use the #development channel
to concisely explain the issue, as well as any findings you currently have.
- It is recommended that you check the [game compatibility issue tracker](https://github.com/shadps4-emu/shadps4-game-compatibility/issues) and post very short summaries of progress changes there,
(such as the game now booting into the menu or getting in-game) for organizational and status update purposes.
-**Do not post theoretical, unproven game-specific issues in the emulator issue tracker that you cannot verify and locate in the emulator source code as being a bug.**\
Do, however, add information about the game you experienced the issue in, so that it can be tested in a reproducible environment.
- Good example: "_Crash in `Shader::Gcn::CFG::EmitBlocks()`, out of bounds list access_" -> _issue description shares stack trace, points to code in the repository and provides relevant information_
- Bad example: "_Amplitude crashes on boot, access violation_" -> _issue description reiterates title, focuses on the game instead of the emulator and refuses to elaborate_

View File

@@ -0,0 +1,58 @@
<!--
SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
SPDX-License-Identifier: GPL-2.0-or-later
-->
# shadPS4 Quickstart
## Summary
- [**PC Requirements**](#minimum-pc-requirements)
- [**CPU**](#cpu)
- [**GPU**](#gpu)
- [**RAM**](#ram)
- [**OS**](#os)
- [**Have the latest WIP version**](#how-to-run-the-latest-work-in-progress-builds-of-shadps4)
- [**Configure the emulator**](#configure-the-emulator)
## Minimum PC requirements
### CPU
- A processor with at least 4 cores and 6 threads
- Above 2.5 GHz frequency
- A CPU supporting the x86-64-v3 baseline.
- **Intel**: Haswell generation or newer
- **AMD**: Excavator generation or newer
- **Apple**: Rosetta 2 on macOS 15.4 or newer
### GPU
- A graphics card with at least 1GB of VRAM
- Up-to-date graphics drivers
- Vulkan 1.3 with the `VK_KHR_swapchain` and `VK_KHR_push_descriptor` extensions
### RAM
- 8GB of RAM or more
### OS
- Windows 10 or Ubuntu 22.04
## How to run the latest Work-in-Progress builds of shadPS4
1. Go to <https://github.com/shadps4-emu/shadPS4/releases> In the release identified as 'pre-release' click on the down arrow(Assets), select your operating system of choice (the "**qt**" versions have a user interface, which is probably the one you want. The others are SDL versions, which can only be run via command line).
![image](https://github.com/user-attachments/assets/af520c77-797c-41a0-8f67-d87f5de3e3df)
2. Once downloaded, extract to its own folder, and run shadPS4's executable from the extracted folder.
3. Upon first launch, shadPS4 will prompt you to select a folder to store your installed games in. Select "Browse" and then select a folder that contains your dumped games.
## Configure the emulator
To configure the emulator, you can go through the interface and go to "settings".
You can also configure the emulator by editing the `config.toml` file located in the `user` folder created after the application is started (Mostly useful if you are using the SDL version).
Some settings may be related to more technical development and debugging.\
For more information on this, see [**Debugging**](https://github.com/shadps4-emu/shadPS4/blob/main/documents/Debugging/Debugging.md#configuration).

BIN
documents/Screenshots/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
documents/Screenshots/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

BIN
documents/Screenshots/3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
documents/Screenshots/4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

158
documents/building-linux.md Normal file
View File

@@ -0,0 +1,158 @@
<!--
SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
SPDX-License-Identifier: GPL-2.0-or-later
-->
## Build shadPS4 for Linux
First and foremost, Clang 18 is the **recommended compiler** as it is used for official builds and CI. If you build with GCC, you might encounter issues — please report any you find. Additionally, if you choose to use GCC, please build shadPS4 with Clang at least once before creating an `[APP BUG]` issue or submitting a pull request.
## Preparatory steps
### Installing dependencies
#### Debian & Ubuntu
```bash
sudo apt install build-essential clang git cmake libasound2-dev \
libpulse-dev libopenal-dev libssl-dev zlib1g-dev libedit-dev \
libudev-dev libevdev-dev libsdl2-dev libjack-dev libsndio-dev \
qt6-base-dev qt6-tools-dev qt6-multimedia-dev libvulkan-dev \
vulkan-validationlayers libpng-dev
```
#### Fedora
```bash
sudo dnf install clang git cmake libatomic alsa-lib-devel \
pipewire-jack-audio-connection-kit-devel openal-devel \
openssl-devel libevdev-devel libudev-devel libXext-devel \
qt6-qtbase-devel qt6-qtbase-private-devel \
qt6-qtmultimedia-devel qt6-qtsvg-devel qt6-qttools-devel \
vulkan-devel vulkan-validation-layers libpng-devel
```
#### Arch Linux
```bash
sudo pacman -S base-devel clang git cmake sndio jack2 openal \
qt6-base qt6-declarative qt6-multimedia qt6-tools sdl2 \
vulkan-validation-layers libpng
```
**Note**: The `shadps4-git` AUR package is not maintained by any of the developers, and it uses the default compiler, which is often set to GCC. Use at your own discretion.
#### OpenSUSE
```bash
sudo zypper install clang git cmake libasound2 libpulse-devel \
libsndio7 libjack-devel openal-soft-devel libopenssl-devel \
zlib-devel libedit-devel systemd-devel libevdev-devel \
qt6-base-devel qt6-multimedia-devel qt6-svg-devel \
qt6-linguist-devel qt6-gui-private-devel vulkan-devel \
vulkan-validationlayers libpng-devel
```
#### NixOS
```bash
nix-shell shell.nix
```
#### Other Linux distributions
You can try one of two methods:
- Search the packages by name and install them with your package manager, or
- Install [distrobox](https://distrobox.it/), create a container using any of the distributions cited above as a base, for Arch Linux you'd do:
```bash
distrobox create --name archlinux --init --image archlinux:latest
```
and install the dependencies on that container as cited above.
This option is **highly recommended** for distributions with immutable/atomic filesystems (example: Fedora Kinoite, SteamOS).
### Cloning
```bash
git clone --recursive https://github.com/shadps4-emu/shadPS4.git
cd shadPS4
```
## Building
There are 3 options you can choose from. Option 1 is **highly recommended**.
#### Option 1: Terminal-only
1. Generate the build directory in the shadPS4 directory.
```bash
cmake -S . -B build/ -DENABLE_QT_GUI=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
```
To disable the Qt GUI, remove the `-DENABLE_QT_GUI=ON` flag. To change the build type (for debugging), add `-DCMAKE_BUILD_TYPE=Debug`.
2. Use CMake to build the project:
```bash
cmake --build ./build --parallel$(nproc)
```
If your computer freezes during this step, this could be caused by excessive system resource usage. In that case, remove `--parallel$(nproc)`.
Now run the emulator. If Qt was enabled at configure time:
```bash
./build/shadps4
```
Otherwise, specify the path to your game's boot file:
```bash
./build/shadps4 /"PATH"/"TO"/"GAME"/"FOLDER"/eboot.bin
```
You can also specify the Game ID as an argument for which game to boot, as long as the folder containing the games is specified in config.toml (example: Bloodborne (US) is CUSA00900).
#### Option 2: Configuring with cmake-gui
`cmake-gui` should be installed by default alongside `cmake`, if not search for the package in your package manager and install it.
Open `cmake-gui` and specify the source code and build directories. If you cloned the source code to your Home directory, it would be `/home/user/shadPS4` and `/home/user/shadPS4/build`.
Click on Configure, select "Unix Makefiles", select "Specify native compilers", click Next and choose `clang` and `clang++` as the C and CXX compilers. Usually they are located in `/bin/clang` and `/bin/clang++`. Click on Finish and let it configure the project.
Now every option should be displayed in red. Change anything you want, then click on Generate to make the changes permanent, then open a terminal window and do step 2 of Option 1.
#### Option 3: Visual Studio Code
This option is pretty convoluted and should only be used if you have VSCode as your default IDE, or just prefer building and debugging projects through it. This also assumes that you're using an Arch Linux environment, as the naming for some options might differ from other distros.
[Download Visual Studio Code for your platform](https://code.visualstudio.com/download), or use [Code - OSS](https://github.com/microsoft/vscode) if you'd like. Code - OSS is available on most Linux distributions' package repositories (on Arch Linux it is simply named `code`).
Once set up, go to Extensions and install "CMake Tools":
![image](https://raw.githubusercontent.com/shadps4-emu/shadPS4/refs/heads/main/documents/Screenshots/Linux/3.png)
You can also install other CMake and Clang related extensions if you'd like, but this one is what enables you to configure and build CMake projects directly within VSCode.
Go to Settings, filter by `@ext:ms-vscode.cmake-tools configure` and disable this option:
![image](https://raw.githubusercontent.com/shadps4-emu/shadPS4/refs/heads/main/documents/Screenshots/Linux/1.png)
If you wish to build with the Qt GUI, add `-DENABLE_QT_GUI=ON` to the configure arguments:
![image](https://raw.githubusercontent.com/shadps4-emu/shadPS4/refs/heads/main/documents/Screenshots/Linux/2.png)
On the CMake tab, change the options as you wish, but make sure that it looks similar to or exactly like this:
![image](https://raw.githubusercontent.com/shadps4-emu/shadPS4/refs/heads/main/documents/Screenshots/Linux/4.png)
When hovering over Project Status > Configure, there should be an icon titled "Configure". Click on it and let it configure the project, then do the same for Project Status > Build.
If you want to debug it, change the build type under Project Status > Configure to Debug (it should be the default) and compile it, then click on the icon in Project Status > Debug. If you simply want to launch the shadPS4 executable from within VSCode, click on the icon in Project Status > Launch.
Don't forget to change the launch target for both options to the shadPS4 executable inside shadPS4/build:
![image](https://raw.githubusercontent.com/shadps4-emu/shadPS4/refs/heads/main/documents/Screenshots/Linux/5.png)

View File

@@ -0,0 +1,71 @@
<!--
SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
SPDX-License-Identifier: GPL-2.0-or-later
-->
## Build shadPS4 for macOS
### Install the necessary tools to build shadPS4:
First, make sure you have **Xcode 16.0 or newer** installed.
For installing other tools and library dependencies we will be using [Homebrew](https://brew.sh/).
On an ARM system, we will need the native ARM Homebrew to install tools and x86_64 Homebrew to install libraries.
First, install native Homebrew and tools:
```
# Installs native Homebrew to /opt/homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Adds Homebrew to your path
echo 'eval $(/opt/homebrew/bin/brew shellenv)' >> ~/.zprofile
eval $(/opt/homebrew/bin/brew shellenv)
# Installs tools.
brew install clang-format cmake
```
Next, install x86_64 Qt. You can skip these steps and move on to **Cloning and compiling** if you do not intend to build the Qt GUI.
**If you are on an ARM Mac:**
```
# Installs x86_64 Homebrew to /usr/local
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Installs libraries.
arch -x86_64 /usr/local/bin/brew install qt@6
```
**If you are on an x86_64 Mac:**
```
brew install qt@6
```
### Cloning and compiling:
Clone the repository recursively:
```
git clone --recursive https://github.com/shadps4-emu/shadPS4.git
cd shadPS4
```
Generate the build directory in the shadPS4 directory:
```
cmake -S . -B build/ -DCMAKE_OSX_ARCHITECTURES=x86_64
```
If you want to build the Qt GUI, add `-DENABLE_QT_GUI=ON` to the end of this command as well.
Enter the directory:
```
cd build/
```
Use make to build the project:
```
cmake --build . --parallel$(sysctl -n hw.ncpu)
```
Now run the emulator:
```
./shadps4 /"PATH"/"TO"/"GAME"/"FOLDER"/eboot.bin
```

View File

@@ -3,23 +3,111 @@ SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
SPDX-License-Identifier: GPL-2.0-or-later
-->
# How to build shadps4 in windows
# Build shadPS4 for Windows
## Download VStudio Community 2022 17.7.4
This tutorial reads as if you have none of the prerequisites already installed. If you do, just ignore the steps regarding installation.
If you are building to contribute to the project, please omit `--depth 1` from the git invocations.
[VStudio 2022](https://visualstudio.microsoft.com/vs/)
Note: **ARM64 is not supported!** As of writing, it will not build nor run. The instructions with respect to ARM64 are for developers only.
## Requirements
## Option 1: Visual Studio 2022
Install the following
### (Prerequisite) Download the Community edition from [**Visual Studio 2022**](https://visualstudio.microsoft.com/vs/)
- Desktop development with c++
Once you are within the installer:
### From Individual components tab install
1. Select `Desktop development with C++`
2. Go to "Individual Components" tab
3. Search and select `C++ Clang Compiler for Windows` and `MSBuild support for LLVM`
4. Continue the installation
- C++ Clang Compiler for Windows (16.0.5)
- MSBuild support for LLVM (clang-cl) toolset
### (Prerequisite) Download [**Qt**](https://doc.qt.io/qt-6/get-and-install-qt.html)
- ## Compiling
Beware, this requires you to create a Qt account. If you do not want to do this, please follow the MSYS2/MinGW compilation method instead.
- Open vstudio and select the clang debug or clang release . It should compile just fine
1. Under the current, non beta version of Qt (at the time of writing 6.8.2), select the option `MSVC 2022 64-bit` or similar, as well as `QT Multimedia`.
If you are on Windows on ARM / Qualcomm Snapdragon Elite X, select `MSVC 2022 ARM64` instead.
Go through the installation normally. If you know what you are doing, you may unselect individual components that eat up too much disk space.
2. Download and install [Qt Visual Studio Tools](https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools2022)
Once you are finished, you will have to configure Qt within Visual Studio:
1. Tools -> Options -> Qt -> Versions
2. Add a new Qt version and navigate it to the correct folder. Should look like so: `C:\Qt\6.8.2\msvc2022_64`
3. Enable the default checkmark on the new version you just created.
### (Prerequisite) Download [**Git for Windows**](https://git-scm.com/download/win)
Go through the Git for Windows installation as normal
### Cloning the source code
1. Open Git for Windows, navigate to a place where you want to store the shadPS4 source code folder
2. Clone the repository by running
`git clone --depth 1 --recursive https://github.com/shadps4-emu/shadPS4`
### Compiling with Visual Studio GUI
1. Open up Visual Studio, select `Open a local folder` and select the folder with the shadPS4 source code. The folder should contain `CMakeLists.txt`
2. Change x64-Clang-Debug to x64-Clang-Release if you want a regular, non-debug build.
3. If you want to build shadPS4 with the Qt Gui:
1. Click x64-Clang-Release and select "Manage Configurations"
2. Look for "CMake command arguments" and add to the text field
`-DENABLE_QT_GUI=ON -DCMAKE_PREFIX_PATH=C:\Qt\6.8.2\msvc2022_64`
(Change Qt path if you've installed it to non-default path)
3. Press CTRL+S to save and wait a moment for CMake generation
4. Change the project to build to shadps4.exe
5. Build -> Build All
Your shadps4.exe will be in `C:\path\to\source\Build\x64-Clang-Release\`
To automatically populate the necessary files to run shadPS4.exe, run in a command prompt or terminal:
`C:\Qt\6.8.2\msvc2022_64\bin\windeployqt6.exe "C:\path\to\shadps4.exe"`
(Change Qt path if you've installed it to non-default path)
## Option 2: MSYS2/MinGW
> [!IMPORTANT]
> Building with MSYS2 is broken as of right now, the only way to build on Windows is to use [Option 1: Visual Studio 2022](https://github.com/shadps4-emu/shadPS4/blob/main/documents/building-windows.md#option-1-visual-studio-2022).
### (Prerequisite) Download [**MSYS2**](https://www.msys2.org/)
Go through the MSYS2 installation as normal
If you are building to distribute, please omit `-DCMAKE_CXX_FLAGS="-O2 -march=native"` within the build configuration step.
Normal x86-based computers, follow:
1. Open "MSYS2 MINGW64" from your new applications
2. Run `pacman -Syu`, let it complete;
3. Run `pacman -S --needed git mingw-w64-x86_64-binutils mingw-w64-x86_64-clang mingw-w64-x86_64-cmake mingw-w64-x86_64-rapidjson mingw-w64-x86_64-ninja mingw-w64-x86_64-ffmpeg`
1. Optional (Qt only): run `pacman -S --needed mingw-w64-x86_64-qt6-base mingw-w64-x86_64-qt6-tools mingw-w64-x86_64-qt6-multimedia`
4. Run `git clone --depth 1 --recursive https://github.com/shadps4-emu/shadPS4`
5. Run `cd shadPS4`
6. Run `cmake -S . -B build -DCMAKE_C_COMPILER="clang.exe" -DCMAKE_CXX_COMPILER="clang++.exe" -DCMAKE_CXX_FLAGS="-O2 -march=native"`
1. Optional (Qt only): add `-DENABLE_QT_GUI=ON`
7. Run `cmake --build build`
1. Optional (Qt only): run `windeployqt6 build/shadps4.exe`
8. To run the finished product, run `./build/shadPS4.exe`
ARM64-based computers, follow:
1. Open "MSYS2 CLANGARM64" from your new applications
2. Run `pacman -Syu`, let it complete;
3. Run `pacman -S --needed git mingw-w64-clang-aarch64-binutils mingw-w64-clang-aarch64-clang mingw-w64-clang-aarch64-rapidjson mingw-w64-clang-aarch64-cmake mingw-w64-clang-aarch64-ninja mingw-w64-clang-aarch64-ffmpeg`
1. Optional (Qt only): run `pacman -S --needed mingw-w64-clang-aarch64-qt6-base mingw-w64-clang-aarch64-qt6-tools mingw-w64-clang-aarch64-qt6-multimedia`
4. Run `git clone --depth 1 --recursive https://github.com/shadps4-emu/shadPS4`
5. Run `cd shadPS4`
6. Run `cmake -S . -B build -DCMAKE_C_COMPILER="clang.exe" -DCMAKE_CXX_COMPILER="clang++.exe" -DCMAKE_CXX_FLAGS="-O2 -march=native"`
1. Optional (Qt only): add `-DENABLE_QT_GUI=ON`
7. Run `cmake --build build`
1. Optional (Qt only): run `windeployqt6 build/shadps4.exe`
8. To run the finished product, run `./build/shadPS4.exe`
## Note on MSYS2 builds
These builds may not be easily copyable to people who do not also have a MSYS2 installation.
If you want to distribute these builds, you need to copy over the correct DLLs into a distribution folder.
In order to run them, you must be within the MSYS2 shell environment.

99
documents/changelog.md Normal file
View File

@@ -0,0 +1,99 @@
v0.4.0 31/10/2024 - codename divicius
=================
- Shader recompiler fixes
- Emulated support for cpus that doesn't have SSE4.2a (intel cpus)
- Frame graph + Precise 60 fps timing
- Save data: fix nullptr & concurrent file write
- Auto Update
- Error dialog implementation
- Swapchain recreation and window resizing
- Add playback of background/title music in game list
- Kernel: Quiet sceKernelWaitEventFlag error log on timeout
- Improve keyboard navigation in game list
- core/memory: Pooled memory implementation
- Fix PKG loading
- replace trophy xml assert with error
- Refactor audio handling with range checks, buffer threshold, and lock
- audio_core: Fix return value types and shift some error handling to library
- Devtools: PM4 Explorer
- Initial support of Geometry shaders
- Working touchpad support
- net: Stub sceNetErrnoLoc
- Add support to click touchpad using back button on non PS4/5 controllers
- Multiple Install Folders
- Using a more standard data directory for linux
- video_core: Implement sceGnmInsertPushColorMarker
- ime_dialog: Initial implementation
- Network libs fixes
- Use GetSystemTimePreciseAsFileTime to fix fps timing issues
- Added adaptive mutex initializer
- Small Np + trophy fixes
- Separate Updates from Game Folder
- Minor Fixes for Separate Update Folder
- AvPlayer: Do not align w/h to 16 with vdec2
- Improve sceSystemServiceReceiveEvent stub
- renderer_vulkan: Commize and adjust buffer bindings
- Add poll interval to libScePad
- Add more surface format mappings.
- vulkan: Report only missing format feature flags.
- IME implementation
- Videodec2 implementation
- path_util: Make sure macOS has current directory set and clean up path code.
- Load LLE modules from sys_modules/GAMEID folder
v0.3.0 23/09/2024 - codename broamic
=================
- Cheat/Patching support
- DLC support
- New translations support (26 languages)
- Support for unlocking trophies
- Support for more controllers (Dualshock and Xbox)
- Many GUI improvements
- AVplayer
v0.2.0 15/08/2024 - codename validptr
=================
- Adding macOS support
- Big shader recompiler improvements
- Core improvements
- GUI improvements
v0.1.0 01/07/2024 - codename madturtle
=================
- Added a shader recompiler, with this we have a lot of games that starts to work
- Rewrote a big part of core
v0.0.3 23/03/2024 - codename salad
=================
- Switching to std::thread
- Use unique_ptr where possible
- Replace printf/scanf with type safe fmt
- Implemented sceKernelGetProcessTime
- Implemented sceKernelGetProcessTimeCounter, sceKernelGetProcessTimeCounterFrequency
- Pause emu with P button
- Timers rewrote with std::chrono
- Added sceSystemServiceGetStatus
- Initial FileSystem implementation
- Initial TLS work
- New logging implementation
- Some functions implemented for userService, systemService
- Added sceAudioOut module and output using SDL audio
v0.0.2 21/10/2023
=================
- Using cstdint header in variable types
- run_main_entry: Rewrite in asm for stack setup
- Printf libc implementation for work with sysv_abi
- Initial pad emulation (only digital pad atm)
- Implemented sceVideoOutIsFlipPending
- Added auto stubs, now unsupported hle function will resolve as empty stubs
- Rewrote libc_cxa functions
- Libc implementations ( _ZdlPv,_Znwm,rand,_Fsin,qsort,free,strncpy,memmove,atan2f,pow,_Sin)
- ET_SCE_DYNAMIC behaves as valid for execution now
- Initial FileSystem work (not yet usable)
v0.0.1 29/09/2023
=================
First public release. Everything is new.

View File

@@ -1,32 +0,0 @@
v0.0.3 23/03/2024 - codename salad
=================
-Switching to std::thread
-Use unique_ptr where possible
-Replace printf/scanf with type safe fmt
-Implemented sceKernelGetProcessTime
-Implemented sceKernelGetProcessTimeCounter , sceKernelGetProcessTimeCounterFrequency
-Pause emu with P button
-Timers rewrote with std::chrono
-Added sceSystemServiceGetStatus
-Initial FileSystem implementation
-Initial TLS work
-New logging implementation
-Some functions implemented for userService,systemService
-Added sceAudioOut module and output using sdl audio
v0.0.2 21/10/2023
=================
-using cstdint header in variable types
-run_main_entry: Rewrite in asm for stack setup
-printf libc implementation for work with sysv_abi
-initial pad emulation (only digital pad atm)
-Implemented sceVideoOutIsFlipPending
-Added auto stubs , now unsupported hle function will resolve as empty stubs
-Rewrote libc_cxa functions
-Libc implementations ( _ZdlPv,_Znwm,rand,_Fsin,qsort,free,strncpy,memmove,atan2f,pow,_Sin)
-ET_SCE_DYNAMIC behaves as valid for execution now.
-Initial FileSystem work (not yet usable).
v0.0.1 29/09/2023
=================
First public release . Everything is new

View File

@@ -1,21 +0,0 @@
<!--
SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
SPDX-License-Identifier: GPL-2.0-or-later
-->
## Linux
Generate the build directory in the shadPS4 directory:
```
cmake -S . -B build/
```
Enter the directory:
```
cd build/
```
Use make to build the project:
```
make -j$(nproc)
```

View File

@@ -0,0 +1,19 @@
<!--
SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
SPDX-License-Identifier: GPL-2.0-or-later
-->
### Install Vulkan SDK and \*ensure `spirv-cross` and `glslc` are in PATH\*.
1. Enable `dumpShaders` in config.toml
2. Run `spirv-cross -V fs_0x000000.spv --output fs_0x000000.glsl` to decompile the SPIR-V IR to GLSL.
3. Edit the GLSL file as you wish
4. To compile back to SPIR-V, run (change the _**-fshader-stage**_ to correct stage):
`glslc --target-env=vulkan1.3 --target-spv=spv1.6 -fshader-stage=frag fs_0x000000.glsl -o fs_0x000000.spv`
5. Put the updated .spv file to `shader/patch` folder with the same name as the original shader
6. Enable `patchShaders` in config.toml

View File

@@ -1,37 +0,0 @@
shadps4 - An ps4 emulator
=========================
1. Intro
2. Current status
3. Contributors
4. Greetings
1.Intro
=======
shadPS4 is a ps4 emulator for windows and linux . Although atm it can't run a lot of stuff , we are working torwards to make it more compatible
2.Current status
================
shadps4 is a HLE emulator . Currently on a small amount of functions is emulated , which is one of the reasons compatibility is low.
3.Contributors
==============
- gmoralis (a.k.a. shadow)
- gpucode (a.k.a. emufan4568)
- skmp (a.k.a. drk||Raziel)
- wheremyfoodat (a.k.a. rodakinos)
4.Greetings
===========
I would like to thank the following people for helping me so far , with coding or moral support.
- wheremyfoodat - or @rodakinos for believed me.
- paris - or OFFTKP for not believing me and that made me a better coder :D
- skmp - or kornilios for being good old friend
- PandaBad - our beloved stalker
- emufan4568 - for advices
- velocity - for talking 1-2 times per year on discord server . We miss you velocity
- probably more , will include in the next readme :D

View File

@@ -1,36 +1,232 @@
# SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
set(BUILD_SHARED_LIBS OFF)
set(BUILD_TESTING OFF)
set_directory_properties(PROPERTIES
EXCLUDE_FROM_ALL ON
SYSTEM ON
)
# Set CMP0069 policy to "NEW" in order to ensure consistent behavior when building external targets with LTO enabled
set(CMAKE_POLICY_DEFAULT_CMP0069 NEW)
if (MSVC)
# Silence "deprecation" warnings
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS)
endif()
# Discord-RPC
set(BUILD_EXAMPLES OFF CACHE BOOL "")
add_subdirectory(discord-rpc EXCLUDE_FROM_ALL)
target_include_directories(discord-rpc INTERFACE ./discord-rpc/include)
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND MSVC)
# If it is clang and MSVC we will add a static lib
# CryptoPP
add_subdirectory(cryptoppwin EXCLUDE_FROM_ALL)
target_include_directories(cryptoppwin INTERFACE cryptoppwin/include)
else()
# CryptoPP
set(CRYPTOPP_BUILD_TESTING OFF)
set(CRYPTOPP_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/)
add_subdirectory(cryptopp-cmake EXCLUDE_FROM_ALL)
# Boost
if (NOT TARGET Boost::headers)
add_subdirectory(ext-boost)
endif()
# Zlib-Ng
set(ZLIB_ENABLE_TESTS OFF)
set(WITH_GTEST OFF)
set(WITH_NEW_STRATEGIES ON)
set(WITH_NATIVE_INSTRUCTIONS ON)
add_subdirectory(zlib-ng)
# fmtlib
if (NOT TARGET fmt::fmt)
add_subdirectory(fmt)
endif()
# FFmpeg
if (NOT TARGET FFmpeg::ffmpeg)
add_subdirectory(ffmpeg-core)
add_library(FFmpeg::ffmpeg ALIAS ffmpeg)
endif()
# LibAtrac9
file(GLOB LIBATRAC9_SOURCES LibAtrac9/C/src/*.c)
add_library(LibAtrac9 STATIC ${LIBATRAC9_SOURCES})
target_include_directories(LibAtrac9 INTERFACE LibAtrac9/C/src)
# zlib
if (NOT TARGET ZLIB::ZLIB)
set(ZLIB_ENABLE_TESTS OFF)
set(WITH_GTEST OFF)
set(WITH_NEW_STRATEGIES ON)
set(WITH_NATIVE_INSTRUCTIONS ON)
set(ZLIB_COMPAT ON CACHE BOOL "" FORCE)
include(FetchContent)
FetchContent_Declare(
ZLIB
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/zlib-ng"
OVERRIDE_FIND_PACKAGE
)
FetchContent_MakeAvailable(ZLIB)
add_library(ZLIB::ZLIB ALIAS zlib)
# libpng expects this variable to exist after its find_package(ZLIB)
set(ZLIB_INCLUDE_DIRS "${FETCHCONTENT_BASE_DIR}/zlib-build")
endif()
if(NOT ENABLE_QT_GUI)
# SDL3
add_subdirectory(sdl3 EXCLUDE_FROM_ALL)
if (NOT TARGET SDL3::SDL3)
set(SDL_TEST_LIBRARY OFF)
set(SDL_PIPEWIRE OFF)
add_subdirectory(sdl3)
endif()
# vulkan-headers
if (NOT TARGET Vulkan::Headers)
set(VULKAN_HEADERS_ENABLE_MODULE OFF)
add_subdirectory(vulkan-headers)
endif()
# VMA
if (NOT TARGET GPUOpen::VulkanMemoryAllocator)
add_subdirectory(vma)
endif()
# RenderDoc
if (NOT TARGET RenderDoc::API)
add_library(renderdoc INTERFACE)
target_include_directories(renderdoc INTERFACE ./renderdoc)
add_library(RenderDoc::API ALIAS renderdoc)
endif()
# glslang
if (NOT TARGET glslang::glslang)
set(SKIP_GLSLANG_INSTALL ON CACHE BOOL "")
set(ENABLE_GLSLANG_BINARIES OFF CACHE BOOL "")
set(ENABLE_SPVREMAPPER OFF CACHE BOOL "")
set(ENABLE_CTEST OFF CACHE BOOL "")
set(ENABLE_HLSL OFF CACHE BOOL "")
set(BUILD_EXTERNAL OFF CACHE BOOL "")
set(ENABLE_OPT OFF CACHE BOOL "")
add_subdirectory(glslang)
file(COPY glslang/SPIRV DESTINATION glslang/glslang FILES_MATCHING PATTERN "*.h")
target_include_directories(glslang INTERFACE "${CMAKE_CURRENT_BINARY_DIR}/glslang")
endif()
# Robin-map
if (NOT TARGET tsl::robin_map)
add_subdirectory(robin-map)
endif()
# Xbyak
if (NOT TARGET xbyak::xbyak)
add_subdirectory(xbyak)
endif()
# MagicEnum
if (NOT TARGET magic_enum::magic_enum)
add_subdirectory(magic_enum)
endif()
# Toml11
if (NOT TARGET toml11::toml11)
add_subdirectory(toml11)
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
if (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
get_target_property(_toml11_compile_options toml11 INTERFACE_COMPILE_OPTIONS)
list(REMOVE_ITEM _toml11_compile_options "/Zc:preprocessor")
set_target_properties(toml11 PROPERTIES INTERFACE_COMPILE_OPTIONS ${_toml11_compile_options})
endif()
endif()
endif()
# xxHash
if (NOT TARGET xxHash::xxhash)
add_library(xxhash xxhash/xxhash.h xxhash/xxhash.c)
target_include_directories(xxhash PUBLIC xxhash)
add_library(xxHash::xxhash ALIAS xxhash)
endif()
# Zydis
if (NOT TARGET Zydis::Zydis)
option(ZYDIS_BUILD_TOOLS "" OFF)
option(ZYDIS_BUILD_EXAMPLES "" OFF)
add_subdirectory(zydis)
endif()
# sirit
add_subdirectory(sirit)
if (WIN32)
target_compile_options(sirit PUBLIC "-Wno-error=unused-command-line-argument")
endif()
# half
if (NOT TARGET half::half)
add_library(half INTERFACE)
target_include_directories(half INTERFACE half/include)
add_library(half::half ALIAS half)
endif()
# libpng
if (NOT TARGET PNG::PNG)
set(PNG_SHARED OFF CACHE BOOL "" FORCE)
set(PNG_STATIC ON CACHE BOOL "" FORCE)
set(PNG_TESTS OFF CACHE BOOL "" FORCE)
set(PNG_TOOLS OFF CACHE BOOL "" FORCE)
set(SKIP_INSTALL_ALL OFF CACHE BOOL "" FORCE)
add_subdirectory(libpng)
add_library(PNG::PNG ALIAS png_static)
endif()
# Dear ImGui
add_library(Dear_ImGui
dear_imgui/imgui.cpp
dear_imgui/imgui_demo.cpp
dear_imgui/imgui_draw.cpp
dear_imgui/imgui_internal.h
dear_imgui/imgui_tables.cpp
dear_imgui/imgui_widgets.cpp
)
target_include_directories(Dear_ImGui INTERFACE dear_imgui/)
# Tracy
if (CMAKE_BUILD_TYPE STREQUAL "Release")
option(TRACY_ENABLE "" OFF)
else()
option(TRACY_ENABLE "" ON)
endif()
option(TRACY_NO_CRASH_HANDLER "" ON) # Otherwise texture cache exceptions will be treaten as a crash
option(TRACY_ON_DEMAND "" ON)
option(TRACY_NO_FRAME_IMAGE "" ON)
option(TRACY_FIBERS "" OFF) # For AmdGpu frontend profiling, disabled due to instability
option(TRACY_NO_SYSTEM_TRACING "" ON)
option(TRACY_NO_CALLSTACK "" ON)
option(TRACY_NO_CODE_TRANSFER "" ON)
option(TRACY_NO_SAMPLING "" ON)
option(TRACY_ONLY_LOCALHOST "" ON)
option(TRACY_NO_CONTEXT_SWITCH "" ON)
add_subdirectory(tracy)
# pugixml
if (NOT TARGET pugixml::pugixml)
add_subdirectory(pugixml)
endif()
# libusb
if (NOT TARGET libusb::usb)
add_subdirectory(libusb)
add_library(libusb::usb ALIAS usb-1.0)
endif()
# Discord RPC
if (ENABLE_DISCORD_RPC)
add_subdirectory(discord-rpc)
endif()
# GCN Headers
add_subdirectory(gcn)
# stb
if (NOT TARGET stb::headers)
add_library(stb INTERFACE)
target_include_directories(stb INTERFACE stb)
add_library(stb::headers ALIAS stb)
endif()
# Apple-only dependencies
if (APPLE)
# date
if (NOT TARGET date::date-tz)
option(BUILD_TZ_LIB "" ON)
option(USE_SYSTEM_TZ_DB "" ON)
add_subdirectory(date)
endif()
# MoltenVK
if (NOT TARGET MoltenVK)
add_subdirectory(MoltenVK)
endif()
endif()

1
externals/LibAtrac9 vendored Submodule

Submodule externals/LibAtrac9 added at ec8899dadf

93
externals/MoltenVK/CMakeLists.txt vendored Normal file
View File

@@ -0,0 +1,93 @@
# SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
# Prepare MoltenVK Git revision
find_package(Git)
if(GIT_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
OUTPUT_VARIABLE MVK_GIT_REV
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/MoltenVK
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
set(MVK_GENERATED_INCLUDES ${CMAKE_CURRENT_BINARY_DIR}/Generated)
file(WRITE ${MVK_GENERATED_INCLUDES}/mvkGitRevDerived.h "static const char* mvkRevString = \"${MVK_GIT_REV}\";")
message(STATUS "MoltenVK revision: ${MVK_GIT_REV}")
# Prepare MoltenVK version
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/MoltenVK/MoltenVK/MoltenVK/API/mvk_private_api.h MVK_PRIVATE_API)
string(REGEX MATCH "#define MVK_VERSION_MAJOR [0-9]+" MVK_VERSION_MAJOR_LINE "${MVK_PRIVATE_API}")
string(REGEX MATCH "[0-9]+" MVK_VERSION_MAJOR "${MVK_VERSION_MAJOR_LINE}")
string(REGEX MATCH "#define MVK_VERSION_MINOR [0-9]+" MVK_VERSION_MINOR_LINE "${MVK_PRIVATE_API}")
string(REGEX MATCH "[0-9]+" MVK_VERSION_MINOR "${MVK_VERSION_MINOR_LINE}")
string(REGEX MATCH "#define MVK_VERSION_PATCH [0-9]+" MVK_VERSION_PATCH_LINE "${MVK_PRIVATE_API}")
string(REGEX MATCH "[0-9]+" MVK_VERSION_PATCH "${MVK_VERSION_PATCH_LINE}")
set(MVK_VERSION "${MVK_VERSION_MAJOR}.${MVK_VERSION_MINOR}.${MVK_VERSION_PATCH}")
message(STATUS "MoltenVK version: ${MVK_VERSION}")
# Find required system libraries
find_library(APPKIT_LIBRARY AppKit REQUIRED)
find_library(FOUNDATION_LIBRARY Foundation REQUIRED)
find_library(IOKIT_LIBRARY IOKit REQUIRED)
find_library(IOSURFACE_LIBRARY IOSurface REQUIRED)
find_library(METAL_LIBRARY Metal REQUIRED)
find_library(QUARTZCORE_LIBRARY QuartzCore REQUIRED)
# cereal
option(SKIP_PORTABILITY_TEST "" ON)
option(BUILD_DOC "" OFF)
option(BUILD_SANDBOX "" OFF)
option(SKIP_PERFORMANCE_COMPARISON "" ON)
option(SPIRV_CROSS_SKIP_INSTALL "" ON)
add_subdirectory(cereal)
# SPIRV-Cross
option(SPIRV_CROSS_CLI "" OFF)
option(SPIRV_CROSS_ENABLE_TESTS "" OFF)
option(SPIRV_CROSS_ENABLE_HLSL "" OFF)
option(SPIRV_CROSS_ENABLE_CPP "" OFF)
option(SPIRV_CROSS_SKIP_INSTALL "" ON)
add_subdirectory(SPIRV-Cross)
# Common
set(MVK_COMMON_DIR ${CMAKE_CURRENT_SOURCE_DIR}/MoltenVK/Common)
file(GLOB_RECURSE MVK_COMMON_SOURCES CONFIGURE_DEPENDS
${MVK_COMMON_DIR}/*.cpp
${MVK_COMMON_DIR}/*.m
${MVK_COMMON_DIR}/*.mm)
set(MVK_COMMON_INCLUDES ${MVK_COMMON_DIR})
add_library(MoltenVKCommon STATIC ${MVK_COMMON_SOURCES})
target_include_directories(MoltenVKCommon PUBLIC ${MVK_COMMON_INCLUDES})
target_compile_options(MoltenVKCommon PRIVATE -w)
# MoltenVKShaderConverter
set(MVK_SHADER_CONVERTER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/MoltenVK/MoltenVKShaderConverter)
file(GLOB_RECURSE MVK_SHADER_CONVERTER_SOURCES CONFIGURE_DEPENDS
${MVK_SHADER_CONVERTER_DIR}/MoltenVKShaderConverter/*.cpp
${MVK_SHADER_CONVERTER_DIR}/MoltenVKShaderConverter/*.m
${MVK_SHADER_CONVERTER_DIR}/MoltenVKShaderConverter/*.mm)
set(MVK_SHADER_CONVERTER_INCLUDES ${MVK_SHADER_CONVERTER_DIR} ${MVK_SHADER_CONVERTER_DIR}/include)
add_library(MoltenVKShaderConverter STATIC ${MVK_SHADER_CONVERTER_SOURCES})
target_include_directories(MoltenVKShaderConverter PUBLIC ${MVK_SHADER_CONVERTER_INCLUDES})
target_compile_options(MoltenVKShaderConverter PRIVATE -w)
target_link_libraries(MoltenVKShaderConverter PRIVATE spirv-cross-msl spirv-cross-reflect MoltenVKCommon)
target_compile_definitions(MoltenVKShaderConverter PRIVATE MVK_EXCLUDE_SPIRV_TOOLS=1)
# MoltenVK
set(MVK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/MoltenVK/MoltenVK)
file(GLOB_RECURSE MVK_SOURCES CONFIGURE_DEPENDS
${MVK_DIR}/MoltenVK/*.cpp
${MVK_DIR}/MoltenVK/*.m
${MVK_DIR}/MoltenVK/*.mm)
file(GLOB MVK_SRC_INCLUDES LIST_DIRECTORIES ON ${MVK_DIR}/MoltenVK/*)
set(MVK_INCLUDES ${MVK_SRC_INCLUDES} ${MVK_GENERATED_INCLUDES} ${MVK_DIR}/include)
add_library(MoltenVK SHARED ${MVK_SOURCES})
target_include_directories(MoltenVK PRIVATE ${MVK_INCLUDES})
target_compile_options(MoltenVK PRIVATE -w)
target_link_libraries(MoltenVK PRIVATE
${APPKIT_LIBRARY} ${FOUNDATION_LIBRARY} ${IOKIT_LIBRARY} ${IOSURFACE_LIBRARY} ${METAL_LIBRARY} ${QUARTZCORE_LIBRARY}
Vulkan::Headers cereal::cereal spirv-cross-msl MoltenVKCommon MoltenVKShaderConverter)
target_compile_definitions(MoltenVK PRIVATE MVK_FRAMEWORK_VERSION=${MVK_VERSION} MVK_USE_METAL_PRIVATE_API=1)

1
externals/MoltenVK/MoltenVK vendored Submodule

1
externals/MoltenVK/cereal vendored Submodule

View File

@@ -0,0 +1,158 @@
# - Returns a version string from Git
#
# These functions force a re-configure on each git commit so that you can
# trust the values of the variables in your build system.
#
# get_git_head_revision(<refspecvar> <hashvar> [<additional arguments to git describe> ...])
#
# Returns the refspec and sha hash of the current head revision
#
# git_describe(<var> [<additional arguments to git describe> ...])
#
# Returns the results of git describe on the source tree, and adjusting
# the output so that it tests false if an error occurs.
#
# git_get_exact_tag(<var> [<additional arguments to git describe> ...])
#
# Returns the results of git describe --exact-match on the source tree,
# and adjusting the output so that it tests false if there was no exact
# matching tag.
#
# Requires CMake 2.6 or newer (uses the 'function' command)
#
# Original Author:
# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
# http://academic.cleardefinition.com
# Iowa State University HCI Graduate Program/VRAC
#
# Copyright Iowa State University 2009-2010.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
if(__get_git_revision_description)
return()
endif()
set(__get_git_revision_description YES)
# We must run the following at "include" time, not at function call time,
# to find the path to this module rather than the path to a calling list file
get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH)
function(get_git_head_revision _refspecvar _hashvar)
set(GIT_PARENT_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
set(GIT_DIR "${GIT_PARENT_DIR}/.git")
while(NOT EXISTS "${GIT_DIR}") # .git dir not found, search parent directories
set(GIT_PREVIOUS_PARENT "${GIT_PARENT_DIR}")
get_filename_component(GIT_PARENT_DIR ${GIT_PARENT_DIR} PATH)
if(GIT_PARENT_DIR STREQUAL GIT_PREVIOUS_PARENT)
# We have reached the root directory, we are not in git
set(${_refspecvar} "GITDIR-NOTFOUND" PARENT_SCOPE)
set(${_hashvar} "GITDIR-NOTFOUND" PARENT_SCOPE)
return()
endif()
set(GIT_DIR "${GIT_PARENT_DIR}/.git")
endwhile()
# check if this is a submodule
if(NOT IS_DIRECTORY ${GIT_DIR})
file(READ ${GIT_DIR} submodule)
string(REGEX REPLACE "gitdir: (.*)\n$" "\\1" GIT_DIR_RELATIVE ${submodule})
get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH)
get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} ABSOLUTE)
endif()
set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data")
if(NOT EXISTS "${GIT_DATA}")
file(MAKE_DIRECTORY "${GIT_DATA}")
endif()
if(NOT EXISTS "${GIT_DIR}/HEAD")
return()
endif()
set(HEAD_FILE "${GIT_DATA}/HEAD")
configure_file("${GIT_DIR}/HEAD" "${HEAD_FILE}" COPYONLY)
configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in"
"${GIT_DATA}/grabRef.cmake"
@ONLY)
include("${GIT_DATA}/grabRef.cmake")
set(${_refspecvar} "${HEAD_REF}" PARENT_SCOPE)
set(${_hashvar} "${HEAD_HASH}" PARENT_SCOPE)
endfunction()
function(git_branch_name _var)
if(NOT GIT_FOUND)
find_package(Git QUIET)
endif()
if(NOT GIT_FOUND)
set(${_var} "GIT-NOTFOUND" PARENT_SCOPE)
return()
endif()
execute_process(COMMAND
"${GIT_EXECUTABLE}"
rev-parse --abbrev-ref HEAD
WORKING_DIRECTORY
"${CMAKE_SOURCE_DIR}"
RESULT_VARIABLE
res
OUTPUT_VARIABLE
out
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT res EQUAL 0)
set(out "${out}-${res}-NOTFOUND")
endif()
set(${_var} "${out}" PARENT_SCOPE)
endfunction()
function(git_describe _var)
if(NOT GIT_FOUND)
find_package(Git QUIET)
endif()
#get_git_head_revision(refspec hash)
if(NOT GIT_FOUND)
set(${_var} "GIT-NOTFOUND" PARENT_SCOPE)
return()
endif()
#if(NOT hash)
# set(${_var} "HEAD-HASH-NOTFOUND" PARENT_SCOPE)
# return()
#endif()
# TODO sanitize
#if((${ARGN}" MATCHES "&&") OR
# (ARGN MATCHES "||") OR
# (ARGN MATCHES "\\;"))
# message("Please report the following error to the project!")
# message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}")
#endif()
#message(STATUS "Arguments to execute_process: ${ARGN}")
execute_process(COMMAND
"${GIT_EXECUTABLE}"
describe
${hash}
${ARGN}
WORKING_DIRECTORY
"${CMAKE_SOURCE_DIR}"
RESULT_VARIABLE
res
OUTPUT_VARIABLE
out
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT res EQUAL 0)
set(out "${out}-${res}-NOTFOUND")
endif()
set(${_var} "${out}" PARENT_SCOPE)
endfunction()
function(git_get_exact_tag _var)
git_describe(out --exact-match ${ARGN})
set(${_var} "${out}" PARENT_SCOPE)
endfunction()

View File

@@ -0,0 +1,42 @@
#
# Internal file for GetGitRevisionDescription.cmake
#
# Requires CMake 2.6 or newer (uses the 'function' command)
#
# Original Author:
# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
# http://academic.cleardefinition.com
# Iowa State University HCI Graduate Program/VRAC
#
# Copyright Iowa State University 2009-2010.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
set(HEAD_HASH)
file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024)
string(STRIP "${HEAD_CONTENTS}" HEAD_CONTENTS)
if(HEAD_CONTENTS MATCHES "ref")
# named branch
string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}")
if(EXISTS "@GIT_DIR@/${HEAD_REF}")
configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY)
elseif(EXISTS "@GIT_DIR@/logs/${HEAD_REF}")
configure_file("@GIT_DIR@/logs/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY)
set(HEAD_HASH "${HEAD_REF}")
endif()
else()
# detached HEAD
configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY)
endif()
if(NOT HEAD_HASH)
if(EXISTS "@GIT_DATA@/head-ref")
file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024)
string(STRIP "${HEAD_HASH}" HEAD_HASH)
else()
set(HEAD_HASH "Unknown")
endif()
endif()

1
externals/cryptopp vendored

Submodule externals/cryptopp deleted from 782057f5f1

Submodule externals/cryptoppwin deleted from 0dd224c681

1
externals/date vendored Submodule

Submodule externals/date added at a45ea7c17b

1
externals/dear_imgui vendored Submodule

Submodule externals/dear_imgui added at f4d9359095

1
externals/ext-boost vendored Submodule

Submodule externals/ext-boost added at ca6f230e67

1
externals/ffmpeg-core vendored Submodule

Submodule externals/ffmpeg-core added at b0de1dcca2

1
externals/fmt vendored Submodule

Submodule externals/fmt added at 64db979e38

12
externals/gcn/CMakeLists.txt vendored Normal file
View File

@@ -0,0 +1,12 @@
# SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
project(gcn LANGUAGES CXX)
add_library(gcn INTERFACE)
target_sources(gcn PRIVATE
"include/gcn/si_ci_vi_merged_offset.h"
"include/gcn/si_ci_vi_merged_pm4_it_opcodes.h"
)
target_include_directories(gcn INTERFACE include)

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,117 @@
/*
***********************************************************************************************************************
*
* Copyright (c) 2015-2021 Advanced Micro Devices, Inc. All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
**********************************************************************************************************************/
#ifndef PM4_IT_OPCODES_H
#define PM4_IT_OPCODES_H
enum IT_OpCodeType {
IT_NOP = 0x10,
IT_SET_BASE = 0x11,
IT_CLEAR_STATE = 0x12,
IT_INDEX_BUFFER_SIZE = 0x13,
IT_DISPATCH_DIRECT = 0x15,
IT_DISPATCH_INDIRECT = 0x16,
IT_ATOMIC_GDS = 0x1D,
IT_ATOMIC = 0x1E,
IT_OCCLUSION_QUERY = 0x1F,
IT_SET_PREDICATION = 0x20,
IT_REG_RMW = 0x21,
IT_COND_EXEC = 0x22,
IT_PRED_EXEC = 0x23,
IT_DRAW_INDIRECT = 0x24,
IT_DRAW_INDEX_INDIRECT = 0x25,
IT_INDEX_BASE = 0x26,
IT_DRAW_INDEX_2 = 0x27,
IT_CONTEXT_CONTROL = 0x28,
IT_INDEX_TYPE = 0x2A,
IT_DRAW_INDIRECT_MULTI = 0x2C,
IT_DRAW_INDEX_AUTO = 0x2D,
IT_NUM_INSTANCES = 0x2F,
IT_DRAW_INDEX_MULTI_AUTO = 0x30,
IT_INDIRECT_BUFFER_CNST = 0x33,
IT_STRMOUT_BUFFER_UPDATE = 0x34,
IT_DRAW_INDEX_OFFSET_2 = 0x35,
IT_WRITE_DATA = 0x37,
IT_DRAW_INDEX_INDIRECT_MULTI = 0x38,
IT_MEM_SEMAPHORE = 0x39,
IT_COPY_DW__SI__CI = 0x3B,
IT_WAIT_REG_MEM = 0x3C,
IT_INDIRECT_BUFFER = 0x3F,
IT_COND_INDIRECT_BUFFER = 0x3F,
IT_COPY_DATA = 0x40,
IT_CP_DMA = 0x41,
IT_PFP_SYNC_ME = 0x42,
IT_SURFACE_SYNC = 0x43,
IT_COND_WRITE = 0x45,
IT_EVENT_WRITE = 0x46,
IT_EVENT_WRITE_EOP = 0x47,
IT_EVENT_WRITE_EOS = 0x48,
IT_PREAMBLE_CNTL = 0x4A,
IT_CONTEXT_REG_RMW = 0x51,
IT_LOAD_SH_REG = 0x5F,
IT_LOAD_CONFIG_REG = 0x60,
IT_LOAD_CONTEXT_REG = 0x61,
IT_SET_CONFIG_REG = 0x68,
IT_SET_CONTEXT_REG = 0x69,
IT_SET_CONTEXT_REG_INDIRECT = 0x73,
IT_SET_SH_REG = 0x76,
IT_SET_SH_REG_OFFSET = 0x77,
IT_SCRATCH_RAM_WRITE = 0x7D,
IT_SCRATCH_RAM_READ = 0x7E,
IT_LOAD_CONST_RAM = 0x80,
IT_WRITE_CONST_RAM = 0x81,
IT_DUMP_CONST_RAM = 0x83,
IT_INCREMENT_CE_COUNTER = 0x84,
IT_INCREMENT_DE_COUNTER = 0x85,
IT_WAIT_ON_CE_COUNTER = 0x86,
IT_WAIT_ON_DE_COUNTER__SI = 0x87,
IT_WAIT_ON_DE_COUNTER_DIFF = 0x88,
IT_SWITCH_BUFFER = 0x8B,
IT_DRAW_PREAMBLE__CI__VI = 0x36,
IT_RELEASE_MEM__CI__VI = 0x49,
IT_DMA_DATA__CI__VI = 0x50,
IT_ACQUIRE_MEM__CI__VI = 0x58,
IT_REWIND__CI__VI = 0x59,
IT_LOAD_UCONFIG_REG__CI__VI = 0x5E,
IT_SET_QUEUE_REG__CI__VI = 0x78,
IT_SET_UCONFIG_REG__CI__VI = 0x79,
IT_INDEX_ATTRIBUTES_INDIRECT__CI__VI = 0x91,
IT_SET_SH_REG_INDEX__CI__VI = 0x9B,
IT_SET_RESOURCES__CI__VI = 0xA0,
IT_MAP_PROCESS__CI__VI = 0xA1,
IT_MAP_QUEUES__CI__VI = 0xA2,
IT_UNMAP_QUEUES__CI__VI = 0xA3,
IT_QUERY_STATUS__CI__VI = 0xA4,
IT_RUN_LIST__CI__VI = 0xA5,
IT_LOAD_SH_REG_INDEX__VI = 0x63,
IT_LOAD_CONTEXT_REG_INDEX__VI = 0x9F,
IT_DUMP_CONST_RAM_OFFSET__VI = 0x9E,
};
#define PM4_TYPE_0 0
#define PM4_TYPE_2 2
#define PM4_TYPE_3 3
#endif

1
externals/glslang vendored Submodule

Submodule externals/glslang added at ba1640446f

1
externals/half vendored Submodule

Submodule externals/half added at 1ddada2251

1
externals/libpng vendored Submodule

Submodule externals/libpng added at c1cc0f3f4c

1
externals/libusb vendored Submodule

Submodule externals/libusb added at a63a7e43e0

1
externals/magic_enum vendored Submodule

Submodule externals/magic_enum added at a413fcc9c4

1
externals/pugixml vendored Submodule

Submodule externals/pugixml added at caade5a28a

741
externals/renderdoc/renderdoc_app.h vendored Normal file
View File

@@ -0,0 +1,741 @@
/******************************************************************************
* The MIT License (MIT)
*
* Copyright (c) 2019-2024 Baldur Karlsson
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
******************************************************************************/
#pragma once
//////////////////////////////////////////////////////////////////////////////////////////////////
//
// Documentation for the API is available at https://renderdoc.org/docs/in_application_api.html
//
#if !defined(RENDERDOC_NO_STDINT)
#include <stdint.h>
#endif
#if defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
#define RENDERDOC_CC __cdecl
#elif defined(__linux__) || defined(__FreeBSD__)
#define RENDERDOC_CC
#elif defined(__APPLE__)
#define RENDERDOC_CC
#else
#error "Unknown platform"
#endif
#ifdef __cplusplus
extern "C" {
#endif
//////////////////////////////////////////////////////////////////////////////////////////////////
// Constants not used directly in below API
// This is a GUID/magic value used for when applications pass a path where shader debug
// information can be found to match up with a stripped shader.
// the define can be used like so: const GUID RENDERDOC_ShaderDebugMagicValue =
// RENDERDOC_ShaderDebugMagicValue_value
#define RENDERDOC_ShaderDebugMagicValue_struct \
{ \
0xeab25520, 0x6670, 0x4865, 0x84, 0x29, 0x6c, 0x8, 0x51, 0x54, 0x00, 0xff \
}
// as an alternative when you want a byte array (assuming x86 endianness):
#define RENDERDOC_ShaderDebugMagicValue_bytearray \
{ \
0x20, 0x55, 0xb2, 0xea, 0x70, 0x66, 0x65, 0x48, 0x84, 0x29, 0x6c, 0x8, 0x51, 0x54, 0x00, 0xff \
}
// truncated version when only a uint64_t is available (e.g. Vulkan tags):
#define RENDERDOC_ShaderDebugMagicValue_truncated 0x48656670eab25520ULL
//////////////////////////////////////////////////////////////////////////////////////////////////
// RenderDoc capture options
//
typedef enum RENDERDOC_CaptureOption
{
// Allow the application to enable vsync
//
// Default - enabled
//
// 1 - The application can enable or disable vsync at will
// 0 - vsync is force disabled
eRENDERDOC_Option_AllowVSync = 0,
// Allow the application to enable fullscreen
//
// Default - enabled
//
// 1 - The application can enable or disable fullscreen at will
// 0 - fullscreen is force disabled
eRENDERDOC_Option_AllowFullscreen = 1,
// Record API debugging events and messages
//
// Default - disabled
//
// 1 - Enable built-in API debugging features and records the results into
// the capture, which is matched up with events on replay
// 0 - no API debugging is forcibly enabled
eRENDERDOC_Option_APIValidation = 2,
eRENDERDOC_Option_DebugDeviceMode = 2, // deprecated name of this enum
// Capture CPU callstacks for API events
//
// Default - disabled
//
// 1 - Enables capturing of callstacks
// 0 - no callstacks are captured
eRENDERDOC_Option_CaptureCallstacks = 3,
// When capturing CPU callstacks, only capture them from actions.
// This option does nothing without the above option being enabled
//
// Default - disabled
//
// 1 - Only captures callstacks for actions.
// Ignored if CaptureCallstacks is disabled
// 0 - Callstacks, if enabled, are captured for every event.
eRENDERDOC_Option_CaptureCallstacksOnlyDraws = 4,
eRENDERDOC_Option_CaptureCallstacksOnlyActions = 4,
// Specify a delay in seconds to wait for a debugger to attach, after
// creating or injecting into a process, before continuing to allow it to run.
//
// 0 indicates no delay, and the process will run immediately after injection
//
// Default - 0 seconds
//
eRENDERDOC_Option_DelayForDebugger = 5,
// Verify buffer access. This includes checking the memory returned by a Map() call to
// detect any out-of-bounds modification, as well as initialising buffers with undefined contents
// to a marker value to catch use of uninitialised memory.
//
// NOTE: This option is only valid for OpenGL and D3D11. Explicit APIs such as D3D12 and Vulkan do
// not do the same kind of interception & checking and undefined contents are really undefined.
//
// Default - disabled
//
// 1 - Verify buffer access
// 0 - No verification is performed, and overwriting bounds may cause crashes or corruption in
// RenderDoc.
eRENDERDOC_Option_VerifyBufferAccess = 6,
// The old name for eRENDERDOC_Option_VerifyBufferAccess was eRENDERDOC_Option_VerifyMapWrites.
// This option now controls the filling of uninitialised buffers with 0xdddddddd which was
// previously always enabled
eRENDERDOC_Option_VerifyMapWrites = eRENDERDOC_Option_VerifyBufferAccess,
// Hooks any system API calls that create child processes, and injects
// RenderDoc into them recursively with the same options.
//
// Default - disabled
//
// 1 - Hooks into spawned child processes
// 0 - Child processes are not hooked by RenderDoc
eRENDERDOC_Option_HookIntoChildren = 7,
// By default RenderDoc only includes resources in the final capture necessary
// for that frame, this allows you to override that behaviour.
//
// Default - disabled
//
// 1 - all live resources at the time of capture are included in the capture
// and available for inspection
// 0 - only the resources referenced by the captured frame are included
eRENDERDOC_Option_RefAllResources = 8,
// **NOTE**: As of RenderDoc v1.1 this option has been deprecated. Setting or
// getting it will be ignored, to allow compatibility with older versions.
// In v1.1 the option acts as if it's always enabled.
//
// By default RenderDoc skips saving initial states for resources where the
// previous contents don't appear to be used, assuming that writes before
// reads indicate previous contents aren't used.
//
// Default - disabled
//
// 1 - initial contents at the start of each captured frame are saved, even if
// they are later overwritten or cleared before being used.
// 0 - unless a read is detected, initial contents will not be saved and will
// appear as black or empty data.
eRENDERDOC_Option_SaveAllInitials = 9,
// In APIs that allow for the recording of command lists to be replayed later,
// RenderDoc may choose to not capture command lists before a frame capture is
// triggered, to reduce overheads. This means any command lists recorded once
// and replayed many times will not be available and may cause a failure to
// capture.
//
// NOTE: This is only true for APIs where multithreading is difficult or
// discouraged. Newer APIs like Vulkan and D3D12 will ignore this option
// and always capture all command lists since the API is heavily oriented
// around it and the overheads have been reduced by API design.
//
// 1 - All command lists are captured from the start of the application
// 0 - Command lists are only captured if their recording begins during
// the period when a frame capture is in progress.
eRENDERDOC_Option_CaptureAllCmdLists = 10,
// Mute API debugging output when the API validation mode option is enabled
//
// Default - enabled
//
// 1 - Mute any API debug messages from being displayed or passed through
// 0 - API debugging is displayed as normal
eRENDERDOC_Option_DebugOutputMute = 11,
// Option to allow vendor extensions to be used even when they may be
// incompatible with RenderDoc and cause corrupted replays or crashes.
//
// Default - inactive
//
// No values are documented, this option should only be used when absolutely
// necessary as directed by a RenderDoc developer.
eRENDERDOC_Option_AllowUnsupportedVendorExtensions = 12,
// Define a soft memory limit which some APIs may aim to keep overhead under where
// possible. Anything above this limit will where possible be saved directly to disk during
// capture.
// This will cause increased disk space use (which may cause a capture to fail if disk space is
// exhausted) as well as slower capture times.
//
// Not all memory allocations may be deferred like this so it is not a guarantee of a memory
// limit.
//
// Units are in MBs, suggested values would range from 200MB to 1000MB.
//
// Default - 0 Megabytes
eRENDERDOC_Option_SoftMemoryLimit = 13,
} RENDERDOC_CaptureOption;
// Sets an option that controls how RenderDoc behaves on capture.
//
// Returns 1 if the option and value are valid
// Returns 0 if either is invalid and the option is unchanged
typedef int(RENDERDOC_CC *pRENDERDOC_SetCaptureOptionU32)(RENDERDOC_CaptureOption opt, uint32_t val);
typedef int(RENDERDOC_CC *pRENDERDOC_SetCaptureOptionF32)(RENDERDOC_CaptureOption opt, float val);
// Gets the current value of an option as a uint32_t
//
// If the option is invalid, 0xffffffff is returned
typedef uint32_t(RENDERDOC_CC *pRENDERDOC_GetCaptureOptionU32)(RENDERDOC_CaptureOption opt);
// Gets the current value of an option as a float
//
// If the option is invalid, -FLT_MAX is returned
typedef float(RENDERDOC_CC *pRENDERDOC_GetCaptureOptionF32)(RENDERDOC_CaptureOption opt);
typedef enum RENDERDOC_InputButton
{
// '0' - '9' matches ASCII values
eRENDERDOC_Key_0 = 0x30,
eRENDERDOC_Key_1 = 0x31,
eRENDERDOC_Key_2 = 0x32,
eRENDERDOC_Key_3 = 0x33,
eRENDERDOC_Key_4 = 0x34,
eRENDERDOC_Key_5 = 0x35,
eRENDERDOC_Key_6 = 0x36,
eRENDERDOC_Key_7 = 0x37,
eRENDERDOC_Key_8 = 0x38,
eRENDERDOC_Key_9 = 0x39,
// 'A' - 'Z' matches ASCII values
eRENDERDOC_Key_A = 0x41,
eRENDERDOC_Key_B = 0x42,
eRENDERDOC_Key_C = 0x43,
eRENDERDOC_Key_D = 0x44,
eRENDERDOC_Key_E = 0x45,
eRENDERDOC_Key_F = 0x46,
eRENDERDOC_Key_G = 0x47,
eRENDERDOC_Key_H = 0x48,
eRENDERDOC_Key_I = 0x49,
eRENDERDOC_Key_J = 0x4A,
eRENDERDOC_Key_K = 0x4B,
eRENDERDOC_Key_L = 0x4C,
eRENDERDOC_Key_M = 0x4D,
eRENDERDOC_Key_N = 0x4E,
eRENDERDOC_Key_O = 0x4F,
eRENDERDOC_Key_P = 0x50,
eRENDERDOC_Key_Q = 0x51,
eRENDERDOC_Key_R = 0x52,
eRENDERDOC_Key_S = 0x53,
eRENDERDOC_Key_T = 0x54,
eRENDERDOC_Key_U = 0x55,
eRENDERDOC_Key_V = 0x56,
eRENDERDOC_Key_W = 0x57,
eRENDERDOC_Key_X = 0x58,
eRENDERDOC_Key_Y = 0x59,
eRENDERDOC_Key_Z = 0x5A,
// leave the rest of the ASCII range free
// in case we want to use it later
eRENDERDOC_Key_NonPrintable = 0x100,
eRENDERDOC_Key_Divide,
eRENDERDOC_Key_Multiply,
eRENDERDOC_Key_Subtract,
eRENDERDOC_Key_Plus,
eRENDERDOC_Key_F1,
eRENDERDOC_Key_F2,
eRENDERDOC_Key_F3,
eRENDERDOC_Key_F4,
eRENDERDOC_Key_F5,
eRENDERDOC_Key_F6,
eRENDERDOC_Key_F7,
eRENDERDOC_Key_F8,
eRENDERDOC_Key_F9,
eRENDERDOC_Key_F10,
eRENDERDOC_Key_F11,
eRENDERDOC_Key_F12,
eRENDERDOC_Key_Home,
eRENDERDOC_Key_End,
eRENDERDOC_Key_Insert,
eRENDERDOC_Key_Delete,
eRENDERDOC_Key_PageUp,
eRENDERDOC_Key_PageDn,
eRENDERDOC_Key_Backspace,
eRENDERDOC_Key_Tab,
eRENDERDOC_Key_PrtScrn,
eRENDERDOC_Key_Pause,
eRENDERDOC_Key_Max,
} RENDERDOC_InputButton;
// Sets which key or keys can be used to toggle focus between multiple windows
//
// If keys is NULL or num is 0, toggle keys will be disabled
typedef void(RENDERDOC_CC *pRENDERDOC_SetFocusToggleKeys)(RENDERDOC_InputButton *keys, int num);
// Sets which key or keys can be used to capture the next frame
//
// If keys is NULL or num is 0, captures keys will be disabled
typedef void(RENDERDOC_CC *pRENDERDOC_SetCaptureKeys)(RENDERDOC_InputButton *keys, int num);
typedef enum RENDERDOC_OverlayBits
{
// This single bit controls whether the overlay is enabled or disabled globally
eRENDERDOC_Overlay_Enabled = 0x1,
// Show the average framerate over several seconds as well as min/max
eRENDERDOC_Overlay_FrameRate = 0x2,
// Show the current frame number
eRENDERDOC_Overlay_FrameNumber = 0x4,
// Show a list of recent captures, and how many captures have been made
eRENDERDOC_Overlay_CaptureList = 0x8,
// Default values for the overlay mask
eRENDERDOC_Overlay_Default = (eRENDERDOC_Overlay_Enabled | eRENDERDOC_Overlay_FrameRate |
eRENDERDOC_Overlay_FrameNumber | eRENDERDOC_Overlay_CaptureList),
// Enable all bits
eRENDERDOC_Overlay_All = ~0U,
// Disable all bits
eRENDERDOC_Overlay_None = 0,
} RENDERDOC_OverlayBits;
// returns the overlay bits that have been set
typedef uint32_t(RENDERDOC_CC *pRENDERDOC_GetOverlayBits)();
// sets the overlay bits with an and & or mask
typedef void(RENDERDOC_CC *pRENDERDOC_MaskOverlayBits)(uint32_t And, uint32_t Or);
// this function will attempt to remove RenderDoc's hooks in the application.
//
// Note: that this can only work correctly if done immediately after
// the module is loaded, before any API work happens. RenderDoc will remove its
// injected hooks and shut down. Behaviour is undefined if this is called
// after any API functions have been called, and there is still no guarantee of
// success.
typedef void(RENDERDOC_CC *pRENDERDOC_RemoveHooks)();
// DEPRECATED: compatibility for code compiled against pre-1.4.1 headers.
typedef pRENDERDOC_RemoveHooks pRENDERDOC_Shutdown;
// This function will unload RenderDoc's crash handler.
//
// If you use your own crash handler and don't want RenderDoc's handler to
// intercede, you can call this function to unload it and any unhandled
// exceptions will pass to the next handler.
typedef void(RENDERDOC_CC *pRENDERDOC_UnloadCrashHandler)();
// Sets the capture file path template
//
// pathtemplate is a UTF-8 string that gives a template for how captures will be named
// and where they will be saved.
//
// Any extension is stripped off the path, and captures are saved in the directory
// specified, and named with the filename and the frame number appended. If the
// directory does not exist it will be created, including any parent directories.
//
// If pathtemplate is NULL, the template will remain unchanged
//
// Example:
//
// SetCaptureFilePathTemplate("my_captures/example");
//
// Capture #1 -> my_captures/example_frame123.rdc
// Capture #2 -> my_captures/example_frame456.rdc
typedef void(RENDERDOC_CC *pRENDERDOC_SetCaptureFilePathTemplate)(const char *pathtemplate);
// returns the current capture path template, see SetCaptureFileTemplate above, as a UTF-8 string
typedef const char *(RENDERDOC_CC *pRENDERDOC_GetCaptureFilePathTemplate)();
// DEPRECATED: compatibility for code compiled against pre-1.1.2 headers.
typedef pRENDERDOC_SetCaptureFilePathTemplate pRENDERDOC_SetLogFilePathTemplate;
typedef pRENDERDOC_GetCaptureFilePathTemplate pRENDERDOC_GetLogFilePathTemplate;
// returns the number of captures that have been made
typedef uint32_t(RENDERDOC_CC *pRENDERDOC_GetNumCaptures)();
// This function returns the details of a capture, by index. New captures are added
// to the end of the list.
//
// filename will be filled with the absolute path to the capture file, as a UTF-8 string
// pathlength will be written with the length in bytes of the filename string
// timestamp will be written with the time of the capture, in seconds since the Unix epoch
//
// Any of the parameters can be NULL and they'll be skipped.
//
// The function will return 1 if the capture index is valid, or 0 if the index is invalid
// If the index is invalid, the values will be unchanged
//
// Note: when captures are deleted in the UI they will remain in this list, so the
// capture path may not exist anymore.
typedef uint32_t(RENDERDOC_CC *pRENDERDOC_GetCapture)(uint32_t idx, char *filename,
uint32_t *pathlength, uint64_t *timestamp);
// Sets the comments associated with a capture file. These comments are displayed in the
// UI program when opening.
//
// filePath should be a path to the capture file to add comments to. If set to NULL or ""
// the most recent capture file created made will be used instead.
// comments should be a NULL-terminated UTF-8 string to add as comments.
//
// Any existing comments will be overwritten.
typedef void(RENDERDOC_CC *pRENDERDOC_SetCaptureFileComments)(const char *filePath,
const char *comments);
// returns 1 if the RenderDoc UI is connected to this application, 0 otherwise
typedef uint32_t(RENDERDOC_CC *pRENDERDOC_IsTargetControlConnected)();
// DEPRECATED: compatibility for code compiled against pre-1.1.1 headers.
// This was renamed to IsTargetControlConnected in API 1.1.1, the old typedef is kept here for
// backwards compatibility with old code, it is castable either way since it's ABI compatible
// as the same function pointer type.
typedef pRENDERDOC_IsTargetControlConnected pRENDERDOC_IsRemoteAccessConnected;
// This function will launch the Replay UI associated with the RenderDoc library injected
// into the running application.
//
// if connectTargetControl is 1, the Replay UI will be launched with a command line parameter
// to connect to this application
// cmdline is the rest of the command line, as a UTF-8 string. E.g. a captures to open
// if cmdline is NULL, the command line will be empty.
//
// returns the PID of the replay UI if successful, 0 if not successful.
typedef uint32_t(RENDERDOC_CC *pRENDERDOC_LaunchReplayUI)(uint32_t connectTargetControl,
const char *cmdline);
// RenderDoc can return a higher version than requested if it's backwards compatible,
// this function returns the actual version returned. If a parameter is NULL, it will be
// ignored and the others will be filled out.
typedef void(RENDERDOC_CC *pRENDERDOC_GetAPIVersion)(int *major, int *minor, int *patch);
// Requests that the replay UI show itself (if hidden or not the current top window). This can be
// used in conjunction with IsTargetControlConnected and LaunchReplayUI to intelligently handle
// showing the UI after making a capture.
//
// This will return 1 if the request was successfully passed on, though it's not guaranteed that
// the UI will be on top in all cases depending on OS rules. It will return 0 if there is no current
// target control connection to make such a request, or if there was another error
typedef uint32_t(RENDERDOC_CC *pRENDERDOC_ShowReplayUI)();
//////////////////////////////////////////////////////////////////////////
// Capturing functions
//
// A device pointer is a pointer to the API's root handle.
//
// This would be an ID3D11Device, HGLRC/GLXContext, ID3D12Device, etc
typedef void *RENDERDOC_DevicePointer;
// A window handle is the OS's native window handle
//
// This would be an HWND, GLXDrawable, etc
typedef void *RENDERDOC_WindowHandle;
// A helper macro for Vulkan, where the device handle cannot be used directly.
//
// Passing the VkInstance to this macro will return the RENDERDOC_DevicePointer to use.
//
// Specifically, the value needed is the dispatch table pointer, which sits as the first
// pointer-sized object in the memory pointed to by the VkInstance. Thus we cast to a void** and
// indirect once.
#define RENDERDOC_DEVICEPOINTER_FROM_VKINSTANCE(inst) (*((void **)(inst)))
// This sets the RenderDoc in-app overlay in the API/window pair as 'active' and it will
// respond to keypresses. Neither parameter can be NULL
typedef void(RENDERDOC_CC *pRENDERDOC_SetActiveWindow)(RENDERDOC_DevicePointer device,
RENDERDOC_WindowHandle wndHandle);
// capture the next frame on whichever window and API is currently considered active
typedef void(RENDERDOC_CC *pRENDERDOC_TriggerCapture)();
// capture the next N frames on whichever window and API is currently considered active
typedef void(RENDERDOC_CC *pRENDERDOC_TriggerMultiFrameCapture)(uint32_t numFrames);
// When choosing either a device pointer or a window handle to capture, you can pass NULL.
// Passing NULL specifies a 'wildcard' match against anything. This allows you to specify
// any API rendering to a specific window, or a specific API instance rendering to any window,
// or in the simplest case of one window and one API, you can just pass NULL for both.
//
// In either case, if there are two or more possible matching (device,window) pairs it
// is undefined which one will be captured.
//
// Note: for headless rendering you can pass NULL for the window handle and either specify
// a device pointer or leave it NULL as above.
// Immediately starts capturing API calls on the specified device pointer and window handle.
//
// If there is no matching thing to capture (e.g. no supported API has been initialised),
// this will do nothing.
//
// The results are undefined (including crashes) if two captures are started overlapping,
// even on separate devices and/oror windows.
typedef void(RENDERDOC_CC *pRENDERDOC_StartFrameCapture)(RENDERDOC_DevicePointer device,
RENDERDOC_WindowHandle wndHandle);
// Returns whether or not a frame capture is currently ongoing anywhere.
//
// This will return 1 if a capture is ongoing, and 0 if there is no capture running
typedef uint32_t(RENDERDOC_CC *pRENDERDOC_IsFrameCapturing)();
// Ends capturing immediately.
//
// This will return 1 if the capture succeeded, and 0 if there was an error capturing.
typedef uint32_t(RENDERDOC_CC *pRENDERDOC_EndFrameCapture)(RENDERDOC_DevicePointer device,
RENDERDOC_WindowHandle wndHandle);
// Ends capturing immediately and discard any data stored without saving to disk.
//
// This will return 1 if the capture was discarded, and 0 if there was an error or no capture
// was in progress
typedef uint32_t(RENDERDOC_CC *pRENDERDOC_DiscardFrameCapture)(RENDERDOC_DevicePointer device,
RENDERDOC_WindowHandle wndHandle);
// Only valid to be called between a call to StartFrameCapture and EndFrameCapture. Gives a custom
// title to the capture produced which will be displayed in the UI.
//
// If multiple captures are ongoing, this title will be applied to the first capture to end after
// this call. The second capture to end will have no title, unless this function is called again.
//
// Calling this function has no effect if no capture is currently running, and if it is called
// multiple times only the last title will be used.
typedef void(RENDERDOC_CC *pRENDERDOC_SetCaptureTitle)(const char *title);
//////////////////////////////////////////////////////////////////////////////////////////////////
// RenderDoc API versions
//
// RenderDoc uses semantic versioning (http://semver.org/).
//
// MAJOR version is incremented when incompatible API changes happen.
// MINOR version is incremented when functionality is added in a backwards-compatible manner.
// PATCH version is incremented when backwards-compatible bug fixes happen.
//
// Note that this means the API returned can be higher than the one you might have requested.
// e.g. if you are running against a newer RenderDoc that supports 1.0.1, it will be returned
// instead of 1.0.0. You can check this with the GetAPIVersion entry point
typedef enum RENDERDOC_Version
{
eRENDERDOC_API_Version_1_0_0 = 10000, // RENDERDOC_API_1_0_0 = 1 00 00
eRENDERDOC_API_Version_1_0_1 = 10001, // RENDERDOC_API_1_0_1 = 1 00 01
eRENDERDOC_API_Version_1_0_2 = 10002, // RENDERDOC_API_1_0_2 = 1 00 02
eRENDERDOC_API_Version_1_1_0 = 10100, // RENDERDOC_API_1_1_0 = 1 01 00
eRENDERDOC_API_Version_1_1_1 = 10101, // RENDERDOC_API_1_1_1 = 1 01 01
eRENDERDOC_API_Version_1_1_2 = 10102, // RENDERDOC_API_1_1_2 = 1 01 02
eRENDERDOC_API_Version_1_2_0 = 10200, // RENDERDOC_API_1_2_0 = 1 02 00
eRENDERDOC_API_Version_1_3_0 = 10300, // RENDERDOC_API_1_3_0 = 1 03 00
eRENDERDOC_API_Version_1_4_0 = 10400, // RENDERDOC_API_1_4_0 = 1 04 00
eRENDERDOC_API_Version_1_4_1 = 10401, // RENDERDOC_API_1_4_1 = 1 04 01
eRENDERDOC_API_Version_1_4_2 = 10402, // RENDERDOC_API_1_4_2 = 1 04 02
eRENDERDOC_API_Version_1_5_0 = 10500, // RENDERDOC_API_1_5_0 = 1 05 00
eRENDERDOC_API_Version_1_6_0 = 10600, // RENDERDOC_API_1_6_0 = 1 06 00
} RENDERDOC_Version;
// API version changelog:
//
// 1.0.0 - initial release
// 1.0.1 - Bugfix: IsFrameCapturing() was returning false for captures that were triggered
// by keypress or TriggerCapture, instead of Start/EndFrameCapture.
// 1.0.2 - Refactor: Renamed eRENDERDOC_Option_DebugDeviceMode to eRENDERDOC_Option_APIValidation
// 1.1.0 - Add feature: TriggerMultiFrameCapture(). Backwards compatible with 1.0.x since the new
// function pointer is added to the end of the struct, the original layout is identical
// 1.1.1 - Refactor: Renamed remote access to target control (to better disambiguate from remote
// replay/remote server concept in replay UI)
// 1.1.2 - Refactor: Renamed "log file" in function names to just capture, to clarify that these
// are captures and not debug logging files. This is the first API version in the v1.0
// branch.
// 1.2.0 - Added feature: SetCaptureFileComments() to add comments to a capture file that will be
// displayed in the UI program on load.
// 1.3.0 - Added feature: New capture option eRENDERDOC_Option_AllowUnsupportedVendorExtensions
// which allows users to opt-in to allowing unsupported vendor extensions to function.
// Should be used at the user's own risk.
// Refactor: Renamed eRENDERDOC_Option_VerifyMapWrites to
// eRENDERDOC_Option_VerifyBufferAccess, which now also controls initialisation to
// 0xdddddddd of uninitialised buffer contents.
// 1.4.0 - Added feature: DiscardFrameCapture() to discard a frame capture in progress and stop
// capturing without saving anything to disk.
// 1.4.1 - Refactor: Renamed Shutdown to RemoveHooks to better clarify what is happening
// 1.4.2 - Refactor: Renamed 'draws' to 'actions' in callstack capture option.
// 1.5.0 - Added feature: ShowReplayUI() to request that the replay UI show itself if connected
// 1.6.0 - Added feature: SetCaptureTitle() which can be used to set a title for a
// capture made with StartFrameCapture() or EndFrameCapture()
typedef struct RENDERDOC_API_1_6_0
{
pRENDERDOC_GetAPIVersion GetAPIVersion;
pRENDERDOC_SetCaptureOptionU32 SetCaptureOptionU32;
pRENDERDOC_SetCaptureOptionF32 SetCaptureOptionF32;
pRENDERDOC_GetCaptureOptionU32 GetCaptureOptionU32;
pRENDERDOC_GetCaptureOptionF32 GetCaptureOptionF32;
pRENDERDOC_SetFocusToggleKeys SetFocusToggleKeys;
pRENDERDOC_SetCaptureKeys SetCaptureKeys;
pRENDERDOC_GetOverlayBits GetOverlayBits;
pRENDERDOC_MaskOverlayBits MaskOverlayBits;
// Shutdown was renamed to RemoveHooks in 1.4.1.
// These unions allow old code to continue compiling without changes
union
{
pRENDERDOC_Shutdown Shutdown;
pRENDERDOC_RemoveHooks RemoveHooks;
};
pRENDERDOC_UnloadCrashHandler UnloadCrashHandler;
// Get/SetLogFilePathTemplate was renamed to Get/SetCaptureFilePathTemplate in 1.1.2.
// These unions allow old code to continue compiling without changes
union
{
// deprecated name
pRENDERDOC_SetLogFilePathTemplate SetLogFilePathTemplate;
// current name
pRENDERDOC_SetCaptureFilePathTemplate SetCaptureFilePathTemplate;
};
union
{
// deprecated name
pRENDERDOC_GetLogFilePathTemplate GetLogFilePathTemplate;
// current name
pRENDERDOC_GetCaptureFilePathTemplate GetCaptureFilePathTemplate;
};
pRENDERDOC_GetNumCaptures GetNumCaptures;
pRENDERDOC_GetCapture GetCapture;
pRENDERDOC_TriggerCapture TriggerCapture;
// IsRemoteAccessConnected was renamed to IsTargetControlConnected in 1.1.1.
// This union allows old code to continue compiling without changes
union
{
// deprecated name
pRENDERDOC_IsRemoteAccessConnected IsRemoteAccessConnected;
// current name
pRENDERDOC_IsTargetControlConnected IsTargetControlConnected;
};
pRENDERDOC_LaunchReplayUI LaunchReplayUI;
pRENDERDOC_SetActiveWindow SetActiveWindow;
pRENDERDOC_StartFrameCapture StartFrameCapture;
pRENDERDOC_IsFrameCapturing IsFrameCapturing;
pRENDERDOC_EndFrameCapture EndFrameCapture;
// new function in 1.1.0
pRENDERDOC_TriggerMultiFrameCapture TriggerMultiFrameCapture;
// new function in 1.2.0
pRENDERDOC_SetCaptureFileComments SetCaptureFileComments;
// new function in 1.4.0
pRENDERDOC_DiscardFrameCapture DiscardFrameCapture;
// new function in 1.5.0
pRENDERDOC_ShowReplayUI ShowReplayUI;
// new function in 1.6.0
pRENDERDOC_SetCaptureTitle SetCaptureTitle;
} RENDERDOC_API_1_6_0;
typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_0_0;
typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_0_1;
typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_0_2;
typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_1_0;
typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_1_1;
typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_1_2;
typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_2_0;
typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_3_0;
typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_4_0;
typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_4_1;
typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_4_2;
typedef RENDERDOC_API_1_6_0 RENDERDOC_API_1_5_0;
//////////////////////////////////////////////////////////////////////////////////////////////////
// RenderDoc API entry point
//
// This entry point can be obtained via GetProcAddress/dlsym if RenderDoc is available.
//
// The name is the same as the typedef - "RENDERDOC_GetAPI"
//
// This function is not thread safe, and should not be called on multiple threads at once.
// Ideally, call this once as early as possible in your application's startup, before doing
// any API work, since some configuration functionality etc has to be done also before
// initialising any APIs.
//
// Parameters:
// version is a single value from the RENDERDOC_Version above.
//
// outAPIPointers will be filled out with a pointer to the corresponding struct of function
// pointers.
//
// Returns:
// 1 - if the outAPIPointers has been filled with a pointer to the API struct requested
// 0 - if the requested version is not supported or the arguments are invalid.
//
typedef int(RENDERDOC_CC *pRENDERDOC_GetAPI)(RENDERDOC_Version version, void **outAPIPointers);
#ifdef __cplusplus
} // extern "C"
#endif

1
externals/robin-map vendored Submodule

Submodule externals/robin-map added at 4ec1bf19c6

2
externals/sdl3 vendored

1
externals/sirit vendored Submodule

Submodule externals/sirit added at 09a1416ab1

7988
externals/stb/stb_image.h vendored Normal file

File diff suppressed because it is too large Load Diff

1
externals/toml11 vendored Submodule

Submodule externals/toml11 added at a01fe3b4c1

1
externals/tracy vendored Submodule

Submodule externals/tracy added at 143a53d198

1
externals/vma vendored Submodule

Submodule externals/vma added at f378e7b3f1

1
externals/vulkan-headers vendored Submodule

1
externals/xbyak vendored Submodule

Submodule externals/xbyak added at 44a72f3692

1
externals/xxhash vendored Submodule

Submodule externals/xxhash added at 953a09abc3

Some files were not shown because too many files have changed in this diff Show More