The runtime tried one port file (game.port) and refused it if the game's words did not match. Now it tries every *.port in /usr/local/padmode/ports and /dump/ports (then the single files, the old layout), resetting the port tables between candidates, and keeps the first whose core sites verify: a wrong candidate hooks nothing, so trying it is safe, and the port that verifies names the game (pm_game/pm_version). The switch log's buttons and names come from the port's switch lines now — the baked-in King Kong button list and switch_names.inc are gone (the port lines carry the same ids and names, so King Kong's switch.log is unchanged). Boot log: each refused candidate says its path and the game/version it declares; no candidates at all says so; a game update whose port is not deployed logs the refusal and runs stock. tests/test_multi_game.py lifts the new code verbatim and compiles it for the host: selection among candidates, table reset between them, the getdents64 *.port scan (it caught an inverted suffix test and an off-by-one), and the port-driven switch log. The address-dependent tests need a Linux host (the port's site addresses are 32 bits; darwin arm64 maps nothing below 4 GiB). Co-Authored-By: Claude Code <noreply@anthropic.com>
5 lines
40 B
Plaintext
5 lines
40 B
Plaintext
# build artifacts
|
|
*.so
|
|
*.o
|
|
__pycache__/
|