Commit graph

289 commits

Author SHA1 Message Date
psucien d69779f291 things prettified 2024-06-27 15:47:18 +02: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
psucien 0dfb003aca libraries: gnmdriver: complete HW stat init functions 2024-06-27 13:36:55 +02:00
georgemoralis 1bf2e69c97 clang format fixes 2024-06-26 20:32:08 +03:00
IndecisiveTurtle c5f2368e52 kernel: Const correctness 2024-06-26 18:24:06 +03:00
IndecisiveTurtle e705b58db7 kernel: Fix pread and pwrite 2024-06-26 18:09:58 +03:00
IndecisiveTurtle 674db5e4d2 kernel: Rework semaphore implementation 2024-06-26 17:57:18 +03:00
IndecisiveTurtle f489ecde86 kernel: Cleanup filesystem code 2024-06-26 17:54:36 +03:00
psucien 681ce9a1ff Merge pull request #215 from shadps4-emu/miscFixAgain
Misc fixes (mostly LLE)
2024-06-26 14:15:07 +02:00
georgemoralis dd0638572f missed from previous commit 2024-06-26 14:57:18 +03:00
georgemoralis ffa6c7e2fd added sceKernelGetFsSandboxRandomWord and dummy posix_connect 2024-06-26 14:56:41 +03:00
georgemoralis 1c5b77503c sceAudioOutGetPortState added 2024-06-26 14:48:32 +03:00
georgemoralis d7bbfbd629 load existing lle modules from sys_module folder 2024-06-26 14:43:01 +03:00
georgemoralis f880e701d4 Merge pull request #213 from shadps4-emu/hle/trophies
A better stub for trophies
2024-06-25 18:38:35 +03:00
psucien b77224435a fix for Linux build 2024-06-25 17:14:12 +02:00
georgemoralis a58bd0fe19 Merge pull request #214 from shadps4-emu/miscFixes
Misc fixes
2024-06-25 17:55:57 +03:00
psucien 71f66bb94b kernel: thread_management: silence compilation warning 2024-06-25 09:56:19 +02:00
psucien 523f1e1b15 libraries: trophy: a better stubs implementation 2024-06-25 09:43:26 +02:00
psucien 7ad9d4a0d3 common: Common namespace for the slot vector container 2024-06-25 09:31:32 +02:00
psucien 117f859021 libraries: gnm_driver: added sceGnmDrawIndexIndirect and sceGnmDrawIndirect 2024-06-24 22:53:59 +02:00
psucien 25ab44d64e libraries: gnm_driver: added sceGnmSetEmbeddedPsShader 2024-06-24 14:51:17 +02:00
georgemoralis 8b7dff7141 re-fix 2024-06-24 13:46:45 +03:00
georgemoralis 3a9734a551 insure we reset padData 2024-06-24 13:41:18 +03:00
georgemoralis 1d0262da24 missing touchpad reset in scePadReadState 2024-06-24 13:26:18 +03:00
georgemoralis 9a129480a0 added sceKernelPwrite 2024-06-24 13:25:50 +03:00
psucien e6e3aa0080 Initial instancing and asynchronous compute queues (#207)
* gnm_driver: added `sceGnmRegisterOwner` and `sceGnmRegisterResource`

* video_out: `sceVideoOutGetDeviceCapabilityInfo` for sdk runtime

* gnm_driver: correct vqid index range

* amdgpu: indirect buffer, release mem and some additional irq modes

* amdgpu: added ASC commands processor

* shader_recompiler: added support for fetch instance id

* amdgpu: classic bitfields for T# representation (debugging experience)

* renderer_vulkan: skip zero sized VBs from binding

* texture_cache: image upload logic moved into `Image` object

* gnm_driver: `sceGnmDingDong` implementation

* texture_cache: `Image` usage flags moved; correct VO buffer pitch
2024-06-22 19:50:20 +03:00
georgemoralis 7b4964dadd more clang format fix (final) 2024-06-22 18:17:40 +03:00
georgemoralis 1c5b3a8d1a clang fix 2024-06-22 18:12:04 +03:00
IndecisiveTurtle ca6bf44589 kernel: Add noreturn 2024-06-22 18:09:04 +03:00
IndecisiveTurtle 9844aaaec2 kernel: Add scePthreadExit 2024-06-22 18:09:04 +03:00
IndecisiveTurtle e325574909 linker: Fix TLS for dynamic modules
* Technically not fully accurate but it works. TlsGetAddr should handle dynamic allocation of TLS blocks
2024-06-22 18:09:04 +03:00
IndecisiveTurtle 28f2de3e41 kernel: Implement some functions 2024-06-22 18:09:03 +03:00
IndecisiveTurtle b6fbf02849 kernel: Make sceKernelUsleep interruptible 2024-06-22 18:09:03 +03:00
georgemoralis 08d31edb45 added missing buttons and analog buttons to keyboard 2024-06-21 14:37:49 +03:00
georgemoralis c8a736c7c6 fixed stupid directory iterator issue 2024-06-20 22:29:08 +03:00
georgemoralis e09392291a better dirents 2024-06-20 21:13:17 +03:00
georgemoralis f170c61229 initial dents support 2024-06-20 18:09:40 +03:00
georgemoralis d81ef0dd9f posix_pthread_yield , scePadGetHandle 2024-06-20 17:10:14 +03:00
georgemoralis ba1f459a23 partially added analog controls 2024-06-17 12:52:25 +03:00
georgemoralis 78204fce27 fixes to the old pad code 2024-06-17 09:02:06 +03:00
georgemoralis 7ebe9380e2 clang fix 2024-06-17 09:02:06 +03:00
georgemoralis 1e00fa5664 new pad module structured using modulegenerator , added common pad structures and function signatures 2024-06-17 09:02:06 +03:00
raziel1000 6516a3a12e Missing sceKernelUuidCreate nid 2024-06-15 17:01:20 -06:00
TheTurtle c725e18f01 core: Address a few more regressions (#202)
* tls: Actaully fix TLS on linux

* emulator: Remove nptoolkit

* Not quite supported yet, makes games misbehave

* kernel: Back to SCHED_OTHER

* kernel: Remove unused signal function

* address_space: Fix Unmap call on linux

* clang format
2024-06-16 01:50:07 +03:00
psucien e5c27356f2 videoout: register buffers in texture cache at VO creation time 2024-06-15 23:24:33 +02:00
psucien 42af4aab41 video_core: shaders hash switched to one from binary header 2024-06-15 23:24:32 +02:00
psucien 95e3bd049c tracy: added PthreadMutex markup 2024-06-15 23:20:14 +02:00
psucien b8c57ddcf8 gnmdriver: fix for pm4 dump name in some erroneous cases 2024-06-15 23:20:14 +02:00
psucien 8429fa1c0e libraries: fix for Windows crash during LLE libc initialization 2024-06-15 20:04:36 +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
georgemoralis e749836126 fixed windows qt build 2024-06-11 23:26:13 +03:00
georgemoralis 53fc8dec8c really fixed typo 2024-06-11 22:41:35 +03:00
georgemoralis 81e4000432 fix typo 2024-06-11 19:36:17 +03:00
georgemoralis 0217e43fb9 added libScePosix nanosleep 2024-06-11 16:42:15 +03:00
psucien 1dd9f7a99e timer_management: sceKernelUsleep on <1ms delays 2024-06-10 23:48:06 +02:00
TheTurtle 752995e209 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
georgemoralis f3a88e100a fixed posix_stat error return 2024-06-10 18:09:22 +03:00
georgemoralis e4e9383779 fixed possible nullptr crash on rwlock create 2024-06-10 18:01:50 +03:00
raphaelthegreat 5f97816fd7 core: Rework memory manager 2024-06-10 02:13:44 +03:00
georgemoralis 953f9de448 Merge pull request #174 from shadps4-emu/kernel_stuff
- sceKernelOpen: added rdwr and append modes
2024-06-09 08:26:03 +03:00
raziel1000 6e4c970c5a added sceKernelSleep and small fix on usleep 2024-06-08 18:43:08 -06:00
georgemoralis 191d2d0b91 Merge pull request #175 from shadps4-emu/missing_gnm_calls
Additional GnmDriver functions
2024-06-09 00:58:45 +03:00
psucien 80be54140a gnmdriver: sceGnmDrawInitDefaultHardwareState175 added 2024-06-08 23:42:09 +02:00
georgemoralis e4c3825e31 clang format fix 2024-06-09 00:26:12 +03:00
georgemoralis 337a0ee728 added sceKernelTriggerUserEvent,sceKernelDeleteUserEvent 2024-06-09 00:23:58 +03:00
georgemoralis 9acc5460c4 partial sceKernelFStat 2024-06-08 23:53:38 +03:00
georgemoralis 91343f3cf5 added sceKernelPread 2024-06-08 23:25:20 +03:00
georgemoralis 50186055d3 added rtc and disc_map modules 2024-06-08 22:41:25 +03:00
raziel1000 2474d1ec43 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 e868993138 posix_usleep,posix_pthread_equal 2024-06-08 20:01:28 +03:00
georgemoralis f7a5e883f7 hackish random/urandom support 2024-06-08 10:22:28 +03:00
georgemoralis 072540a40d fixed sceKernelClose when decriptor is negative value 2024-06-08 09:56:57 +03:00
raziel1000 10b8e9a3bf - 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 92bf7b35d4 libs: gnmdriver: get tessellation ring factor address 2024-06-08 01:19:52 +02:00
psucien 99e885bc9f libs: gnmdriver: map compute queue 2024-06-08 01:19:52 +02:00
georgemoralis c09c2da147 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 718ade970f 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
raphaelthegreat 433bdf9aaa kernel: Fix stack corruption from OrbisTimesec 2024-06-05 22:27:28 +03: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 d43ee1051c fix for name of the first dumped cmdb 2024-06-02 18:59:41 +02: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
georgemoralis 91d888d4cd fixed a case in sceKernelCreateEventFlag (found in Super Meat boy) 2024-05-30 20:16:16 +03:00
georgemoralis 1b9bafa57e added sceSaveDataMount needed for Cursed Castilla 2024-05-30 19:14:06 +03:00
georgemoralis 924d5ce64b scePthreadCondTimedwait needed for Hyper Light Drifter 2024-05-30 19:14:06 +03:00
georgemoralis 632007a3c7 fixed sonic mania savedata 2024-05-30 19:14:06 +03:00
raphaelthegreat e637f52076 video_core: Moar shader instruction 2024-05-30 18:17:54 +03:00
raphaelthegreat 99d20d4119 video_core: Implement basic compute shaders and more instructions 2024-05-30 01:39:24 +03:00
psucien 4e58f3d6d4 clang fmt 2024-05-29 20:31:34 +02:00
psucien 8229f4a76b videoout, platform: fix for ooo irqs 2024-05-29 16:02:51 +02:00
psucien 4de443dd92 libraries: libc: fix for FSin implementation 2024-05-29 16:02:49 +02:00
georgemoralis 55a73279cf improvements in definations 2024-05-28 18:24:42 +03:00
georgemoralis 26c862c746 set,poll event flag 2024-05-28 15:13:56 +03:00
georgemoralis b8ced0db35 event flag implementation from previous pr 2024-05-28 14:29:53 +03:00
raphaelthegreat 05c4542301 video_core: Address some feedback 2024-05-27 22:13:55 +03:00
raphaelthegreat 8bd9bf1a7d video_core: Add image support 2024-05-27 18:25:45 +03:00
georgemoralis f850679b6e Merge pull request #146 from shadps4-emu/video_out/new_gpu_frontend
video_core: initial support for CE and ASC queues
2024-05-27 13:50:25 +03:00
TheTurtle 22b7ae4b63 video_core: Add constant buffer support (#147) 2024-05-26 15:51:35 +03:00
psucien b3c26564cd video_core: initial support for CE and ASC queues 2024-05-26 12:39:30 +02:00
psucien 3f6de86eb6 video_core: a fix for multi submits processing (temporary code) 2024-05-22 22:20:33 +02:00
TheTurtle 4380066a90 video: Import new shader recompiler + display a triangle (#142) 2024-05-22 01:35:12 +03:00
georgemoralis 5f4ccba7c1 improved sceKernelWaitEqueue 2024-05-18 10:02:40 +03:00
georgemoralis e7e7112687 added _read in libkernel 2024-05-18 09:51:47 +03:00
georgemoralis 3d215a9911 fixed sceKernelGetCompiledSdkVersion thanks raziel1000 2024-05-18 09:51:47 +03:00
georgemoralis baa45d7e17 added sceKernelGetCompiledSdkVersion (which return games system version ) 2024-05-18 09:51:46 +03:00
georgemoralis 721916dffb clang format 2024-05-18 09:51:46 +03:00
georgemoralis f6e0cab1f0 added scePthreadEqual 2024-05-18 09:51:46 +03:00
psucien d8e53fbb13 kernel: event queue improvements 2024-05-17 23:32:15 +02:00
psucien c462afdd02 video_out: added vblank event 2024-05-17 23:31:55 +02:00
psucien 8c95a2ba75 gnmdriver: submission lock moved out from gpu 2024-05-17 23:31:19 +02:00
psucien 276689cc87 kernel: user event and data functions 2024-05-17 23:29:10 +02:00
psucien 851bd00251 a fair multi-submissions support 2024-05-17 08:47:38 +02:00
psucien b1eaec2ea1 amdgpu: added support for several single GFX submits per frame 2024-05-17 00:01:47 +02:00
psucien cd077362c3 review comments 2024-05-16 16:59:04 +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 d252680fa8 Merge pull request #131 from shadps4-emu/ngs2_work
Trying for ngs2 lle
2024-05-15 15:34:26 +03:00
georgemoralis 7ff3324719 clang format fix 2024-05-15 13:10:51 +03:00
georgemoralis b9d68c55b2 even more linux fixes 2024-05-15 13:09:05 +03:00
georgemoralis 17e2e028c0 fixing linux compile 2024-05-15 12:57:58 +03:00
psucien 1857828b50 graphics: separate IRQ for GPU driven flips 2024-05-14 21:33:20 +02:00
georgemoralis 1b0604a477 scePthreadCondSignal added 2024-05-13 22:53:50 +03:00
georgemoralis 463aef35a9 scePthreadMutexTrylock and some more libcinternal functions 2024-05-13 20:09:32 +03:00
georgemoralis 9ea9a9efec Initial LibcInternal 2024-05-13 16:13:33 +03:00
georgemoralis 9ee7cf81a5 pthread_self , scePthreadCondSignal , scePthreadCondWait ,scePthreadCondattrDestroy 2024-05-13 15:08:15 +03:00
georgemoralis c617eb3df6 scePthreadDetach , scePthreadAttrSetstacksize , clock_gettime 2024-05-13 14:04:25 +03:00
georgemoralis ce117e3a0c possible fix for linux(?) 2024-05-12 19:36:40 +03:00
georgemoralis c91fb76b57 sceKernelConvertUtcToLocaltime implemented 2024-05-12 19:03:51 +03:00
georgemoralis 9594bfa85a Merge remote-tracking branch 'origin/main' into kernel_stuff 2024-05-11 10:20:32 +03:00
psucien 8edce87dac review comments applied 2024-05-11 00:04:04 +02:00
psucien 7e505afb58 gnm_driver: fixed a typo and fields initialization 2024-05-10 22:58:53 +02:00
psucien 9db9fffbd5 kernel: sceKernelDeleteEqueue added 2024-05-10 22:04:41 +02:00
psucien 8bb89aa746 core: gpu interrupt dispatcher 2024-05-10 21:48:01 +02:00
psucien 758d695e31 amdgpu: wait_reg_mem and write_data implementation
Command list parsing is temporary moved to async task
2024-05-09 22:59:35 +02:00
georgemoralis e55fbee0aa use winpthreads from mingw64 2024-05-09 23:45:09 +03:00
psucien 8897e647b9 amdgpu: EOP irq and dummy PM4 handlers 2024-05-08 23:27:56 +02:00
psucien 717b00d63b gnm_driver: sceGnmSubmitAndFlipCommandBuffers implementation 2024-05-08 22:55:39 +02:00
psucien e6896060e7 video_out: sceVideoOutSubmitEopFlip stub added 2024-05-08 22:54:34 +02:00
psucien f0ac475ffd gnm_driver: various fixes 2024-05-08 22:53:55 +02:00
psucien 9cfb7a20b4 gnm_driver: sceGnmSetEmbeddedVsShader added 2024-05-08 21:00:01 +02:00
psucien d331a84794 gnm_driver: sceGnmInsertWaitFlipDone added 2024-05-08 07:36:14 +02:00
psucien 60932dd5cc video_out: added display buffer labels 2024-05-08 07:35:10 +02:00
psucien d2856a7616 video_core, kernel: added gfx eop event handling 2024-05-07 22:46:54 +02:00
georgemoralis 2a5c4131dc Merge pull request #125 from shadps4-emu/savedata
Savedata + filesystem implementations
2024-05-07 16:38:39 +03:00
georgemoralis c7cf197b1b added sceKernelGetTscFrequency 2024-05-07 16:28:42 +03:00
georgemoralis 9141c9537d libc hle : added ftell , powf , roundf 2024-05-07 16:25:58 +03:00
psucien 4a472f8e61 core: libraries: gnmdriver: bit more of basic Gnm driver functions 2024-05-06 22:13:33 +02:00