Commit Graph

66 Commits

Author SHA1 Message Date
Stephen Miller
ce158290fb
Minor Kernel Fixes (#1529)
* Skip destruction of adaptive mutex initializers

Based around similar behaviors implemented in the more-kernel branch. Hatsune Miku Project Diva X needs this.

* Fix posix_lseek result overflow

Seen when testing Spider-Man Miles Morales on more-kernel.

* Add posix_fsync

Used by Spider-Man Miles Morales. I've added the normal posix error handling to this function, though I'm aware sceKernelFsync doesn't return any errors currently. This is for future proofing and accuracy, as the actual libkernel does the usual error handling too.

* Properly handle VirtualQuery calls on PoolReserved memory.

* Export posix_getpagesize under libkernel

Bloons TD 5 needs this.

* Clang
2024-11-14 18:00:57 +02:00
psucien
c59f6fd5c3 hot-fix: reduced log spam from get sdk version 2024-10-27 00:33:44 +02:00
Daniel R.
7c00ac637a
core: Fix mmap being unable to map GPU memory 2024-10-12 16:35:12 +02:00
Daniel R.
80bf46da4c
core/memory: Pooled memory implementation (#1085) 2024-09-29 10:28:41 +03:00
Vinicius Rangel
10d29cc007
Save fixes (#1031)
* Add ElfInfo to track current game info in a singleton

* SaveData compatibility with old firmwares

* sceKernelOpen: fix for write-only mode

* imgui: add font to render non-ascii characters

* save_data: fix Backup Job including old backup in the new backup

* Save backup: fix to avoid filling the queue

 Also limiting 1 backup / 10sec

* Save backup: fix search not handling empty pattern

*backup time improv
2024-09-23 14:50:49 +03:00
Daniel R.
c3d5824279
libraries/kernel: add sceKernelMmap to HLE 2024-09-20 17:53:18 +02:00
Vinicius Rangel
0f4bcd8c83
Rewrite Save Data & Impl Save Data Dialog (#824)
* core: Rewrite PSF parser & add encoder

add .sfo hex pattern to /scripts

* core/fs: allow to mount path as read-only

* common: Add CString wrapper to handle native null-terminated strings

* SaveData: rewrite to implement full functionality

* mock value for SYSTEM_VER

* SavaData: backup features

* SavaData: SaveDataMemory features

* imgui Ref-counted textures

- has a background thread to decode textures

* imgui: rework gamepad navigation

* PSF: fixed psf not using enum class for PSFEntryFmt (was a standard old ugly enum)

- Add null check to CString when itself is used in a nullable field

* SaveDataDialog implementation

- Fix Mounting/Unmounting check of SaveInstance
2024-09-20 12:34:19 +03:00
menaman123
b9c6093717
Implemented sceKernelMTypeProtect and sceKernelMProtect (#387)
* Fixed ORBIS_KERNEL_MAP_OP_TYPE_PROTECT for batchmap2

* Fix merge

* Changed 4 to ORBIS_KERNEL_MAP_OP_TYPE_PROTECT

* Removed MProtect from AddressSpace

* Added Mtyprotect and moved Mprotect to ORBIS_KERNEL_MAP_OP_PROTECT

* Changed Protect for Windows

* reverted the previous function

* Fixed Mtypeprotect and MProtect

* ''

* ''

* Took out logs stopping build

* clang-format issues

* Fixed the order of mtypeprotect and mprotect in batchmap2

* ''

* update branch

* ''

* Fixed nits

* ''

* Update submodules to latest commits

* ''

* reverted ffmpeg

* ''

* Fixed the nits

* ''

* ''

* ''

* ''

* ''

* Fix clang formatting, DEBUG_ASSERT, and extra spacing

* Fix build issues

* Revert "Fix build issues"

This reverts commit 9185f96ec9.

* ''

* ''

* ''

* Changes for MemoryProt Format

* ''

* ''

* ''
2024-09-04 23:36:23 +03:00
georgemoralis
43e92bb987
Merge pull request #456 from StevenMiller123/sem_fix
Improve posix_sem functions
2024-08-17 10:57:19 +03:00
Stephen Miller
2935ca0fef clang-format fix 2024-08-16 17:22:06 -05:00
Stephen Miller
9fce6f7c01 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
Dzmitry Dubrova
dcb057dd7f
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
TheTurtle
d8b9d82ffa
video_core: Various fixes (#423)
* video_core: Various fixes

* clang format
2024-08-13 20:05:10 +03:00
TheTurtle
a7c9bfa5c5
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
georgemoralis
c1d01709be
kernel: Implement sceKernelSetVirtualRangeName (#338)
* Fix in searchFree should fix #337

* clang format fix

* sceKernelSetVirtualRangeName implementation

* improved vaddr conversion

* updated VirtualQuery to include name too

* unmap also removed name thanks @red_prig

* fixed copy...
2024-07-29 19:08:06 +03:00
TheTurtle
a2cd1669b6
memory: Cleanups and refactors (#324)
* memory: Various fixes

* Added (Partial) sceKernelBatchMap/sceKernelBatchMap2

* memory: Rename and implement batch unmap

* memory: Remove uneeded assert

* memory: Commonize free search routine

* memory: Contains check is inclusive

* memory: Address some alignment issues

* clang format

---------

Co-authored-by: raziel1000 <ckraziel@gmail.com>
2024-07-25 23:01:12 +03:00
georgemoralis
36ec7a1a43
Merge pull request #312 from Borchev/main
Add sceKernelGetDirectMemoryType, update sceKernelReserveVirtualRange
2024-07-21 22:52:50 +03:00
squidbus
426d82d07b Only use date library on macOS. 2024-07-21 22:36:12 +03:00
squidbus
66fa29059c Add initial macOS support. 2024-07-21 22:36:12 +03:00
Borchev
f556f85279 Add sceKernelGetDirectMemoryType and update sceKernelReserveVirtualRange to search for free region when virtual_addr==0 2024-07-21 11:29:24 -07:00
georgemoralis
25e95c959a
Merge branch 'main' into miscFixes6 2024-07-18 18:18:10 +03:00
IndecisiveTurtle
dbeed80e3b fs: Actually functional linux case insensitive search 2024-07-15 03:37:30 +03:00
raziel1000
02cba0100d Some functions called by Stardew Valley 2024-07-14 23:23:11 +03:00
psucien
746792eda0 libraries: kernel: added sceKernelGetEventId 2024-07-14 18:20:31 +02:00
Daniel R
914aa10875
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
989f88837d
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
0bb5240202 kernel: added HR timers and asio service thread 2024-07-11 13:14:42 +03:00
psucien
465cb0413e kernel: equeue: minor refactoring 2024-07-11 13:14:42 +03:00
georgemoralis
1f83824a8a
Merge pull request #225 from shadps4-emu/stabilization/10
Various fixes and improvements
2024-07-01 13:09:11 +03:00
georgemoralis
24f78fac20 fixed name style 2024-07-01 00:50:07 +03:00
psucien
1f55eff9d8 libraries: gnmdriver: added initialization preamble to every first submit in a frame 2024-06-30 18:22:39 +02:00
georgemoralis
1413a70a92 added posix error write to errno 2024-06-30 10:40:06 +03:00
georgemoralis
0ada442cbc
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
georgemoralis
8a617be3b7 missed from previous commit 2024-06-26 14:57:18 +03:00
georgemoralis
94b9992d99 more clang format fix (final) 2024-06-22 18:17:40 +03:00
IndecisiveTurtle
30351ad112 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
2506a285f4 kernel: Implement some functions 2024-06-22 18:09:03 +03:00
raziel1000
52f3b74fdd Missing sceKernelUuidCreate nid 2024-06-15 17:01:20 -06:00
TheTurtle
ca25333a1e
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
Younes
0fa7d5d02c
- 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
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
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
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
84dca0a5dd added sceKernelTriggerUserEvent,sceKernelDeleteUserEvent 2024-06-09 00:23:58 +03:00
georgemoralis
c16275fe16 posix_usleep,posix_pthread_equal 2024-06-08 20:01:28 +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
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
raphaelthegreat
dd91456b48 video_core: Moar shader instruction 2024-05-30 18:17:54 +03:00
raphaelthegreat
58de7ff55a video_core: Implement basic compute shaders and more instructions 2024-05-30 01:39:24 +03:00