Commit graph

1008 commits

Author SHA1 Message Date
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
georgemoralis 879b8dcfe8 Merge branch 'main' into miscFixes6 2024-07-18 18:18:10 +03:00
Dzmitry Dubrova 788bdf6d2a kernel: Implement posix_pthread_once (#297)
* kernel: Implement posix_pthread_once

* Fix clang format
2024-07-17 23:34:22 +03:00
georgemoralis baf9ee9125 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 9f1251b643 clang format fix 2024-07-17 17:57:54 +03:00
IndecisiveTurtle 0e1d5263d2 Remove bc6 2024-07-17 17:06:09 +03:00
IndecisiveTurtle 70e74160d7 shader_recompiler: Normal gathers 2024-07-17 16:49:45 +03:00
IndecisiveTurtle c745e429e7 rasterizer: Bump staging to 1GB
* Less chances of crashing
2024-07-17 16:22:04 +03:00
IndecisiveTurtle 40924d1325 liverpool_to_vk: Add more surface formats 2024-07-17 16:19:08 +03:00
IndecisiveTurtle 1c99ccf6dc Add comments 2024-07-17 15:52:40 +03:00
IndecisiveTurtle 31801d97b3 emulator: Add libSceUlt too 2024-07-17 15:44:20 +03:00
IndecisiveTurtle 516170a837 emulator: Add libSceFiber and simplify logic 2024-07-17 15:37:32 +03:00
IndecisiveTurtle 5ce901d78b event_queue: Add clear flag to events and don't return error 2024-07-17 14:50:26 +03:00
IndecisiveTurtle 33615d1d32 gnmdriver: Fix incorrect trailing nop insertion in indirect draws 2024-07-17 14:48:30 +03:00
IndecisiveTurtle b977dc4d8e fs: Defeat games with double slashes 2024-07-17 14:46:37 +03:00
georgemoralis d919baa160 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 f1d1af2dba 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
squidbus 378e136ba0 Return EBUSY from sceKernelPollEventFlag instead of ETIMEDOUT. 2024-07-16 04:53:37 -07:00
TheTurtle 83b12859a5 fs: Fix nullptr check in GetFile 2024-07-15 16:52:24 +03:00
TheTurtle c4c1dfaa62 fs: Use proper append operator 2024-07-15 15:42:35 +03:00
georgemoralis 6202c21106 Merge pull request #293 from shadps4-emu/misc-fixes3
Various linux fixes
2024-07-15 15:25:20 +03:00
IndecisiveTurtle 3e8540bb6a fs: Remove some unnecessary string conversions 2024-07-15 15:14:04 +03:00
IndecisiveTurtle c2c6aededa Merge branch 'misc-fixes3' of https://github.com/shadps4-emu/shadPS4 into misc-fixes3 2024-07-15 15:05:29 +03:00
IndecisiveTurtle f315f74f2d kernel: Remove linux hack
* Breaks many games, only benefits BB. Tbd
2024-07-15 14:51:45 +03:00
IndecisiveTurtle 16a778745d fs: Fix case of getting the mount itself 2024-07-15 14:50:28 +03:00
georgemoralis 9b3ea720a8 windows std::filesystem fixes 2024-07-15 14:50:23 +03:00
georgemoralis 909fcb5b75 clang format fix 2024-07-15 14:18:28 +03:00
IndecisiveTurtle 01f26998f8 ssa_rewrite_pass: Correct phi node type for thread bitmask 2024-07-15 13:34:34 +03:00
georgemoralis 9a7a508b80 Merge pull request #287 from polybiusproxy/dev
gnmdriver: Implement shader functions
2024-07-15 07:47:33 +03:00
jas0n098 defd6cd6c0 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 d4e95f7bd3 clang format 2024-07-15 03:47:10 +03:00
IndecisiveTurtle a3619919e1 fs: Actually functional linux case insensitive search 2024-07-15 03:37:30 +03:00
IndecisiveTurtle ff9a42621c tls: Use gs segment for linux 2024-07-15 01:48:57 +03:00
IndecisiveTurtle d1e30e4807 liverpool: Num submits should be atomic 2024-07-15 01:28:36 +03:00
IndecisiveTurtle 91ca33fe49 event_queues: Use std placeholders 2024-07-15 01:28:08 +03:00
psucien 77d0535f9f review comments applied 2024-07-14 23:25:41 +02:00
raziel1000 5d79c8d74c Some functions called by Stardew Valley 2024-07-14 23:23:11 +03:00
georgemoralis 055c84ca49 initial ime dialog handling 2024-07-14 23:23:10 +03:00
georgemoralis 1ca189bdda replace unreachable with default return in sceKernelClockGettime 2024-07-14 23:23:10 +03:00
georgemoralis 9184e24307 dataformat used by DMC4 2024-07-14 23:23:10 +03:00
raziel1000 3c2dc4deac - sceSaveDataDirNameSearch wip, needs testing and more work. 2024-07-14 23:23:10 +03:00
georgemoralis 8435322d6a Merge pull request #292 from shadps4-emu/games/00144
Missing graphics features for flOw & Flower
2024-07-14 23:07:46 +03:00
psucien ada0513de0 libraries: gnmdriver: added missing ASC PM4 dump 2024-07-14 18:27:28 +02:00
psucien 1c2a562131 libraries: kernel: added sceKernelGetEventId 2024-07-14 18:20:31 +02:00
psucien 95f4bc836b missing line fix 2024-07-14 17:11:54 +02:00
psucien 535a8f30e9 renderer: debug markers for ability to match cmdlists with rdoc captures 2024-07-14 11:37:52 +02:00
psucien aecf84cb63 amdgpu: additional heuristic for CB extents detection
Found in CUSA00144
2024-07-14 10:59:22 +02:00
Live session user 958b894706 Move game_data to RW directory inside user folder for linux 2024-07-13 16:44:13 -07:00
psucien b684893aa8 recompiler: added support for discard on export with masked EXEC 2024-07-13 14:57:01 +02:00
Daniel R ba8ae239f8 shader_recompiler/frontend: Implement opcodes (#289)
`S_ASHR_I32` and `BUFFER_LOAD_DWORD`.
2024-07-13 12:37:25 +03:00
psucien c068adda48 recompiler: proper VS inputs initialization 2024-07-13 01:00:24 +02:00
Daniel R. 2803daa7e1 Merge branch 'dev' of https://github.com/polybiusproxy/shadPS4 into dev 2024-07-12 11:04:23 +02:00
Daniel R. 90a0180203 clang-format 2024-07-12 11:03:55 +02:00
Daniel R db6808269d Merge branch 'shadps4-emu:main' into dev 2024-07-12 11:00:58 +02:00
Daniel R. 28ace24b3f gnmdriver: Implement shader functions 2024-07-12 11:00:11 +02:00
psucien 04933d6576 hot fix: reduce geometry staging 3Gb -> 512Mb 2024-07-11 20:29:53 +02:00
Daniel R. 128e098f3e Another ifdef (sigh) 2024-07-11 15:29:36 +02:00
Daniel R. 3a7d2ef6eb Fix Linux builds 2024-07-11 15:16:50 +02:00
Vladislav Mikhalin 9b06e9ab64 Fixed an issue with number of components of shader attributes 2024-07-11 16:10:23 +03:00
Daniel R 8a8c1f274b 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
Vladislav Mikhalin 6add8bfb96 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
psucien 2ca3b97c7d fix for large delays precision + Linux build 2024-07-11 13:14:42 +03:00
psucien 9ffe0ea70d kernel: added HR timers and asio service thread 2024-07-11 13:14:42 +03:00
psucien 6132e03a2c kernel: equeue: minor refactoring 2024-07-11 13:14:42 +03:00
georgemoralis 13d2d4aefb forgot to register avplayer module 2024-07-10 19:15:58 +03:00
georgemoralis a186223d8e 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