From 10f443eb8b69847890268c1eb3516ee5527bb2bb Mon Sep 17 00:00:00 2001 From: Alex Vanderveen Date: Sat, 29 Aug 2026 11:04:39 -0400 Subject: [PATCH] setup: stop copying game discs into the project by default MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) Claude-Session: https://claude.ai/code/session_0194TYJAqgyG9a9PJe9uUcgQ --- tools/new_project_layout/project_studio/gui.py | 6 ++++-- tools/new_project_layout/project_studio/newproject.py | 8 +++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/tools/new_project_layout/project_studio/gui.py b/tools/new_project_layout/project_studio/gui.py index d469d642..e36ee78f 100644 --- a/tools/new_project_layout/project_studio/gui.py +++ b/tools/new_project_layout/project_studio/gui.py @@ -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), diff --git a/tools/new_project_layout/project_studio/newproject.py b/tools/new_project_layout/project_studio/newproject.py index 15315d3b..447a5cef 100644 --- a/tools/new_project_layout/project_studio/newproject.py +++ b/tools/new_project_layout/project_studio/newproject.py @@ -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