Commit graph

1078 commits

Author SHA1 Message Date
Exhigh 17e70d91e4 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 d8c8fc5774 Merge pull request #530 from Xphalnos/main
Lot of small fixes
2024-08-22 21:54:20 +03:00
georgemoralis ca066c7de9 possible R2/L2 fix 2024-08-22 19:43:45 +03:00
Xphalnos bb2a417598 Lot of small fixes 2024-08-22 18:01:30 +02:00
georgemoralis 901581d792 Merge pull request #502 from Borchev/ROMappedFileWorkaround
Workaround for readonly memory mapping of files issue
2024-08-22 13:49:19 +03:00
georgemoralis 9f3aaee098 LLE libc removal 2024-08-22 11:24:31 +03:00
georgemoralis 9aa10343ac 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 c0e207424a Added const reference params if possible, removed less 16 size 2024-08-22 02:56:01 +03:00
Aiden Turner a7a8a85aa0 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 3a46ff5a70 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 96894a6c14 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 ce4737859e Merge pull request #511 from dima-xd/sample
avplayer: Fix data returned by sceAvPlayerGetAudioData
2024-08-21 16:53:01 +03:00
Dzmitry Dubrova 72c9b0468b avplayer: Fix sceAvPlayerGetAudioData 2024-08-21 14:37:34 +03:00
squidbus bc670d8419 Untranslocate app bundle path if needed on macOS. 2024-08-21 03:06:10 -07:00
Borchev 69f5bd84b6 Fix unmapping bug 2024-08-20 20:07:32 -07:00
Borchev 54ac677e1d Workaround for readonly memory mapping of files issue 2024-08-20 16:10:38 -07:00
TheTurtle e088f0141b 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 ace814f4f2 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 66b59c20f3 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
kotn3l 45395d4d98 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 3879cc2219 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 7fe7465adb 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 8b14fcc7c1 linux build fix 2024-08-20 09:28:07 +02:00
bax-cz 0cf7f5096b clang: fixed formatting 2024-08-19 20:40:23 +02:00
Random c8c75c4c4a 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 0a64ec336f Adding icons to categories (#479) 2024-08-19 18:42:23 +03:00
Dzmitry Dubrova f634753f7b Add messages to asserts (#476) 2024-08-19 15:29:13 +03:00
bax-cz 32996556a5 PlayGo: basic implementation, credits to red-prig 2024-08-19 13:14:14 +02:00
Lizardy f197e05379 [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 9b20393524 Copy submenu 2024-08-19 01:25:15 -03:00
georgemoralis 116004582f Merge pull request #466 from DanielSvoboda/alphabetical-order-console-language
Alphabetical order console language
2024-08-18 23:37:34 +03:00
DanielSvoboda 6fcc74036f alphabetical order console language 2024-08-18 17:24:41 -03:00
DanielSvoboda 642a59de16 alphabetical order console language 2024-08-18 17:24:35 -03:00
georgemoralis 7e418979b6 Merge pull request #463 from Xphalnos/main
Misc changes
2024-08-18 22:26:53 +03:00
DanielSvoboda 6c3e03e6ba alphabetical order console language 2024-08-18 16:15:06 -03:00
DanielSvoboda e2d0bae6fd alphabetical order console language 2024-08-18 16:04:48 -03:00
Vladislav Mikhalin b4cee64615 Fix stencil buffer not being used (#464) 2024-08-18 20:37:29 +03:00
Xphalnos 2df1372a46 Misc changes 2024-08-18 17:56:29 +02:00
Lizardy 74d43d059f 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 fa7e7a9963 About Window (#458) 2024-08-17 19:13:37 +03:00
georgemoralis 4b203891f8 Merge pull request #455 from Xphalnos/main
Qt-GUI: Improvements (Part 2)
2024-08-17 10:58:11 +03:00
georgemoralis c77f6413c1 Merge pull request #456 from StevenMiller123/sem_fix
Improve posix_sem functions
2024-08-17 10:57:19 +03:00
Xphalnos 4b1aecc912 Logger update 2024-08-17 08:22:31 +02:00
Stephen Miller 2cfc6f48e5 clang-format fix 2024-08-16 17:22:06 -05:00
Stephen Miller 07e9273a70 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 6945be1081 Might fix clang-format? 2024-08-16 15:10:20 -05:00
Stephen Miller 97138cc2ea another clang-format fix 2024-08-16 15:07:19 -05:00
Stephen Miller 7c1cb036d4 clang-format fix 2024-08-16 14:55:55 -05:00
Stephen Miller 26ef12d1c7 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 acb2849f2e Reduce window size 2024-08-16 19:48:18 +02:00
Dzmitry Dubrova 3813207000 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 f718c50db7 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 3b1e3b0a72 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 b8ec925ebb gpu: primitive_restart bit check typo (#454) 2024-08-16 20:03:19 +03:00
Vinicius Rangel 248fcdbb35 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 17f249eec9 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 21770dc550 Qt-GUI: Improvements 2024-08-16 09:45:59 +02:00
Vladislav Mikhalin 099e735a97 last minute fixes 2024-08-16 10:30:48 +03:00
Vladislav Mikhalin 5184161b79 Fixed threading, migrated to CVs, added looping 2024-08-15 22:02:04 +03:00
Vladislav Mikhalin 8b23ec3885 fixing build on linux and mac 2024-08-15 22:00:51 +03:00
Vladislav Mikhalin 56cb7727f5 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 3325169927 Added some logs, fixed some crashes, fixed align. 2024-08-15 22:00:51 +03:00
Vladislav Mikhalin b2146acda5 avplayer WIP 2024-08-15 22:00:51 +03:00
georgemoralis e04a4673c8 starting 0.2.1 2024-08-15 19:58:18 +03:00
georgemoralis ff9ece3e54 tagged 0.2.0 release 2024-08-15 19:41:42 +03:00
psucien d9d67c85ec libraries: vide_out: redundant assert removed 2024-08-15 17:41:53 +02:00
¥IGA d81dabf4f0 Qt-GUI: Cleaning the option menu (#443) 2024-08-15 17:49:13 +03:00
Vinicius Rangel c69d6fd490 gpu: handle primitive restart index register (#438) 2024-08-15 15:43:27 +03:00
¥IGA 1beebca7b8 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 ec805713a4 Ability to change username (#432) 2024-08-15 12:33:10 +03:00
psucien 0a173b0392 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 b87f269282 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 a2d0819c02 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 d5e7180c54 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. 13403a32e5 core/memory: Fix error on virtual queries of reserved regions 2024-08-14 15:34:17 +02:00
psucien 718200faad 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 d25ed57fcb 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 705d1e29cf video_core: Various fixes (#423)
* video_core: Various fixes

* clang format
2024-08-13 20:05:10 +03:00
counter185 462da01350 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 8610994989 Fix some Vulkan validation errors on macOS. (#420) 2024-08-13 10:30:47 +03:00
TheTurtle c243ef0c58 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 5b589b8cc8 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 68d6cf387f 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 aa29582046 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 e8dd5962fd Enable VK_EXT_robustness2 nullDescriptor only if supported. 2024-08-12 14:52:46 -07:00
psucien 8312421aeb unlink sync2 if not present (tentative fix for #418) 2024-08-12 22:52:21 +02:00
psucien 7cf54bd7b1 fix for Linux compilation (#416) 2024-08-12 20:10:42 +02:00
psucien 29b76d8a2b 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 9b4d3b4db1 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 7da029808f 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 49197d5de1 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 ea6010907d gui: Add console language to settings 2024-08-09 18:28:50 +03:00
Dzmitry Dubrova 31e539c575 gui: Implement settings dialog 2024-08-09 17:28:16 +03:00
Leonardo ad0d818064 Fixed coding style again on the if brackets 2024-08-09 09:24:14 -03:00
georgemoralis 4b7e426e90 mount temp dir 2024-08-09 12:56:03 +03:00
georgemoralis 261dca353e console language is better name 2024-08-09 12:24:42 +03:00
georgemoralis 372a69a09b 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 336802eb88 Removed else that duplicated while commiting the typo fixes 2024-08-08 18:33:06 -03:00
Leonardo 1869dfbf51 Fixed if else formatting 2024-08-08 18:30:58 -03:00
georgemoralis 14f7b98938 small playgo adjustments 2024-08-09 00:02:26 +03:00