Commit graph

354 commits

Author SHA1 Message Date
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
georgemoralis 35ba7f0da5 clang format 2024-05-05 16:50:55 +03:00
georgemoralis 25f25f91a4 dummy ksernelMunmap (allows we are doomed to progress further) 2024-05-05 12:59:26 +03:00
georgemoralis facdc34bc6 improvements in sceKernelOpen, rewrote sceKernelLseek, added sceKernelWrite, added sceKernelMkdir , partial sceKernelStat 2024-05-05 12:43:01 +03:00
georgemoralis ccf81110b0 sceSaveDataMount2,sceSaveDataUmount some implementation 2024-05-04 22:08:04 +03:00
georgemoralis 45cbbec0b6 moved savedata to proper folder 2024-05-04 19:08:46 +03:00
georgemoralis 95a42f5b29 added dummy np* modules and screenshot module 2024-05-02 18:16:10 +03:00
georgemoralis fbaa31f4c6 added a login event in sceUserServiceGetEvent 2024-05-02 17:14:55 +03:00
georgemoralis 7ec7e87a00 create_thread : sometime thread name is null 2024-05-02 17:14:30 +03:00
georgemoralis 2b59361b7f added stubbed mostly version of flexible memory - it allows sonic mania to go further 2024-05-02 17:13:51 +03:00
psucien 8347026ecb core: libraries: gnmdriver: basic functionality extension (#120)
Also a bit of refactoring in `video_core`
2024-05-01 19:29:06 +03:00
TheTurtle 13fe78f0f5 video_core: Add basic command list processing (#117) 2024-04-30 01:23:28 +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 0e7cb9f528 added sceVideoOutGetVblankStatus 2024-04-18 22:32:15 +03:00
georgemoralis 8636b9c84e define a linux only code 2024-04-14 19:57:58 +03:00
GPUCode 23b2eeba9b video_core: Rewrite vulkan and videoout 2024-04-14 17:10:40 +03:00
GPUCode 55eb16d09d src: Move control to input directory 2024-04-14 01:18:25 +03:00
GPUCode 661b4d0e74 src: Reorganize and cleanup libraries 2024-04-14 00:37:17 +03:00
georgemoralis c4b4cb5acf dummy libscesavedatadialog 2024-04-08 19:03:51 +03:00
georgemoralis a4b8db7027 added sceAudioOutSetVolume 2024-04-05 09:59:28 +03:00
georgemoralis ee2cfa982b just disable audioInOpen 2024-04-04 20:07:33 +03:00
georgemoralis 0141781429 dummy sceAudioIn lib 2024-04-04 20:04:18 +03:00
georgemoralis 6141d379d9 sceSaveDataMount2 just return save data not found for now 2024-04-01 22:31:25 +03:00
georgemoralis 495779ef3b log debug message to tty 2024-04-01 08:44:07 +03:00
georgemoralis c35f2922a9 fixed (?) _write function 2024-03-31 18:04:11 +03:00
georgemoralis 4363aaaa3f fixed linux issue with enums 2024-03-31 17:37:09 +03:00
georgemoralis 482b37013f added ps4_ prefix to libkernel to make sure it deosn't conflict with linux function names 2024-03-31 17:14:21 +03:00
georgemoralis 916a5adfd1 partial implementation of _write function , which is used as debug ouput from lle libc 2024-03-31 13:33:38 +03:00
georgemoralis ca810916b5 dummy libkernel module 2024-03-31 11:30:43 +03:00
georgemoralis e8776fea82 clang format fix 2024-03-30 15:39:21 +02:00
georgemoralis 221b5c6c88 dummy sysmodule module 2024-03-30 15:34:01 +02:00
georgemoralis 6b47e38246 some dummy net functions 2024-03-30 09:35:00 +02:00
georgemoralis abc5fd3475 clang format fix 2024-03-29 23:28:06 +02:00
georgemoralis 1c029b0c98 added more dummy modules 2024-03-29 23:25:52 +02:00
georgemoralis cb334d4c4a clang format 2024-03-27 15:02:21 +02:00
georgemoralis bdfb7c800d loading libSceFios2.prx as lle as well 2024-03-27 13:00:27 +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
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
georgemoralis de0d824fce Modules generation tool (#81)
* Modules generation tool

* apply clang format to generator

* @whereismyfoodat suggestions

* added reuse headers

* reuse part2

* reuse part3

* reuse part3

* replace with hex_id the unknown functions to avoid compile errors with unknown characters from encode_id

* fixes in generation

* some sample module code from autogen tool

* clang format fix
2024-02-24 22:39:29 +02:00