Commit Graph

1050 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
c96854f1f1
Merge pull request #381 from SamuelFontes/issues/361
361: Game directory window appears every time
2024-08-08 22:33:42 +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
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
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
56b362bb24 Add macOS icon. 2024-07-31 19:37:55 -07: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