Every score on the disk, not a named one
The makefile compiled splash.score by name, so intro.score sat beside it turning into nothing - which is exactly the failure the mirror three lines above exists to prevent, and its comment says so: a list in a makefile goes stale the moment somebody adds a file, and what they forgot is invisible until they go looking for it on the machine. Found by the user going looking for it on the machine. Every .score in Programs/Tunes is compiled and put on the disk now, and every patch in Programs/Sounds is converted first so a score can name any of them. The source is mirrored to /Source/Tunes with everything else that was written; the tune goes to the root, where a program looking for one expects it - which is worth writing down, because the two being in different places is the thing that sent somebody hunting. two.score moved to Tests. It is a fixture, it names patches that only exist in the test build, and it was in the music tree only because that is where scores were when it was written - which the game disk build found immediately by failing to compile it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E2JrLzFvuFX9fgi1LDRjrW
This commit is contained in:
co-authored by
Claude Opus 5
parent
dfc9d9ef7f
commit
f351ee8844
@@ -639,11 +639,25 @@ $(COSMOS_DISK): $(APPS) $(NATIVE_ASM) $(COSMOS) $(STAGE2) \
|
||||
@# written and a .sbx is what it loads. The patches come from SoundPatch, which stays the
|
||||
@# only thing that knows what a soundThing patch means; TuneC embeds the bytes and knows
|
||||
@# nothing about them.
|
||||
@# EVERY SCORE, NOT A NAMED ONE. A list here goes stale the moment somebody writes a
|
||||
@# second piece of music, and what they forgot is invisible until they go looking for
|
||||
@# it on the machine - which is the same argument the mirror above is made of, and the
|
||||
@# same way it went wrong the first time: splash.score was named and intro.score sat
|
||||
@# beside it compiling into nothing.
|
||||
@#
|
||||
@# The patches every score can name are converted first. They come from SoundPatch,
|
||||
@# which stays the only thing that knows what a soundThing patch means.
|
||||
@mkdir -p $(PROG_BUILD)/tunes
|
||||
$(PATCH_RUN) --blob $(PROG_DIR)/Sounds/Oboe.json Oboe $(PROG_BUILD)/tunes/oboe.patch
|
||||
$(TUNE_RUN) -I $(PROG_BUILD)/tunes $(PROG_DIR)/Tunes/splash.score \
|
||||
$(PROG_BUILD)/tunes/splash.tune
|
||||
$(DISKTOOL) put $@ $(PROG_BUILD)/tunes/splash.tune splash.tune
|
||||
@for json in $(PROG_DIR)/Sounds/*.json; do \
|
||||
$(PATCH_RUN) --blob $$json `basename $$json .json` \
|
||||
$(PROG_BUILD)/tunes/`basename $$json .json | tr 'A-Z' 'a-z'`.patch \
|
||||
>/dev/null || exit 1; done
|
||||
@for score in $(PROG_DIR)/Tunes/*.score; do \
|
||||
name=`basename $$score .score`; \
|
||||
$(TUNE_RUN) -I $(PROG_BUILD)/tunes $$score $(PROG_BUILD)/tunes/$$name.tune \
|
||||
>/dev/null || exit 1; \
|
||||
$(DISKTOOL) put $@ $(PROG_BUILD)/tunes/$$name.tune $$name.tune >/dev/null \
|
||||
|| exit 1; done
|
||||
@# ---- What you assemble: all of it ----
|
||||
@#
|
||||
@# MIRRORED RATHER THAN LISTED. A list in a makefile goes stale the moment somebody
|
||||
|
||||
Reference in New Issue
Block a user