Commit Graph

11 Commits

Author SHA1 Message Date
Stephen Miller
ebb126c43c
Register libcinternal symbols if the module isn't present (#4660)
Forgot to properly handle this when I moved the libcinternal module load to linker.
2026-07-02 19:41:50 +03:00
Stephen Miller
7da7a8e1f9
More safe LLE modules (#4642)
These are all safe thanks to recent work (aside from rudp, that's been safe ever since the initial socket work).
2026-06-29 12:58:31 +03:00
Stephen Miller
8ead142315
Core: Run _malloc_init to fix LLE internal mallocs (#4622)
* Initialize heap API and run malloc_init

Purely for testing

* Update linker.cpp

* Fix heap function definitions

* Run malloc_init before initializing libs

Allows LLE libSceMoveTracker.

* Fix for rebase

* Some other fixups

* Some other rebase/bug fixes

* Claaaaaang

* Add a memory type for system memory

Don't want these system areas merging with things they shouldn't.

* mmap with MAP_SYSTEM flag

* Add FW 1.70 check to sceKernelMapNamedSystemFlexibleMemory

* regmgr call stub

Best we at least have some clue what this thing is doing

* Remove forced LibcInternal HLEs

These are no longer needed since running malloc_init LLE allows internal mallocs to succeed.

* Remove heap api pre-init

This is a hack.
2026-06-28 21:54:02 +03:00
kalaposfos13
bd741ec57f
Don't attempt to LLE the full contents of sys_modules when param.sfo is missing (#4632) 2026-06-27 08:57:54 -05:00
Stephen Miller
38444639a5
Lib.Sysmodule: LLE libSceWkFontConfig.sprx (#4629)
* Add libSceWkFontConfig as an LLE

* Add module to README
2026-06-27 08:34:53 +03:00
Stephen Miller
caec23154c
Lib.SystemService: Add SDK checks for console language (#4444)
* Add proper SDK checks for language values

Fixes some crashes caused by otherwise valid languages in older titles.

* Rename firmware constants

Makes more sense this way, and works better in case we find an SDK check added in a more minor update.
Instead of 1.00 being 10, 1.50 being 15, and so on, this commit changes 1.00 to 100, 1.50 to 150, and so on.

* Claaaaang
2026-05-17 18:35:36 -07:00
Stephen Miller
e24f42b03c
Lib.Sysmodule: Allow libSceSystemGesture LLE (#4223)
* Run libSceSystemGesture LLE

It's fully safe.

* Update sysmodule table appropriately.
2026-04-05 00:35:53 +03:00
georgemoralis
f450405f35
General Misses (0.15.1 WIP part 6) (#4165)
* fixes

* fixed a few more config misses

* missed include
2026-03-23 22:38:05 +02:00
georgemoralis
edd50ab2d0
more files for syncing with 0.15.1 branch (#4161) 2026-03-22 10:26:23 +02:00
Stephen Miller
3ee06a91df
Relocate imports on HLE loads (#4113)
Now that dynamic HLE loads happen after the eboot loads, HLEs for most "preload" modules wouldn't detect if you didn't have libSceRtc dumped. This was because, while we stored all the new symbols from the HLE lib, we weren't relocating loaded modules to use these symbols.
2026-03-10 07:25:45 +02:00
Stephen Miller
cc6af03adf
Lib.SysModule: Proper HLE implementation (#4102)
* Replace sysmodule enums with table

Dumped this from the 12.52 module, using a script I created.

* Better documentation

* Separate from system libraries

That system folder is going to be getting quite large if I left all the sysmodule stuff in there.

* More arrays from library

* Found another preload list

Ghidra really hates decompiling libSceSysmodule, so I didn't notice this one at first.
Also documented specific versions tied to each preload list.

* Start work on implementation

* Some basic implementations

* Initial stub for module loading

Just enough to see if the logic functions appropriately.

* Clang

* sceSysmoduleLoadModule

Now I need to get sceSysmodulePreloadModuleForLibkernel done so that we don't have bugs from not loading internal LLEs.

* sceSysmoduleLoadModuleInternal

* sceSysmodulePreloadModuleForLibkernel

I have successfully broken quite literally everything.
I shall debug this tomorrow.

* Slight fix

* Maybe fix?

* Change log

Enjoy the log spam 😄

* Increased defined stub count

Now that libc and libSceLibcInternal loads later, all the auto stubs are getting consumed by it.

* sceSysmoduleUnloadModule stub

Also a couple fixes. Sysmodule does pass argc and argv to game modules, but only after loading them once to check  binaries.
Shouldn't matter for the most part.

* Clang

* Less stubs

2 thousand is seemingly enough.

* sceSysmoduleLoadModuleInternalWithArg

Doesn't hurt to have, since Apex Legends calls it.

* Oops

* Oops 2

* Rename isModuleLoaded to getModuleHandle

Review comment

* Remove debug game module loads

These cases only trigger when specific sceRegMgr key values are set, and for our purposes, we can treat that case as false.

* Allow preloading to fail

For kalaposfos

* Clang
2026-03-08 21:48:03 +02:00