Commit graph

973 commits

Author SHA1 Message Date
georgemoralis ad0b8167ba more linux fix? 2024-08-09 00:02:25 +03:00
georgemoralis fcd16eb61e linux fix? 2024-08-09 00:02:25 +03:00
georgemoralis cada878056 update submodules , fixed sdl update , rewrote config with new toml11 v4 2024-08-09 00:02:24 +03:00
Stephen Miller b31e7515b3 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 1851c951a6 Merge pull request #381 from SamuelFontes/issues/361
361: Game directory window appears every time
2024-08-08 22:33:42 +03:00
SamuelFontes 406cf1ac42 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 513cebb897 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
ElBread3 8808ed316c double click to open games 2024-08-08 13:23:44 -05:00
Xphalnos 22d1041c26 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 a32d8e1c55 vk_graphics_pipeline: Fix regression 2024-08-08 17:01:03 +03:00
TheTurtle 1a59ee87fe filter: Add random library 2024-08-08 15:44:05 +03:00
TheTurtle 8809e1c226 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
TheTurtle e91da052c3 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 7c9fe2c831 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 25b9abec77 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 aa9b70ae88 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
georgemoralis 526b0c0c4d Merge pull request #356 from squidbus/macos-icon
Add macOS icon.
2024-08-01 08:42:44 +03:00
georgemoralis bac1bcc1ce Merge pull request #352 from Xphalnos/main
Better logo for shadPS4
2024-08-01 08:42:24 +03:00
squidbus 82919e44f0 Add macOS icon. 2024-07-31 19:37:55 -07:00
georgemoralis 6932746251 print git info to log as well 2024-08-01 01:11:58 +03:00
georgemoralis 2e48be9c0c print git info in windows title 2024-08-01 00:56:10 +03:00
Xphalnos 3d5ea8d545 Merge branch 'main' of https://github.com/Xphalnos/shadPS4 2024-07-31 18:15:09 +02:00
Xphalnos be7c3f2ef5 Better logo for shadPS4 2024-07-31 18:14:22 +02:00
georgemoralis 283e7c16f5 Merge pull request #346 from shadps4-emu/savedata_1
SaveData Fixes
2024-07-31 17:34:44 +03:00
Dzmitry Dubrova 479e6a20dd core: Implement sceRandomGetRandomNumber (#350) 2024-07-31 14:01:22 +03:00
Xphalnos 518531c18b Reorganization of includes (#348)
* Reorganization of includes

* fix
2024-07-31 13:25:55 +03:00
raziel1000 908f0f3e74 missing eR8Srgb 2024-07-31 02:07:02 -06:00
raziel1000 86e783f667 added data_format=1 and num_format=9 2024-07-31 01:24:44 -06:00
raziel1000 3aebe7eeb9 added data_format=10 and num_format=5 2024-07-31 00:32:50 -06:00
raziel1000 fb2b7e7bec Kernel: added sceKernelConvertLocaltimeToUtc 2024-07-31 00:21:23 -06:00
raziel1000 bd36897084 - Implemented sceSaveDataSetParam and sceSaveDataGetParam
- Fixed sceSaveDataDirNameSearch
2024-07-30 22:55:58 -06:00
TheTurtle bfc845324c 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 156e500d21 Merge pull request #343 from Borchev/AddPthreadGetStackSizeThunk
Add pthread_attr_getstacksize thunk
2024-07-30 23:36:39 +03:00
Borchev 03560c019e Fix SearchFree function bug (#339) 2024-07-30 22:40:42 +03:00
Borchev 35cb8810cb Add pthread_attr_getstacksize thunk 2024-07-30 12:37:05 -07:00
georgemoralis 7b8d0d59af 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
squidbus e2bdbeaf80 Add sem_timedwait polyfill for macOS. 2024-07-28 16:42:33 -07:00
Vasyl Baran 1f171ee01a Fixup for detiler artifacts on macOS 2024-07-28 22:21:18 +03:00
Dzmitry Dubrova c3a2b3531d Implement some pthread calls (#332) 2024-07-28 18:43:44 +03:00
DanielSvoboda f751f7cc09 log improvement ThrowInvalidType (#330)
* log improvement ThrowInvalidType

* log improvement ThrowInvalidType
2024-07-28 18:42:54 +03:00
psucien 8dbfac7b64 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 5363a226e1 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 40f21d4a79 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 9d8cbdc507 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 6eefcb2780 semaphore: Yet another race condition fix (#327) 2024-07-27 17:18:18 +03:00
georgemoralis 7cfa76aa8e Merge pull request #325 from DanielSvoboda/BUFFER_STORE_DWORDX2
BUFFER_STORE_DWORDX2
2024-07-26 13:17:16 +03:00
raziel1000 abf7cea257 fs: added /download0 mount
fs: get rid of double slashes
2024-07-26 08:07:22 -06:00
georgemoralis 0d9273e2fb added /dev/urandom 2024-07-26 08:50:39 +03:00
georgemoralis fb0e1ab435 commented sem_timedwait for linux untill @squidbus fix it 2024-07-26 08:16:32 +03:00
georgemoralis adfb08d660 cleanup memory_management 2024-07-26 08:08:47 +03:00
raziel1000 9523c4f6e4 ... 2024-07-26 07:59:55 +03:00
raziel1000 3d73174659 Applied feedback from @raphaelthegreat 2024-07-26 07:59:35 +03:00
georgemoralis 1f5d200521 forgot a file 2024-07-26 07:53:46 +03:00
georgemoralis 7fe993f593 some fixup to playgo , makes Worms go further 2024-07-26 07:53:45 +03:00
raziel1000 ee65797c86 - fixed sceAppContentTemporaryDataMount2 2024-07-26 07:53:19 +03:00
raziel1000 ea571a9ac5 sdl window: Added game title (serial, title and app_ver) 2024-07-26 07:53:18 +03:00
raziel1000 a5cea0cb4b thread_management: some pthread functions 2024-07-26 07:53:18 +03:00
raziel1000 3c05ce04c2 save_data: fix/accuracy for saveDataMem functions 2024-07-26 07:53:18 +03:00
DanielSvoboda 88cd3172ff BUFFER_STORE_DWORDX2 2024-07-26 00:25:29 -03:00
TheTurtle 0c96f2a030 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 be0a88fdfa clang fix 2024-07-25 11:59:39 +03:00
IndecisiveTurtle 237033bc57 address_space: Fix windows placeholder mapping 2024-07-24 22:59:56 +03:00
DanielSvoboda 53b8338091 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 70847979ae Replace remaining uses of QDir::currentPath() / user with UserDir. 2024-07-21 14:01:10 -07:00
georgemoralis d8590ac812 one more memory fix 2024-07-21 23:16:46 +03:00
georgemoralis 18084c0212 memory fix 2024-07-21 23:14:40 +03:00
georgemoralis 8db440573d Merge pull request #312 from Borchev/main
Add sceKernelGetDirectMemoryType, update sceKernelReserveVirtualRange
2024-07-21 22:52:50 +03:00
squidbus ec9146b7b2 Allocate more system reserved space on macOS and document restrictions. 2024-07-21 22:36:12 +03:00
squidbus bb7215977f Support RIP relative memory operands in patched instructions. 2024-07-21 22:36:12 +03:00
squidbus cfd6662d5e Fix user data path on macOS. 2024-07-21 22:36:12 +03:00
squidbus 8d12c06de4 Update format list for rebase and sort and remove duplicates. 2024-07-21 22:36:12 +03:00
squidbus 5e4ecb0a7f Restore old keybindings for Windows and Linux. 2024-07-21 22:36:12 +03:00
squidbus 6783776990 Only use date library on macOS. 2024-07-21 22:36:12 +03:00
squidbus bfb0eb7711 Make sure only system managed region can be moved on Windows. 2024-07-21 22:36:12 +03:00
squidbus e820ecc5ba Only patch BMI1 instructions under Rosetta 2. 2024-07-21 22:36:12 +03:00
squidbus 40a99f177b Add a few missing used formats from detiling. 2024-07-21 22:36:12 +03:00
squidbus 09727ce9d6 Define tessellation_factors_ring_addr relative to end of system reserved area. 2024-07-21 22:36:12 +03:00
squidbus d5e45d001e Reduce system reserved space to 0x700000000 and map fixed on macOS. 2024-07-21 22:36:12 +03:00
squidbus d07a52df13 Address review comments around memory and patches. 2024-07-21 22:36:12 +03:00
squidbus bdca446c5e Make sure system managed memory is in correct location on macOS. 2024-07-21 22:36:12 +03:00
squidbus 9d75d38b96 Fix missing logging on memory manager initalization. 2024-07-21 22:36:12 +03:00
squidbus c15f6b4461 Change format list from vector to array/span. 2024-07-21 22:36:12 +03:00
squidbus 2c37254fd0 Tidy up Vulkan extension list. 2024-07-21 22:36:12 +03:00
squidbus 6648589ef9 Set minimum macOS target to 11 and fix compile errors. 2024-07-21 22:36:12 +03:00
squidbus c26dcb65c8 Remap SDL face buttons to be usable without a keypad. 2024-07-21 22:36:12 +03:00
squidbus aef76187e9 Add fallback system for unsupported pixel formats. 2024-07-21 22:36:12 +03:00
squidbus 063da896ba Downgrade Vulkan requirement to 1.2 with extensions. 2024-07-21 22:36:12 +03:00
squidbus b5d0347c15 Migrate TLS patches to new patching system. 2024-07-21 22:36:12 +03:00
squidbus 38398a2175 Fix one-off bug with user data registers. 2024-07-21 22:36:12 +03:00
squidbus d42a32bbd8 Add initial macOS support. 2024-07-21 22:36:12 +03:00
Borchev b3350ceabb Fix formatting 2024-07-21 12:35:01 -07:00
Borchev 632cb2ef93 Add sceKernelGetDirectMemoryType and update sceKernelReserveVirtualRange to search for free region when virtual_addr==0 2024-07-21 11:29:24 -07:00
TheTurtle 7c08ca9544 vk_scheduler: Fix pending op check 2024-07-21 17:41:46 +03:00
TheTurtle 986b3af62b vk_scheduler: Add api for defering operations (#311) 2024-07-21 15:42:32 +03:00
psucien 2b31ab1e71 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
TheTurtle e70ce517cc 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 75d72867ab Merge pull request #281 from shadps4-emu/miscFixes6
Misc Fixes (forgot the number)
2024-07-19 16:35:19 +03:00
Vladislav Mikhalin 6c7825f31f Fixed buffer_store_* regression (#302) 2024-07-18 21:04:12 +03:00
georgemoralis a790fd84aa load every available prx from sce_module folder of game 2024-07-18 18:34:08 +03:00
georgemoralis e8bd2a3334 Update liverpool_to_vk.cpp 2024-07-18 18:19:46 +03:00