Commit Graph

717 Commits

Author SHA1 Message Date
boykopovar 2e9761753d
Merge pull request #86 from OverkillLabs/feat/misc-prx-additions
feat(prx): ConvertKeycode, VoiceChat stubs, PlayGo chunk-id fix
2026-09-29 17:30:06 +03:00
boykopovar 2021fa6c02
Merge pull request #145 from adriadam10/ci-dependabot
ci: keep GitHub Actions up to date with Dependabot
2026-09-29 16:12:38 +03:00
OverkillLabs 020579d4fd refactor(prx): drop the PNG encoder from this PR
Per maintainer feedback: PNG encode/decode belongs together in a
future core/Decoder/Png shared by the relinker (icon loading) and
PRX layer, not a one-off libScePngEnc-only encoder. Reverts
libScePngEnc/Export.cpp to the upstream stub and removes the vendored
stb_image_write.h dependency, leaving ConvertKeycode, VoiceChat and
the PlayGo chunk-id fix.
2026-09-29 14:12:42 +03:00
boykopovar 563a1749dd
Merge pull request #111 from oneandonlydean/fix/s-getpc-absolute
fix(shader): make s_getpc_b64 return the shader's absolute address
2026-09-29 13:11:55 +03:00
boykopovar 9edb1f9a95
Merge pull request #110 from oneandonlydean/fix/device-replacement-race
fix(agc): don't let a queue worker record on a device the presenter is replacing
2026-09-29 13:06:30 +03:00
Adrià Franch 2c5a8e2037 ci: keep GitHub Actions up to date with Dependabot
Co-Authored-By: Claude <noreply@anthropic.com>
2026-09-29 10:12:03 +02:00
boykopovar c0755b9ec8
Merge pull request #102 from asimplestray/feat/kernel-aio
feat(kernel): implement Aio request lifecycle
2026-09-29 11:07:10 +03:00
boykopovar 9d6ba601c9
Merge pull request #100 from Digote/feat/shader-s-clause
feat(shader): support S_CLAUSE scheduling hints
2026-09-29 10:58:40 +03:00
boykopovar d841b8420a
Merge pull request #97 from SamG-Coder/codex/kernel-notifications
feat(kernel): deliver plain-text notifications to host output
2026-09-29 10:51:52 +03:00
boykopovar 4ed3199171
Merge pull request #84 from OverkillLabs/feat/pad-gamepad-haptics
feat(pad): motion sensors, rumble, adaptive triggers and light bar over SDL
2026-09-29 10:47:52 +03:00
boykopovar d998717588
Merge pull request #83 from OverkillLabs/feat/agc-shader-improvements
feat(agc,shader): remaining PM4 command-buffer opcodes and shader recompiler hardening
2026-09-29 10:35:36 +03:00
boykopovar 983109fe16
Merge pull request #81 from OverkillLabs/feat/kernel-libc-fixes
feat(libc,kernel): wide-char formatting, sub-tick waits, memory-pool querying, module loader wiring
2026-09-29 10:03:00 +03:00
boykopovar b03e59b8eb
Merge pull request #55 from oneandonlydean/perf/mspace-ordered-allocator
perf(libc): replace the mspace block list with an ordered allocator
2026-09-29 09:57:44 +03:00
OverkillLabs 56d061a350 style(prx): apply CONVENTIONS.md to misc PRX additions
Strip inline explanatory comments (comments are restricted to
technical-debt markers, #endif, and namespace-close trailers) from
HitLog.hpp, libSceConvertKeycode, libSceVoiceChat, libScePngEnc, and
the new hunk in libScePlayGo; add the missing #endif trailer comment
to HitLog.hpp's include guard. Rename the local helpers/params that
didn't match the naming convention: log_soft -> logSoft and
Readable -> readable (private free functions, camelCase), and
snake_case arguments (user_id, request_id, memory_address,
memory_size, output_info) to camelCase. NID export functions and
pre-existing upstream code (libScePlayGo's existing snake_case
parameters, PngEnc's vendored stb_image_write.h) are left untouched.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 04:24:39 +03:00
OverkillLabs e532b19cee refactor(pad): trim comments and apply naming conventions
Bring the pad-gamepad-haptics diff in line with docs/dev/CONVENTIONS.md:
strip explanatory/rationale comments (struct layouts, algorithm notes,
rewired-NID rationale) down to code only, and rename the anonymous-
namespace helpers in PadState.cpp (Normalize/Fuse/EncodeZones/MaxOf/
ScaleStrength) to camelCase to match upstream's free-function style.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 04:24:39 +03:00
OverkillLabs 22b53e3f25 prx: implement scePlayGoGetInstallChunkId for real
Was a NotImplemented stub that returned an empty/undefined result.
For a package where every declared chunk is already local, the
installed-chunk set is identical to the full chunk set already
computed by ValidateChunks()/ValidChunks(), so this simply delegates
to the existing scePlayGoGetChunkId(). Driven by the title's own
playgo-chunkdefs.xml, not any hardcoded per-title chunk count.
2026-09-29 04:24:35 +03:00
OverkillLabs dc6baf629f prx: implement real libScePngEnc PNG encoder
Replaces the 4-stub placeholder with a working create/delete/encode
path backed by stb_image_write. The encode parameter block layout is
inferred by analogy with the decoder's and validated strictly
(dimensions, pitch, buffer sizes, readability of both the source and
destination buffers) before any pixel is touched; anything that does
not fit is rejected rather than guessed at. Handles RGBA and BGRA
source pixel formats.
2026-09-29 04:24:30 +03:00
OverkillLabs 08bec63e1d 3rdparty: vendor stb_image_write.h (public domain / MIT)
Single-header PNG/BMP/TGA/JPG writer from nothings/stb, needed by the
real libScePngEnc encoder implementation added next. Public domain or
MIT licensed, used header-only.
2026-09-29 04:24:25 +03:00
OverkillLabs 556a7fcfdb prx: add libSceVoiceChat offline-safe HLE stub
Init/terminate/handler/event exports are real no-ops. Session and
channel request exports return SCE_VOICE_CHAT error SIGNED_OUT, since
voice chat sessions cannot be established without a network backend.
Matches the offline-stub pattern already used by other online-service
PRX modules in this project.
2026-09-29 04:24:20 +03:00
OverkillLabs 2982aa6a2e prx: add libSceConvertKeycode HLE module
sceConvertKeycodeGetImeKeyboardType is implemented for real (reports
keyboard type 0 for a valid user id). sceConvertKeycodeGetVirtualKeycode
has an unconfirmed ABI, so it only logs its raw arguments and reports
failure rather than guessing a pointer layout.
2026-09-29 04:24:16 +03:00
OverkillLabs 55ed2719d5 refactor: apply naming conventions and drop extern-C comment
Renames template parameters to the TKey-style the conventions doc
requires (TValue, TFunction), removes the extern "C" close comment
(not one of the two allowed structural exceptions), and replaces
the magic error/flag numbers left after the previous comment
cleanup with the existing SCE_KERNEL_ERROR_* constants and a named
RTLD_NOW constant so the code documents itself.
2026-09-29 04:20:28 +03:00
OverkillLabs a1814def3b style: strip explanatory comments per CONVENTIONS.md
Comments in this codebase may only mark technical debt (human-added
only), the end of #endif, and the end of a namespace, per
docs/dev/CONVENTIONS.md. Remove the inline rationale comments added in
the AGC PM4 opcode and shader recompiler robustness commits; the code
itself, the commit history, and the PR description now carry that
context instead.

Notably, Command::WriteMemSemaphore takes the corrected 4-argument
form (address, waitForMailbox, signalType, operation): an earlier
revision of this helper used a different, incompatible argument
order. sceAgc*MemSemaphore callers derive waitForMailbox/signalType
from the low two bits of clientCode, and operation from action
(0 = signal, 1 = wait). This ABI note previously lived as an inline
comment; it is recorded here instead per the no-comments convention.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 04:20:09 +03:00
OverkillLabs d9f8d87c27 refactor: strip explanatory comments to match repo conventions
Comments in this codebase may only mark technical debt (per
docs/dev/CONVENTIONS.md), plus the #endif and namespace-close
structural exceptions. Removes the descriptive comments added on
this branch across PreciseWait.hpp, FormattingWide.cpp, the
direct-memory pool query/free-run plumbing, and the module loader
wiring, keeping the two allowed structural markers intact.
2026-09-29 04:18:04 +03:00
OverkillLabs 5387aef3b7 Merge remote-tracking branch 'origin/main' into feat/kernel-libc-fixes
# Conflicts:
#	core/libs/prx/libkernel/DirectMemory/DirectMemory.hpp
2026-09-29 04:13:58 +03:00
Dean Galvin d9ac21c6c9 fix(shader): make s_getpc_b64 return the shader's absolute address
s_getpc_b64 produced the next instruction's offset from the start of the
shader, so code that addresses data stored behind itself built V#s at a
tiny address. Astro Bot's video-frame NV12->RGB pass draws its quad with
an NGG shader that fetches the four vertices from after its own code
(s_getpc_b64; s_add_u32 0x98; s_addc_u32) - the buffer resolved to 0xf0,
every vertex read as zero, the quad never rasterized and the PlayStation
Studios logo video stayed black.

The result is now GetShaderBase + offset. The resource walk already
evaluates GetShaderBase per request from the code address, so the V#
names the real data and the same code at another address still shares
its compiled variant.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ButHENCbXXt8h4EZuWUabJ
2026-09-29 12:56:48 +13:00
Dean Galvin 7379830398 fix(agc): don't let a queue worker record on a device the presenter is replacing
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ButHENCbXXt8h4EZuWUabJ
2026-09-29 12:55:36 +13:00
Dean Galvin 8f982168e2 perf(libc): replace the mspace block list with an ordered allocator
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ButHENCbXXt8h4EZuWUabJ
2026-09-29 12:53:00 +13:00
boykopovar fe1935ef68
Merge pull request #109 from boykopovar/fix/linux-savedata-build
fix(build): use portable save paths and validate all PRX libraries in CI
2026-09-29 02:29:58 +03:00
boykopovar b01e0bbf52 fix(build): use portable save paths and validate all PRX libraries in CI 2026-09-29 02:24:56 +03:00
boykopovar 1ff73445b1
Merge pull request #108 from boykopovar/refactor/relinker-friendly-usage
fix(relinker): use app0 guest module layout and clarify output diagnostic
2026-09-29 02:18:17 +03:00
boykopovar 7445c65994 chore(readme): return percent calculation info 2026-09-29 02:17:56 +03:00
boykopovar c8beb90a5e build(release): package libraries under libs subfolder 2026-09-29 02:13:22 +03:00
boykopovar 6742ecf70f fix(relinker): use app0 guest module layout and clarify output diagnostics 2026-09-29 02:05:02 +03:00
boykopovar cc41e847c8
Merge pull request #105 from SamG-Coder/codex/quake-native-imports
fix(relinker,libs): decode EMMS and add native string and thread APIs
2026-09-29 01:59:28 +03:00
boykopovar a1e0b95f76
Merge pull request #96 from SamG-Coder/main
feat(shader): support scalar 64-bit reverse and arithmetic shift
2026-09-29 01:55:08 +03:00
boykopovar 9e3df3331c
Merge pull request #107 from asimplestray/feat/libc-mspace-reallocalign
feat(libc): implement sceLibcMspaceReallocalign
2026-09-29 01:46:19 +03:00
boykopovar c4c34ea3be
Merge pull request #80 from OverkillLabs/feat/avplayer-native-state-machine
feat(libSceAvPlayer): implement full AvPlayer state machine
2026-09-29 01:35:13 +03:00
boykopovar a5e7d1fb32
Merge pull request #79 from OverkillLabs/feat/net-rudp-offline-stack
feat(net): offline socket/epoll/resolver stack with FreeBSD errno mapping
2026-09-29 01:31:33 +03:00
boykopovar 23dad6b4d7
Merge pull request #78 from OverkillLabs/fix/msgdialog-state-machine
fix(libSceMsgDialog): real dialog state machine, auto-answer without UI
2026-09-29 01:27:31 +03:00
boykopovar 0d70866817
Merge pull request #77 from OverkillLabs/feat/savedata-core
feat(savedata): general mount/directory/memory-slot save-data core
2026-09-29 01:24:12 +03:00
asimplestray 02b431eb6d feat(libc): implement sceLibcMspaceReallocalign 2026-09-28 22:15:25 +00:00
boykopovar 4c2b052e35
Merge pull request #58 from oneandonlydean/feat/font-freetype
feat(font): port shadPS4's sceFont and sceFontFt on FreeType
2026-09-29 01:07:30 +03:00
boykopovar d807f36b63
Merge pull request #104 from boykopovar/fix/ci-release-win-bash
Windows tests were run via Git Bash. Windows build, tests, and libs target now use cmd.
2026-09-29 00:43:15 +03:00
SamG-Coder 5e708c1608 feat(kernel): add native pthread barriers and thread helpers 2026-09-29 07:39:01 +10:00
SamG-Coder 96b622c6ac feat(libc): add allocating strings and C locale wide conversion 2026-09-29 07:39:01 +10:00
SamG-Coder ee57519cb0 fix(relinker): decode EMMS without a ModRM byte 2026-09-29 07:39:01 +10:00
boykopovar 141b7d7ff0 fix(ci): use git bash for windows release 2026-09-29 00:38:21 +03:00
boykopovar 64066b6e9a
Merge pull request #103 from boykopovar/feat/provide-release
Feat/provide release
Added a release workflow for v* tags: build Windows and Linux, run tests, and publish only if both platforms are successful. The release contains PRX archives, relinker executables, and documentation from docs/user. The build cache is reused.

- `prx-windows-v0.1.0.zip`
- `prx-windows-v0.1.0.tar.gz`
- `prx-linux-v0.1.0.zip`
- `prx-linux-v0.1.0.tar.gz`
- `relinker-v0.1.0.exe`
- `relinker-v0.1.0`
- `COMPATIBILITY.md`
- `INPUT_MAPPING.md`
2026-09-29 00:25:39 +03:00
boykopovar 1bc7f01511 feat(ci): add version to release file names 2026-09-29 00:22:44 +03:00
boykopovar 1071c9e09c feat(ci): add release workflow + update readme 2026-09-29 00:15:21 +03:00