Commit graph

153 commits

Author SHA1 Message Date
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
¥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
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
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
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
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
georgemoralis cada878056 update submodules , fixed sdl update , rewrote config with new toml11 v4 2024-08-09 00:02:24 +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
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
Dzmitry Dubrova 479e6a20dd core: Implement sceRandomGetRandomNumber (#350) 2024-07-31 14:01:22 +03: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
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
raziel1000 abf7cea257 fs: added /download0 mount
fs: get rid of double slashes
2024-07-26 08:07:22 -06:00
raziel1000 ee65797c86 - fixed sceAppContentTemporaryDataMount2 2024-07-26 07:53:19 +03:00
squidbus cfd6662d5e Fix user data path on macOS. 2024-07-21 22:36:12 +03:00
squidbus d42a32bbd8 Add initial macOS support. 2024-07-21 22:36:12 +03:00
IndecisiveTurtle a3619919e1 fs: Actually functional linux case insensitive search 2024-07-15 03:37:30 +03:00
Daniel R. 3a7d2ef6eb Fix Linux builds 2024-07-11 15:16:50 +02: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 6132e03a2c kernel: equeue: minor refactoring 2024-07-11 13:14:42 +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
TheTurtle 5b5a82e3c9 config: Disable splash by default 2024-07-07 22:30:52 +03:00
DanielSvoboda 0a64cedf1c Fix ShowSplash size (#235)
* Fix ShowSplash size

* enable isShowSplash
2024-07-05 00:16:06 +03:00
TheTurtle d9873e30bc 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 00e26a9c02 increase version 2024-07-02 00:39:10 +03:00
georgemoralis 85a31b7721 Updated version to 0.1.0 - Release 2024-07-02 00:35:54 +03:00
georgemoralis 0845d8f250 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
IndecisiveTurtle c5f2368e52 kernel: Const correctness 2024-06-26 18:24:06 +03:00
psucien 84f4489573 common: slot_vector: added is_allocated to check if the slot already exists 2024-06-25 09:43:25 +02:00
psucien 7ad9d4a0d3 common: Common namespace for the slot vector container 2024-06-25 09:31:32 +02:00
psucien e09b04c492 shader_recompiler: list all missing instructions during translation pass 2024-06-16 23:45:39 +02:00
psucien 95e3bd049c tracy: added PthreadMutex markup 2024-06-15 23:20:14 +02:00
Younes 825657ced1 - 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 556d88ecb4 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
raziel1000 0fce689830 Added LibPngDec
(tested with Metal Slug 3, Risk of Rain, Deadbolt and Nidhogg)
2024-06-14 01:37:26 -06:00
TheTurtle 1e5fed2e8a core: Fixup linux support (#195)
* tls: Implement for linux

* core: Implement memory manager for linux
2024-06-14 00:58:57 +03:00
psucien 65a7155cd5 tracy: added Vulkan GPU profiling 2024-06-11 21:52:48 +02:00
psucien ce62ae31e5 tracy: basic markup and project palette 2024-06-11 12:14:33 +02:00
psucien 7ab17176d0 Added Tracy profiler 2024-06-11 11:17:46 +02:00
raziel1000 ecabb2ba04 clang format 2024-06-10 20:44:16 -06:00
raziel1000 7ba9ad6cca - 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
georgemoralis 5162e3e60b don't make fullscreen default 2024-06-10 14:04:59 +03:00
raphaelthegreat 5f97816fd7 core: Rework memory manager 2024-06-10 02:13:44 +03:00
Xphalnos b994d69d9b 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 191d2d0b91 Merge pull request #175 from shadps4-emu/missing_gnm_calls
Additional GnmDriver functions
2024-06-09 00:58:45 +03:00
georgemoralis 50186055d3 added rtc and disc_map modules 2024-06-08 22:41:25 +03:00
psucien f3636b77b8 common: slot_vector moved into common 2024-06-08 01:19:51 +02:00
psucien 3adf7d9937 renderer_vulkan, config: option to toggle VK validation layer 2024-06-07 11:21:02 +02:00
TheTurtle 4779381eec 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
psucien 09bacf155e 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 088971f5b9 added app_content module 2024-05-31 15:03:05 +03:00
raphaelthegreat 8bd9bf1a7d video_core: Add image support 2024-05-27 18:25:45 +03:00
TheTurtle 22b7ae4b63 video_core: Add constant buffer support (#147) 2024-05-26 15:51:35 +03:00
psucien f56f6f7be4 config, video_core: null gpu configuration added 2024-05-22 20:19:42 +02:00
TheTurtle 4380066a90 video: Import new shader recompiler + display a triangle (#142) 2024-05-22 01:35:12 +03:00
georgemoralis 521fc0401f show title splash while the game is loading 2024-05-16 16:58:14 +03:00
TheTurtle 94caa0336e 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 9ea9a9efec Initial LibcInternal 2024-05-13 16:13:33 +03:00
georgemoralis fc2b0d4265 added sys_modules folder and ability to load system modules (currently we try ngs2) 2024-05-13 15:01:45 +03:00
georgemoralis ccf81110b0 sceSaveDataMount2,sceSaveDataUmount some implementation 2024-05-04 22:08:04 +03:00
georgemoralis 95a42f5b29 added dummy np* modules and screenshot module 2024-05-02 18:16:10 +03:00
TheTurtle 49e65be25b core: Rewrite thread local storage implementation (#118) 2024-05-01 13:38:41 +03:00
TheTurtle 13fe78f0f5 video_core: Add basic command list processing (#117) 2024-04-30 01:23:28 +03:00
psucien 87f3724675 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
raphaelthegreat 733956c39b texture_cache: Fix linear image uploads
* Also fixed build for clang-cl with libc
2024-04-29 18:22:04 +03:00
georgemoralis da4692a7f0 fix config for gpu settings 2024-04-28 19:14:56 +03:00
psucien 1be496875a config: option to select gpu for vk device 2024-04-28 01:19:04 +02:00
GPUCode 23b2eeba9b video_core: Rewrite vulkan and videoout 2024-04-14 17:10:40 +03:00
georgemoralis c4b4cb5acf dummy libscesavedatadialog 2024-04-08 19:03:51 +03:00
georgemoralis 0141781429 dummy sceAudioIn lib 2024-04-04 20:04:18 +03:00
georgemoralis afca4aa67c scePadGetControllerInformation added , dummy scePadSetMotionSensorState 2024-04-01 14:45:27 +03:00
georgemoralis 495779ef3b log debug message to tty 2024-04-01 08:44:07 +03:00
georgemoralis 221c452a1d more clang fixes 2024-03-30 15:41:12 +02:00
georgemoralis 221b5c6c88 dummy sysmodule module 2024-03-30 15:34:01 +02:00
georgemoralis 1c029b0c98 added more dummy modules 2024-03-29 23:25:52 +02:00
whereismyfoodat 57e9b41ec0 small fixes , cleanups 2024-03-27 08:41:14 +02:00
georgemoralis f1d2b5522a config option to enable libc lle 2024-03-25 09:26:59 +02:00
georgemoralis 98d5cc2264 started 0.0.4 2024-03-25 09:09:39 +02:00
georgemoralis 3aa7c0227c pushed v.0.0.3 version - codename salad 2024-03-23 09:43:03 +02:00
georgemoralis b4cb5ad233 More modules (#99)
* added dummy sceAudio lib

* added lseek in file_system

* updated sdl3

* forgot sdl3 in cmake

* cmake is case sensitive in linux

* fixed SDL_CreateWindowWithPosition

* fixed vulkan issues with latest sdl3

* some progress in sceAudio

* improvements in audio

* more sound improvements

* first working sound output , from openorbis sound demo

* updated sdl3 , zlib-ng can now be build with msvc+clangci

* fixed cmake

* fix for audio buffering

* clang format fix

* format fix

* better error handling for sceAudioOutput
2024-03-22 18:12:37 +02:00
georgemoralis 02ba353401 Autogen system,user,dialog modules (#98)
* some rework on system_service, user_service

* fixed clang format

* more clang fix

* more clang fix

* added error codes in system service

* some libc functions

* fixed fprintf

* small fix

* linux fix

* error handling in user service

* error codes reorganized
2024-03-14 14:18:16 +02:00
georgemoralis 4213b5a635 made an option for logging to be synced by default instead of async 2024-03-11 14:06:39 +02:00
georgemoralis af1e3c02ad LLE libc + other fixes part1 (#97)
* app0 folder is absolute

* some improvements on symbols types

* clang format

* missing libs.h

* improved symbols_resolver

* moved config to config folder

* functions to dump import functions

* improved logging output

* option for debugdump and improvements

* Apply suggestions from code review

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

* clang format

---------

Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>
2024-03-11 13:26:33 +02:00
georgemoralis a967d891d6 file formats and qt (#88)
* added psf file format

* clang format fix

* crypto functions for pkg decryption

* pkg decryption

* initial add of qt gui , not yet usable

* renamed ini for qt gui settings into shadps4qt.ini

* file detection and loader support

* option to build QT qui

* clang format fix

* fixed reuse

* Update src/core/file_format/pkg.cpp

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

* Update src/core/file_format/pkg.cpp

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

* Update src/core/file_format/pkg.cpp

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

* Update src/core/file_format/pkg.cpp

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

* Update src/core/loader.h

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

* Update src/core/loader.cpp

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

* uppercase fix

* clang format fix

* small fixes

* let's try windows qt build ci

* some more fixes for ci

* Update src/core/file_format/pkg.cpp

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

* Update src/core/file_format/pkg.cpp

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

* Update src/core/file_format/pkg.cpp

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

* Update src/core/file_format/pkg.cpp

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

* Update .github/workflows/windows-qt.yml

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

* Update src/core/loader.cpp

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

* Update src/core/file_format/psf.cpp

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

* loader namespace

* Update src/core/loader.cpp

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

* constexpr magic

* linux qt ci by qurious

* fix for linux qt

* Make script executable

* ci fix?

---------

Co-authored-by: raziel1000 <ckraziel@gmail.com>
Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com>
Co-authored-by: GPUCode <geoster3d@gmail.com>
2024-03-01 00:00:35 +02:00
GPUCode 367350e989 common: Rewrite logging based on cut down citra logger (#86)
* common: Rewrite logging based on cut down Citra logger

* code: Misc fixes

* core: Bring back tls handler

* linker: Cleanup

* config: Remove log level

* logging: Enable console output by default

* core: Fix windows build
2024-02-28 00:10:34 +02:00
GPUCode 7e5b7a7ffa chore: Make shadps4 REUSE compliant 2024-02-23 23:33:43 +02:00
GPUCode d9e30405ba code: Add clang-format target and CI workflow (#82)
* code: Add clang format target, rules and CI workflow

* code: Run clang format on sources
2024-02-23 22:57:57 +02:00
GPUCode 7faf2d0ee8 common: Rework timekeeping with native RDTSC and port to linux 2024-02-23 11:30:06 +02:00
Stefanos Kornilios Mitsis Poiitidis 39ad04ba70 Merge branch 'TLS_works' of github.com:georgemoralis/shadPS4 into TLS_works 2024-01-27 17:00:12 +02:00
Stefanos Kornilios Mitsis Poiitidis 86a8241182 skip over 0x66 prefixes in TLS 2024-01-27 16:59:59 +02:00
georgemoralis 8e31542122 some fs work for openorbis (WIP) 2024-01-26 18:01:27 +02:00
Stefanos Kornilios Mitsis Poiitidis e77801f5e6 Basic TLS with patching + int 0x80 2024-01-20 14:29:23 +02:00