setup: stop copying game discs into the project by default

setup_project.sh has always defaulted to STAGE_DISC=0 — probe the dump where
the user keeps it, write its absolute path into game.toml, and extract only
the small boot EXE into disc/. Two callers overrode that and copied instead:
NewProjectOptions.stage_disc defaulted True, and Project Studio's checkbox
was pre-ticked.

Staging copies every track into the repo, so a 3-disc PS1 set duplicates
~2.2 GB of a ROM library the user already owns and stores elsewhere — for no
gain, since disc/ is gitignored and a staged copy is never shipped either.

The checkbox is also relabelled "Stage disc" -> "Copy disc into project":
"stage" did not say what it costs. --stage-disc still works for anyone who
genuinely wants a self-contained tree. cli.py and setup_project.ps1 already
defaulted off and are unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0194TYJAqgyG9a9PJe9uUcgQ
This commit is contained in:
Alex Vanderveen
2026-08-29 11:04:39 -04:00
parent c481b6cd4e
commit 10f443eb8b
2 changed files with 11 additions and 3 deletions
@@ -451,7 +451,9 @@ class ProjectStudioApp:
self.np_netplay_var = tk.BooleanVar(value=True) # players default = 2
self.np_ci_var = tk.BooleanVar(value=True)
self.np_boxart_var = tk.BooleanVar(value=True)
self.np_stage_var = tk.BooleanVar(value=True)
# Off by default — see NewProjectOptions.stage_disc. The project reads
# the dump from where the user keeps it instead of duplicating it.
self.np_stage_var = tk.BooleanVar(value=False)
self.np_generate_var = tk.BooleanVar(value=True)
self.np_build_var = tk.BooleanVar(value=True)
self.np_github_var = tk.BooleanVar(value=False)
@@ -910,7 +912,7 @@ class ProjectStudioApp:
("Netplay", self.np_netplay_var),
("CI", self.np_ci_var),
("Boxart", self.np_boxart_var),
("Stage disc", self.np_stage_var),
("Copy disc into project", self.np_stage_var),
("Generate", self.np_generate_var),
("Build", self.np_build_var),
("GitHub", self.np_github_var),
@@ -40,7 +40,13 @@ class NewProjectOptions:
lobby_url: str = "netplay.retcomm.net"
enable_ci: bool = True
fetch_boxart: bool = True
stage_disc: bool = True
# OFF, matching setup_project.sh's own STAGE_DISC=0 default: the project
# references the dump where the user already keeps it (game.toml gets the
# absolute --disc path) and only the small boot EXE is written into disc/.
# Staging copies every track into the repo, so a 3-disc PS1 set duplicates
# ~2 GB of the user's ROM library per project. Opt in with --stage-disc
# when a self-contained tree is actually wanted.
stage_disc: bool = False
do_generate: bool = True
do_build: bool = True
create_github: bool = False