Henrik Rydgård and Claude Opus 5.5
ff7371dcc5
Atrac: Write decoded samples when sceAtracDecodeData returns, not when called
...
On a PSP the Media Engine decodes, and the samples land in the output
buffer as the call returns, a couple of milliseconds in. We wrote them at
once and only then delayed the thread. Since sceAudio plays straight out
of game memory, that matters: Fired Up decodes each chunk to 0x40 bytes into
one of its two buffers, running over the first 16 samples of the other one,
which it has just queued, and relies on the mixer having read those first.
Writing early replaced them about 21 times a second, which is the constant
crackle in its music and intro (it showed up with the sceAudio buffering
rework, which stopped copying buffers at enqueue).
Now the decoder's output is set aside, the old contents put back, and a
CoreTiming event writes the samples just before the thread wakes. Pending
writes are kept in savestates.
Adds audio/blocking/parked, recorded on a PSP: a blocking output that had
to wait returns before any of its buffer has played, so the game really
does depend on the decode's latency.
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected] >
2026-09-24 14:49:09 -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-20 16:39:35 -06:00
2026-09-20 16:39:35 -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
2026-09-22 16:10:28 -06: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-09-24 14:49:09 -06: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-21 15:26:51 -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-09-23 19:30:31 -06: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-09-22 16:10:28 -06:00
2026-09-22 20:10:33 +08: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-09-21 16:50:22 -06:00
2026-09-21 16:50:22 -06: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-23 19:25:24 -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-22 16:10:28 -06:00
2026-09-21 13:10:02 -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-21 14:37:10 -06:00
2026-09-21 14:37:10 -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
2026-09-18 11:38:49 -06:00
2026-09-12 11:52:09 -06:00
2026-09-20 16:39:35 -06:00
2026-09-20 16:39:35 -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
2026-09-24 11:23:59 -06:00
2025-08-06 00:16:34 +02:00
2026-09-19 13:02:44 -06: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
2026-09-10 15:52:53 -06: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
2026-08-12 14:06:16 +02: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-19 13:02:44 -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
2026-09-22 10:04:31 -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
2026-09-23 19:25:24 -06:00
2026-09-23 19:25:24 -06:00
2026-09-10 17:03:07 -06:00
2026-09-21 09:00:48 -06:00
2026-09-20 16:39:35 -06:00
2026-08-24 10:58:34 +02:00
2026-08-24 10:58:34 +02:00