mirror of
https://github.com/libretro/Libretro-Supermodel.git
synced 2026-11-10 03:01:26 -10:00
Document linked-cabinet role requirements
This commit is contained in:
1 parent
cc21923f58
commit
74da0c469b
3 files changed
+34
-9
No files matched your search
+19
-2
@@ -127,10 +127,27 @@ stop at a network check. `NVRAM Settings` is separate and disabled by default;
|
||||
when enabled, it exposes only the fields and values validated for the current
|
||||
ROM set and reapplies those per-game choices at startup.
|
||||
|
||||
## Linked-cabinet networking
|
||||
|
||||
`Network Board` controls whether supported games see the emulated connection
|
||||
board. During RetroArch Netplay, the core uses only the official Libretro
|
||||
Netpacket interface. Every peer must select the same linked-cabinet count and
|
||||
configure compatible Master/Slave or relay roles in the game's Service Menu.
|
||||
Netpacket interface; it does not open its own sockets or perform peer
|
||||
discovery.
|
||||
|
||||
The frontend and emulated-cabinet roles are deliberately paired. RetroArch
|
||||
assigns participant ID 0 to the host, which the core uses as the first Model 3
|
||||
cabinet and network initiator. Therefore:
|
||||
|
||||
* start the RetroArch Netplay host before its clients;
|
||||
* configure the RetroArch host as `Master` in the game's NVRAM settings or
|
||||
Service Menu;
|
||||
* never configure a RetroArch client as `Master`;
|
||||
* configure every Type 1 client as `Slave`; Type 2 clients may use a supported
|
||||
`Slave / Satellite` role.
|
||||
|
||||
Every peer must use the same ROM set, core version, `Linked Cabinets` value,
|
||||
and compatible timing settings. Changes made through `NVRAM Settings` take
|
||||
effect when the content is restarted.
|
||||
|
||||
## 🛠 Build Instructions
|
||||
|
||||
|
||||
@@ -514,12 +514,20 @@ NVRAM_INFO(kDifficultyInfoStarWars, Setting::Difficulty, "Difficulty", "Set the
|
||||
NVRAM_INFO(kDifficultyInfo8, Setting::Difficulty, "Difficulty", "Set the operator difficulty level stored in NVRAM.", kDifficulty8);
|
||||
NVRAM_INFO(kDifficultyInfo16, Setting::Difficulty, "Difficulty", "Set the operator difficulty level stored in NVRAM.", kDifficulty16);
|
||||
|
||||
NVRAM_INFO(kLinkInfoDaytona, Setting::LinkMode, "Link Mode", "Set the cabinet link mode stored in NVRAM.", kLinkDaytona);
|
||||
NVRAM_INFO(kLinkInfoSingle, Setting::LinkMode, "Link Mode", "Set the cabinet link mode stored in NVRAM.", kLinkSingle);
|
||||
NVRAM_INFO(kLinkInfoA3, Setting::LinkMode, "Link Mode", "Set the cabinet link mode stored in NVRAM.", kLinkA3Four);
|
||||
NVRAM_INFO(kLinkInfoLeMans, Setting::LinkMode, "Link Mode", "Set the cabinet link mode stored in NVRAM.", kLinkLeMans);
|
||||
NVRAM_INFO(kLinkInfoStandAlone, Setting::LinkMode, "Link Mode", "Set the cabinet link mode stored in NVRAM.", kLinkStandAlone);
|
||||
NVRAM_INFO(kLinkInfoRally, Setting::LinkMode, "Link Configuration", "Set Sega Rally 2's combined link role and car number stored in NVRAM.", kLinkRally);
|
||||
static constexpr char kType1LinkDescription[] =
|
||||
"Set the cabinet link mode stored in NVRAM. For RetroArch Netplay, start "
|
||||
"the host first and select Master on it. Every client must use Slave.";
|
||||
static constexpr char kType2LinkDescription[] =
|
||||
"Set the cabinet link mode stored in NVRAM. For RetroArch Netplay, start "
|
||||
"the host first and select Master on it. Clients cannot use Master; select "
|
||||
"a supported Slave / Satellite role.";
|
||||
|
||||
NVRAM_INFO(kLinkInfoDaytona, Setting::LinkMode, "Link Mode", kType1LinkDescription, kLinkDaytona);
|
||||
NVRAM_INFO(kLinkInfoSingle, Setting::LinkMode, "Link Mode", kType1LinkDescription, kLinkSingle);
|
||||
NVRAM_INFO(kLinkInfoA3, Setting::LinkMode, "Link Mode", kType2LinkDescription, kLinkA3Four);
|
||||
NVRAM_INFO(kLinkInfoLeMans, Setting::LinkMode, "Link Mode", kType2LinkDescription, kLinkLeMans);
|
||||
NVRAM_INFO(kLinkInfoStandAlone, Setting::LinkMode, "Link Mode", kType1LinkDescription, kLinkStandAlone);
|
||||
NVRAM_INFO(kLinkInfoRally, Setting::LinkMode, "Link Configuration", kType1LinkDescription, kLinkRally);
|
||||
NVRAM_INFO(kCarInfo16, Setting::LinkId, "Car Number", "Set the linked-cabinet car number stored in NVRAM.", kCar16);
|
||||
NVRAM_INFO(kCarInfo8, Setting::LinkId, "Car Number", "Set the linked-cabinet car number stored in NVRAM.", kCar8);
|
||||
NVRAM_INFO(kMachineInfo4, Setting::LinkId, "Machine Number", "Set the linked machine number stored in NVRAM.", kMachine4);
|
||||
|
||||
@@ -67,7 +67,7 @@ static struct retro_core_option_v2_definition option_defs[] = {
|
||||
"supermodel_network_cabinets",
|
||||
"Linked Cabinets",
|
||||
NULL,
|
||||
"Set the total number of Model 3 cabinets expected in the RetroArch Netplay session. The host waits for this exact number before starting the emulated cabinet link. Every instance must use the same value. Two- and three-cabinet sessions have been tested; larger values remain experimental. Requires a content restart.",
|
||||
"Set the total number of Model 3 cabinets expected in the RetroArch Netplay session. The host waits for this exact number before starting the emulated cabinet link. Every instance must use the same value. The RetroArch host must use the game's Master role; clients cannot use Master. Type 1 clients must use Slave; Type 2 clients may use a supported Slave / Satellite role. Start the host before its clients. Two- and three-cabinet sessions have been tested; larger values remain experimental. Requires a content restart.",
|
||||
NULL,
|
||||
"system",
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user