Commit Graph

636 Commits

Author SHA1 Message Date
TheTurtle c5d1d579b1
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 080ec3e23e Added LibPngDec
(tested with Metal Slug 3, Risk of Rain, Deadbolt and Nidhogg)
2024-06-14 01:37:26 -06:00
TheTurtle 31bd502764
core: Fixup linux support (#195)
* tls: Implement for linux

* core: Implement memory manager for linux
2024-06-14 00:58:57 +03:00
georgemoralis 400d910743
Merge pull request #184 from shadps4-emu/externals/tracy
Tracy profiler
2024-06-12 17:19:44 +03:00
psucien 64569ff737 tracy: guards for missing vk profiler context 2024-06-11 22:57:37 +02:00
georgemoralis 8362e2c497 fixed windows qt build 2024-06-11 23:26:13 +03:00
psucien d7565dec57 tracy: added Vulkan GPU profiling 2024-06-11 21:52:48 +02:00
georgemoralis 8612907831 really fixed typo 2024-06-11 22:41:35 +03:00
georgemoralis 991d44bde6 fix typo 2024-06-11 19:36:17 +03:00
georgemoralis e8fa9e0e89 added libScePosix nanosleep 2024-06-11 16:42:15 +03:00
psucien 04b1226e9c tracy: basic markup and project palette 2024-06-11 12:14:33 +02:00
psucien e89b2d1cdd Added Tracy profiler 2024-06-11 11:17:46 +02:00
georgemoralis bff2f006fb
Merge pull request #190 from shadps4-emu/stabilization_three
Stabilization three
2024-06-11 07:25:55 +03:00
raziel1000 1abccb29f9 clang format 2024-06-10 20:44:16 -06:00
raziel1000 0f27e0edf2 - 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
psucien cb2cf7d93c recompiler: trivial missing ops (VALU OR and SALU LE, GE) added 2024-06-10 23:49:23 +02:00
psucien 7fcb758da2 timer_management: `sceKernelUsleep` on <1ms delays 2024-06-10 23:48:06 +02:00
psucien c2dc7c3fd4 renderer_vulkan: another fix for vertex buffer offsets 2024-06-10 23:20:32 +02:00
TheTurtle 8ce58389ad
kernel: Implement gettimeofday + other misc fixes (#187)
* kernel: Add gettimeofday

* kernel: Move sceKernelReleaseDirectMemory where it belongs

* savedata: Stub sceSaveDataDialogUpdateStatus to return finished

* memory: Add lock to VirtualQuery and remove debug print

* clang format

* fixed linux build?

* special case for sceKernelWrite (stdin,stdout,stderr)

* special case for case savedata mount

* reduced mutex spamming

* added missing default rwlock attributes init

* kernel: Add more sleep functions

* file_system: Add some functions

* memory: Missed adding some functions

* kernel: Moved some functions to time

* kernel: Fix build error

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2024-06-10 22:59:12 +03:00
TheTurtle 7b1a317b09
video_core: Preliminary storage image support and more (#188)
* vk_rasterizer: Clear depth buffer when DB_RENDER_CONTROL says so

* video_core: Preliminary storage image support, more opcodes

* renderer_vulkan: a fix for vertex buffers merging

* renderer_vulkan: a heuristic for blend override when alpha out is masked

---------

Co-authored-by: psucien <bad_cast@protonmail.com>
2024-06-10 22:35:14 +03:00
georgemoralis 23f11a3fda
Merge pull request #182 from shadps4-emu/miscfixes
Miscfixes
2024-06-10 18:42:49 +03:00
georgemoralis e84d2cf9cf wrong spdx 2024-06-10 18:36:18 +03:00
georgemoralis beb631607a review fixes 2024-06-10 18:26:37 +03:00
georgemoralis 6f8d99fbf2 fixed posix_stat error return 2024-06-10 18:09:22 +03:00
georgemoralis 3318f12639 fixed possible nullptr crash on rwlock create 2024-06-10 18:01:50 +03:00
georgemoralis 0c1ede1060
Merge pull request #183 from shadps4-emu/bc_detiler
Micro detiler for 2D BC textures
2024-06-10 15:33:55 +03:00
georgemoralis 81a1cbf6b1 more clang fix 2024-06-10 15:24:34 +03:00
georgemoralis deda3026d8 clang fix 2024-06-10 15:21:50 +03:00
georgemoralis d89e4463e7 moved main code , to emulator,cpp , emulator.h class 2024-06-10 15:18:42 +03:00
georgemoralis dfc4f1c35b don't make fullscreen default 2024-06-10 14:04:59 +03:00
georgemoralis 13cd22aea6 depedencies updates and fixes 2024-06-10 14:04:32 +03:00
raphaelthegreat 1092b1bcff Fix linux build 2024-06-10 12:13:24 +03:00
raphaelthegreat fc887bf3f5 core: Rework memory manager 2024-06-10 02:13:44 +03:00
psucien 01f09cfa63 texture_cache: detiler: added support for block coded 64bit images 2024-06-09 18:18:49 +02:00
Xphalnos 623b1d6837
Synchronization between Qt build title and version.h (#178) 2024-06-09 18:45:25 +03:00
psucien fa73812f32 texture_cache: detiler: added support for block coded 128bit images 2024-06-09 12:54:19 +02:00
Xphalnos 1563dffd46
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 1a66fa098f
Merge pull request #174 from shadps4-emu/kernel_stuff
- sceKernelOpen: added rdwr and append modes
2024-06-09 08:26:03 +03:00
raziel1000 a790c30c28 added sceKernelSleep and small fix on usleep 2024-06-08 18:43:08 -06:00
georgemoralis ac192134e8
Merge pull request #175 from shadps4-emu/missing_gnm_calls
Additional GnmDriver functions
2024-06-09 00:58:45 +03:00
psucien d902339867 gnmdriver: `sceGnmDrawInitDefaultHardwareState175` added 2024-06-08 23:42:09 +02:00
georgemoralis 908eaa102d clang format fix 2024-06-09 00:26:12 +03:00
georgemoralis 84dca0a5dd added sceKernelTriggerUserEvent,sceKernelDeleteUserEvent 2024-06-09 00:23:58 +03:00
georgemoralis 2e6c28c34c partial sceKernelFStat 2024-06-08 23:53:38 +03:00
georgemoralis 5be6777220 added sceKernelPread 2024-06-08 23:25:20 +03:00
georgemoralis a1efcd9832 added rtc and disc_map modules 2024-06-08 22:41:25 +03:00
raziel1000 d3adcf2e6c posix_pthread_mutex_trylock
posix_pthread_attr_setdetachstate
posix_pthread_attr_destroy
posix_pthread_create_name_np
posix_pthread_join
2024-06-08 11:13:02 -06:00
georgemoralis c16275fe16 posix_usleep,posix_pthread_equal 2024-06-08 20:01:28 +03:00
raphaelthegreat e9679f8309 address_space: Don't reserve space again 2024-06-08 19:10:32 +03:00
georgemoralis 05e4a4b4e1 hackish random/urandom support 2024-06-08 10:22:28 +03:00
georgemoralis 8115665a90 fixed sceKernelClose when decriptor is negative value 2024-06-08 09:56:57 +03:00
raziel1000 3b34aebe06 - sceKernelOpen: added rdwr and append modes
- saveDataMount: added mount mode 9, 28 and 34
- pthread: added a bunch of needed functions
- mem: added sceKernelMapNamedDirectMemory
2024-06-08 00:23:55 -06:00
psucien edaeee194d libs: gnmdriver: get tessellation ring factor address 2024-06-08 01:19:52 +02:00
psucien 9ca083ee06 libs: gnmdriver: map compute queue 2024-06-08 01:19:52 +02:00
psucien 9230d04a0a common: slot_vector moved into common 2024-06-08 01:19:51 +02:00
georgemoralis 5d24a961cb
RWLocks implementation (#171)
* added dummy rwlock

* implemented part of rwlock functions (WIP)

* implemented the most important functions for rwlocks
2024-06-07 21:30:26 +03:00
TheTurtle 998d046210
video_core: Add depth buffer support and fix some bugs (#172)
* memory: Avoid crash when alignment is zero

* Also remove unused file

* shader_recompiler: Add more instructions

* Also fix some minor issues with a few existing instructions

* control_flow: Don't emit discard for null exports

* renderer_vulkan: Add depth buffer support

* liverpool: Fix wrong color buffer number type and viewport zscale

* Also add some more formats
2024-06-07 16:26:43 +03:00
psucien fe3b546d93 renderer_vulkan, config: option to toggle VK validation layer 2024-06-07 11:21:02 +02:00
psucien dd5a25fda2 review iteration 2024-06-07 08:39:03 +02:00
psucien e790ec775f texture_cache: detiler: more verbosity in print 2024-06-07 00:12:16 +02:00
psucien cfc297622f texture_cache: fix for forgotten cb tiling info update 2024-06-07 00:12:16 +02:00
psucien b17b4ab787 texture_cache: detiler: redundant flag removed 2024-06-07 00:12:15 +02:00
psucien cb07778008 renderer_vulkan: proper barriers 2024-06-06 23:40:31 +02:00
psucien 729d02d699 renderer_vulkan: proper min uniform alignment 2024-06-06 22:24:20 +02:00
psucien 6814d5f108 renderer_vulkan: fix for vertex buffer mapping offset 2024-06-06 21:41:59 +02:00
raphaelthegreat 5aa3a4d4a0 shader: Fix block processing order in dead code elimination pass 2024-06-06 02:46:36 +03:00
raphaelthegreat 705d326a6d kernel: Fix stack corruption from OrbisTimesec 2024-06-05 22:27:28 +03:00
raphaelthegreat ae7e6dafd5 shader_recompiler: Add more instructions and fix a few thinhs 2024-06-05 22:22:34 +03:00
TheTurtle 728249f58d
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 f9e5c70414 texture_cache: detiler image view moved into image class 2024-06-05 18:37:06 +02:00
psucien b59e525408 texture_cache: detiler: change staging to faster stream buffer 2024-06-05 18:16:31 +02:00
psucien bee444b6da fix for re-use 2024-06-05 17:57:05 +02:00
psucien 3a5ba82eae final touch 2024-06-05 16:34:17 +02:00
psucien 0b63a76b51 amdgpu: render target size hint for old runtime 2024-06-05 16:34:04 +02:00
psucien 19994424c5 texture_cache: detiler: shader module release and debug name 2024-06-05 16:33:26 +02:00
psucien 440a60a43b texture_cache: detiler: m8x1 and m8x4 shaders 2024-06-05 16:14:22 +02:00
psucien 184b7b7fc2 video_core: added shader header files generator from Citra 2024-06-05 14:31:50 +02:00
psucien 2c87171b95 texture_cache: a support for m8x1 and m8x4 layouts added to the detiler 2024-06-05 13:10:48 +02:00
psucien cd87005ded renderer_vulkan: unused extension removed 2024-06-04 12:43:23 +02:00
psucien d491bbf366 amdgpu: tiling mode introduced 2024-06-04 12:40:08 +02:00
psucien d7d324ac76 amdgpu: surface bits per element LUT 2024-06-02 22:46:40 +02:00
psucien 23cc60bf06 video_core: amdgpu: simply crash if an exception occured in coro 2024-06-02 19:16:05 +02:00
psucien 863d80c16c fix for name of the first dumped cmdb 2024-06-02 18:59:41 +02:00
raphaelthegreat 02a50265f8 shader_recompiler: Better branch detection + more opcodes 2024-06-02 03:05:40 +03:00
psucien f624f7749c
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 323e66f765 added app_content module 2024-05-31 15:03:05 +03:00
georgemoralis 3320156a27 fixed a case in sceKernelCreateEventFlag (found in Super Meat boy) 2024-05-30 20:16:16 +03:00
georgemoralis 3d749bc904 added sceSaveDataMount needed for Cursed Castilla 2024-05-30 19:14:06 +03:00
georgemoralis 4749782a68 scePthreadCondTimedwait needed for Hyper Light Drifter 2024-05-30 19:14:06 +03:00
georgemoralis dc3ab91a76 fixed sonic mania savedata 2024-05-30 19:14:06 +03:00
raphaelthegreat dd91456b48 video_core: Moar shader instruction 2024-05-30 18:17:54 +03:00
psucien 365df2a3ac video_core: renderer_vulkan: write mask fallback 2024-05-30 16:27:39 +02:00
psucien 8e6d492524 video_core: renderer_vulkan: added color mask support 2024-05-30 12:55:37 +02:00
psucien 767e13cccb Linux build fix 2024-05-30 12:09:33 +02:00
psucien 0212e68752 shader_recompiler: redundant IR opcode removed 2024-05-30 11:50:42 +02:00
psucien 9227a2b868 video_core: multiple color attachments support 2024-05-30 11:21:26 +02:00
psucien 3741f013a3 shader_recompiler: added `NOP` and `RSQ` instructions 2024-05-30 09:43:49 +02:00
psucien d05cbd88bb video_core: renderer_vulkan: support for passes w\o a fs 2024-05-30 09:42:44 +02:00
raphaelthegreat 58de7ff55a video_core: Implement basic compute shaders and more instructions 2024-05-30 01:39:24 +03:00
psucien 7fc273c6bc clang fmt 2024-05-29 20:31:34 +02:00