Commit Graph

3028 Commits

Author SHA1 Message Date
Stephen Miller
88cdfb4b1f
Fix assert (#4002)
Just a typical day of me pushing something a month ago, nobody testing/reviewing it, then finding out it's broken when that code inevitably makes it into production.
2026-02-07 21:55:40 +02:00
georgemoralis
1dc45ab6b3
npWebApi (#3878)
* added function parameters

* added logging

* more logging

* added error codes file

* sceNpWebApiCreateExtdPushEventFilter some re

* added np_web_api_internal

* more np_web_api_internal definations

* Initial types cleanup

* Basic library context handling.

Followed decomp closely, using standard library classes where possible to simplify code.

* Fix params to sceNpWebApiCreateContext

* Context logic fixes

* User contexts

* Clang

* sceNpWebApiVshInitialize

* Better initialization

* Request creation logic

* Some cleanup

* sceNpWebApiAbortRequest, sceNpWebApiDeleteRequest

* SendRequest functions

* formatting

* Update terminateContext and deleteUserContext

Addressing some unimplemented bits now that I have requests and user contexts here.

* Copyright

* sceNpWebApiCreateHandle, sceNpWebApiDeleteHandle, sceNpWebApiAbortHandle

also some bugfixing

* Extended push event filter

* abort handles in terminateContext

* Other push event filter types

* Register callbacks

* unregister callbacks

* oops

* One final update to deleteContext

* Logging changes

* Bug fixes

Fixes memory leaks, pretty sure these are the only places where that was an issue.

* sceNpWebApiCheckTimeout

* Handle and request timeouts

* Oops

* Push event filter parameters

Tested with Assassin's Creed Unity, seems to be correct.

* Service push event filter parameters

Tested again with Assassin's Creed Unity, seems to work fine.
Also fixed some code bugs I noticed, and removed an unnecessary part of my internal structs

* Stub implementation for createUserContextWithOnlineId

Might need a PSN check to be properly accurate, not sure.

* added sceNpWebApiGetHttpStatusCode

* opps

* opss 2

* sceNpWebApiReadData

* clang

* Fix context ids, user context ids, and request ids

Overlooked how these ids are actually calculated.

* Additional PSN checks

Seems creating any form of push event filter with an np service name fails when you're not connected to PSN.
Not sure of the actual cause yet, but given the error code, it's related to sceNpManagerIntGetUserList.

* compile fix

---------

Co-authored-by: Stephen Miller <millerste004@gmail.com>
Co-authored-by: Stephen Miller <56742918+StevenMiller123@users.noreply.github.com>
2026-02-07 21:05:47 +02:00
georgemoralis
0f9cc89ae5
Improved sceAudioOut and SDL3 backend (#3984)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* improved sdl backend

* small cleanups

* misc

* adjustments and new definations

* cleanups

* more debuging

* rewrote sceAudioOut calls

* fixed a trace

* fixed audio3d port

* small debug fixes

* small additions

* using shared_ptr

* compile fixes

* make macOS happy

* using shared mutex

* implemented audio input backend

* fixed port construction based on decompile

* implemented partially sceAudioInGetSilentState to return correct code if mic device is null

* improved sdl volume handling

* dynamic volume update

* this one is for @UltraDaCat

---------

Co-authored-by: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com>
2026-02-07 16:38:45 +02:00
Stephen Miller
f911ed23a9
Kernel.Vmm: Fix bug with VMA physical area tracking (#3998)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* Fix bug with "phys_addr_to_search" logic

By improperly updating the variable, some games would mark the same dmem area as mapped in different parts of the vma, and the dmem map wouldn't properly reflect the state of the vma's phys areas.

* Clang

* Oops
2026-02-07 08:38:44 +02:00
Vladislav Mikhalin
b88ec484ba
ajm mp3: check frame size on every frame (#3995)
Some checks failed
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-sdl-gcc (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
2026-02-05 23:16:22 +02:00
kalaposfos13
1fe72cfe1f
filesystem: fill in timespec values for fstat (#3994)
* filesystem: fill in timespec values for fstat

* w*ndows

* fix windows and mac
2026-02-05 22:39:37 +02:00
Stephen Miller
923d1b1ab6
Libs: Miscellaneous fixes (#3993)
Some checks failed
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-sdl-gcc (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
* Fixed sceCompanionUtilGetEvent stub

Previously we effectively stubbed with ORBIS_COMPANION_UTIL_INVALID_POINTER, which makes no sense and caused issues in games.

* Check for null issuer_id in libSceNpAuth's GetAuthorizationCode

Comes up in Mirror's Edge Catalyst, according to some debugging done by a community member.
Given the library didn't have any null checks for that value, this is probably allowed.
2026-02-04 10:03:02 +02:00
Spirtix
b43573112c
Prevent posix_pthread_mutexattr_settype from setting invalid mutex types (#3991)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
2026-02-03 17:05:45 +02:00
jas0n098
8da0b58aaa
Fix thread names being set to garbage (#3985)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
SetThreadName gets passed an std::string's c_str whose pointer gets invalidated by the assignment of g_curthread->name, resulting in broken thread names further down the line
2026-02-03 09:58:22 +01:00
Dasaav
e2f3a0f750
Prevent Rasterizer::IsMapped from returning true for memory ranges that wrap the address space (#3989)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Signed-off-by: Dasaav-dsv <simplydasaav@gmail.com>
2026-02-02 20:51:50 +02:00
Stephen Miller
d3c6abac4e
Fix default pthread attributes (#3987)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
This matches libkernel decomp + old fpPS4 code.
Fixes Attack On Titan 2 audio
2026-02-02 08:16:59 +02:00
psucien
9144b29742
shader_recompiler: fix for incorrectly outputted attribute if cdist emulation is not needed (#3986) 2026-02-02 08:07:47 +02:00
Stephen Miller
3bd6a0f9f8
Skip stdin fd for want_read in select (#3983)
Some checks failed
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-sdl-gcc (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
UE uses this to signal if it should read from stdin, real hardware never marks it as as readable
2026-01-31 23:31:58 +02:00
Marcin Mikołajczyk
c0987ecc73
Fake Matching2 (#3959)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
2026-01-30 23:42:37 +02:00
kalaposfos13
d1150ad303 this is why you don't push local changes, shadow
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
2026-01-30 13:56:25 +01:00
georgemoralis
8b46650fb2
Misc (#3979)
* improved trophy key save on new keymanager

* updated CLI11 and sdl3

* delete so stupid git will know

* fixed?

* fix2

* fixed sdl3

* Fix missing CLI11 submodule
2026-01-30 13:59:52 +02:00
CrazyBloo
4f11a8c979
pngenc hle (#3957)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* PngEnc hle

* format

* formatting + fix scePngEncDelete

* fix cmake + misc improvements

i think the setjmp is right according to the libpng manual, works fine from my testing

* fixes

fix an issue with how alpha was handled, and PngEncode() now properly sets the processed_height in outputInfo.

* format

* Update pngenc.cpp

* set outputInfo->processed_height during png write

i assume some games will use this for error handling
2026-01-30 10:53:09 +02:00
Stephen Miller
5bc4183e36
Kernel.Vmm: Fix potential race condition involving concurrent Allocate and Free calls (#3978)
* Avoid nullptr dereference on GetSocket

Was gonna include this in my socket PR, but that got merged before I could push this.

* Lock unmap mutex in PoolExpand and Allocate

PAYDAY 2 has a rare race condition involving dmem releases.
I'm not certain this commit will fix it, but this would cause a race condition that could cause asserts like what PAYDAY 2 can hit, so I'll just pray this does the job until I can prove it doesn't.
2026-01-30 06:22:15 +02:00
Stephen Miller
4f3aabd7af
Delete unused fds in sceNetEpollDestroy and sys_socketclose (#3976)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
This issue would cause memory leaks in some EA titles, also just generally makes it harder to debug stuff when the fd table is flooded with closed sockets and epolls.
2026-01-29 23:08:21 +02:00
Marcin Mikołajczyk
39a7738d04
Include NpTus stub (#3970)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
2026-01-29 17:46:30 +02:00
Stephen Miller
f14bad729c
Np: libSceNpPartner001 stubs (#3963)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* Initial work

* Oops
2026-01-28 15:10:37 +02:00
kalaposfos13
cc70fa8bb5
Fix thread names not updating correctly (#3968)
Also, apply consistency to thread names
Also also, copyright 2026
2026-01-28 13:25:48 +02:00
Marcin Mikołajczyk
c81ebe6418
Implement V_FFBH_I32 (#3965)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
2026-01-27 23:08:26 +02:00
Marcin Mikołajczyk
1473b2358a
Implement V_CMP_OP_F64 (#3962) 2026-01-27 20:18:05 +02:00
Marcin Mikołajczyk
1e059cac04
Implement V_LSHR_B64 (#3961) 2026-01-27 12:27:56 +02:00
Stephen Miller
4ba0e62670
Kernel.Vmm: Attempt to address race conditions involving ClampRangeSize, CopySparseMemory, and TryWriteBacking (#3956)
* no

no

* Adjust locking strategy

Use a separate mutex for the initial error checks + GPU unmap instead of using the reader lock. Make sure all writers lock this separate mutex, and for those that don't perform GPU unmaps, lock the writer lock immediately too.

This gets around every race condition I've envisioned so far, and hopefully does the trick?

* Clang

* Always GPU unmap

GPU unmaps have logic built-in to only run on mapped areas.
Not sure if userfaultfd would work with this, but since that's already broken anyway, I'll let reviewers decide that.

Without doing this, I'd need to do an extra pass through VMAs to find what all needs to be GPU modified before I can unmap from GPU, then perform remaining unmap work. Especially for places like MapMemory, that's a lot of code bloat.

* Fixups

* Update memory.cpp

* Rename mutex

It's really just a mutex for the sole purpose of dealing with GPU unmaps, so unmap_mutex is a bit more fitting than transition_mutex
2026-01-27 12:25:23 +02:00
psucien
1e99c4b506
shader_recompiler: VS clip distance emulation for NVIDIA GPUs (#3958)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
2026-01-26 22:17:51 +02:00
georgemoralis
fa497f6bfd
added new cli parser using CLI11 (#3950)
Some checks failed
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-sdl-gcc (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
* added new cli parser using CLI11

* pff

* fixed repo

* fix game autodetection

* clear unessecary comments

* added a check

* fixed?

* parse extras

* one more try

* readded -g

* fixed ignore_game_patches flag

* some rewrite improvements
2026-01-24 14:57:24 +02:00
Stephen Miller
c8b45e5ebc
Core: More memory hotfixes (#3954)
* Update memory.cpp

* Fix CoalesceFreeRegions to account for address space gaps

Fixes a regression in Saint's Row games.
2026-01-24 08:05:56 +02:00
Stephen Miller
46a7c4e1f5
Core: Miscellaneous memory fixes and slight optimizations (#3946)
* Optimizations

Microsoft allows you to coalesce multiple free placeholders in one VirtualFreeEx call, so we can perform the VirtualFreeEx after coalescing with neighboring regions to eliminate a VirtualFreeEx call in some situations.

* Remove unnecessary VirtualProtect call

As far as I can tell, this call wastes a bunch of time, and is completely unnecessary.
With our current codebase, simply supplying prot to MapViewOfFile3 works properly.

* Properly handle file mmaps with offsets

Pretty easy fix to perform while I'm here, so I might as well include it.

* Oops

Leftover stuff from local things + clang

* Disable tracy memory tracking

Tracy's memory tracking is built around a typical malloc/free API, so each individual alloc must correspond to a free.
Moving these to address space would fix issues on Windows, but Linux/Mac would have the same issues with our current code.
Disabling VMA merging is technically a fix, but since that's hardware-accurate behavior, I'd rather not disable it.

I'm sure there's a simple solution I'm missing, but unless other devs have a better idea of how this should be handled, the best I can do is disable it so we can keep using Tracy to trace performance.

* Update address_space.cpp

* Debug logging

Should give a decent idea of how nasty these AddressSpace calls are in games that lost perf.

* test removing thread safety

Just for testing, will revert afterwards.

* Check name before merging

Fixes a regression in Apex Legends

* Revert "test removing thread safety"

This reverts commit ab897f4b1c.

* Move mutex locks before IsValidMapping calls

These aren't thread safe, this fixes a rare race condition that I ran into with Apex Legends.

* Revert "Debug logging"

This reverts commit eb2b12a46c.

* Proper VMA splitting in ProtectBytes, SetDirectMemoryType, and NameVirtualRange

Also slight optimization by eliminating AddressSpace protect calls when requested prot matches the previous prot.
Fixes a regression in God of War: Ragnarok

* Clang

* Fixes to SetDirectMemoryType logic

Fixes some regressions in Marvel's Spider-Man that occurred with my previous commits to this PR.

* Fix Genshin Impact again

* Assert on out-of-bounds protect calls

Our page tracking code is prone to causing this.

* test mutex again

This time, remember all mutex stuff

* Revert hack

I'll work on a better way to deal with mutexes in a bit, first I'm pushing up some extra fixes

* Proper logic for checked ReleaseDirectMemory, added bounds checks

Should help some games.

* Better logging for ReleaseDirectMemory errors.

* Only perform region coalescing after all unmap operations.

A small optimization for unmapping multiple regions. Since Microsoft lets you coalesce multiple placeholders at once, we can save doing any VirtualFreeEx calls for coalescing until after we unmap everything in the requested range.

* Separate VMA creation logic into a separate method, update MapFile to use it

MapFile is technically another "emulation" of MapMemory, both should follow similar logic.
To avoid duplicating code, move shared logic to a different function that both MapMemory and MapFile can call.

This fixes memory asserts in a couple of online-only apps I have.

* Clang

* Fix TryWriteBacking

This fixes a lot of regressions that got misattributed

Co-Authored-By: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>

* Fix again

Fixes device lost crashes with some games after my last commit.

* Oops

* Mutex cleanup

Avoided changing anything in MapMemory, UnmapMemory, PoolCommit, or PoolDecommit since those all need a little extra granularity to prevent GPU deadlocking.

Everything else now uses standard library locks to make things a little simpler.

* Swap MapMemory and PoolCommit to use scoped lock

GPU maps are safe, so this is fine. Unmaps are the primary issue.

---------

Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com>
2026-01-24 00:17:57 +02:00
TheTurtle
fecfbb6b4a
video_core: Small fixes regarding GDS (#3942)
Some checks failed
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-sdl-gcc (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
* shader_recompiler: Add missing descriptor type for GDS buffer

* liverpool: Implement gds to memory store

* macOS fix?

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2026-01-22 17:05:16 +02:00
georgemoralis
508bad87d5
WebDialogBrowser module (#3938)
* initial

* added sceWebBrowserDialogUpdateStatus

* sceWebBrowserDialogInitialize
2026-01-22 17:04:57 +02:00
georgemoralis
62813c0106
Unified UserId (#3949)
* added OrbisUserServiceUserId in generic way to all classes that uses it

* clang
2026-01-22 17:03:22 +02:00
TheTurtle
0d5c5f81a6
video_core: Small readback optimization (#3941)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* pm4_cmds: Handle nop packet overflow

* liverpool: Detect DispatchDirect patches and promote to DispatchIndirect

* clang..

* log removed

---------

Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2026-01-21 22:49:35 +02:00
Stephen Miller
3e1f5a0bfb
Kernel.Vmm: Handle sparse physical memory usage + other fixes (#3932)
* Initial work

* Bug fixing

deadlocks and broken unmaps

* Fix more bugs

broken memory pools

* More bug fixing

Still plenty more to fix though

* Even more bug fixing

Finally got Final Fantasy XV back to running, haven't found anymore bugs yet.

* More bugfixing

* Update memory.cpp

* Rewrite start

* Fix for oversized unmaps

* Oops

* Update address_space.cpp

* Clang

* Mac fix?

* Track VMA physical areas based on start in VMA

Allows me to simplify some logic, and should (finally) allow merging VMAs in memory code.

* Merge VMAs, fix some bugs

Finally possible thanks to address space + phys tracking changes

* Clang

* Oops

* Oops2

* Oops3

* Bugfixing

* SDK check for coalescing

Just to rule out any issues from games that wouldn't see coalescing in the first place.

* More ReleaseDirectMemory fixes

I really suck at logic some days

* Merge physical areas within VMAs

In games that perform a lot of similar mappings, you can wind up with 1000+ phys areas in one vma.
This should reduce some of the overhead that might cause.

* Hopefully fix Mac compile

Why must their uint64_t be different?

* Mac pt.2

Oops
2026-01-21 17:36:09 +02:00
georgemoralis
c898071b72
Introducing key_manager for storing encryption keys . (#3935)
Some checks failed
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-sdl-gcc (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
* Introducing key_manager for storing encryption keys . Currently only trophy key is neccesary

* keep gcc happy?

* addded logging to keymanager

* revert file

* added npbind file format and rewrote part of trp file format
2026-01-19 18:49:57 +02:00
georgemoralis
950d390daf
implemented sceImeDialogGetPanelSizeExtended (#3934)
Some checks failed
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-sdl-gcc (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
2026-01-17 23:54:17 +02:00
georgemoralis
220e5f67e7
NetFixes : workaround for Epolls on P2P sockets (#3933)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* return error on P2P sockets

* error message improved
2026-01-17 21:33:14 +02:00
georgemoralis
dce9c04383
AvPlayer fix (#3929)
Some checks failed
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-sdl-gcc (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
* improved path detection

* clang is pretty

* improved

* improved?

* finished?
2026-01-16 18:33:27 +02:00
baggins183
11ee79a333
shader_recompiler: some fixes for tess shaders (#3926)
When walking the users of special constants which form LDS
addresses:
-ignore when a user contributes to the wrong operand of an LDS inst, for
example the data operand of WriteShared* instead of the address operand.
This can mistakenly happen due to phi nodes.
-don't use flags to stash temp info about phis, since flags may already
be in use. Use a separate map.
2026-01-15 09:25:09 +02:00
georgemoralis
cdf3c468b6
Added libSceAudiodec to lle modules list (#3916)
* added libSceAudiodec to lle modules list

* crappy float resample , use it at your own risk

* clang

* adjustments to aac

---------

Co-authored-by: Vladislav Mikhalin <mikhalinvlad@gmail.com>
2026-01-14 18:07:44 +02:00
Vladislav Mikhalin
1a99ab7b09
ajm: fix init params initialization (#3924) 2026-01-13 11:08:46 +02:00
Stephen Miller
acb8d06636
Lib.Audio3d: sceAudio3dGetDefaultOpenParameters fix (#3923)
* OrbisAudio3dOpenParameters struct fix

Not sure why we have the extra filler, but decomp suggests it shouldn't exist.
This fixes stack_chk_fail issues in audio3d using titles.

* Bring back filler, only copy 0x20 bytes.

The library accepts variations on struct size, with the maximum size being the 0x28 size our current struct has.
This fixes the issue without potentially breaking the struct.

* Fix memcpy

Prevent OOB read
2026-01-13 08:32:17 +02:00
Stephen Miller
108cefaf53
Better message for missing game trophies directory (#3922)
Also decreased the log level from critical to warning, as all this affects is the ability to earn trophies.
2026-01-13 08:30:56 +02:00
b7k
540fdcc812
changing the mouse speed does not affect the mouse speed offset (#3917) 2026-01-12 11:21:52 +02:00
Stephen Miller
910f737079
Core: Add libSceRtc, libSceJpegDec, libSceJpegEnc, and libScePngEnc LLEs (#3918)
* Run libSceRtc LLE

The more we've used our HLE, the more issues we've had with it.
While we debug these bugs, re-enabling LLE will address any regressions the swap caused.

* libSceJpegDec LLE

Needed for Trackmania until we implement HLE for this library

* libScePngEnc LLE

Needed for Minecraft until we implement HLE for this library

* Update documentation appropriately

* libSceJpegEnc LLE

By @georgemoralis's request
2026-01-11 20:48:41 +02:00
Stephen Miller
3844a2fb54
Lib.Videodec2: Stub sceVideodec2AllocateComputeQueue to return a valid computeQueue pointer. (#3915)
* Stub compute queue output to cpuGpuMemory

* Rename namespace

This has bugged me for far too long

* Oops
2026-01-11 10:47:34 +02:00
Stephen Miller
ae47dd5d54
Handle exceptions from OutputDebugString API. (#3914)
Needed after #3900
2026-01-11 03:36:36 +02:00
Stephen Miller
12cd27d0b7
Fix socket_is_ready (#3912) 2026-01-10 21:15:06 +02:00
Stephen Miller
ed73d2b02c
Libraries: libSceNpWebApi2 stubs (#3908)
* libSceNpWebApi2 stubs

Based on some brief decompilation, brings some extra Unreal Engine titles futher.

* Clang

* Suggestions and fixes
2026-01-10 17:33:28 +02:00