mirror of
https://github.com/libretro/Libretro-Supermodel.git
synced 2026-11-10 11:11:26 -10:00
Simulate the Model 3 network board in the Libretro core and carry its frames over RetroArch Netplay's packet interface (RETRO_ENVIRONMENT_SET_NETPACKET_INTERFACE), so linked cabinets can play together without the standalone socket board. Supported families: Daytona USA 2, Harley-Davidson, Scud Race, Sega Rally 2, Ski Champ, Spikeout and Spikeout Final Edition (Type 1); Le Mans 24, Virtual On 2 and Dirt Devils (Type 2). Two to sixteen cabinets, with a handshake, a common roster, role checks and a per-frame exchange with a timeout. New options: Network Board (connected by default) and Linked Cabinets (2-16). Squashed from these commits, whose intermediate steps (Daytona 2 only, then Scud Race, then all Type 1, then Type 2) have no value on their own:e7ea7d48b0Add experimental Daytona 2 cabinet networking437256ddbbAdd experimental Scud Race cabinet networkingc4f012958aRecognize linked-cabinet network hardwared43eda03ecEnable Sega Rally 2 network transport55b59bbcb3Support multi-cabinet linked playbc3788aea7Enable netpacket transport for all Type 1 gamesf7029c25f6Add Type 2 linked-cabinet transport03ee7631c0Connect the network board by defaultad99627b37Document all supported linked-cabinet families74da0c469bDocument linked-cabinet role requirements (option text) Adapted on dev: - The game-aware NVRAM settings options are not on dev, so each cabinet's link role (Master/Slave/Satellite) and car or machine number are set in the game's Service Menu, as on real cabinets; the option descriptions say so. Option visibility per game is left out. - The NetBoard config defaults were only defined for Windows; they are now defined on every platform, and NetworkCabinets uses unsigned bounds so it compiles. - Network, NetworkCabinets and SimulateNet are applied after the Supermodel.ini merge, like the other core options. - jni/Android.mk gets -DNET_BOARD and the new source file. - The README part of74da0c4waits for the dev README. Tested: Linux, two RetroArch 1.22.2 instances over localhost Netplay: Daytona 2 (Type 1) and Le Mans 24 (Type 2) link as Master and Slave and exchange frames; Daytona 2 races show the other cabinet's car at full speed. Single player with the board connected and no Netplay: Daytona 2, Scud Race, Sega Rally 2 and Le Mans 24 boot to attract mode as before, same speed and log. Windows, macOS, RPi5 and Android arm64 (ndk-build) builds pass.