mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2026-04-25 07:46:01 +03:00
[PR #2265] [MERGED] Libraries: Update libcInternal #2609
Labels
No labels
Bloodborne
bug
contributor wanted
documentation
enhancement
frontend
good first issue
help wanted
linux
pull-request
question
release
verification progress
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/shadPS4#2609
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/shadps4-emu/shadPS4/pull/2265
Author: @kalaposfos13
Created: 1/29/2025
Status: ✅ Merged
Merged: 2/14/2025
Merged by: @georgemoralis
Base:
main← Head:libc-internal📝 Commits (10+)
7b8e2c5Added all stubs + logging370e754Added back memory and math functions from the original code + added some more math functionsbe851ccMore string functions, snprintf, memmove and setjmpf2686c2Add longjmp + clang7a08ba1gmtime, __cxa_atexit and log what functions some games use5e72799Add Mspace unreachable38a4777Renamingaff3fb7Take out mspace functions to their own filebd2c989Factor out io to a new file00d9162Empty str and memory files📊 Changes
17 files changed (+21727 additions, -209 deletions)
View changed files
📝
CMakeLists.txt(+12 -0)📝
src/common/logging/filter.cpp(+1 -0)📝
src/common/logging/types.h(+1 -0)📝
src/core/libraries/libc_internal/libc_internal.cpp(+16149 -203)📝
src/core/libraries/libc_internal/libc_internal.h(+3 -6)➕
src/core/libraries/libc_internal/libc_internal_io.cpp(+472 -0)➕
src/core/libraries/libc_internal/libc_internal_io.h(+14 -0)➕
src/core/libraries/libc_internal/libc_internal_math.cpp(+773 -0)➕
src/core/libraries/libc_internal/libc_internal_math.h(+14 -0)➕
src/core/libraries/libc_internal/libc_internal_memory.cpp(+314 -0)➕
src/core/libraries/libc_internal/libc_internal_memory.h(+14 -0)➕
src/core/libraries/libc_internal/libc_internal_mspace.cpp(+247 -0)➕
src/core/libraries/libc_internal/libc_internal_mspace.h(+14 -0)➕
src/core/libraries/libc_internal/libc_internal_str.cpp(+532 -0)➕
src/core/libraries/libc_internal/libc_internal_str.h(+14 -0)➕
src/core/libraries/libc_internal/libc_internal_stream.cpp(+3139 -0)➕
src/core/libraries/libc_internal/libc_internal_stream.h(+14 -0)📄 Description
Added all stubs, added back all things that were already implemented, and added functions based on what my games called. I have some basic implementation of printf functions, but I'm not really satisfied with the implementation, so I only did the ones that are actually called by games, and will update the rest when I find a better solution (Also, the non string variants should interface with shadPS4's tty system as well). The new things are:
More math functions
More str functions
setjmp, longjmp (Driveclub needs it to work)
memmove
The main thing that needs implementing for Gravity Rush 2 (and probably other games as well) is the sceLibcMspace functions, which are their own memory management sublibrary, from what I can see.
Logs filtered by
*:Critical Lib.LibcInternal:Infoare welcome if they contain stubsThis probably won't help a lot of games go further without sceLibcInternal as LLE (though implementing sceLibcMspace might do that), and my only game that reached further was Driveclub.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.