mirror of
https://github.com/mihawk-99/PS5_RetroArch.git
synced 2026-10-21 08:10:25 -05:00
Expose 846 options from 15 pinned PS5 core catalogs before first use,
with categories, descriptions, exact choices, saved-value preservation,
and Advanced mode. Include installed cores without saved profiles and
preserve first-use PPSSPP/Dolphin edits through their profile migration.
Bind dynamic runtime options to the catalog and core binary revision.
Validation: all five tools/verify.sh gates pass (96 tests), all 15 core
browser checks pass, and the deployed native menu-only run exposes all
846 catalog keys with matching JSON, build identity and normal return.
Restore original settings and stop the temporary helper after testing.
Evidence: evidence/webui-settings-guide/{capture,expectation}.json
Reproduce: python3 tools/evidence.py compare evidence/
Raw native record: klog/webui-guide/all-cores-20261002-130144/report.json
39 lines
1.5 KiB
C++
39 lines
1.5 KiB
C++
/* Host harness for the same HTTP handlers shipped in the console title. */
|
|
#include "../src/webui_ps5.h"
|
|
#include "../vendor/retroarch/libretro-common/include/libretro.h"
|
|
#include <csignal>
|
|
#include <cstdlib>
|
|
#include <unistd.h>
|
|
static volatile sig_atomic_t stopped = 0;
|
|
static void stop(int)
|
|
{
|
|
stopped = 1;
|
|
}
|
|
int main(int argc, char **argv)
|
|
{
|
|
if (argc != 3)
|
|
return 2;
|
|
signal(SIGTERM, stop);
|
|
signal(SIGINT, stop);
|
|
if (!ps5_webui_start(argv[1], static_cast<unsigned short>(std::atoi(argv[2]))))
|
|
return 1;
|
|
const retro_core_option_v2_category categories[] = {{"video", "Video", "Picture choices"},
|
|
{nullptr, nullptr, nullptr}};
|
|
retro_core_option_v2_definition definitions[2]{};
|
|
definitions[0].key = "test_resolution";
|
|
definitions[0].desc = "Resolution <test>";
|
|
definitions[0].info = "A description with \"quotes\" and a newline\n.";
|
|
definitions[0].category_key = "video";
|
|
definitions[0].values[0] = {"1", "Native"};
|
|
definitions[0].values[1] = {"2", "Double"};
|
|
retro_core_options_v2 options{const_cast<retro_core_option_v2_category *>(categories),
|
|
definitions};
|
|
ps5_webui_core_options("Metadata test", &options);
|
|
ps5_webui_core_options("../escape", &options);
|
|
const retro_variable legacy[] = {{"test_mode", "Mode; normal|fast"}, {nullptr, nullptr}};
|
|
ps5_webui_core_variables("Legacy test", legacy);
|
|
while (!stopped)
|
|
usleep(10000);
|
|
ps5_webui_stop();
|
|
}
|