Commit Graph
102 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Sonnet 5 21b7ce7392 Expose EventFlag/Mutex/Semaphore/MsgPipe/Callback in their headers
These KernelObject subclasses (and their Native* status structs) were
private implementation details of their respective .cpp files. Move them
into the matching .h instead, so external code - specifically the upcoming
WebSocket kernel-object introspection endpoints - can read a live object's
state directly via kernelObjects.Get<T>()/Iterate<T>(), the same way
PSPModule/PSPThread already can. Read-only by convention: nothing outside
each file should call DoState() or otherwise mutate these; the fields are
public here for that file's own pre-existing use, not an invitation to
write from elsewhere.

To avoid pulling each type's full dependency set (Memory::, BlockAllocator,
CoreTiming, HLEKernel::...) into headers many other files include, non-trivial
method bodies (DoState, and MsgPipe's buffer/wait-list management) are
declared in the header but still defined out-of-line in the .cpp, same as
before - only genuinely trivial one-liners went inline.

KernelObjectPool also gains IterateAll(), a type-agnostic sibling of the
existing Iterate<T>() - walks every live kernel object regardless of type,
for a coarse "what's alive right now" overview.

No behavior change - this is a pure visibility/declaration-vs-definition
move, not new functionality. That lands in a follow-up commit.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GZq8ZtJmFY7bkX5FVkr3P9
2026-08-17 16:01:23 +02:00
Henrik Rydgård 9f90512ef6 Make instruction cache invalidation (for us, jit cache invalidation) clearer 2026-08-16 16:59:52 +02:00
Henrik Rydgård bb3862b37e Revert "Extend LoadExecForKernel with real VSH loadexec/exit syscalls"
This reverts commit 510cfb421c.
2026-08-07 16:01:27 +02:00
Henrik RydgårdandClaude Sonnet 5 510cfb421c Extend LoadExecForKernel with real VSH loadexec/exit syscalls
Adds SceKernelLoadExecVSHParam (matching JPCSP's reference layout - its
first four fields line up with the existing SceKernelLoadExecParam,
which is why the plain sceKernelLoadExec already worked for
sceKernelLoadExecVSHMs2) and fills in the rest of LoadExecForKernel's
NIDs from JPCSP: real implementations for sceKernelExitVSHVSH/Kernel
(mirrors sceKernelExitGame) and sceKernelLoadExecBufferVSHUsbWlan (loads
an exec from an in-RAM buffer instead of a file - the VSH's "push a game
over USB/WLAN" path), plus UNIMPL stubs for everything JPCSP itself only
knows by NID.

sceKernelLoadExecBufferVSHUsbWlan needed __KernelLoadExec split into a
file-reading front end and a shared __KernelLoadExecFromPtr back end
that both it and the new buffer-based path call into - a pure
extract-method refactor of the single most heavily used boot path in the
emulator. Verified no regression: same 11 passed / 9 pre-existing-failed
split on pspautotests/tests/cpu/*, and loader/bss still passes, before
and after this change.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSNaZnHCjmryS3ziVN9gZU
2026-08-07 08:49:25 +02:00
Henrik Rydgård b5a959c294 Reduce logspam. No need to log in KernelObjectPool::Get, all callers should log on failure themselves. 2025-04-03 22:10:22 +02:00
Henrik Rydgård 8cd28dfd82 Start work on real modules window in the debugger 2025-04-02 10:09:19 +02:00
Henrik Rydgård 4a15ff950c ImDebugger: Add new Modules windows, turn the old Modules window into what will be a symbol browser 2025-04-02 10:09:19 +02:00
Henrik Rydgård 0f840e6240 Move JPEG error codes to the big enum, some include cleanup 2025-03-21 20:44:46 +01:00
Henrik Rydgård adbceabd93 Show fake-loaded HLE modules in the debugger. Notify Atrac of its address when one is loaded
Will be useful later.
2025-03-15 15:56:11 +01:00
Henrik Rydgård d7fe62badf Fix odd vtimer error code discrepancy 2025-03-05 17:02:46 +01:00
Henrik Rydgård b2b0ff1753 Consolidate error codes in ErrorCodes.h 2025-02-04 11:53:00 -06:00
Henrik Rydgård 7db68d50bb More hleLog* 2025-01-28 09:31:38 +01:00
Henrik Rydgård e95d9b15b4 Add kernel object viewer, reimpl "Run to here" 2024-11-26 00:13:37 +01:00
Henrik Rydgård e01ca5b057 Logging API change (refactor) (#19324)
* Rename LogType to Log

* Explicitly use the Log:: enum when logging. Allows for autocomplete when editing.

* Mac/ARM64 buildfix

* Do the same with the hle result log macros

* Rename the log names to mixed case while at it.

* iOS buildfix

* Qt buildfix attempt, ARM32 buildfix
2024-07-14 14:42:59 +02:00
Henrik Rydgård a059750f5a Add basic checkbox UI for GPI switched, add display of GPO LEDs
Try it with Parappa.
2024-05-12 18:01:25 +02:00
Henrik Rydgård 4e732af786 Minor cleanup, add a speculative comment. 2023-05-04 10:07:49 +02:00
Unknown W. Brackets 2479d52202 Global: Reduce includes of common headers.
In many places, string, map, or Common.h were included but not needed.
2022-01-30 16:35:33 -08:00
aliaspider 9a3e5879bb Global: Correct many endian types and casts. 2021-02-18 22:25:24 -08:00
Henrik Rydgård 989e353482 Common.h shouldn't include Log.h.
Buildfixes

More buildfixes. Move JSON code to common.
2020-10-04 11:42:14 +02:00
sorgts a8a1c67df0 Fix build with clang-cl 2020-08-13 16:48:48 +02:00
Unknown W. Brackets de439f8cd7 Correct a crash on a missing kernel object. 2020-07-22 23:59:09 -07:00
Henrik Rydgård df6d0a8ae7 PSP kernel: Improve logging when accessing bad kernel object handles. 2020-07-20 11:57:11 +02:00
Henrik Rydgård c5e0b799d9 Remove category from _assert_msg_ functions. We don't filter these by category anyway.
Fixes the inconsistency where we _assert_ didn't take a category but
_assert_msg_ did.
2020-07-19 20:33:25 +02:00
Henrik Rydgård 1010a07f65 Expose more information on the crash screen (current kernel thread) 2020-07-12 16:47:53 +02:00
Henrik Rydgård bf73d3d663 Address Unknown's feedback
https://github.com/hrydgard/ppsspp/pull/7965/files
2020-04-26 11:19:31 +02:00
Unknown W. Brackets f4e8e68c44 Io: Cleanup file not found error codes.
Replay (#10888) caused error to be non zero, which was later translated to
something else, confusingly...
2018-05-06 10:15:05 -07:00
Henrik Rydgård 6a1fa728d8 Remove Globals.h 2017-08-31 17:15:22 +02:00
Unknown W. Brackets 0b43e28595 Move SysMemForKernel to sceKernelMemory. 2016-08-04 09:46:27 -07:00
Henrik Rydgard 9825dad340 Zero deleted objects in the kernel object pool
Just doing this to narrow down the possible causes of our crashes in WaitSema/SignalSema that I can't reproduce and only have Android auto-reports of... The crash comments do mention the GTA games though.
2015-11-25 14:24:32 +01:00
Henrik Rydgard 7dd631b7f2 Some code reformatting of the kernel object pool
Also deletes an unused [] operator
2015-11-25 13:00:29 +01:00
Unknown W. Brackets fcf0518223 Update all the HLE tables with arg and ret info. 2015-03-22 20:51:55 -07:00
Lioncash f830d5dec7 Core: Mark some functions as const 2014-12-03 15:16:11 -05:00
Unknown W. Brackets feeb03b5ff Fix return values in sceKernelGetThreadmanIdList().
Support other object types as well, but not threads/etc. properly yet.
2014-08-17 14:38:54 -07:00
Unknown W. Brackets 774589aa4f Correct the Tlspl TMID value. 2014-08-17 14:38:54 -07:00
raven02 21e4dc60eb Move POWER_VMEM_IN_USE to sceKernel.h 2014-04-27 20:50:11 +08:00
Felix-Dev 38c40be590 Another line indentation fix. 2014-04-03 21:47:45 +02:00
Felix-Dev f904554020 Fixed line indentation. 2014-04-03 21:37:18 +02:00
Felix-Dev 5fe0783593 Added name for PSP error code 0x80000023 and replaced the various uses of that error code number with its error code name. 2014-04-03 18:12:22 +02:00
lioncash b9886942a7 Fix some vertical alignments in misc Core source files. 2014-03-03 11:16:53 -05:00
sum2012 62e9e42b2c Add LoadExecForKernel and SysMemForKernel
Find in chinese verison of Tales of Phantasia
sample log:https://gist.github.com/sum2012/5396a013391d9f7b6124
2014-01-21 22:02:07 +08:00
Unknown W. Brackets 4f585fd7a6 Fix a few minor typos. 2014-01-11 22:59:52 -08:00
Unknown W. Brackets f14361c3b8 Add a bunch more missing cstring includes. 2013-12-30 21:37:19 -08:00
Henrik Rydgård 00c32ddadb Mostly get rid of including "Globals.h" 2013-12-30 10:17:11 +01:00
Henrik Rydgard 1d2f1efd06 Fix function replacement on ARM 2013-12-18 00:09:08 +01:00
Henrik Rydgard 32f479b0a6 Assorted log spam reductions.
Also let Java know of some important events. Not used for anything yet.
2013-12-04 17:43:00 +01:00
Unknown W. Brackets e73d43c434 Correct sceKernelTlspl func names, etc.
This is mostly pedantic but it's nice to have the right names.
2013-12-02 23:40:16 -08:00
Unknown W. Brackets 738dfc84e4 Speed up __GetCurrentThread(), it's called a lot.
This only needs to be an assertion.
2013-11-02 22:12:43 -07:00
Henrik Rydgard 1595ac3386 Log spam reduction - only WARN about non-zero bad handles, and sceAtracSetLoopNum gets demoted to DEBUG. 2013-10-22 19:56:05 +02:00
Unknown W. Brackets d1d9fb5bbf Start the kernel ids over on reset.
So that things aren't affected by wrapping over.  Although, maybe we
should handle that better if it causes incorrect behavior...
2013-09-17 08:11:51 -07:00
Unknown W. Brackets b898e397aa Correct sceKernelGetThreadStackFreeSize().
It was always returning 0.
2013-09-10 01:31:03 -07:00