mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-09-03 03:05:18 +02:00
Accept all four broadcaster names, and alias memory reads to uintValue
broadcast.config.set rejected "game" and "stepping" as unsupported, though both are documented and both are real broadcasters. The valid keys are whatever already exists in the client's disallowed map, and that map starts empty and only grows as a side effect of operator[] the first time each category broadcasts - so which keys were accepted depended on what had happened to fire yet. "logger" and "input" work because the broadcast loop touches them every lap; "game" and "stepping" only appear once one actually occurs. Seed all four at connection setup. Unknown keys are still refused, which is the useful half of the old behaviour. The numeric memory reads answered with "value" while cpu.getReg and cpu.getAllRegs answer with "uintValue". Nothing marks which is which, so a client that guesses gets a missing key - and one that defaults a missing key to zero silently reports plausible nonsense, which cost real time during the CrossCraft investigation (an empty vtable that wasn't). Write both names. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GZq8ZtJmFY7bkX5FVkr3P9
This commit is contained in:
co-authored by
Claude Opus 5
parent
28b3dd9da1
commit
6bcc376c06
@@ -188,6 +188,13 @@ void HandleDebuggerRequest(const http::ServerRequest &request) {
|
||||
|
||||
WebSocketClientInfo client_info;
|
||||
auto& disallowed_config = client_info.disallowed;
|
||||
// Seed every broadcaster category. broadcast.config.set only accepts keys that already exist
|
||||
// here (so a typo is rejected rather than silently ignored), and these otherwise only appear
|
||||
// as a side effect of operator[] the first time each category actually broadcasts - which
|
||||
// meant "game" and "stepping" were rejected as unsupported until one happened to fire, even
|
||||
// though they're documented and valid. Keep in sync with the Broadcast calls further down.
|
||||
for (const char *category : { "logger", "input", "game", "stepping" })
|
||||
disallowed_config[category] = false;
|
||||
|
||||
LogBroadcaster logger;
|
||||
InputBroadcaster input;
|
||||
|
||||
Reference in New Issue
Block a user