w1naenator
e9ca20b65d
Add internal font handling structures and layout computation functions
...
This commit introduces a new header file `fontft_internal.h` containing
various structures and functions for managing font handles, layout metrics,
and rendering operations. Key additions include:
- Definitions for `FontHandleOpenInfo`, `FontHandleStyleStateTail`,
and `FontHandleOpaqueNative` to encapsulate font state and properties.
- Layout-related structures such as `HorizontalLayoutBlocks`,
`VerticalLayoutBlocks`, and their respective I/O structures for
managing layout metrics and effects.
- Functions for computing horizontal and vertical layout blocks,
along with utility functions for handling layout words in byte format.
- Stubs for library functions related to font management and rendering.
These changes aim to enhance the font rendering capabilities of the
shadPS4 Emulator Project, providing a robust foundation for future
font-related features.
2026-01-08 03:08:29 +02:00
Valdis Bogdāns
9387adc79e
Merge branch 'main' into fontlib
2026-01-08 00:13:15 +02:00
Ploo
240c1d6441
Update backend.cpp ( #3900 )
2026-01-07 18:36:07 +02:00
kalaposfos13
299159b1e0
logging: fix thread name logging for async logs ( #3898 )
...
* logging: fix thread name logging for async logs
* copyright 2026
2026-01-06 20:49:52 +02:00
Valdis Bogdāns
cfcd365158
Merge branch 'shadps4-emu:main' into fontlib
2026-01-06 14:25:59 +02:00
Quang Ngô
42220dfbba
Add vcs-browser to net.shadps4.shadPS4.metainfo.xml ( #3897 )
2026-01-06 11:48:56 +02:00
kalaposfos13
55e2b0f520
fix float parsing ( #3896 )
2026-01-05 19:56:43 +01:00
georgemoralis
256397aa3b
Net fixes ( #3895 )
...
* support for flag in recv/send
* make kalapsofos happy
* on more SendMessage try
* ReceiveMessage too
2026-01-05 01:57:31 +02:00
Stephen Miller
35da0506b6
set name ( #3894 )
2026-01-04 22:24:37 +02:00
mercury501
975b1d312a
Fixed dialog text input off by one error ( #3892 )
...
* Fixed dialog off by one error
* Fixed exclusion error
---------
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
2026-01-04 21:30:50 +02:00
kalaposfos13
df844f8c02
Add thread names to log lines ( #3893 )
...
* the bare minimum (this won't even compile on windows yet)
* well I guess this is redundant now
* Windows GetThreadName
* Move function to common/thread and add full guest name where applicable
* the loathsome clang-formatter
* do stuff first ask for opinions later
* copyright 2026
* remove unused header
* copyright 2024-2026
---------
Co-authored-by: Stephen Miller <56742918+StevenMiller123@users.noreply.github.com>
2026-01-04 21:10:42 +02:00
Connor Garey
954cc77110
Added a link to CLI messagebox ( #3885 )
...
* Added a link to the CLI tool message box
* Clang fix
* Another Clang fix
* Clang x3
2025-12-30 20:23:21 +01:00
Vladislav Mikhalin
9a3e4ea56b
ajm: support for m4aac ( #3880 )
...
* ajm m4aac
* fix build on unix
* small tunes
* skip 2 frames if nodelay is not set, change to google repo
2025-12-28 13:24:42 +02:00
georgemoralis
aa227cae57
started 0.13.1 WIP
2025-12-24 10:46:40 +02:00
georgemoralis
c414d1f5a1
tagged 0.13.0 release
2025-12-24 10:19:09 +02:00
Vladislav Mikhalin
05f14e3682
ajm fixes ( #3875 )
2025-12-23 11:11:52 +02:00
Valdis Bogdāns
ff947b61a5
Merge branch 'shadps4-emu:main' into fontlib
2025-12-23 01:06:25 +02:00
Rodrigo Cioletti
138425fdf4
Network: Fixed null string crash on sceNetResolverCreate ( #3872 )
...
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
* Network: Fixed null string crash on sceNetResolverCreate
* Assigned an empty string for better code styling
* Fixed wrong commit
2025-12-21 15:50:49 +02:00
Valdis Bogdāns
42f088f56d
Merge branch 'shadps4-emu:main' into fontlib
2025-12-20 14:07:47 +02:00
marecl
2bbb04ff55
ENAMETOOLONG, posix_rename fix ( #3869 )
...
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
* ENAMETOOLONG on paths > 255 characters
Corrected posix_rename behaviour:
* handles errors only if dst exists (shouldn't error out if doesn't)
* recursively removes "old name" (would otherwise fail if it's a not-empty dir)
* actually creates target directory
* Updated detection
* destubbed unlink()
* proper error returned
2025-12-19 14:58:07 +02:00
kalaposfos13
eae5e0ad55
Initialize VK_EXT_shader_atomic_float before VK_EXT_shader_atomic_float2 ( #3867 )
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
2025-12-15 16:50:14 -08:00
Valdis Bogdāns
aa1a2fb94c
Merge branch 'shadps4-emu:main' into fontlib
2025-12-14 23:13:26 +02:00
georgemoralis
9e287564ce
update submodules (ffmpeg,fmt,sdl3) ( #3865 )
...
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
* update submodules (ffmpeg,fmt,sdl3)
* fixed linux builds?
* more linux issues
* let's see more linux...
* baby one more time
2025-12-12 23:40:17 +02:00
Valdis Bogdāns
20927a88d7
Merge branch 'shadps4-emu:main' into fontlib
2025-12-12 22:17:50 +02:00
Stephen Miller
9e7df6ae54
Kernel.Vmm: Remove hack from #2726 ( #3864 )
...
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
* Remove SceKernelInternalMemory mapping
Contrary to my initial beliefs, this is very much a hack.
* Unreachable for unpatched code
This will always infinitely loop, making logs extremely large.
* Update linker.cpp
2025-12-11 12:24:45 +02:00
AlpinDale
de6c5bbb83
cli: add --show-fps to the CLI launcher ( #3860 )
...
* cli: add `--show-fps` to the CLI launcher
* fix: clang-format
* nit: PascalCase -> camelCase
2025-12-08 21:02:54 +01:00
Stephen Miller
65f0b07c34
libkernel: Implement sceKernelEnableDmemAliasing, proper mapping type checks in posix_mmap ( #3859 )
...
* Basic handling for MAP_VOID, MAP_STACK, and MAP_ANON in mmap.
* Update memory.cpp
* Update memory.cpp
* Dmem aliasing check
* Oops
2025-12-08 13:46:32 +02:00
kalaposfos13
2a5910ed51
New translations en_us.ts (OpenOrbis) ( #3858 )
2025-12-07 23:56:51 +02:00
Stephen Miller
391d30cbb1
cpu_patches: Patch stack canary accesses ( #3857 )
...
* Patch stack checks done using fs:[0x28]
Additionally adds support for multiple patches per instruction, since this makes two separate patches we need to conditionally perform for mov instructions.
* Missing include
* Disable patches for Apple
Mac can use their native FS segment directly, so these patches aren't needed
* Oops
2025-12-06 22:47:39 -08:00
TheTurtle
d3ad728ac0
vector_alu: Handle -1 as src1 in v_cmp_u64 ( #3855 )
2025-12-06 15:11:29 -08:00
Odukoya Abdullahi Ademola
5183cbe686
sceHttpUriSweepPath ( #3854 )
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
2025-12-04 10:50:24 +02:00
Odukoya Abdullahi Ademola
9e80cde60d
Implement http uri escape unescape ( #3853 )
...
* Implement sceHttpUriEscape and sceHttpUriUnescape
* Implement sceHttpUriEscape and sceHttpUriUnescape
* edge case
---------
Co-authored-by: Pirky10 <odukoyaabdullah@gmail.com>
2025-12-04 10:50:01 +02:00
kalaposfos13
98fd0689ac
Revert non-Linux parts of #3819 ( #3852 )
...
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
* Revert non-Linux parts of #3819
* More OpenOrbis stuff that I couldn't be bothered to put in a new PR
2025-12-03 15:05:19 +02:00
Lander Gallastegi
9db4642f66
video_core: Scheduler priority pending operation queue ( #3848 )
...
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
* Priority pending ops
* Use priority operations on image download
* clang-format
* Simplify thread
* I'm tired, it's too late :(
2025-12-02 22:27:01 +01:00
kalaposfos13
b135a056ba
Remove debug logging
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
2025-12-02 09:50:11 +01:00
kalaposfos13
dc6013cf0e
Block normal mouse inputs in mouse-to-touchpad mode
...
shadow sniped my PR. :(
2025-12-02 09:41:06 +01:00
Pirky
e5ea55e425
np: Add dialog state tracking for NpCommerce ( #3841 )
2025-12-02 10:22:41 +02:00
kalaposfos13
c3f7a4301c
Add basic mouse-to-touchpad emulation ( #3842 )
2025-12-02 10:21:01 +02:00
Stephen Miller
a5f9280841
Return CPU mode based on param.sfo attributes ( #3846 )
...
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
Values are based on hardware observations.
2025-12-01 10:21:19 +02:00
kalaposfos13
cf866ab294
Don't bother trying to restart the emulator if sceSystemServiceLoadExec is called with an invalid path ( #3845 )
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
2025-11-30 22:40:58 +02:00
Connor Garey
052f3260f3
Sdl message box when no args provided ( #3843 )
...
* Added a message box when no arguments are passed.
* clang-fix
* clang-fix episode 2
* Output message box error to stderr instead of stdout
2025-11-30 19:57:14 +02:00
TheThunderTurner
78e301c3db
libSceNpCommerce ( #3839 )
...
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
* libSceNpCommerce
* copyright notice
2025-11-29 23:47:15 +02:00
psucien
a9f8eaf778
video_core: Initial implementation of pipeline cache ( #3816 )
...
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 implementation
* Fix for crash caused by stale stages data; cosmetics applied
* Someone mentioned the assert
* Async blob writer
* Fix for memory leak
* Remain stuff
* Async changed to `packaged_task`
2025-11-29 11:52:08 +02:00
Quang Ngô
f9ef57f74b
Fix metainfo ( #3834 )
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
2025-11-28 18:36:11 +02:00
Valdis Bogdāns
ba00248973
Merge branch 'shadps4-emu:main' into fontlib
2025-11-26 16:04:34 +02:00
squidbus
1394852791
renderer_vulkan: Remove primitive restart disable support check. ( #3827 )
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
2025-11-24 23:51:39 -08:00
Stephen Miller
6295c32e5c
Render.Recompiler: Implement V_FLOOR_F64 ( #3828 )
...
* VectorFpRound64 decode table
Also fixed definition for V_TRUNC_F64, though I doubt that would change anything important.
* V_FLOOR_F64 implementation
Used by Just Cause 4
* Oops
Never forget your 64s
2025-11-24 23:51:06 -08:00
TheTurtle
14d71a155a
video_core: Reimplement inline data as buffer fill ( #3825 )
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
2025-11-24 23:25:22 +02:00
Valdis Bogdāns
e53d581a78
Merge branch 'main' into fontlib
2025-11-24 22:20:59 +02:00
w1naenator
59785a020d
Scaling and font state
...
Removed env‑driven debug scaling (ScaleMode, GetScaleMode, GetScaleBias, SHADPS4_FONT_SCALE_*).
Added FontState::is_otf_cff and storing of external vmetrics (ext_ascent, ext_descent, ext_lineGap).
Introduced ComputeScaleExtPoint, ComputeScaleExtPixel, IsEmProfileExternalFont and ComputeScaleExtForState to choose ascender‑ vs EM‑based scaling per font (system fonts + CFF → ascender; selected TTF profiles → EM).
Updated callers (sceFontGetCharGlyphMetrics, glyph cache, layout, renderer, clones, scale setters) to use ComputeScaleExtForState instead of ComputeScale / ComputeScaleExt.
System font handling
Added ReportSystemFaceRequest helper to centralize “attach system font or log why not” and avoid repeating the logic at each call site.
Slightly adjusted when system_requested is set and how fallback/system attach errors are reported.
Horizontal layout
sceFontGetHorizontalLayout now logs invalid parameter/handle and, when an external face is present, uses that face’s vmetrics and the per‑state scale to compute baselineOffset and lineAdvance.
(Fallback still uses the simple scale_h‑based approximation.)
Glyph rendering (horizontal)
Reworked sceFontRenderCharGlyphImageHorizontal:
Resolves effective pixel scale from the attached style frame + point/pixel API via ResolveStyleFrameScale.
Uses ComputeScaleExtForState to compute scale_y (and derived scale_x), rather than a single global scale.
Always computes metrics from stbtt_GetCodepointHMetrics + GetCodepointBitmapBoxSubpixel, with metrics->h_bearing_* and h_adv in sync with those scales.
Introduces a clearer origin/gravity model:
System fonts: (x,y) treated as raw top‑left.
Certain external TTFs (EM‑profile) : (x,y) treated as baseline.
Other external fonts (CFF/point etc.): (x,y) treated as line‑top with baseline offset.
Validates surfaces more strictly and returns NO_SUPPORT_SURFACE when buffer/size/bpp are invalid; supports only 1‑bpp and 4‑bpp.
Uses a local glyph_bitmap and a straightforward blit with scissor/clipping, instead of the older mix of cached bitmaps/PUA logging.
Removed PUA/placeholder glyph debug tracing and the more ad‑hoc baseline “adjusted_y” heuristic.
Logging clean‑up
Standardized LOG_INFO/LOG_DEBUG in sceFont* functions:
Info: usually just "called" or a short description (“scale pixel set requested”, etc.).
Debug: "parameters:\n"/"result:\n"/"template state:\n" followed by values on separate lines.
LOG_ERROR messages no longer repeat the function name (logger already prints it); they now say "invalid parameter", "invalid font handle", "no support glyph (face/scale)", "no support surface (buffer)", etc.
Added missing error logs before some early returns (allocation failures, page_count == 0, invalid parameters), and upgraded a few previous LOG_DEBUG “invalid params” to LOG_ERROR where they correspond to an error return.
2025-11-24 22:05:34 +02:00