Henrik Rydgård
5c9eda7cd8
KDebugForKernel: implement Kprintf
...
Outrun 2006's USB kernel module calls it on a failed sceUsbbdRegister,
so booting the game printed "Unimplemented function Kprintf". It's the
kernel's debug printf - on hardware it goes to whatever
sceKernelRegisterKprintfHandler() installed, which on a retail PSP is
the serial port, so this is just debug output the game shipped with.
We format it and log it, which is the useful thing to do with it.
The vararg walker that sysclib's sprintf/snprintf already had is now
HLEFormatPrintf() in HLE.cpp, so there's one of these rather than a
second copy. It takes the index of the first vararg (counting a0 as 0)
instead of an offset from a2, which is the same mapping written in
absolute terms - sprintf passes 2 and snprintf 3, where they passed
0 and 1 before.
Kprintf replaces the existing nullptr entry in the KDebugForKernel
table, so no indices move and savestates are unaffected.
2026-09-18 16:26:41 -06:00
..
2026-09-10 17:03:07 -06:00
2026-09-10 17:03:07 -06:00
2025-07-22 17:48:20 +02:00
2026-09-09 08:53:46 -06:00
2025-07-22 17:48:20 +02:00
2026-08-12 14:06:16 +02:00
2025-07-22 17:48:20 +02:00
2026-01-08 22:02:08 +01:00
2026-09-10 17:03:07 -06:00
2026-09-18 16:26:41 -06:00
2026-09-18 16:26:41 -06:00
2026-08-16 16:59:52 +02:00
2026-08-16 16:59:52 +02:00
2026-09-18 16:26:41 -06:00
2026-08-11 10:28:36 +02:00
2026-09-12 13:46:12 -06:00
2026-09-04 18:10:10 -06:00
2025-03-31 11:17:50 +02:00
2025-07-02 00:02:33 +03:00
2025-07-02 01:30:21 +03:00
2026-08-10 10:04:21 +02:00
2025-08-06 17:44:54 +02:00
2026-05-02 11:07:34 +02:00
2025-06-13 23:29:49 +02:00
2026-09-06 14:11:18 +02:00
2026-09-04 13:10:54 -06:00
2026-01-18 23:40:13 +02:00
2025-03-31 10:24:03 +02:00
2026-08-16 16:59:52 +02:00
2026-02-17 09:40:27 +01:00
2026-09-10 15:52:53 -06:00
2025-07-20 19:30:35 +02:00
2025-03-31 11:17:50 +02:00
2026-09-11 21:09:33 -06:00
2026-08-12 14:06:16 +02:00
2025-06-25 11:34:07 +02:00
2026-09-10 17:03:07 -06:00
2026-09-10 17:03:07 -06:00
2026-09-18 09:44:39 -06:00
2026-09-18 09:44:39 -06:00
2025-03-31 11:17:50 +02:00
2025-03-31 11:17:50 +02:00
2026-08-24 17:37:39 +02:00
2026-08-21 10:56:06 +02:00
2026-08-12 14:06:16 +02:00
2025-06-05 22:46:24 +02:00
2026-08-24 10:58:34 +02:00
2026-08-24 10:58:34 +02:00
2026-08-12 14:06:16 +02:00
2026-09-11 21:09:33 -06:00
2026-09-17 13:51:45 -06:00
2026-08-18 13:42:13 +02:00
2026-08-16 16:59:52 +02:00
2026-09-11 21:09:33 -06:00
2026-09-11 21:09:33 -06:00
2025-03-31 11:17:50 +02:00
2025-04-03 22:39:14 +02:00
2026-08-12 14:06:16 +02:00
2026-02-09 14:35:32 +01:00
2026-08-11 20:12:10 +02:00
2026-09-11 21:09:33 -06:00
2026-09-09 14:43:39 -06:00
2026-08-19 18:38:03 +02:00
2026-09-10 15:52:53 -06:00
2025-08-06 00:16:34 +02:00
2026-09-10 15:25:47 -06:00
2026-08-19 18:38:03 +02:00
2026-09-18 09:43:39 -06:00
2026-04-28 16:27:12 +02:00
2026-08-12 14:06:16 +02:00
2026-09-18 11:38:49 -06:00
2026-08-24 10:58:34 +02:00
2026-09-04 18:10:10 -06:00
2026-09-04 18:10:10 -06:00
2026-08-17 16:01:23 +02:00
2026-09-10 17:02:50 -06:00
2026-09-18 16:26:41 -06:00
2026-09-04 18:10:10 -06:00
2026-09-10 09:52:01 -06:00
2026-07-25 14:53:02 +02:00
2026-09-18 10:24:43 +09:00
2026-09-12 11:11:41 -06:00
2026-09-10 09:52:01 -06:00
2026-08-17 16:01:23 +02:00
2026-09-04 18:10:10 -06:00
2026-08-17 16:01:23 +02:00
2026-09-04 18:10:10 -06:00
2026-09-08 11:15:15 -06:00
2026-09-08 15:18:02 -06:00
2026-09-08 15:18:02 -06:00
2026-08-12 14:06:16 +02:00
2026-08-11 22:27:44 +02:00
2026-09-08 15:18:02 -06:00
2026-09-11 21:09:33 -06:00
2026-09-18 09:45:11 -06:00
2025-07-20 19:32:05 +02:00
2025-03-31 11:17:50 +02:00
2025-02-14 09:50:55 -06:00
2026-09-18 11:38:49 -06:00
2026-09-12 11:52:09 -06:00
2026-09-18 11:59:48 -06:00
2026-09-18 11:38:49 -06:00
2026-08-12 14:06:16 +02:00
2026-09-11 21:09:33 -06:00
2026-08-12 14:06:16 +02:00
2025-02-12 16:49:43 +03:00
2026-09-10 15:52:53 -06:00
2025-08-06 00:16:34 +02:00
2026-08-12 14:06:16 +02:00
2026-04-23 11:12:58 +02:00
2026-08-12 14:06:16 +02:00
2025-07-01 19:56:09 +03:00
2025-01-21 12:22:32 +01:00
2025-01-21 12:22:32 +01:00
2026-09-10 15:52:53 -06:00
2025-01-21 12:22:32 +01:00
2026-08-11 20:14:01 +02:00
2025-04-07 22:16:32 +02:00
2026-08-12 14:06:16 +02:00
2025-01-09 09:06:23 +01:00
2026-08-12 14:06:16 +02:00
2025-01-21 17:41:53 +01:00
2025-03-31 11:17:50 +02:00
2026-08-11 10:28:36 +02:00
2026-08-11 10:28:47 +02:00
2026-09-11 21:09:33 -06:00
2025-08-15 16:35:25 +02:00
2026-09-11 21:09:33 -06:00
2026-08-11 10:28:47 +02:00
2026-08-24 17:37:39 +02:00
2026-08-19 18:38:03 +02:00
2026-08-24 09:30:44 +02:00
2025-04-14 22:38:22 +02:00
2026-09-08 11:15:15 -06:00
2026-09-08 11:15:15 -06:00
2026-09-10 15:30:03 -06:00
2025-04-03 14:13:50 +02:00
2026-08-24 12:15:31 +02:00
2026-08-24 11:12:59 +02:00
2026-09-09 14:43:39 -06:00
2026-08-19 18:38:03 +02:00
2026-09-09 10:48:53 -06:00
2025-04-12 11:35:55 +02:00
2025-03-31 11:17:50 +02:00
2026-09-11 21:09:33 -06:00
2025-03-31 11:17:50 +02:00
2026-09-11 21:09:33 -06:00
2025-03-31 11:17:50 +02:00
2026-08-11 20:14:01 +02:00
2026-09-10 15:52:53 -06:00
2025-02-04 11:53:22 -06:00
2026-09-04 18:10:10 -06:00
2025-03-31 11:17:50 +02:00
2026-08-08 18:18:28 +02:00
2025-03-31 11:17:50 +02:00
2026-08-21 10:32:21 +02:00
2024-10-15 15:30:37 +02:00
2026-09-18 13:50:25 -06:00
2025-11-04 11:48:47 +01:00
2026-09-10 17:03:07 -06:00
2026-09-18 11:59:48 -06:00
2026-09-17 10:09:48 -06:00
2026-08-24 10:58:34 +02:00
2026-08-24 10:58:34 +02:00
2025-01-22 10:12:56 +01:00
2025-01-22 10:12:56 +01:00
2024-09-17 11:34:42 +02:00