Correct CTCL description: acronym expansion is inference, not attested
Searched the firestorm tree for an authoritative expansion of "CTCL" and found none. Replaced the guessed "cafe/Tesla control layer" wording with the attested facts (Console 2 Launcher message comments, _ECTCL_Console/ _ECTCL_Launcher roles, Tesla-centric coin-op API) and flagged the reading "Console-Tesla Control Layer" as inference. New facts from the dig: CTCL is game-agnostic (_EAT_MW4/_EAT_RP) and has its own ports 1000/1001, added to the port map. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -65,11 +65,25 @@ machines on the internet.
|
||||
lobby UI + ≥32 drop zones per map). Two full bays in one match needs it; one bay's
|
||||
16 split across two sites does not.
|
||||
- Replication is ~O(n²) at the session host — host placement/upstream matters.
|
||||
- **CTCL (cafe/Tesla control layer):** `ctcl.dll`/`ctcls.dll` + per-role inis
|
||||
(`ctcl-game.ini`, `ctcl-camera.ini`, `ctcl-mr.ini`): `[teslas]` maps pod IP → pilot
|
||||
seat; `[Games]` lines carry the exe + `-ctcltype` role; aux-message and taunt tables.
|
||||
The bay roster is **static config**, which is exactly what a site-ID-based addressing
|
||||
scheme can template.
|
||||
- **CTCL — the console↔Tesla control layer:** `ctcl.dll` (client, compiled into
|
||||
game/launcher/editor from shared `ctcl.cpp`) + `ctcls.dll` (server side,
|
||||
`code\ctcls\`) + per-role inis (`ctcl-game.ini`, `ctcl-camera.ini`, `ctcl-mr.ini`):
|
||||
`[teslas]` maps pod IP → pilot seat; `[Games]` lines carry the exe + `-ctcltype`
|
||||
role; aux-message and taunt tables. The bay roster is **static config**, which is
|
||||
exactly what a site-ID-based addressing scheme can template.
|
||||
- *Naming note:* the acronym is never expanded anywhere in source, comments, or
|
||||
docs. What **is** attested (`ctcl.h`, `ctcl.cpp`, `ctcl_params.h`): message
|
||||
directions are commented "Console 2 Launcher" / "Launcher 2 Console"; role
|
||||
constants are `_ECTCL_Console` / `_ECTCL_Launcher`; the API is Tesla-centric
|
||||
(`CTCL_GetTeslaCount`, `STeslaInfo`, `MAX_TESLAS 16`, `MAX_CAMERAS 4`) and
|
||||
coin-op-aware (`CTCL_CoinDisplay`). So "Console↔Tesla Control Layer/Link" is our
|
||||
best reading — treat it as inference, not fact.
|
||||
- **Game-agnostic:** app-type constants `_EAT_MW4` and `_EAT_RP` (`ctcl_params.h`)
|
||||
— the same control layer drives both Firestorm and Red Planet. One layer for
|
||||
SiteLink to reason about, not two.
|
||||
- **Own ports:** `PORT_Launcher 1000`, `PORT_Game 1001`, `PORT_CameraShip 1001`
|
||||
(`Launcher\ctcl.cpp`) — distinct from Munga 1501 and DirectPlay (transport
|
||||
details unverified; confirm in Phase 0).
|
||||
- **Dedicated server exists:** `mw4dedicatedui` project (`...\mw4\Code\mw4dedicatedui`) —
|
||||
option to host cross-site matches on a neutral box instead of one bay's console.
|
||||
- **Dormant internet-era code:** MSN Zone "GUN" matchmaking (`Games_GUN.cpp`,
|
||||
@@ -122,6 +136,7 @@ machines on the internet.
|
||||
| 53290 | TCP | console → pod | TeslaLauncher RPC (provision/install/launch), OFB-encrypted framed JSON |
|
||||
| (local bcast) | UDP | pod ↔ console | SecureConfig first-boot beacons (on-site only) |
|
||||
| 1501 | TCP | console → pod | Munga game control (RP; BT411 uses same convention, port per `-net`) |
|
||||
| 1000 / 1001 | TCP/UDP (unverified) | console ↔ launcher/game/camera | CTCL control channel (`PORT_Launcher`/`PORT_Game`/`PORT_CameraShip` in `firestorm\...\Launcher\ctcl.cpp`) |
|
||||
| 47624 + 2300–2400, or fixed `DirectPlayPort` | TCP/UDP | pod ↔ session host | Firestorm DirectPlay 4 session + game traffic |
|
||||
| 80 | TCP | console/game → PQS box | PQS HTTP endpoints |
|
||||
| 3306 | TCP | PQS internal | MySQL (localhost today) |
|
||||
|
||||
Reference in New Issue
Block a user