diff --git a/.gitignore b/.gitignore index d1b42fc22..e53ebfd84 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,12 @@ /build_ages/ /build_seasons_*/ /build_ages_*/ +audio/*/*/bin/ +audio/common/bin/ +audio/*/mus/*.mml +audio/*/sfx/*.mml +audio/*/mus/*.s +audio/*/sfx/*.s /doc/ /LynnaLab/Logs/ /linkfile @@ -19,3 +25,63 @@ .wla* *.bak *.pyc + +# General +.DS_Store +.localized +__MACOSX/ +.AppleDouble +.LSOverride +Icon[ +] + +# Resource forks +._* + +# Files and directories that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent +.com.apple.timemachine.supported +.PKInstallSandboxManager +.PKInstallSandboxManager-SystemSoftware +.hotfiles.btree +.vol +.file +.disk_label* +lost+found +.HFS+ Private Directory Data[ +] + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# Mac OS 6 to 9 +Desktop DB +Desktop DF +TheFindByContentFolder +TheVolumeSettingsFolder +.FBCIndex +.FBCSemaphoreFile +.FBCLockFolder + +# Quota system +.quota.group +.quota.user +.quota.ops.group +.quota.ops.user + +# TimeMachine +Backups.backupdb +.MobileBackups +.MobileBackups.trash +MobileBackups.trash +tmbootpicker.efi \ No newline at end of file diff --git a/Makefile b/Makefile index d9e83a90c..6b494184c 100755 --- a/Makefile +++ b/Makefile @@ -25,9 +25,14 @@ PYTHON = python3 TOPDIR = $(CURDIR) -# Default to parallel build to make things much faster +# Default to parallel build to make things much faster. `nproc` isn't available on +# macOS -- fall back to sysctl (macOS), then getconf (other POSIX systems), then a +# fixed default so this can never silently resolve to an empty string (which `make -j` +# would treat as *unlimited* parallelism, not "1" -- a real source of flaky, +# race-condition-prone builds, e.g. concurrent mml2wla runs racing on the same output +# directory). ifeq (,$(findstring -j,$(MAKEFLAGS))) -CPUS ?= $(shell nproc) +CPUS ?= $(shell nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null || echo 4) MAKEFLAGS += -j $(CPUS) $(info Note: using $(CPUS) threads by default, use -j flag to override.) endif @@ -43,13 +48,30 @@ MAKEFLAGS += --no-print-directory .SUFFIXES: # Rules which don't correspond to filenames -.PHONY: all ages seasons clean test-gfx +.PHONY: all ages seasons clean test-gfx dumpmusic dumpsfx all: @$(MAKE) ages @$(MAKE) seasons +# Regenerates the gitignored audio/*/mus/*.mml sources from a clean vanilla ROM +# (see tools/audio/dumpMusicMml.py and .gitignore for why they're not committed). +# Run once per game -- ROM=path/to/ages.gbc and ROM=path/to/seasons.gbc -- to +# populate both games' own songs plus the shared audio/common/mus/ ones. +dumpmusic: + @test -n "$(ROM)" || (echo "Usage: make dumpmusic ROM=path/to/rom.gbc" && exit 1) + $(PYTHON) tools/audio/dumpMusicMml.py "$(ROM)" + +# Regenerates the gitignored audio/*/sfx/*.mml sources from clean vanilla ROMs +# (see tools/audio/dumpSfxMml.py). Needs both ROMs in one invocation, unlike +# dumpmusic -- sfx has no hand-curated common/per-game manifest, so this +# decides that by directly comparing both games' decoded content. +dumpsfx: + @test -n "$(ROM_AGES_FILE)" -a -n "$(ROM_SEASONS_FILE)" || \ + (echo "Usage: make dumpsfx ROM_AGES_FILE=path/to/ages.gbc ROM_SEASONS_FILE=path/to/seasons.gbc" && exit 1) + $(PYTHON) tools/audio/dumpSfxMml.py "$(ROM_AGES_FILE)" "$(ROM_SEASONS_FILE)" + ages: @echo -e "$(BOLD)====================$(NC)" @echo -e "$(BOLD)Building $(BLUE)Ages$(BOLD)...$(NC)" @@ -178,6 +200,60 @@ MAIN_ASM_FILES = $(shell find code/ object_code/ objects/ scripts/ -name '*.s' | AUDIO_FILES = $(shell find audio/ -name '*.s' -o -name '*.bin' | grep -v '/$(OTHERGAME)/') COMMON_INCLUDE_FILES = $(shell find constants/ include/ -name '*.s' | grep -v '/$(OTHERGAME)/') +# .mml sources (mml2wla, see tools/audio/mml2wla/) are converted to generated .s files rather +# than committed directly -- a song either lives as committed audio/.../*.s (included +# directly by soundChannelData.s) or as committed audio/.../*.mml, whose generated .s +# lands in a bin/ subdirectory right next to it (e.g. audio/ages/mus/foo.mml -> +# audio/ages/mus/bin/foo.s), never both. bin/ is generated (gitignored, see .gitignore) +# -- kept alongside its source rather than under $(BUILD_DIR) so .include paths in +# soundChannelData.s stay one fixed literal regardless of which $(BUILD_DIR) variant is +# being built (ages/seasons/vanilla/editable all share the same source tree). +AUDIO_MML_FILES = $(shell find audio/ -name '*.mml' | grep -v '/$(OTHERGAME)/') +AUDIO_GENERATED_FILES = $(foreach f,$(AUDIO_MML_FILES),$(dir $(f))bin/$(basename $(notdir $(f))).s) + +# The wave channel's waveform table and the noise channel's fixed frequency palette are +# also authored as JSON now (audio/common/{waveforms,noise}.json), not committed .s -- +# see tools/audio/{waveformsJsonToS,noiseJsonToS}.py. Every .mml conversion also needs +# these (as --waveforms-json/--noise-json) so a song can reference an existing named +# entry directly by numeric id. +WAVEFORMS_JSON = audio/common/waveforms.json +NOISE_JSON = audio/common/noise.json +WAVEFORMS_S = audio/common/bin/waveforms.s +NOISE_S = audio/common/bin/noise.s + +$(NOISE_S): $(NOISE_JSON) tools/audio/noiseJsonToS.py + @mkdir -p $(dir $@) + @$(PYTHON) tools/audio/noiseJsonToS.py $< $@ + +# Every .mml -> .s conversion for *both* games runs together in one process (regardless +# of which single game is currently building -- see ALL_AUDIO_MML_FILES, deliberately +# not the $(OTHERGAME)-filtered AUDIO_MML_FILES above), sharing one WaveformAggregator, +# via tools/audio/buildAudio.py -- not one independent `mml2wla` invocation per file. +# This is what lets a song's own newly-authored local waveform (`@waveN = {...}` for an +# id that isn't already in waveforms.json) actually compile into the genuinely single, +# always-complete $(WAVEFORMS_S), instead of only ever landing in a `_waveforms_new.s` +# side file nothing includes. See buildAudio.py's own docstring for the full reasoning. +# +# One command producing many output files (every bin/*.s plus $(WAVEFORMS_S)) doesn't +# fit a normal pattern rule, so this uses the standard "stamp file" idiom instead: every +# real output depends on the stamp, and only the stamp itself has a recipe. +ALL_AUDIO_MML_FILES = $(shell find audio/ -name '*.mml') +AUDIO_MML_STAMP = $(BUILD_DIR)/audio_mml.stamp + +# Deliberately NOT GNU Make 4.3+'s grouped-target ("&:") syntax -- macOS still ships the +# ancient Make 3.81 (GPLv3 licensing, not a version gap), which doesn't have it. Every +# consumer's recipe is a no-op: the stamp's own recipe already wrote the real file: see +# the portable "stamp file" idiom this is (a target with prerequisites recorded, but no +# actual work of its own -- the real work already happened as a side effect of building +# the shared prerequisite). +$(AUDIO_GENERATED_FILES) $(WAVEFORMS_S): $(AUDIO_MML_STAMP) + @: + +$(AUDIO_MML_STAMP): $(ALL_AUDIO_MML_FILES) $(WAVEFORMS_JSON) $(NOISE_JSON) $(wildcard tools/audio/mml2wla/*.py) tools/audio/buildAudio.py tools/audio/waveformsJsonToS.py | $(BUILD_DIR) + @echo "Converting .mml audio sources..." + @$(PYTHON) tools/audio/buildAudio.py --waveforms-json $(WAVEFORMS_JSON) --noise-json $(NOISE_JSON) --waveforms-out $(WAVEFORMS_S) $(ALL_AUDIO_MML_FILES) + @touch $@ + ifneq ($(BUILD_VANILLA),true) @@ -206,7 +282,12 @@ $(BUILD_DIR)/$(GAME).o: $(BUILD_DIR)/tileset_layouts/tileMappingIndexData.bin $(BUILD_DIR)/$(GAME).o: $(BUILD_DIR)/tileset_layouts/tileMappingAttributeData.bin $(BUILD_DIR)/$(GAME).o: rooms/$(GAME)/*.bin -$(BUILD_DIR)/audio.o: $(AUDIO_FILES) +$(BUILD_DIR)/$(GAME).o: $(AUDIO_FILES) $(AUDIO_GENERATED_FILES) $(WAVEFORMS_S) $(NOISE_S) +# code/audio.s is what actually `.include`s soundChannelData.s/waveforms.s/noise.s (via +# the generic $(BUILD_DIR)/%.o: code/%.s rule below) -- audio.o needs these same +# prerequisites directly, not just $(GAME).o, or a from-scratch build can compile it +# before any of the generated audio content exists. +$(BUILD_DIR)/audio.o: $(AUDIO_FILES) $(AUDIO_GENERATED_FILES) $(WAVEFORMS_S) $(NOISE_S) $(BUILD_DIR)/*.o: $(COMMON_INCLUDE_FILES) Makefile $(BUILD_DIR)/$(GAME).o: $(GAME).s $(BUILD_DIR)/textData.s $(BUILD_DIR)/textDefines.s Makefile | $(BUILD_DIR) @@ -370,8 +451,9 @@ endif # End of check for either ROM_AGES or ROM_SEASONS being defined clean: - -rm -R build build_ages_* build_seasons_* \ - ages.gbc ages.sym seasons.gbc seasons.sym + -rm -Rf build_ages_* build_seasons_* \ + ages.gbc ages.sym seasons.gbc seasons.sym \ + audio/*/*/bin # -------------------------------------------------------------------------------- # Testing graphics encoding: ensure that pngs are encoded correctly. diff --git a/ages.s1 b/ages.s1 new file mode 100644 index 000000000..947b2c73c Binary files /dev/null and b/ages.s1 differ diff --git a/audio/ages/mus/ambiPalace.s b/audio/ages/mus/ambiPalace.s deleted file mode 100644 index e80f2ded1..000000000 --- a/audio/ages/mus/ambiPalace.s +++ /dev/null @@ -1,447 +0,0 @@ -musAmbiPalaceStart: - -musAmbiPalaceChannel1: - cmdf2 - vibrato $e1 - env $0 $00 - duty $01 - vol $8 - note e4 $06 - note fs4 $06 - note gs4 $06 - note a4 $06 -musicf0f36: - note b4 $18 - vol $5 - note b4 $0c - vol $8 - note e5 $06 - vol $5 - note e5 $06 - vol $8 - note e5 $18 - vol $5 - note e5 $0c - vol $8 - note e5 $0c - note d5 $08 - note e5 $08 - note d5 $08 - vol $8 - note cs5 $0c - note b4 $0c - note cs5 $10 - rest $02 - vol $5 - note cs5 $06 - vol $8 - note a4 $10 - rest $02 - vol $5 - note a4 $06 - vol $8 - note fs4 $10 - rest $02 - vol $5 - note fs4 $06 - vol $8 - note cs5 $10 - rest $02 - vol $5 - note cs5 $06 - vol $8 - note b4 $24 - note e4 $06 - rest $06 - note e4 $18 - vol $5 - note e4 $0c - vol $8 - note e4 $0c - note g4 $0c - note fs4 $0c - note e4 $0c - note d4 $0c - note b3 $0c - rest $06 - vol $5 - note b3 $06 - vol $8 - note d4 $0c - rest $06 - vol $5 - note d4 $06 - vol $8 - note e4 $60 - vibrato $01 - vol $5 - note e4 $30 - vibrato $e1 - vol $8 - note e4 $0c - rest $06 - vol $5 - note e4 $06 - vol $8 - note b4 $0c - rest $06 - vol $5 - note b4 $06 - vol $8 - note b4 $18 - rest $06 - vol $5 - note b4 $06 - vol $8 - note d5 $0c - note e5 $18 - note cs5 $0c - note a4 $0c - note b4 $0c - rest $06 - vol $5 - note b4 $06 - vol $8 - note b4 $0c - note d5 $0c - note e5 $0c - rest $06 - vol $5 - note e5 $06 - vol $8 - note d5 $0c - note e5 $0c - note g5 $0c - note fs5 $0c - note e5 $0c - note d5 $0c - note fs5 $0c - note e5 $0c - note d5 $0c - note a4 $0c - note b4 $0c - rest $06 - vol $5 - note b4 $06 - vol $8 - note a4 $0c - note b4 $0c - note g4 $18 - note fs4 $18 - note e4 $18 - note d4 $18 - note fs4 $0c - rest $06 - vol $5 - note fs4 $06 - vol $8 - note e4 $0c - note fs4 $0c - note d4 $08 - note e4 $08 - note d4 $08 - note cs4 $0c - note as3 $0c - note b3 $90 - vibrato $01 - vol $5 - note b3 $18 - vibrato $e1 - vol $8 - note e4 $06 - note fs4 $06 - note gs4 $06 - note a4 $06 - goto musicf0f36 - cmdff -musAmbiPalaceChannel0: - vol $0 - note gs3 $18 - cmdf2 - vibrato $e1 - env $0 $00 - duty $02 -musicf1037: - vol $8 - note gs4 $18 - vol $5 - note gs4 $0c - vol $8 - note gs4 $06 - vol $5 - note gs4 $06 - vol $8 - note gs4 $1e - vol $5 - note gs4 $06 - vol $8 - note gs4 $0c - note a4 $0c - rest $06 - vol $5 - note a4 $06 - vol $8 - note a4 $0c - rest $06 - vol $5 - note a4 $06 - vol $8 - note a4 $0c - rest $06 - vol $5 - note a4 $06 - vol $8 - note fs4 $0c - note cs4 $0c - note e4 $0c - note ds4 $0c - note e4 $0c - note cs4 $0c - note gs4 $12 - vol $5 - note gs4 $06 - vol $8 - note gs4 $0c - note b3 $0c - note gs3 $0c - rest $06 - vol $5 - note gs3 $06 - vol $8 - note gs3 $0c - note a3 $0c - note d4 $0c - note cs4 $0c - note b3 $0c - note a3 $0c - note fs3 $0c - rest $06 - vol $5 - note fs3 $06 - vol $8 - note fs3 $0c - note a3 $0c - vol $5 - note a3 $0c - rest $0c - vol $8 - note a3 $0c - note b3 $0c - note a3 $0c - rest $06 - vol $5 - note a3 $06 - vol $8 - note fs3 $0c - rest $06 - vol $5 - note fs3 $06 - vol $8 - note a3 $0c - note g3 $0c - note fs3 $0c - note d3 $0c - note g3 $0c - rest $06 - vol $5 - note g3 $06 - vol $8 - note g3 $0c - note a3 $0c - note b3 $0c - rest $06 - vol $5 - note b3 $06 - vol $8 - note b3 $0c - note cs4 $0c - note d4 $0c - note cs4 $0c - note b3 $0c - note fs3 $0c - note a3 $0c - rest $06 - vol $5 - note a3 $06 - vol $8 - note b3 $0c - rest $06 - vol $5 - note b3 $06 - vol $8 - note fs3 $24 - note a3 $0c - note e4 $0c - note d4 $0c - note cs4 $0c - note b3 $0c - note d4 $0c - rest $06 - vol $5 - note d4 $06 - vol $8 - note a3 $0c - rest $06 - vol $5 - note a3 $06 - vol $8 - note g3 $18 - note fs3 $18 - note e3 $0c - vol $5 - note e3 $0c - vol $8 - note e4 $0c - note d4 $0c - note cs4 $0c - rest $06 - vol $5 - note cs4 $06 - vol $8 - note b3 $0c - rest $06 - vol $5 - note b3 $06 - vol $8 - note d4 $0c - rest $06 - vol $5 - note d4 $06 - vol $8 - note cs4 $0c - note d4 $0c - note b3 $18 - note as3 $12 - rest $06 - note b2 $24 - note c3 $0c - note ds3 $0c - note e3 $0c - note fs3 $0c - note g3 $0c - note a3 $18 - note g3 $0c - note fs3 $0c - note c4 $0c - rest $06 - vol $5 - note c4 $06 - vol $8 - note b3 $0c - rest $06 - vol $5 - note b3 $06 - goto musicf1037 - cmdff - -musAmbiPalaceChannel4: - rest $18 -musicf115f: - duty $0e - note e3 $1e - rest $06 - note e3 $06 - rest $06 - note e3 $18 - rest $0c - note e3 $06 - rest $06 - duty $0e - note e3 $12 - rest $06 - note e3 $12 - rest $06 - note e3 $12 - rest $06 - note a2 $12 - rest $06 - note b2 $12 - rest $06 - note b2 $12 - rest $06 - note e3 $0c - note ds3 $0c - note e3 $0c - note b2 $0c - note gs2 $0c - note a2 $0c - note gs2 $0c - note fs2 $0c - note a2 $0c - duty $0f - note a2 $0c - duty $0e - note g2 $0c - note fs2 $0c - note b2 $0c - duty $0f - note b2 $0c - duty $0e - note b2 $0c - duty $0f - note b2 $0c - duty $0e - note e2 $30 - note d3 $30 - note b2 $30 - note e2 $12 - rest $06 - note e2 $12 - rest $06 - note e2 $1e - rest $06 - note gs2 $0c - note a2 $18 - note e3 $0c - duty $0e - note cs3 $0c - note e3 $0c - duty $0f - note e3 $0c - duty $0e - note e3 $0c - note b2 $0c - note cs3 $0c - duty $0f - note cs3 $0c - duty $0e - note b2 $0c - note e3 $0c - note d3 $0c - duty $0f - note d3 $0c - duty $0e - note fs3 $0c - duty $0f - note fs3 $0c - duty $0e - note a2 $24 - note fs2 $0c - note b2 $12 - rest $06 - note b2 $12 - rest $06 - note e3 $30 - note d3 $30 - note cs3 $30 - note as2 $30 - note b2 $0c - duty $0f - note b2 $0c - duty $0e - note b2 $0c - note a2 $0c - note g2 $18 - note fs2 $0c - note g2 $0c - note e2 $18 - note fs2 $0c - note e2 $0c - note ds2 $0c - note fs2 $0c - note a2 $0c - note c3 $0c - goto musicf115f - cmdff - -.define musAmbiPalaceChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/ages/mus/ancientTomb.s b/audio/ages/mus/ancientTomb.s deleted file mode 100644 index 6dde06287..000000000 --- a/audio/ages/mus/ancientTomb.s +++ /dev/null @@ -1,485 +0,0 @@ -musAncientTombStart: - -musAncientTombChannel1: - vibrato $00 - env $0 $00 - cmdf2 - duty $02 -musicf7b58: - vol $0 - note gs3 $ff - note gs3 $21 - vol $6 - note d5 $03 - rest $03 - vol $5 - note d5 $03 - rest $03 - vol $4 - note d5 $03 - rest $03 - vol $4 - note d5 $03 - rest $03 - vol $4 - note d5 $03 - rest $2d - vol $6 - note gs5 $03 - rest $03 - vol $5 - note gs5 $03 - rest $03 - vol $4 - note gs5 $03 - rest $03 - vol $4 - note gs5 $03 - rest $03 - vol $4 - note gs5 $03 - rest $3f - vol $6 - note d5 $03 - rest $03 - vol $5 - note d5 $03 - rest $03 - vol $4 - note d5 $03 - rest $03 - vol $6 - note gs5 $03 - rest $03 - vol $5 - note gs5 $03 - rest $03 - vol $4 - note gs5 $03 - rest $03 - vol $4 - note gs5 $03 - rest $03 - vol $4 - note gs5 $03 - rest $ff - vol $0 - note gs3 $72 - vol $6 - note e5 $03 - rest $03 - vol $5 - note e5 $03 - rest $03 - vol $4 - note e5 $03 - rest $03 - vol $4 - note e5 $03 - rest $03 - vol $4 - note e5 $03 - rest $2d - vol $6 - note as5 $03 - rest $03 - vol $5 - note as5 $03 - rest $03 - vol $4 - note as5 $03 - rest $03 - vol $4 - note as5 $03 - rest $03 - vol $4 - note as5 $03 - rest $3f - vol $6 - note e5 $03 - rest $03 - vol $5 - note e5 $03 - rest $03 - vol $4 - note e5 $03 - rest $03 - vol $6 - note as5 $03 - rest $03 - vol $5 - note as5 $03 - rest $03 - vol $4 - note as5 $03 - rest $03 - vol $4 - note as5 $03 - rest $03 - vol $4 - note as5 $03 - rest $51 - vol $4 - note c6 $09 - vol $7 - note c6 $09 - vol $5 - note c6 $04 - rest $05 - vol $4 - note c6 $04 - rest $05 - note fs5 $09 - vol $6 - note fs5 $09 - vol $4 - note fs5 $04 - rest $05 - vol $3 - note fs5 $04 - rest $05 - note as5 $09 - vol $6 - note as5 $09 - vol $5 - note as5 $04 - rest $05 - vol $4 - note as5 $04 - rest $05 - vol $3 - note e5 $09 - vol $6 - note e5 $09 - vol $4 - note e5 $04 - rest $05 - vol $3 - note e5 $04 - rest $05 - vol $3 - note e5 $04 - rest $05 - vol $2 - note e5 $04 - rest $29 - vol $3 - note e6 $03 - rest $06 - vol $6 - note e6 $06 - rest $03 - vol $6 - note as5 $03 - rest $06 - vol $5 - note as5 $09 - rest $04 - vol $3 - note as5 $09 - rest $05 - vol $1 - note as5 $09 - rest $1b - goto musicf7b58 - cmdff - -musAncientTombChannel0: - vibrato $00 - env $0 $00 - cmdf2 - duty $01 -musicf7c85: - vol $6 - note gs2 $24 - vol $6 - note a2 $24 - note gs2 $24 - note e2 $24 - note gs2 $24 - note a2 $24 - note gs2 $24 - note e2 $24 - duty $02 - vol $7 - note a4 $03 - rest $03 - vol $6 - note a4 $03 - rest $03 - vol $4 - note a4 $03 - rest $03 - vol $4 - note a4 $03 - rest $03 - vol $3 - note a4 $03 - rest $2d - vol $7 - note d5 $03 - rest $03 - vol $6 - note d5 $03 - rest $03 - vol $4 - note d5 $03 - rest $03 - vol $4 - note d5 $03 - rest $03 - vol $3 - note d5 $03 - rest $3f - vol $7 - note a4 $03 - rest $03 - vol $6 - note a4 $03 - rest $03 - vol $4 - note a4 $03 - rest $03 - vol $7 - note d5 $03 - rest $03 - vol $6 - note d5 $03 - rest $03 - vol $4 - note d5 $03 - rest $03 - vol $7 - note a3 $03 - rest $03 - vol $6 - note a3 $03 - rest $03 - vol $4 - note a3 $03 - rest $03 - vol $7 - note d4 $03 - rest $03 - vol $6 - note d4 $03 - rest $03 - vol $4 - note d4 $03 - rest $03 - vol $7 - note gs3 $03 - rest $03 - vol $6 - note gs3 $03 - rest $03 - vol $4 - note gs3 $03 - rest $03 - vol $4 - note gs3 $03 - rest $03 - vol $3 - note gs3 $03 - rest $1b - duty $01 - vol $6 - note gs2 $24 - note a2 $24 - note gs2 $24 - note a2 $24 - note as2 $24 - note b2 $24 - note as2 $24 - note f2 $24 - duty $02 - vol $7 - note a4 $03 - rest $03 - vol $6 - note a4 $03 - rest $03 - vol $4 - note a4 $03 - rest $03 - vol $4 - note a4 $03 - rest $03 - vol $3 - note a4 $03 - rest $2d - vol $7 - note ds5 $03 - rest $03 - vol $6 - note ds5 $03 - rest $03 - vol $4 - note ds5 $03 - rest $03 - vol $4 - note ds5 $03 - rest $03 - vol $3 - note ds5 $03 - rest $3f - vol $7 - note a4 $03 - rest $03 - vol $6 - note a4 $03 - rest $03 - vol $4 - note a4 $03 - rest $03 - vol $7 - note ds5 $03 - rest $03 - vol $6 - note ds5 $03 - rest $03 - vol $4 - note ds5 $03 - rest $03 - vol $7 - note a3 $03 - rest $03 - vol $6 - note a3 $03 - rest $03 - vol $4 - note a3 $03 - rest $03 - vol $7 - note d4 $03 - rest $03 - vol $6 - note d4 $03 - rest $03 - vol $4 - note d4 $03 - rest $03 - vol $7 - note gs3 $03 - rest $03 - vol $6 - note gs3 $03 - rest $03 - vol $4 - note gs3 $03 - rest $03 - vol $4 - note gs3 $03 - rest $03 - vol $3 - note gs3 $03 - rest $1b - vol $3 - note fs5 $09 - vol $6 - note fs5 $09 - vol $4 - note fs5 $06 - rest $03 - vol $2 - note fs5 $06 - rest $03 - vol $3 - note c5 $09 - vol $6 - note c5 $09 - vol $4 - note c5 $06 - rest $03 - vol $2 - note c5 $06 - rest $03 - vol $3 - note e5 $09 - vol $6 - note e5 $09 - vol $4 - note e5 $06 - rest $03 - vol $2 - note e5 $06 - rest $03 - vol $3 - note as4 $09 - vol $6 - note as4 $09 - vol $4 - note as4 $06 - rest $03 - vol $3 - note as4 $06 - rest $03 - vol $2 - note as4 $06 - rest $03 - vol $2 - note as4 $06 - rest $27 - vol $3 - note as5 $06 - rest $03 - vol $6 - note as5 $06 - rest $03 - note e5 $06 - rest $03 - vol $5 - note e5 $09 - rest $04 - vol $2 - note e5 $09 - rest $05 - vol $1 - note e5 $09 - rest $1b - duty $01 - goto musicf7c85 - cmdff - -musAncientTombChannel4: - cmdf2 -musicf7e2a: - duty $0e - note d2 $24 - note ds2 $24 - note d2 $24 - note as1 $24 - note d2 $24 - note ds2 $24 - note d2 $24 - note as1 $24 - note d2 $24 - note ds2 $24 - note d2 $24 - note as1 $24 - note d2 $24 - note ds2 $24 - note d2 $24 - note as1 $24 - note d2 $24 - note ds2 $24 - note d2 $24 - note ds2 $24 - note e2 $24 - note f2 $24 - note e2 $24 - note b1 $24 - note e2 $24 - note f2 $24 - note e2 $24 - note b1 $24 - note e2 $24 - note f2 $24 - note e2 $24 - note f2 $24 - rest $ff - rest $21 - goto musicf7e2a - cmdff - -.define musAncientTombChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/ages/mus/blackTower.s b/audio/ages/mus/blackTower.s deleted file mode 100644 index 1120a05df..000000000 --- a/audio/ages/mus/blackTower.s +++ /dev/null @@ -1,671 +0,0 @@ -musBlackTowerStart: - -musBlackTowerChannel1: - cmdf2 - vibrato $e1 - env $0 $00 - duty $02 -musicf1ece: - vol $6 - note gs3 $24 - note g3 $24 - note b3 $36 - note as3 $12 - note gs3 $12 - note g3 $12 - note b3 $12 - note as3 $12 - note gs3 $12 - note g3 $12 - note b3 $12 - note as3 $12 - note ds4 $24 - note d4 $24 - note fs4 $36 - note f4 $12 - note ds4 $12 - note d4 $12 - note fs4 $12 - note f4 $12 - note ds4 $12 - note d4 $12 - note as4 $12 - note gs4 $12 - note as4 $24 - note a4 $24 - note cs5 $36 - note c5 $12 - note as4 $12 - note a4 $12 - note cs5 $12 - note c5 $12 - note as4 $12 - note a4 $12 - note f5 $12 - note e5 $12 - note f5 $36 - note fs5 $12 - note e5 $12 - note fs5 $12 - note f5 $12 - note e5 $12 - note f5 $28 - rest $0e - note f5 $04 - rest $01 - note a5 $05 - rest $03 - note c6 $05 - vol $5 - note f6 $04 - rest $05 - vol $4 - note f6 $04 - rest $05 - vol $3 - note f6 $04 - rest $05 - vol $2 - note f6 $04 - rest $29 - vol $6 - note as3 $1b - note f4 $09 - note e4 $1b - rest $09 - note as3 $1b - note ds4 $09 - note cs4 $1b - rest $09 - note as3 $1b - note f4 $09 - note e4 $1b - note as3 $04 - rest $05 - note as3 $1b - note ds4 $09 - note cs4 $1b - rest $09 - note f4 $12 - note e4 $12 - note f4 $12 - note gs4 $24 - note g4 $12 - note f4 $12 - note e4 $12 - note f4 $6c - rest $24 - goto musicf1ece - cmdff - -musBlackTowerChannel0: - cmdf2 - vibrato $e1 - env $0 $00 - duty $02 -musicf1f85: - vol $6 - note e3 $24 - vol $6 - note ds3 $24 - note g3 $36 - note fs3 $12 - note e3 $12 - note ds3 $12 - note g3 $12 - note fs3 $12 - note e3 $12 - note ds3 $12 - note g3 $12 - note fs3 $12 - note b3 $24 - note as3 $24 - note ds4 $36 - note d4 $12 - note c4 $12 - note b3 $12 - note ds4 $12 - note d4 $12 - note gs3 $12 - note g3 $12 - note d4 $12 - note cs4 $12 - note d4 $24 - note cs4 $24 - note g4 $36 - note fs4 $12 - note e4 $12 - note ds4 $12 - note g4 $12 - note fs4 $12 - note e4 $12 - note ds4 $12 - note cs5 $12 - note c5 $12 - vol $6 - note c4 $09 - note cs4 $09 - note b3 $09 - note c4 $09 - note cs4 $09 - note b3 $09 - note cs4 $09 - note c4 $09 - note c4 $12 - note cs4 $12 - note c4 $12 - note b3 $12 - note e3 $09 - note f3 $09 - note b3 $09 - note c4 $09 - note e4 $09 - note f4 $09 - note b4 $09 - note c5 $09 - note e5 $09 - note f5 $09 - note b4 $09 - note c5 $09 - note ds5 $04 - note cs5 $05 - note b4 $04 - note a4 $05 - note gs4 $04 - note fs4 $05 - note ds4 $04 - note d4 $05 - vol $6 - note f3 $09 - vol $6 - note as3 $09 - vol $6 - note f3 $09 - note cs4 $09 - note c4 $12 - note f3 $09 - vol $6 - note b3 $09 - vol $6 - note f3 $09 - vol $6 - note as3 $09 - vol $6 - note f3 $09 - note c4 $09 - note as3 $12 - note f3 $09 - vol $6 - note e3 $09 - vol $6 - note f3 $09 - vol $6 - note as3 $09 - vol $6 - note f3 $09 - note cs4 $09 - note c4 $12 - note f3 $09 - note e3 $09 - note f3 $12 - note e3 $09 - note b3 $09 - note as3 $1b - rest $09 - note cs4 $12 - note c4 $12 - note cs4 $12 - note cs5 $04 - note d5 $05 - note ds5 $04 - note e5 $05 - note f5 $12 - note e5 $12 - note d5 $12 - note e5 $15 - rest $01 - note e5 $05 - note f5 $04 - note c5 $05 - note cs5 $04 - note a4 $05 - note as4 $04 - note e4 $05 - note f4 $04 - note c4 $05 - note cs4 $04 - note a3 $05 - note as3 $04 - note e3 $05 - note f3 $04 - note e3 $05 - note f3 $09 - note e3 $03 - rest $03 - vol $5 - note e3 $03 - vol $6 - note as3 $09 - note a3 $03 - rest $03 - vol $4 - note a3 $03 - vol $6 - note cs4 $09 - note c4 $03 - rest $03 - vol $4 - note c4 $03 - vol $6 - note fs4 $09 - note f4 $03 - rest $03 - vol $4 - note f4 $03 - goto musicf1f85 - cmdff - -musBlackTowerChannel4: -musicf20b0: - duty $18 - note cs2 $09 - duty $0f - note cs2 $09 - duty $18 - note cs2 $09 - duty $0f - note cs2 $09 - rest $5a - duty $18 - note cs2 $04 - rest $05 - note cs2 $04 - rest $05 - note cs2 $09 - duty $0f - note cs2 $09 - duty $18 - note cs2 $09 - duty $0f - note cs2 $09 - rest $5a - duty $18 - note cs2 $04 - rest $05 - note cs2 $04 - rest $05 - note cs2 $09 - duty $0f - note cs2 $09 - duty $18 - note cs2 $09 - duty $0f - note cs2 $09 - rest $5a - duty $18 - note cs2 $04 - rest $05 - note cs2 $04 - rest $05 - note cs2 $09 - duty $0f - note cs2 $09 - duty $18 - note cs2 $09 - duty $0f - note cs2 $09 - rest $5a - duty $18 - note cs2 $04 - rest $05 - note cs2 $04 - rest $05 - note cs2 $09 - duty $0f - note cs2 $09 - duty $18 - note cs2 $09 - duty $0f - note cs2 $09 - rest $5a - duty $18 - note cs2 $04 - rest $05 - note cs2 $04 - rest $05 - note cs2 $09 - duty $0f - note cs2 $09 - duty $18 - note cs2 $09 - duty $0f - note cs2 $09 - rest $5a - duty $18 - note cs2 $04 - rest $05 - note cs2 $04 - rest $05 - vol $8 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - duty $18 - note gs1 $09 - vol $8 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - duty $18 - note a1 $09 - vol $8 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - duty $18 - note b1 $09 - vol $8 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - duty $18 - note gs1 $09 - vol $8 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - duty $18 - note a1 $09 - vol $8 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - note f1 $04 - rest $05 - duty $18 - note b1 $09 - vol $8 - note f1 $04 - rest $05 - duty $18 - note c2 $09 - vol $8 - note f1 $04 - rest $05 - duty $18 - note as1 $09 - duty $0f - note as1 $09 - duty $18 - note as1 $09 - duty $0f - note as1 $09 - rest $24 - duty $18 - note as1 $09 - duty $0f - note as1 $09 - duty $18 - note as1 $09 - duty $0f - note as1 $09 - rest $12 - duty $18 - note as1 $04 - rest $05 - note as1 $04 - rest $05 - note as1 $09 - duty $0f - note as1 $09 - duty $18 - note as1 $09 - duty $0f - note as1 $09 - rest $24 - duty $18 - note as1 $09 - duty $0f - note as1 $09 - duty $18 - note as1 $09 - duty $0f - note as1 $09 - rest $12 - duty $18 - note as1 $04 - rest $05 - note as1 $04 - rest $05 - note c1 $09 - duty $0f - note c1 $09 - duty $18 - note c1 $09 - duty $0f - note c1 $09 - rest $24 - duty $18 - note c2 $09 - duty $0f - note c2 $09 - duty $18 - note c2 $09 - duty $0f - note c2 $09 - rest $24 - duty $18 - note f2 $12 - duty $0f - note f2 $12 - duty $18 - note f2 $12 - duty $0f - note f2 $12 - duty $18 - note f2 $09 - duty $0f - note f2 $09 - duty $18 - note f2 $09 - duty $0f - note f2 $09 - duty $18 - note f2 $09 - duty $0f - note f2 $09 - duty $18 - note f2 $09 - duty $0f - note f2 $09 - goto musicf20b0 - cmdff - -musBlackTowerChannel6: -musicf2286: - vol $6 - note $24 $12 - note $24 $12 - rest $5a - note $24 $09 - note $24 $09 - note $24 $12 - note $24 $12 - rest $5a - note $24 $09 - note $24 $09 - note $24 $12 - note $24 $12 - rest $5a - note $24 $09 - note $24 $09 - note $24 $12 - note $24 $12 - rest $5a - note $24 $09 - note $24 $09 - note $24 $12 - note $24 $12 - rest $5a - note $24 $09 - note $24 $09 - note $24 $12 - note $24 $12 - rest $5a - note $24 $09 - note $24 $09 - note $24 $24 - note $24 $24 - note $24 $24 - note $24 $24 - note $24 $09 - vol $2 - note $2e $09 - rest $09 - vol $2 - note $2e $09 - vol $6 - note $24 $09 - vol $2 - note $2e $09 - rest $09 - vol $2 - note $2e $09 - vol $6 - note $24 $09 - vol $3 - note $2e $09 - rest $09 - vol $3 - note $2e $09 - vol $6 - note $24 $09 - vol $3 - note $2e $09 - rest $09 - vol $3 - note $2e $09 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2e $09 - rest $09 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2e $09 - rest $09 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2e $09 - rest $09 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2e $09 - vol $6 - note $24 $09 - note $24 $09 - rest $09 - vol $3 - note $2e $09 - rest $09 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2e $09 - rest $09 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2e $09 - rest $09 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2e $09 - vol $6 - note $24 $09 - note $24 $09 - rest $09 - vol $3 - note $2e $09 - rest $09 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2e $09 - rest $09 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2e $09 - rest $09 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2e $09 - vol $6 - note $24 $09 - note $24 $09 - rest $09 - vol $3 - note $2e $09 - rest $09 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2e $09 - rest $09 - vol $6 - note $24 $09 - vol $3 - note $2e $09 - rest $09 - note $2e $09 - vol $6 - note $24 $09 - vol $3 - note $2e $09 - rest $09 - note $2e $09 - goto musicf2286 - cmdff diff --git a/audio/ages/mus/crescent.s b/audio/ages/mus/crescent.s deleted file mode 100644 index bc2dd9989..000000000 --- a/audio/ages/mus/crescent.s +++ /dev/null @@ -1,712 +0,0 @@ -musCrescentStart: - -musCrescentChannel1: - vibrato $e1 - env $0 $00 - cmdf2 - duty $02 -musiceeb82: - vol $6 - note ds4 $1b - vol $6 - note e4 $09 - note c4 $09 - rest $04 - vol $4 - note c4 $05 - vol $6 - note g3 $09 - rest $04 - vol $4 - note g3 $05 - vol $6 - note as3 $09 - rest $04 - vol $4 - note as3 $05 - vol $6 - note as3 $09 - rest $04 - vol $4 - note as3 $05 - vol $6 - note a3 $09 - rest $04 - vol $4 - note a3 $05 - vol $6 - note g3 $09 - rest $04 - vol $4 - note g3 $05 - vol $6 - note fs3 $12 - note g3 $09 - rest $04 - vol $4 - note g3 $09 - rest $05 - vol $2 - note g3 $09 - vol $6 - note fs3 $12 - note g3 $09 - rest $04 - vol $4 - note g3 $09 - rest $05 - vol $2 - note g3 $09 - rest $12 - vol $6 - note ds4 $2d - note e4 $09 - note c4 $09 - rest $04 - vol $4 - note c4 $05 - vol $6 - note g3 $09 - rest $04 - vol $4 - note g3 $05 - vol $6 - note as3 $09 - rest $04 - vol $4 - note as3 $05 - vol $6 - note as3 $09 - rest $04 - vol $4 - note as3 $05 - vol $6 - note c4 $09 - rest $04 - vol $4 - note c4 $05 - vol $6 - note d4 $09 - rest $04 - vol $4 - note d4 $05 - vol $6 - note f4 $12 - note e4 $09 - rest $04 - vol $4 - note e4 $05 - vol $6 - note ds4 $09 - rest $04 - vol $4 - note ds4 $05 - vol $6 - note d4 $09 - rest $04 - vol $4 - note d4 $09 - rest $05 - vol $2 - note d4 $09 - rest $24 - vol $6 - note f4 $1b - vol $4 - note f4 $09 - vol $6 - note f4 $09 - rest $04 - vol $4 - note f4 $05 - vol $6 - note e4 $09 - rest $04 - vol $4 - note e4 $05 - vol $6 - note d4 $09 - rest $04 - vol $4 - note d4 $05 - rest $36 - vol $6 - note ds4 $1b - vol $4 - note ds4 $09 - vol $6 - note ds4 $09 - rest $04 - vol $4 - note ds4 $05 - vol $6 - note d4 $09 - rest $04 - vol $4 - note d4 $05 - vol $6 - note c4 $09 - rest $04 - vol $4 - note c4 $09 - rest $05 - vol $2 - note c4 $09 - rest $24 - vol $6 - note as4 $1b - vol $4 - note as4 $09 - vol $6 - note as4 $12 - note a4 $09 - rest $04 - vol $4 - note a4 $09 - rest $05 - vol $2 - note a4 $09 - vol $6 - note gs4 $12 - note g4 $09 - rest $04 - vol $4 - note g4 $09 - rest $05 - vol $2 - note g4 $09 - vol $6 - note fs4 $09 - rest $04 - vol $4 - note fs4 $05 - vol $6 - note fs4 $04 - rest $0e - note g4 $09 - rest $04 - vol $4 - note g4 $05 - vol $6 - note fs4 $12 - note g4 $09 - rest $04 - vol $4 - note g4 $05 - vol $6 - note ds4 $12 - note c4 $12 - note as3 $12 - note g3 $12 - vol $6 - note fs3 $12 - note g3 $09 - rest $04 - vol $4 - note g3 $09 - rest $05 - vol $2 - note g3 $09 - vol $6 - note fs3 $12 - note g3 $09 - rest $04 - vol $4 - note g3 $09 - rest $05 - vol $2 - note g3 $09 - rest $b4 - goto musiceeb82 - cmdff - -musCrescentChannel0: - vibrato $e1 - env $0 $00 - cmdf2 - duty $02 -musiceece7: - vol $6 - note g3 $24 - vol $6 - note a3 $24 - note fs3 $24 - note g3 $24 - note ds4 $12 - note e4 $09 - rest $04 - vol $4 - note e4 $05 - vol $6 - note g5 $03 - rest $01 - vol $4 - note g5 $03 - rest $02 - vol $2 - note g5 $03 - rest $06 - vol $6 - note ds4 $12 - note e4 $09 - rest $04 - vol $4 - note e4 $05 - vol $6 - note g5 $03 - rest $01 - vol $4 - note g5 $03 - rest $02 - vol $2 - note g5 $03 - rest $06 - vol $6 - note as3 $09 - note a3 $09 - note gs3 $09 - note g3 $09 - note e3 $24 - note g3 $24 - note ds3 $24 - note e3 $24 - note d3 $24 - note a3 $12 - note as3 $12 - vol $6 - note d6 $03 - rest $03 - vol $5 - note d6 $03 - rest $03 - vol $4 - note d6 $03 - rest $03 - vol $6 - note g5 $03 - rest $03 - vol $5 - note g5 $03 - rest $03 - vol $4 - note g5 $03 - rest $03 - vol $6 - note b4 $09 - note as4 $09 - note a4 $09 - note g4 $09 - rest $36 - note f5 $1b - vol $4 - note f5 $09 - vol $6 - note f5 $09 - rest $04 - vol $4 - note f5 $05 - vol $6 - note e5 $09 - rest $04 - vol $4 - note e5 $05 - vol $6 - note d5 $09 - rest $04 - vol $4 - note d5 $09 - rest $05 - vol $2 - note d5 $09 - rest $33 - vol $6 - note ds5 $03 - note e5 $12 - note g5 $09 - rest $04 - vol $4 - note g5 $05 - vol $6 - note a5 $09 - note g5 $09 - note ds5 $09 - note c5 $09 - rest $12 - note g5 $12 - note fs5 $09 - rest $04 - vol $4 - note fs5 $09 - rest $05 - vol $2 - note fs5 $09 - vol $6 - note f5 $12 - note e5 $09 - rest $04 - vol $4 - note e5 $09 - rest $05 - vol $2 - note e5 $09 - vol $6 - note ds5 $09 - rest $04 - vol $4 - note ds5 $05 - vol $6 - note cs5 $12 - note d5 $09 - rest $04 - vol $4 - note d5 $05 - vol $6 - note cs5 $12 - note d5 $09 - rest $04 - vol $4 - note d5 $05 - vol $6 - note c4 $12 - note g3 $12 - note f3 $12 - note d3 $12 - note b2 $12 - note c3 $09 - rest $04 - vol $4 - note c3 $09 - rest $05 - vol $2 - note c3 $09 - vol $6 - note b2 $12 - vol $7 - note c3 $09 - rest $04 - vol $4 - note c3 $09 - rest $05 - vol $2 - note c3 $09 - rest $b4 - goto musiceece7 - cmdff - -musCrescentChannel4: -musiceee03: - duty $0e - note c3 $09 - duty $0f - note c3 $09 - rest $12 - duty $0e - note ds3 $09 - duty $0f - note ds3 $09 - duty $0e - note e3 $09 - duty $0f - note e3 $09 - duty $0e - note g2 $09 - duty $0f - note g2 $09 - rest $12 - duty $0e - note as2 $09 - duty $0f - note as2 $09 - duty $0e - note as2 $09 - duty $0f - note as2 $09 - duty $0e - note c3 $09 - duty $0f - note c3 $09 - rest $12 - duty $0e - note ds3 $12 - note e3 $09 - duty $0f - note e3 $09 - duty $0e - note g2 $09 - duty $0f - note g2 $09 - rest $12 - duty $0e - note g2 $09 - duty $0f - note g2 $09 - duty $0e - note as2 $09 - duty $0f - note as2 $09 - duty $0e - note c3 $12 - duty $0f - note c3 $12 - duty $0e - note ds3 $09 - duty $0f - note ds3 $09 - duty $0e - note e3 $09 - duty $0f - note e3 $09 - duty $0e - note c3 $09 - duty $0f - note c3 $09 - rest $12 - duty $0e - note c3 $09 - duty $0f - note c3 $09 - duty $0e - note c3 $09 - duty $0f - note c3 $09 - duty $0e - note g2 $1b - duty $0f - note g2 $09 - duty $0e - note cs3 $09 - duty $0f - note cs3 $09 - duty $0e - note d3 $09 - duty $0f - note d3 $09 - duty $0e - note b2 $09 - note as2 $09 - note a2 $09 - note gs2 $09 - note g2 $09 - duty $0f - note g2 $09 - duty $0e - note g2 $09 - duty $0f - note g2 $09 - duty $0e - note f2 $1b - duty $0f - note f2 $09 - duty $0e - note a2 $09 - duty $0f - note a2 $09 - duty $0e - note c3 $09 - duty $0f - note c3 $09 - duty $0e - note f2 $1b - duty $0f - note f2 $09 - duty $0e - note f2 $09 - duty $0f - note f2 $09 - duty $0e - note f2 $09 - duty $0f - note f2 $09 - duty $0e - note c3 $1b - duty $0f - note c3 $09 - duty $0e - note ds3 $09 - duty $0f - note ds3 $09 - duty $0e - note e3 $09 - duty $0f - note e3 $09 - duty $0e - note c3 $1b - duty $0f - note c3 $09 - duty $0e - note c3 $09 - duty $0f - note c3 $09 - duty $0e - note c3 $09 - duty $0f - note c3 $09 - duty $0e - note g2 $12 - duty $0f - note g2 $12 - duty $0e - note g2 $09 - duty $0f - note g2 $09 - duty $0e - note g2 $09 - duty $0f - note g2 $09 - duty $0e - note d3 $1b - duty $0f - note d3 $09 - duty $0e - note g2 $09 - duty $0f - note g2 $09 - duty $0e - note g2 $09 - duty $0f - note g2 $09 - rest $12 - duty $0e - note g3 $09 - duty $0f - note g3 $09 - duty $0e - note fs3 $09 - duty $0f - note fs3 $09 - duty $0e - note f3 $09 - duty $0f - note f3 $09 - duty $0e - note e3 $09 - duty $0f - note e3 $09 - duty $0e - note ds3 $09 - duty $0f - note ds3 $09 - duty $0e - note d3 $09 - duty $0f - note d3 $09 - duty $0e - note cs3 $09 - duty $0f - note cs3 $09 - duty $0e - note c2 $09 - duty $0f - note c2 $09 - rest $12 - duty $0e - note ds3 $09 - duty $0f - note ds3 $09 - duty $0e - note e3 $09 - duty $0f - note e3 $09 - duty $0e - note g2 $09 - duty $0f - note g2 $09 - rest $12 - duty $0e - note as2 $09 - duty $0f - note as2 $09 - duty $0e - note as2 $09 - duty $0f - note as2 $09 - duty $0e - note c2 $09 - duty $0f - note c2 $09 - rest $12 - duty $0e - note ds3 $12 - note e3 $09 - duty $0f - note e3 $09 - duty $0e - note c3 $09 - duty $0f - note c3 $09 - duty $0e - note g2 $09 - duty $0f - note g2 $09 - duty $0e - note g2 $09 - duty $0f - note g2 $09 - duty $0e - note as2 $09 - duty $0f - note as2 $09 - goto musiceee03 - cmdff - -musCrescentChannel6: -musiceeffd: - vol $6 - note $24 $24 - note $24 $12 - note $24 $12 - note $24 $24 - note $26 $24 - note $24 $24 - note $24 $12 - note $24 $12 - note $24 $24 - note $26 $24 - note $24 $24 - note $24 $12 - note $24 $12 - note $24 $24 - note $26 $24 - note $24 $24 - note $24 $12 - note $24 $12 - note $24 $24 - note $26 $24 - note $24 $24 - note $24 $12 - note $24 $12 - note $24 $24 - note $26 $24 - note $24 $24 - note $24 $12 - note $24 $12 - note $24 $24 - note $26 $12 - note $26 $09 - note $26 $09 - note $24 $24 - note $24 $12 - note $24 $12 - note $24 $24 - note $24 $24 - note $24 $24 - note $24 $12 - note $24 $12 - note $24 $12 - note $24 $12 - note $24 $12 - note $24 $12 - note $24 $24 - note $24 $12 - note $24 $12 - note $24 $24 - note $26 $24 - note $24 $24 - note $24 $12 - note $24 $12 - note $24 $12 - note $24 $12 - note $26 $12 - note $24 $12 - goto musiceeffd - cmdff diff --git a/audio/ages/mus/crownDungeon.s b/audio/ages/mus/crownDungeon.s deleted file mode 100644 index 4e7b5afa8..000000000 --- a/audio/ages/mus/crownDungeon.s +++ /dev/null @@ -1,529 +0,0 @@ -musCrownDungeonStart: - -musCrownDungeonChannel1: - vibrato $e1 - env $0 $00 - duty $01 -musicf33aa: - vol $6 - note a4 $1a - note gs4 $1a - note g4 $1a - note cs5 $1a - note c5 $1a - note fs4 $1a - note b4 $1a - note f4 $1a - note as4 $1a - note e4 $1a - note a4 $1a - note d4 $1a - vol $3 - note d4 $1a - vol $6 - note a4 $0d - note gs4 $0d - note g4 $1a - note cs5 $1a - note d5 $1a - note a4 $1a - note c5 $1a - note gs4 $1a - note b4 $1a - note g4 $1a - note as4 $1a - note fs4 $1a - note a4 $0d - note e4 $0d - note gs4 $0d - note d4 $06 - rest $07 - vol $3 - note d4 $06 - rest $07 - vol $1 - note d4 $06 - rest $07 - vol $6 - note a4 $0d - note e4 $0d - note gs4 $0d - note d4 $06 - rest $07 - vol $3 - note d4 $06 - rest $07 - vol $1 - note d4 $06 - rest $07 - vol $6 - note d4 $0d - note gs4 $0d - note a4 $0d - note as4 $0d - note b4 $4e - note as4 $08 - note a4 $09 - note gs4 $09 - note d4 $0d - rest $06 - vol $3 - note d4 $0d - rest $07 - vol $1 - note d4 $0d - rest $06 - vol $0 - note d4 $0d - rest $55 - vol $6 - note d5 $1a - note a4 $1a - note cs5 $1a - note gs4 $1a - vol $3 - note gs4 $1a - vol $6 - note g4 $1a - note fs4 $1a - note ds5 $1a - note e5 $1a - note c5 $1a - note cs5 $1a - note gs4 $1a - note b4 $82 - note as4 $08 - note a4 $09 - note gs4 $09 - note d4 $08 - rest $05 - vol $3 - note d4 $08 - rest $05 - vol $1 - note d4 $08 - rest $05 - vol $0 - note d4 $08 - rest $6d - vol $6 - note c4 $08 - rest $05 - note c4 $08 - rest $05 - note fs4 $06 - rest $07 - vol $3 - note fs4 $06 - rest $07 - vol $1 - note fs4 $06 - rest $14 - vol $6 - note c4 $06 - rest $07 - note c4 $06 - rest $07 - note fs4 $06 - rest $07 - vol $3 - note fs4 $06 - rest $07 - vol $1 - note fs4 $06 - rest $14 - vol $6 - note c4 $06 - rest $07 - note c4 $06 - rest $07 - note fs4 $06 - rest $07 - note fs4 $06 - rest $07 - note as4 $0d - note a4 $0d - note f4 $0d - note gs4 $0d - note g4 $0d - note ds4 $0d - note fs4 $0d - note d4 $06 - rest $07 - vol $5 - note d4 $06 - rest $07 - vol $3 - note d4 $06 - rest $07 - vol $3 - note d4 $06 - rest $07 - vol $2 - note d4 $06 - rest $3b - goto musicf33aa - cmdff - -musCrownDungeonChannel0: - vibrato $e1 - env $0 $00 - duty $01 -musicf34d1: - vol $6 - note f4 $1a - note e4 $1a - note ds4 $1a - vol $6 - note a4 $1a - note gs4 $1a - note d4 $1a - note gs4 $1a - note cs4 $1a - note fs4 $1a - note c4 $1a - note f4 $1a - note b3 $1a - vol $3 - note b3 $1a - vol $6 - note f4 $0d - note e4 $0d - note ds4 $1a - note a4 $1a - note as4 $1a - note f4 $1a - note gs4 $1a - note e4 $1a - note g4 $1a - note ds4 $1a - note fs4 $1a - note d4 $1a - note f4 $0d - note c5 $0d - note e4 $0d - note b4 $06 - rest $07 - vol $3 - note b4 $06 - rest $07 - vol $1 - note b4 $06 - rest $07 - vol $6 - note f4 $0d - note c4 $0d - note e4 $0d - note as3 $06 - rest $07 - vol $3 - note as3 $06 - rest $07 - vol $1 - note as3 $06 - rest $3b - vol $6 - note d5 $0d - note gs5 $0d - note a5 $0d - note as5 $0d - note b5 $34 - note as5 $08 - note a5 $09 - note gs5 $09 - note d5 $08 - rest $05 - vol $3 - note d5 $08 - rest $05 - vol $1 - note d5 $08 - rest $05 - vol $0 - note d5 $08 - rest $53 - vol $6 - note as4 $1a - note f4 $1a - note a4 $1a - note e4 $1a - vol $3 - note e4 $1a - vol $6 - note ds4 $1a - note d4 $1a - note b4 $1a - note c5 $1a - note gs4 $1a - note a4 $1a - note e4 $1a - note g4 $0d - note ds4 $0d - note fs4 $0d - note d4 $06 - rest $07 - vol $3 - note d4 $06 - rest $07 - vol $1 - note d4 $06 - rest $07 - vol $6 - note g4 $0d - note ds4 $0d - note fs4 $0d - note d4 $06 - rest $07 - vol $3 - note d4 $06 - rest $07 - vol $1 - note d4 $06 - rest $07 - vol $6 - note as3 $06 - rest $07 - vol $3 - note as3 $06 - rest $07 - vol $1 - note as3 $06 - rest $07 - vol $0 - note as3 $06 - rest $6f - vol $6 - note gs3 $06 - rest $07 - note gs3 $06 - rest $07 - note d4 $06 - rest $07 - vol $3 - note d4 $06 - rest $07 - vol $1 - note d4 $06 - rest $07 - vol $0 - note d4 $06 - rest $07 - vol $6 - note gs3 $06 - rest $07 - note gs3 $06 - rest $07 - note d4 $06 - rest $07 - vol $3 - note d4 $06 - rest $07 - vol $1 - note d4 $06 - rest $07 - vol $0 - note d4 $06 - rest $07 - vol $6 - note gs3 $06 - rest $07 - note gs3 $06 - rest $07 - note d4 $06 - rest $07 - note d4 $06 - rest $07 - note fs4 $0d - note f4 $0d - note cs4 $0d - note e4 $0d - note ds4 $0d - note b3 $0d - note d4 $0d - note as3 $06 - rest $07 - vol $3 - note as3 $06 - rest $07 - vol $1 - note as3 $06 - rest $07 - vol $0 - note as3 $06 - rest $48 - goto musicf34d1 - cmdff - -musCrownDungeonChannel4: -musicf361a: - duty $0e - note c3 $0d - duty $0f - note c3 $0d - duty $0e - note c3 $0d - duty $0f - note c3 $0d - duty $0e - note f3 $1a - note fs3 $1a - rest $1a - note c3 $0d - duty $0f - note c3 $0d - duty $0e - note f3 $1a - note fs3 $1a - note c3 $0d - duty $0f - note c3 $0d - duty $0e - note c3 $0d - duty $0f - note c3 $0d - rest $1a - duty $0e - note c3 $0d - duty $0f - note c3 $0d - duty $0e - note fs3 $1a - note f3 $1a - note c3 $0d - duty $0f - note c3 $0d - duty $0e - note c3 $0d - duty $0f - note c3 $0d - rest $1a - duty $0e - note c3 $0d - duty $0f - note c3 $0d - duty $0e - note f3 $1a - note fs3 $1a - note c3 $0d - duty $0f - note c3 $0d - duty $0e - note c3 $0d - duty $0f - note c3 $0d - rest $1a - duty $0e - note c3 $0d - duty $0f - note c3 $0d - rest $34 - duty $0e - note c4 $0d - duty $0f - note c4 $0d - rest $34 - duty $0e - note c3 $0d - duty $0f - note c3 $0d - rest $ff - rest $39 - duty $0e - note d3 $0d - duty $0f - note d3 $0d - duty $0e - note d3 $0d - duty $0f - note d3 $0d - duty $0e - note a3 $1a - note as3 $1a - rest $1a - note d3 $0d - duty $0f - note d3 $0d - duty $0e - note a3 $1a - note as3 $1a - note d3 $0d - duty $0f - note d3 $0d - duty $0e - note d3 $0d - duty $0f - note d3 $0d - duty $0e - note as3 $0d - duty $0f - note as3 $0d - duty $0e - note as3 $0d - duty $0f - note as3 $0d - rest $34 - duty $0e - note d3 $0d - duty $0f - note d3 $0d - rest $34 - duty $0e - note d3 $0d - duty $0f - note d3 $0d - rest $d0 - duty $0e - note c3 $0d - duty $0f - note c3 $0d - rest $34 - duty $0e - note c3 $0d - duty $0f - note c3 $0d - rest $34 - duty $0e - note d4 $0d - note cs4 $0d - note a3 $0d - note c4 $0d - note b3 $0d - note g3 $0d - note as3 $0d - note fs3 $0d - duty $0f - note fs3 $0d - rest $5b - goto musicf361a - cmdff - -musCrownDungeonChannel6: -musicf3732: - rest $ff - rest $ff - rest $a6 - vol $4 - note $2e $34 - rest $1a - note $2e $34 - rest $ea - note $2a $0d - note $2a $0d - note $2e $34 - rest $ff - rest $ff - rest $24 - note $2a $0d - note $2a $0d - note $2e $1a - rest $9c - note $2a $0d - note $2a $0d - note $2e $1a - rest $9c - note $2a $0d - note $2a $0d - note $2a $0d - note $2e $0d - goto musicf3732 - cmdff diff --git a/audio/ages/mus/fairyForest.s b/audio/ages/mus/fairyForest.s deleted file mode 100644 index 24c95067f..000000000 --- a/audio/ages/mus/fairyForest.s +++ /dev/null @@ -1,533 +0,0 @@ -musFairyForestStart: - -musFairyForestChannel1: - cmdf2 - vibrato $e1 - env $0 $00 - duty $02 -musicf23a1: - vol $6 - note b5 $1c - vol $6 - note as5 $12 - note b5 $0a - note e5 $1c - note ds5 $12 - note e5 $0a - note as5 $1c - note a5 $12 - note as5 $0a - note fs5 $1c - note f5 $12 - note fs5 $0a - note b5 $1c - note as5 $12 - note b5 $0a - note e6 $12 - note b5 $0a - note a5 $12 - note gs5 $0a - note f5 $2e - note b4 $05 - rest $02 - vol $5 - note b4 $05 - rest $02 - vol $3 - note b4 $05 - vol $6 - note b4 $09 - note f5 $0a - note b5 $04 - rest $03 - vol $5 - note b5 $04 - rest $03 - vol $3 - note b5 $04 - rest $03 - vol $3 - note b5 $04 - rest $03 - vol $6 - note b5 $1c - note as5 $12 - note b5 $0a - note e5 $0e - rest $04 - note e5 $0a - note ds5 $12 - note e5 $0a - note cs6 $1c - note c6 $12 - note cs6 $0a - note fs5 $0e - rest $04 - note fs5 $0a - note f5 $12 - note fs5 $0a - note ds6 $1c - vol $6 - note cs6 $09 - note ds6 $09 - note cs6 $0a - note b5 $04 - rest $03 - vol $5 - note b5 $04 - rest $03 - vol $3 - note b5 $04 - rest $0a - vol $7 - note f5 $04 - rest $03 - vol $5 - note f5 $04 - rest $03 - vol $3 - note f5 $04 - rest $0a - vol $7 - note b4 $25 - note ds5 $09 - note g5 $0a - vol $6 - note b5 $04 - rest $03 - vol $5 - note b5 $04 - rest $03 - vol $4 - note b5 $04 - rest $03 - vol $3 - note b5 $04 - rest $03 - vol $2 - note b5 $04 - rest $18 - goto musicf23a1 - cmdff - -musFairyForestChannel0: - cmdf2 - vibrato $e1 - env $0 $00 - duty $02 -musicf2461: - vol $6 - note gs5 $09 - note g5 $09 - note gs5 $0a - note g5 $12 - note gs5 $0a - note e6 $04 - rest $05 - vol $5 - note e6 $05 - rest $04 - vol $3 - note e6 $05 - rest $21 - vol $6 - note fs5 $09 - note f5 $09 - note fs5 $0a - note f5 $12 - note fs5 $0a - note ds5 $04 - rest $05 - vol $4 - note ds5 $05 - rest $04 - vol $3 - note ds5 $05 - rest $21 - vol $6 - note gs5 $09 - vol $6 - note g5 $09 - note gs5 $0a - note g5 $12 - vol $6 - note gs5 $0a - note b5 $04 - rest $05 - vol $5 - note b5 $05 - rest $04 - vol $4 - note b5 $05 - rest $2a - vol $6 - note b4 $09 - note ds5 $0a - vol $6 - note g5 $09 - note b5 $09 - note ds6 $0a - note g6 $04 - rest $03 - vol $5 - note g6 $04 - rest $03 - vol $4 - note g6 $04 - rest $26 - vol $8 - note gs5 $09 - vol $6 - note g5 $09 - note gs5 $0a - vol $7 - note g5 $12 - vol $6 - note gs5 $0a - vol $6 - note e5 $02 - rest $02 - vol $5 - note e5 $03 - rest $02 - vol $4 - note e5 $02 - rest $03 - vol $3 - note e5 $02 - rest $02 - vol $6 - note as5 $0a - note b5 $04 - rest $03 - vol $5 - note b5 $04 - rest $03 - vol $3 - note b5 $04 - rest $0a - vol $6 - note as5 $09 - note a5 $09 - note as5 $0a - note a5 $12 - note as5 $0a - vol $6 - note fs5 $02 - rest $02 - vol $5 - note fs5 $03 - rest $02 - vol $4 - note fs5 $02 - rest $03 - vol $3 - note fs5 $02 - rest $02 - vol $6 - note c6 $0a - note cs6 $04 - rest $03 - vol $5 - note cs6 $04 - rest $03 - vol $4 - note cs6 $04 - rest $03 - vol $3 - note cs6 $04 - rest $03 - vol $6 - note b5 $04 - rest $03 - vol $5 - note b5 $04 - rest $03 - vol $4 - note b5 $04 - rest $03 - vol $3 - note b5 $02 - rest $05 - vol $6 - note as5 $09 - note b5 $09 - note as5 $0a - vol $6 - note g5 $04 - rest $03 - vol $5 - note g5 $04 - rest $03 - vol $4 - note g5 $04 - rest $0a - vol $7 - note fs5 $04 - rest $03 - vol $5 - note fs5 $04 - rest $03 - vol $3 - note fs5 $04 - rest $0a - vol $7 - note as4 $04 - rest $03 - vol $5 - note as4 $04 - rest $03 - vol $3 - note as4 $04 - rest $03 - vol $2 - note as4 $04 - rest $03 - vol $6 - note fs4 $04 - rest $05 - note b4 $05 - rest $04 - note ds5 $05 - rest $0e - note ds6 $05 - rest $04 - note g6 $05 - rest $05 - note b6 $04 - rest $03 - vol $5 - note b6 $04 - rest $03 - vol $4 - note b6 $04 - rest $03 - vol $3 - note b6 $04 - rest $03 - goto musicf2461 - cmdff - -musFairyForestChannel4: -musicf25a9: - duty $18 - note e3 $07 - duty $2b - note e3 $07 - rest $2a - duty $18 - note b2 $07 - duty $2b - note b2 $07 - rest $2a - duty $18 - note fs3 $07 - duty $2b - note fs3 $07 - rest $2a - duty $18 - note b3 $07 - duty $2b - note b3 $07 - rest $2a - duty $18 - note e3 $07 - duty $2b - note e3 $07 - rest $2a - duty $18 - note b2 $07 - duty $2b - note b2 $07 - rest $2a - duty $18 - note c3 $2e - note b2 $0a - duty $2b - note b2 $09 - rest $2f - duty $18 - note e3 $07 - duty $2b - note e3 $07 - rest $2a - duty $18 - note b2 $07 - duty $2b - note b2 $07 - rest $2a - duty $18 - note fs3 $07 - duty $2b - note fs3 $07 - rest $2a - duty $18 - note cs3 $07 - duty $2b - note cs3 $07 - rest $2a - duty $18 - note b3 $07 - duty $2b - note b3 $07 - rest $0e - duty $18 - note fs3 $07 - duty $2b - note fs3 $07 - rest $0e - duty $18 - note b2 $07 - duty $2b - note b2 $07 - rest $0e - duty $18 - note f2 $07 - duty $2b - note f2 $07 - rest $0e - duty $18 - note b2 $07 - duty $2b - note b2 $07 - rest $46 - duty $18 - note b2 $07 - duty $2b - note b2 $07 - rest $0e - goto musicf25a9 - cmdff - -musFairyForestChannel6: -musicf2659: - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $09 - vol $3 - note $2a $0a - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $13 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $09 - vol $3 - note $2a $0a - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $13 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $09 - vol $3 - note $2a $0a - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $13 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $09 - vol $3 - note $2a $0a - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $13 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $09 - vol $3 - note $2a $0a - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $13 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $09 - vol $3 - note $2a $0a - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $13 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $09 - vol $3 - note $2a $0a - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $13 - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $09 - vol $3 - note $2a $0a - vol $6 - note $24 $09 - rest $09 - vol $3 - note $2a $0a - note $2e $09 - rest $13 - goto musicf2659 - cmdff diff --git a/audio/ages/mus/jabuJabusBelly.s b/audio/ages/mus/jabuJabusBelly.s deleted file mode 100644 index f864cb281..000000000 --- a/audio/ages/mus/jabuJabusBelly.s +++ /dev/null @@ -1,485 +0,0 @@ -musJabuJabusBellyStart: - -musJabuJabusBellyChannel1: - vibrato $e1 - env $0 $00 - cmdf2 - duty $01 -musicf3770: - vol $7 - note e4 $2c - vol $7 - note ds4 $2c - note f4 $2c - note e4 $2c - note d4 $42 - note cs4 $0b - note c4 $0b - note as3 $21 - vibrato $01 - vol $3 - note as3 $0b - vibrato $e1 - vol $7 - note g3 $2c - vibrato $01 - vol $3 - note g3 $2c - vibrato $e1 - vol $7 - note a3 $2c - note e4 $2c - note a4 $2c - note as4 $58 - note ds4 $2c - note e4 $16 - vibrato $01 - vol $3 - note e4 $16 - vibrato $e1 - vol $7 - note a3 $16 - note e3 $16 - note f3 $16 - note cs3 $16 - note a3 $16 - note e3 $16 - note f3 $16 - note cs3 $16 - note cs4 $58 - note e3 $42 - vibrato $01 - vol $3 - note e3 $16 - vibrato $e1 - vol $7 - note b3 $16 - note fs3 $16 - note g3 $16 - note ds3 $16 - note b3 $16 - note fs3 $16 - note g3 $16 - note ds3 $16 - note d4 $58 - note f3 $42 - vibrato $01 - vol $3 - note f3 $15 - rest $01 - vibrato $e1 - goto musicf3770 - cmdff - -musJabuJabusBellyChannel0: - vibrato $00 - env $0 $00 - cmdf2 - duty $02 -musicf37ec: - vol $5 - note a4 $0b - rest $0b - note as4 $0b - vol $2 - note a4 $0b - vol $5 - note e5 $0b - vol $2 - note as4 $0b - vol $5 - note a4 $0b - vol $2 - note e5 $0b - vol $5 - note as4 $0b - vol $2 - note a4 $0b - vol $5 - note e5 $0b - vol $2 - note as4 $0b - vol $5 - note a4 $0b - vol $2 - note e5 $0b - vol $5 - note as4 $0b - vol $2 - note a4 $0b - vol $5 - note g4 $0b - vol $2 - note as4 $0b - vol $5 - note gs4 $0b - vol $2 - note g4 $0b - vol $5 - note d5 $0b - vol $2 - note gs4 $0b - vol $5 - note g4 $0b - vol $2 - note d5 $0b - vol $5 - note gs4 $0b - vol $2 - note g4 $0b - vol $5 - note d5 $0b - vol $2 - note gs4 $0b - vol $5 - note g4 $0b - vol $2 - note d5 $0b - vol $5 - note gs4 $0b - vol $2 - note g4 $0b - vol $5 - note a4 $0b - vol $2 - note gs4 $0b - vol $5 - note as4 $0b - vol $2 - note a4 $0b - vol $5 - note e5 $0b - vol $2 - note as4 $0b - vol $5 - note a4 $0b - vol $2 - note e5 $0b - vol $5 - note as4 $0b - vol $2 - note a4 $0b - vol $5 - note e5 $0b - vol $2 - note as4 $0b - vol $5 - note a4 $0b - vol $2 - note e5 $0b - vol $5 - note as4 $0b - vol $2 - note a4 $0b - vol $5 - note g4 $0b - vol $2 - note as4 $0b - vol $5 - note gs4 $0b - vol $2 - note g4 $0b - vol $5 - note d5 $0b - vol $2 - note gs4 $0b - vol $5 - note g4 $0b - vol $2 - note d5 $0b - vol $5 - note gs4 $0b - vol $2 - note g4 $0b - vol $5 - note d5 $0b - vol $2 - note gs4 $0b - vol $5 - note g4 $0b - vol $2 - note d5 $0b - vol $5 - note gs4 $0b - vol $2 - note g4 $0b - vol $5 - note a4 $0b - vol $2 - note gs4 $0b - vol $5 - note as4 $0b - vol $2 - note a4 $0b - vol $5 - note e5 $0b - vol $2 - note as4 $0b - vol $5 - note a4 $0b - vol $2 - note e5 $0b - vol $5 - note as4 $0b - vol $2 - note a4 $0b - vol $5 - note e5 $0b - vol $2 - note as4 $0b - vol $5 - note a4 $0b - vol $2 - note e5 $0b - vol $5 - note as4 $0b - vol $2 - note a4 $0b - vol $5 - note g4 $0b - vol $2 - note as4 $0b - vol $5 - note gs4 $0b - vol $2 - note g4 $0b - vol $5 - note d5 $0b - vol $2 - note gs4 $0b - vol $5 - note g4 $0b - vol $2 - note d5 $0b - vol $5 - note gs4 $0b - vol $2 - note g4 $0b - vol $5 - note d5 $0b - vol $2 - note gs4 $0b - vol $5 - note g4 $0b - vol $2 - note d5 $0b - vol $5 - note gs4 $0b - vol $2 - note g4 $0b - vol $5 - note b4 $0b - rest $0b - note c5 $0b - vol $2 - note b4 $0b - vol $5 - note fs5 $0b - vol $2 - note c5 $0b - vol $5 - note b4 $0b - vol $2 - note fs5 $0b - vol $5 - note c5 $0b - vol $2 - note b4 $0b - vol $5 - note fs5 $0b - vol $2 - note c5 $0b - vol $5 - note b4 $0b - vol $2 - note fs5 $0b - vol $5 - note c5 $0b - vol $2 - note b4 $0b - vol $5 - note cs5 $0b - vol $2 - note c5 $0b - vol $5 - note d5 $0b - vol $2 - note cs5 $0b - vol $5 - note gs5 $0b - vol $2 - note d5 $0b - vol $5 - note cs5 $0b - vol $2 - note gs5 $0b - vol $5 - note d5 $0b - vol $2 - note cs5 $0b - vol $5 - note gs5 $0b - vol $2 - note d5 $0b - vol $5 - note cs5 $0b - vol $2 - note gs5 $0b - vol $5 - note d5 $0b - vol $2 - note cs5 $0b - goto musicf37ec - cmdff - -musJabuJabusBellyChannel4: - cmdf2 -musicf396d: - duty $0e - note a2 $0b - duty $0f - note a2 $0b - duty $0e - note a2 $0b - duty $0f - note a2 $0b - rest $2c - duty $0e - note a2 $0b - duty $0f - note a2 $0b - duty $0e - note a2 $0b - duty $0f - note a2 $0b - rest $2c - duty $0e - note g2 $0b - duty $0f - note g2 $0b - duty $0e - note g2 $0b - duty $0f - note g2 $0b - rest $2c - duty $0e - note g2 $0b - duty $0f - note g2 $0b - duty $0e - note g2 $0b - duty $0f - note g2 $0b - rest $2c - duty $0e - note a2 $0b - duty $0f - note a2 $0b - duty $0e - note a2 $0b - duty $0f - note a2 $0b - rest $2c - duty $0e - note a2 $0b - duty $0f - note a2 $0b - duty $0e - note a2 $0b - duty $0f - note a2 $0b - rest $2c - duty $0e - note g2 $0b - duty $0f - note g2 $0b - duty $0e - note g2 $0b - duty $0f - note g2 $0b - rest $2c - duty $0e - note g2 $0b - duty $0f - note g2 $0b - duty $0e - note g2 $0b - duty $0f - note g2 $0b - rest $2c - duty $0e - note a2 $0b - duty $0f - note a2 $0b - duty $0e - note a2 $0b - duty $0f - note a2 $0b - rest $2c - duty $0e - note a2 $0b - duty $0f - note a2 $0b - duty $0e - note a2 $0b - duty $0f - note a2 $0b - rest $2c - duty $0e - note gs2 $0b - duty $0f - note gs2 $0b - duty $0e - note gs2 $0b - duty $0f - note gs2 $0b - rest $2c - duty $0e - note gs2 $0b - duty $0f - note gs2 $0b - duty $0e - note gs2 $0b - duty $0f - note gs2 $0b - rest $2c - duty $0e - note as2 $0b - duty $0f - note as2 $0b - duty $0e - note as2 $0b - duty $0f - note as2 $0b - rest $2c - duty $0e - note as2 $0b - duty $0f - note as2 $0b - duty $0e - note as2 $0b - duty $0f - note as2 $0b - rest $2c - duty $0e - note b2 $0b - duty $0f - note b2 $0b - duty $0e - note b2 $0b - duty $0f - note b2 $0b - rest $2c - duty $0e - note b2 $0b - duty $0f - note b2 $0b - duty $0e - note b2 $0b - duty $0f - note b2 $0b - rest $2c - goto musicf396d - cmdff - -.define musJabuJabusBellyChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/ages/mus/lynnaCity.s b/audio/ages/mus/lynnaCity.s deleted file mode 100644 index 36c21ab6d..000000000 --- a/audio/ages/mus/lynnaCity.s +++ /dev/null @@ -1,486 +0,0 @@ -musLynnaCityStart: - -musLynnaCityChannel1: - vibrato $e1 - env $0 $00 - cmdf2 - duty $02 -musicef079: - vol $6 - note g5 $24 - vol $6 - note c6 $24 - note a5 $24 - rest $12 - note b5 $09 - note c6 $09 - note b5 $12 - note a5 $09 - rest $03 - vol $3 - note a5 $03 - rest $03 - vol $6 - note g5 $09 - rest $03 - vol $3 - note g5 $03 - rest $03 - vol $6 - note f5 $09 - rest $03 - vol $3 - note f5 $03 - rest $03 - vol $6 - note e5 $12 - note f5 $09 - rest $03 - vol $3 - note f5 $03 - rest $03 - vol $6 - note g5 $09 - vol $3 - note g5 $09 - rest $12 - vol $6 - note a5 $12 - note e6 $09 - rest $09 - note e6 $09 - rest $03 - vol $5 - note e6 $03 - rest $06 - vol $3 - note e6 $03 - rest $06 - vol $2 - note e6 $03 - rest $27 - vol $6 - note d6 $09 - note c6 $09 - note b5 $09 - note a5 $09 - note g5 $12 - note a5 $09 - rest $03 - vol $3 - note a5 $03 - rest $03 - vol $6 - note g5 $09 - rest $09 - note a5 $09 - rest $03 - vol $3 - note a5 $03 - rest $03 - vol $6 - note g5 $12 - vol $3 - note g5 $09 - rest $09 - vol $6 - note f5 $12 - note g5 $12 - note a5 $24 - note f5 $24 - note b5 $24 - vibrato $01 - vol $3 - note b5 $09 - rest $09 - vibrato $e1 - vol $6 - note a5 $12 - note g5 $24 - note e5 $12 - note g5 $12 - note c6 $24 - rest $12 - note a5 $09 - note g5 $09 - note fs5 $12 - note g5 $12 - note a5 $12 - note b5 $12 - vol $6 - note c6 $12 - vol $6 - note b5 $12 - note c6 $12 - note a5 $12 - note d6 $09 - rest $03 - vol $5 - note d6 $03 - rest $03 - vol $3 - note d6 $03 - rest $03 - vol $2 - note d6 $03 - rest $09 - vol $6 - note g5 $09 - rest $03 - vol $3 - note g5 $03 - rest $03 - vol $6 - note b5 $09 - vol $6 - note a5 $09 - note g5 $24 - vibrato $01 - vol $3 - note g5 $0f - rest $03 - vibrato $e1 - vol $6 - note g5 $09 - rest $09 - goto musicef079 - cmdff - -musLynnaCityChannel0: - vibrato $00 - env $0 $00 - cmdf2 - duty $02 -musicef173: - vol $6 - note e4 $15 - vol $3 - note e4 $09 - rest $06 - vol $6 - note c4 $15 - vol $3 - note c4 $09 - rest $06 - vol $6 - note f4 $15 - vol $3 - note f4 $09 - rest $06 - vol $6 - note d4 $18 - vol $3 - note d4 $09 - rest $03 - vol $6 - note g4 $12 - note f4 $09 - rest $03 - vol $3 - note f4 $03 - rest $03 - vol $6 - note e4 $09 - rest $03 - vol $3 - note e4 $03 - rest $03 - vol $6 - note d4 $09 - rest $03 - vol $3 - note d4 $03 - rest $03 - vol $6 - note c4 $12 - note d4 $09 - rest $03 - vol $3 - note d4 $03 - rest $03 - vol $6 - note e4 $09 - rest $03 - vol $3 - note e4 $03 - rest $03 - vol $2 - note e4 $03 - rest $0f - vol $6 - note f4 $15 - vol $3 - note f4 $09 - rest $06 - vol $6 - note d4 $15 - vol $3 - note d4 $09 - rest $06 - vol $6 - note fs4 $15 - vol $3 - note fs4 $09 - rest $06 - vol $6 - note d4 $15 - vol $3 - note d4 $09 - rest $06 - vol $6 - note b3 $12 - note c4 $09 - rest $03 - vol $3 - note c4 $03 - rest $03 - vol $6 - note b3 $09 - rest $03 - vol $3 - note b3 $03 - rest $03 - vol $6 - note d4 $09 - rest $03 - vol $3 - note d4 $03 - rest $03 - vol $6 - note g4 $09 - rest $03 - vol $3 - note g4 $03 - rest $03 - vol $6 - note d4 $09 - rest $03 - vol $3 - note d4 $03 - rest $03 - vol $6 - note b3 $09 - rest $03 - vol $3 - note b3 $03 - rest $15 - vol $6 - note f4 $15 - vol $3 - note f4 $09 - rest $06 - vol $6 - note d4 $15 - vol $3 - note d4 $09 - rest $06 - vol $6 - note g4 $15 - vol $3 - note g4 $09 - rest $06 - vol $6 - note f4 $15 - vol $3 - note f4 $09 - rest $06 - vol $6 - note e4 $15 - vol $3 - note e4 $09 - rest $06 - vol $6 - note d4 $15 - vol $3 - note d4 $09 - rest $06 - vol $6 - note c4 $15 - vol $3 - note c4 $09 - rest $06 - vol $6 - note b3 $15 - vol $3 - note b3 $09 - rest $06 - vol $6 - note a3 $12 - note d4 $09 - rest $09 - note d4 $09 - rest $03 - vol $4 - note d4 $03 - rest $03 - vol $3 - note d4 $03 - rest $0f - vol $6 - note c4 $12 - note d4 $09 - rest $09 - note d4 $09 - rest $03 - vol $4 - note d4 $03 - rest $03 - vol $3 - note d4 $03 - rest $0f - vol $6 - note b3 $12 - vol $3 - note b3 $12 - vol $6 - note g4 $12 - vol $3 - note g4 $12 - vol $6 - note g4 $12 - note f4 $12 - note e4 $12 - note d4 $12 - goto musicef173 - cmdff - -musLynnaCityChannel4: - cmdf2 -musicef2b0: - rest $0d - duty $2b - note g5 $24 - duty $2b - note c6 $24 - note a5 $24 - rest $12 - note b5 $09 - note c6 $09 - note b5 $12 - note a5 $09 - rest $03 - duty $2c - note a5 $03 - rest $03 - duty $2b - note g5 $09 - rest $03 - duty $2c - note g5 $03 - rest $03 - duty $2b - note f5 $09 - rest $03 - duty $2c - note f5 $03 - rest $03 - duty $2b - note e5 $12 - note f5 $09 - rest $03 - duty $2c - note f5 $03 - rest $03 - duty $2b - note g5 $09 - duty $2c - note g5 $09 - rest $12 - duty $2b - note a5 $12 - note e6 $09 - rest $09 - note e6 $09 - rest $03 - vol $3 - note e6 $03 - rest $06 - duty $2c - note e6 $03 - rest $06 - duty $2c - note e6 $03 - rest $27 - duty $2b - note d6 $09 - note c6 $09 - note b5 $09 - note a5 $09 - note g5 $12 - note a5 $09 - rest $03 - duty $2c - note a5 $03 - rest $03 - duty $2b - note g5 $09 - rest $09 - note a5 $09 - rest $03 - duty $2c - note a5 $03 - rest $03 - duty $2b - note g5 $12 - duty $2c - note g5 $09 - rest $09 - duty $2b - note f5 $12 - note g5 $12 - note a5 $24 - note f5 $24 - note b5 $24 - duty $2c - note b5 $09 - rest $09 - duty $2b - note a5 $12 - note g5 $24 - note e5 $12 - note g5 $12 - note c6 $24 - rest $12 - note a5 $09 - note g5 $09 - note fs5 $12 - note g5 $12 - note a5 $12 - note b5 $12 - duty $2b - note c6 $12 - duty $2b - note b5 $12 - note c6 $12 - note a5 $12 - note d6 $09 - rest $03 - vol $3 - note d6 $03 - rest $03 - duty $2c - note d6 $03 - rest $03 - duty $2c - note d6 $03 - rest $09 - duty $2b - note g5 $09 - rest $03 - duty $2c - note g5 $03 - rest $03 - duty $2b - note b5 $09 - duty $2b - note a5 $09 - note g5 $24 - duty $2c - note g5 $0f - rest $03 - duty $2b - note g5 $05 - goto musicef2b0 - cmdff - -.define musLynnaCityChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/ages/mus/lynnaVillage.s b/audio/ages/mus/lynnaVillage.s deleted file mode 100644 index d7014d5cd..000000000 --- a/audio/ages/mus/lynnaVillage.s +++ /dev/null @@ -1,387 +0,0 @@ -musLynnaVillageStart: - -musLynnaVillageChannel1: - cmdf2 - vibrato $e1 - env $0 $00 - duty $01 -musicef3c3: - vol $6 - note g5 $2c - vol $6 - note c6 $2c - note a5 $2c - vibrato $01 - vol $3 - note a5 $16 - vibrato $e1 - vol $6 - note b5 $0b - note c6 $0b - note b5 $16 - note a5 $0b - rest $05 - vol $3 - note a5 $06 - vol $6 - note g5 $0b - rest $05 - vol $3 - note g5 $06 - vol $6 - note f5 $0b - rest $05 - vol $3 - note f5 $06 - vol $6 - note e5 $16 - note f5 $0b - rest $05 - vol $3 - note f5 $06 - vol $6 - note g5 $0b - rest $05 - vol $3 - note g5 $0b - rest $06 - vol $1 - note g5 $0b - vol $6 - note a5 $16 - note e6 $0b - rest $05 - vol $3 - note e6 $06 - vol $6 - note e6 $0b - rest $05 - vol $3 - note e6 $0b - rest $06 - vol $1 - note e6 $0b - rest $2c - vol $6 - note d6 $0b - note c6 $0b - note b5 $0b - note a5 $0b - note g5 $16 - note a5 $0b - rest $05 - vol $3 - note a5 $06 - vol $6 - note g5 $0b - rest $0b - note a5 $0b - rest $05 - vol $3 - note a5 $06 - vol $6 - note g5 $16 - vol $3 - note g5 $0b - rest $0b - vol $6 - note f5 $16 - note g5 $16 - note a5 $2c - note f5 $16 - note e5 $16 - note d5 $2c - vol $6 - note b5 $16 - vol $6 - note a5 $16 - note g5 $2c - note e5 $16 - note g5 $16 - note c6 $2c - vibrato $01 - vol $3 - note c6 $16 - vibrato $e1 - vol $6 - note a5 $0b - note g5 $0b - note f5 $16 - note g5 $16 - note a5 $16 - note b5 $16 - vol $6 - note c6 $16 - vol $6 - note b5 $16 - note c6 $16 - note a5 $16 - note d6 $0b - rest $05 - vol $3 - note d6 $0b - rest $06 - vol $1 - note d6 $0b - vol $6 - note g5 $0b - rest $05 - vol $3 - note g5 $06 - vol $6 - note b5 $0b - vol $6 - note a5 $0b - note g5 $2c - vibrato $01 - vol $3 - note g5 $12 - rest $04 - vibrato $e1 - vol $6 - note g5 $0b - rest $05 - vol $3 - note g5 $06 - goto musicef3c3 - cmdff - -musLynnaVillageChannel0: - cmdf2 - vibrato $00 - env $0 $00 - duty $01 -musicef4b7: - vol $6 - note e4 $1d - vol $3 - note e4 $0b - rest $04 - vol $6 - note c4 $1d - vol $3 - note c4 $0b - rest $04 - vol $6 - note f4 $1d - vol $3 - note f4 $0b - rest $04 - vol $6 - note d4 $1d - vol $3 - note d4 $0b - rest $04 - vol $6 - note g4 $16 - note f4 $0b - rest $05 - vol $3 - note f4 $06 - vol $6 - note e4 $0b - rest $05 - vol $3 - note e4 $06 - vol $6 - note d4 $0b - rest $05 - vol $3 - note d4 $06 - vol $6 - note c4 $16 - note d4 $0b - rest $05 - vol $3 - note d4 $06 - vol $6 - note e4 $0b - rest $05 - vol $3 - note e4 $0b - rest $06 - vol $1 - note e4 $0b - vol $6 - note f4 $19 - vol $3 - note f4 $0b - rest $34 - vol $6 - note fs4 $19 - vol $3 - note fs4 $0b - rest $08 - vol $6 - note d4 $19 - vol $3 - note d4 $0b - rest $08 - vol $6 - note b3 $16 - note c4 $0b - rest $05 - vol $3 - note c4 $06 - vol $6 - note b3 $0b - rest $05 - vol $3 - note b3 $06 - vol $6 - note d4 $0b - rest $05 - vol $3 - note d4 $06 - vol $6 - note g4 $0b - rest $05 - vol $3 - note g4 $06 - vol $6 - note d4 $0b - rest $05 - vol $3 - note d4 $06 - vol $6 - note b3 $0b - rest $05 - vol $3 - note b3 $0b - rest $06 - vol $1 - note b3 $0b - vol $6 - note f4 $2c - vol $3 - note f4 $2c - vol $6 - note g4 $19 - vol $3 - note g4 $0b - rest $08 - vol $6 - note f4 $19 - vol $3 - note f4 $0b - rest $08 - vol $6 - note e4 $19 - vol $3 - note e4 $0b - rest $08 - vol $6 - note d4 $19 - vol $3 - note d4 $0b - rest $08 - vol $6 - note c4 $2c - note b3 $2c - note a3 $16 - note f4 $0b - rest $05 - vol $3 - note f4 $06 - vol $6 - note c4 $0b - rest $05 - vol $3 - note c4 $0b - rest $06 - vol $1 - note c4 $0b - vol $6 - note e4 $16 - note f4 $0b - rest $05 - vol $3 - note f4 $06 - vol $6 - note f4 $0b - rest $05 - vol $3 - note f4 $0b - rest $06 - vol $1 - note f4 $0b - vol $6 - note b3 $16 - vol $3 - note b3 $16 - vol $6 - note g4 $16 - vol $3 - note g4 $16 - vol $6 - note g4 $16 - note f4 $16 - note e4 $16 - note d4 $16 - goto musicef4b7 - cmdff - -musLynnaVillageChannel4: - cmdf2 -musicef5c9: - duty $0e - note c4 $21 - duty $0f - note c4 $21 - rest $16 - duty $0e - note d4 $21 - duty $0f - note d4 $21 - rest $16 - duty $0e - note g3 $2c - duty $0f - note g3 $2c - duty $0e - note c3 $16 - note d3 $16 - note e3 $0b - duty $0f - note e3 $0b - rest $16 - duty $0e - note f3 $2c - note e3 $2c - note d3 $2c - note a3 $2c - note g3 $42 - note b3 $16 - note d4 $21 - rest $37 - note d4 $42 - note c4 $16 - note b3 $2c - note g3 $2c - note c4 $2c - duty $0f - note c4 $16 - duty $0e - note b3 $16 - note e4 $2c - note d4 $2c - note c4 $2c - note f4 $16 - duty $0f - note f4 $16 - duty $0e - note f3 $2c - note a3 $16 - duty $0f - note a3 $16 - duty $0e - note g3 $16 - note a3 $16 - note b3 $16 - note a3 $16 - note g3 $2c - rest $2c - goto musicef5c9 - cmdff - -.define musLynnaVillageChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/ages/mus/makuPath.s b/audio/ages/mus/makuPath.s deleted file mode 100644 index 46f8b3e46..000000000 --- a/audio/ages/mus/makuPath.s +++ /dev/null @@ -1,530 +0,0 @@ -musMakuPathStart: - -musMakuPathChannel1: - vibrato $00 - env $0 $00 - cmdf2 - duty $02 -musicef646: - vol $6 - note g5 $0a - note e5 $0b - note c5 $0b - note g4 $08 - rest $04 - vol $3 - note g4 $08 - rest $04 - vol $2 - note g4 $08 - vol $6 - note as4 $15 - note a4 $0b - note g4 $08 - rest $04 - vol $3 - note g4 $08 - rest $04 - vol $2 - note g4 $08 - vol $6 - note g5 $0a - note e5 $0b - note c5 $0b - note g4 $08 - rest $04 - vol $3 - note g4 $08 - rest $01 - vol $6 - note g4 $0b - note as4 $15 - note a4 $0b - note g4 $08 - rest $04 - vol $3 - note g4 $08 - rest $04 - vol $2 - note g4 $08 - vol $6 - note g5 $0a - note e5 $0b - note c5 $0b - note g4 $08 - rest $04 - vol $3 - note g4 $08 - rest $04 - vol $2 - note g4 $08 - vol $6 - note as4 $15 - note a4 $0b - note g4 $05 - rest $07 - vol $3 - note g4 $04 - vol $6 - note e4 $05 - rest $07 - vol $3 - note e4 $04 - vol $6 - note f4 $05 - rest $07 - vol $3 - note f4 $04 - vol $6 - note fs4 $05 - rest $07 - vol $3 - note fs4 $04 - vol $6 - note g4 $05 - rest $07 - vol $3 - note g4 $04 - vol $6 - note a4 $05 - rest $07 - vol $3 - note a4 $04 - vol $6 - note as4 $08 - rest $04 - vol $3 - note as4 $08 - rest $04 - vol $2 - note as4 $08 - rest $20 - vol $6 - note g5 $0a - note e5 $0b - note c5 $0b - note g4 $08 - rest $04 - vol $3 - note g4 $08 - rest $04 - vol $2 - note g4 $08 - vol $6 - note as4 $15 - note a4 $0b - note g4 $08 - rest $04 - vol $3 - note g4 $08 - rest $04 - vol $2 - note g4 $08 - vol $6 - note g5 $0a - note e5 $0b - note c5 $0b - note g4 $08 - rest $04 - vol $3 - note g4 $08 - rest $04 - vol $2 - note g4 $08 - vol $6 - note as4 $08 - note c5 $08 - note as4 $08 - note a4 $08 - note g4 $08 - rest $04 - vol $3 - note g4 $08 - rest $04 - vol $2 - note g4 $08 - vol $6 - note g5 $0a - note e5 $0b - note c5 $0b - note g4 $08 - rest $04 - vol $3 - note g4 $08 - rest $04 - vol $2 - note g4 $08 - vol $6 - note as4 $15 - note a4 $0b - note g4 $08 - rest $04 - vol $3 - note g4 $04 - vol $6 - note a4 $08 - rest $04 - vol $3 - note a4 $04 - vol $6 - note b4 $08 - rest $04 - vol $3 - note b4 $04 - vol $6 - note c5 $08 - rest $04 - vol $3 - note c5 $04 - vol $6 - note d5 $08 - rest $04 - vol $3 - note d5 $04 - vol $6 - note e5 $08 - rest $04 - vol $3 - note e5 $04 - vol $6 - note f5 $08 - rest $04 - vol $3 - note f5 $08 - rest $04 - vol $2 - note f5 $08 - vol $6 - note fs5 $08 - rest $04 - vol $3 - note fs5 $08 - rest $04 - vol $2 - note fs5 $08 - goto musicef646 - cmdff - -musMakuPathChannel0: - vibrato $00 - env $0 $00 - cmdf2 - duty $02 -musicef79b: - vol $0 - note gs3 $40 - vol $6 - note g4 $15 - note f4 $0b - note e4 $08 - rest $04 - vol $3 - note e4 $08 - rest $04 - vol $2 - note e4 $08 - rest $40 - vol $6 - note g4 $15 - note f4 $0b - note e4 $08 - rest $04 - vol $3 - note e4 $08 - rest $04 - vol $2 - note e4 $08 - rest $40 - vol $6 - note g4 $15 - note f4 $0b - note e4 $05 - rest $07 - vol $3 - note e4 $04 - vol $6 - note c4 $05 - rest $07 - vol $3 - note c4 $04 - vol $6 - note d4 $05 - rest $07 - vol $3 - note d4 $04 - vol $6 - note ds4 $05 - rest $07 - vol $3 - note ds4 $04 - vol $6 - note e4 $05 - rest $07 - vol $3 - note e4 $04 - vol $6 - note f4 $05 - rest $07 - vol $3 - note f4 $04 - vol $6 - note fs4 $08 - rest $04 - vol $3 - note fs4 $08 - rest $04 - vol $2 - note fs4 $08 - rest $60 - vol $6 - note g4 $15 - note f4 $0b - note e4 $08 - rest $04 - vol $3 - note e4 $08 - rest $04 - vol $2 - note e4 $08 - rest $20 - vol $6 - note e4 $08 - rest $04 - vol $3 - note e4 $08 - rest $04 - vol $2 - note e4 $08 - vol $6 - note g4 $08 - note gs4 $08 - note g4 $08 - note f4 $08 - note e4 $08 - rest $04 - vol $3 - note e4 $08 - rest $04 - vol $2 - note e4 $08 - rest $20 - vol $6 - note e4 $08 - rest $04 - vol $3 - note e4 $08 - rest $04 - vol $2 - note e4 $08 - vol $6 - note g4 $15 - note f4 $0b - note e4 $08 - rest $04 - vol $3 - note e4 $04 - vol $6 - note f4 $08 - rest $04 - vol $3 - note f4 $04 - vol $6 - note g4 $08 - rest $04 - vol $3 - note g4 $04 - vol $6 - note a4 $08 - rest $04 - vol $3 - note a4 $04 - vol $6 - note b4 $08 - rest $04 - vol $3 - note b4 $04 - vol $6 - note c5 $08 - rest $04 - vol $3 - note c5 $04 - vol $6 - note cs5 $08 - rest $04 - vol $3 - note cs5 $08 - rest $04 - vol $2 - note cs5 $08 - vol $6 - note d5 $08 - rest $04 - vol $3 - note d5 $08 - rest $04 - vol $2 - note d5 $08 - goto musicef79b - cmdff - -musMakuPathChannel4: - cmdf2 -musicef89e: - rest $20 - duty $0e - note c3 $08 - duty $0f - note c3 $08 - rest $10 - duty $0e - note g3 $08 - duty $0f - note g3 $08 - rest $10 - duty $0e - note g2 $08 - duty $0f - note g2 $08 - rest $10 - duty $0e - note as2 $08 - duty $0f - note as2 $08 - rest $10 - duty $0e - note c3 $08 - duty $0f - note c3 $08 - rest $10 - duty $0e - note g3 $08 - duty $0f - note g3 $08 - rest $10 - duty $0e - note g2 $08 - duty $0f - note g2 $08 - rest $10 - duty $0e - note as2 $08 - duty $0f - note as2 $08 - rest $10 - duty $0e - note c3 $08 - duty $0f - note c3 $08 - rest $10 - duty $0e - note g3 $08 - duty $0f - note g3 $08 - rest $10 - duty $0e - note g2 $08 - duty $0f - note g2 $08 - duty $0e - note a2 $08 - duty $0f - note a2 $08 - duty $0e - note as2 $08 - duty $0f - note as2 $08 - duty $0e - note b2 $08 - duty $0f - note b2 $08 - duty $0e - note c3 $08 - duty $0f - note c3 $08 - duty $0e - note d3 $08 - duty $0f - note d3 $08 - duty $0e - note ds3 $08 - duty $0f - note ds3 $08 - rest $50 - duty $0e - note c3 $08 - duty $0f - note c3 $08 - rest $10 - duty $0e - note g3 $08 - duty $0f - note g3 $08 - rest $10 - duty $0e - note g2 $08 - duty $0f - note g2 $08 - rest $10 - duty $0e - note g2 $0a - note as2 $0b - note b2 $0b - note c3 $08 - duty $0f - note c3 $08 - rest $10 - duty $0e - note g3 $08 - duty $0f - note g3 $08 - rest $10 - duty $0e - note g2 $08 - duty $0f - note g2 $08 - rest $10 - duty $0e - note g2 $0a - note as2 $0b - note b2 $0b - note c3 $08 - duty $0f - note c3 $08 - rest $10 - duty $0e - note g3 $08 - duty $0f - note g3 $08 - rest $10 - duty $0e - note g2 $08 - duty $0f - note g2 $08 - rest $10 - duty $0e - note a2 $08 - duty $0f - note a2 $08 - rest $10 - duty $0e - note b2 $08 - duty $0f - note b2 $08 - duty $0e - note cs3 $08 - duty $0f - note cs3 $08 - duty $0e - note d3 $08 - duty $0f - note d3 $08 - rest $10 - duty $0e - note ds3 $08 - duty $0f - note ds3 $08 - rest $10 - goto musicef89e - cmdff - -.define musMakuPathChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/ages/mus/makuTree.s b/audio/ages/mus/makuTree.s deleted file mode 100644 index 27ffa141f..000000000 --- a/audio/ages/mus/makuTree.s +++ /dev/null @@ -1,433 +0,0 @@ -musMakuTreeStart: - -musMakuTreeChannel1: - vol $0 - note gs3 $14 -musice7c68: - vibrato $e1 - env $0 $00 - duty $02 - vol $6 - note e3 $1c - note g3 $1c - note d4 $1c - note b3 $1c - note g4 $1c - note e4 $1c - note d4 $1c - note e4 $1c - env $0 $00 - note a3 $09 - note d4 $09 - note e4 $0a - note g4 $09 - note a4 $09 - note e4 $0a - note fs4 $09 - note a4 $09 - note d5 $0a - note b4 $09 - note fs5 $09 - note e5 $0a - note b4 $09 - note d5 $09 - note g5 $0a - note fs5 $09 - note a5 $09 - note e5 $0a - note fs5 $09 - note a5 $09 - note d6 $0a - note b5 $09 - note cs6 $09 - note a5 $0a - env $0 $00 - vol $1 - note b6 $04 - note a6 $04 - note b6 $04 - note a6 $04 - vol $2 - note b6 $04 - note a6 $04 - note b6 $04 - note a6 $04 - vol $3 - note b6 $04 - note a6 $04 - note b6 $04 - note a6 $04 - vol $3 - note b6 $04 - note a6 $04 - vol $4 - note b6 $04 - note a6 $04 - env $0 $05 - note b6 $0e - vol $3 - note b6 $0e - vol $2 - note b6 $0e - vol $1 - note b6 $5a - env $0 $00 - vol $6 - note a3 $1c - note gs3 $1c - note fs3 $1c - note e3 $1c - note d3 $1c - note fs3 $1c - note e3 $1c - note a2 $1c - note d3 $1c - note b2 $1c - note e3 $1c - env $0 $06 - note fs3 $70 - env $0 $00 - env $0 $00 - note d4 $09 - note e4 $09 - note g4 $0a - note fs4 $09 - note e4 $09 - note d4 $0a - note e4 $09 - note b4 $09 - note d5 $0a - note cs5 $09 - note b4 $09 - note a4 $0a - note b4 $09 - note e5 $09 - note a5 $0a - note g5 $09 - note fs5 $09 - note e5 $0a - note fs5 $09 - note a5 $09 - note d6 $0a - note cs6 $09 - note b5 $09 - note a5 $0a - env $0 $00 - vol $6 - note e5 $04 - note fs5 $04 - note a5 $06 - note b5 $04 - env $0 $06 - vol $4 - note d6 $0a - vol $4 - note d6 $09 - vol $2 - note d6 $09 - vol $1 - note d6 $0a - env $0 $00 - vol $6 - note e5 $04 - vol $6 - note fs5 $04 - note a5 $06 - note b5 $04 - env $0 $06 - vol $5 - note d6 $0a - vol $4 - note d6 $09 - vol $2 - note d6 $09 - vol $1 - note d6 $0a - env $0 $00 - vol $6 - note e5 $04 - vol $6 - note fs5 $04 - note a5 $06 - note b5 $04 - env $0 $06 - vol $4 - note d6 $0a - vol $3 - note d6 $09 - vol $2 - note d6 $09 - vol $1 - note d6 $0a - env $0 $00 - vol $1 - note g6 $04 - note a6 $04 - vol $1 - note g6 $04 - note a6 $04 - vol $2 - note g6 $04 - note a6 $04 - vol $2 - note g6 $04 - note a6 $04 - vol $3 - note g6 $04 - note a6 $04 - vol $3 - note g6 $04 - note a6 $04 - vol $4 - note g6 $04 - note a6 $04 - env $0 $07 - vol $2 - note g6 $0e - vol $2 - note g6 $0e - vol $1 - note g6 $0e - vol $1 - note g6 $46 - env $0 $00 - goto musice7c68 - cmdff - -musMakuTreeChannel0: - vol $0 - note gs3 $14 -musice7dbf: - vibrato $e1 - env $0 $00 - duty $02 - vol $6 - note a2 $1c - note d3 $1c - note g3 $1c - note e3 $1c - vol $6 - note c4 $1c - note b3 $1c - note g3 $1c - env $0 $04 - note a3 $2e - env $0 $00 - env $0 $00 - vol $6 - note a3 $0a - note d4 $09 - note e4 $09 - note g4 $0a - note a4 $09 - vol $4 - note e4 $09 - note fs4 $0a - note a4 $09 - note d5 $09 - note b4 $0a - note fs5 $09 - note e5 $09 - note b4 $0a - note d5 $09 - note g5 $09 - vol $4 - note fs5 $0a - note a5 $09 - note e5 $09 - vol $4 - note fs5 $0a - note a5 $09 - note d6 $09 - note b5 $0a - env $0 $00 - vol $1 - note g6 $04 - note f6 $04 - note g6 $04 - note f6 $04 - vol $2 - note g6 $04 - note f6 $04 - note g6 $04 - note f6 $04 - vol $3 - note g6 $04 - note f6 $04 - note g6 $04 - note f6 $04 - vol $3 - note g6 $04 - note f6 $04 - vol $4 - note g6 $04 - note f6 $04 - env $0 $06 - vol $2 - note g6 $0e - vol $2 - note g6 $0e - vol $2 - note g6 $0e - vol $1 - note g6 $5a - env $0 $00 - vol $6 - note d3 $1c - note cs3 $1c - note b2 $1c - note a2 $1c - note g2 $1c - note b2 $1c - note a2 $1c - note e2 $1c - note g2 $1c - note e2 $1c - note a2 $1c - note b2 $1c - note d3 $1c - note e3 $1c - env $0 $06 - note g3 $31 - env $0 $00 - env $0 $00 - vol $6 - note b3 $09 - note d4 $09 - vol $4 - note g4 $0a - note fs4 $09 - note e4 $09 - note d4 $0a - note e4 $09 - note b4 $09 - note d5 $0a - note cs5 $09 - note b4 $09 - note a4 $0a - note b4 $09 - note e5 $09 - vol $4 - note a5 $0a - note g5 $09 - note fs5 $09 - note e5 $0a - note fs5 $09 - note a5 $09 - note d6 $0a - note cs6 $09 - note b5 $09 - note a5 $0a - env $0 $00 - vol $4 - note e5 $04 - note fs5 $05 - note a5 $04 - note b5 $04 - env $0 $06 - vol $3 - note d6 $0d - vol $2 - note d6 $0e - vol $1 - note d6 $0c - env $0 $00 - vol $3 - note e5 $04 - note fs5 $05 - note a5 $04 - note b5 $04 - env $0 $06 - vol $2 - note d6 $0d - vol $1 - note d6 $0e - vol $1 - note d6 $0c - env $0 $00 - vol $3 - note e5 $04 - note fs5 $05 - note a5 $04 - note b5 $04 - env $0 $06 - vol $2 - note d6 $0c - vol $1 - note d6 $05 - env $0 $00 - vol $1 - note b6 $04 - note cs7 $04 - vol $1 - note b6 $04 - note cs7 $04 - vol $2 - note b6 $04 - note cs7 $04 - vol $2 - note b6 $04 - note cs7 $04 - vol $3 - note b6 $04 - note cs7 $04 - vol $3 - note b6 $04 - note cs7 $04 - vol $4 - note b6 $04 - note cs7 $04 - env $0 $06 - vol $2 - note b6 $0e - vol $2 - note b6 $0e - vol $2 - note b6 $0e - vol $1 - note b6 $47 - env $0 $00 - goto musice7dbf - cmdff - -musMakuTreeChannel4: - rest $14 -musice7f16: - duty $17 - note a3 $1c - note d4 $1c - note g4 $1c - note e4 $1c - note c5 $1c - note b4 $1c - note g4 $1c - note a4 $1c - note e4 $70 - duty $0f - note e4 $38 - duty $0c - note e4 $38 - rest $c4 - duty $17 - note d4 $1c - note cs4 $1c - note b3 $1c - note a3 $1c - note g3 $1c - note b3 $1c - note a3 $1c - note e3 $1c - note g3 $1c - note e3 $1c - note a3 $1c - note b3 $70 - duty $0f - note b3 $38 - duty $0c - note b3 $38 - rest $ff - rest $c1 - goto musice7f16 - cmdff - -.define musMakuTreeChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/ages/mus/mermaidsCave.s b/audio/ages/mus/mermaidsCave.s deleted file mode 100644 index abaca00c4..000000000 --- a/audio/ages/mus/mermaidsCave.s +++ /dev/null @@ -1,819 +0,0 @@ -musMermaidsCaveStart: - -musMermaidsCaveChannel1: - cmdf2 - vibrato $00 - env $0 $00 - duty $01 -musicf1539: - vol $6 - note ds4 $21 - vol $4 - note ds4 $0b - vol $6 - note f4 $21 - vol $4 - note f4 $0b - vol $6 - note as4 $42 - vol $4 - note as4 $16 - vol $6 - note ds4 $21 - vol $4 - note ds4 $0b - vol $6 - note f4 $21 - vol $4 - note f4 $0b - vol $6 - note b4 $42 - vol $4 - note b4 $16 - vol $6 - note ds4 $21 - vol $4 - note ds4 $0b - vol $6 - note f4 $21 - vol $4 - note f4 $0b - vol $6 - note cs5 $21 - vol $4 - note cs5 $0b - vol $6 - note b4 $21 - vol $4 - note b4 $0b - vol $6 - note gs4 $21 - vol $4 - note gs4 $0b - vol $6 - note as4 $21 - vol $4 - note as4 $0b - rest $0e - vol $4 - note as3 $0b - note b3 $0b - vol $4 - note as3 $0b - note b3 $0b - note ds4 $0b - note e4 $0b - note ds4 $0b - vol $4 - note e4 $0b - note as4 $0b - note b4 $0b - note ds5 $0b - note e5 $0b - note as5 $0b - note b5 $0b - note ds6 $08 - vol $6 - note e4 $21 - vol $2 - note e4 $0b - vol $6 - note fs4 $21 - vol $4 - note fs4 $0b - vol $6 - note b4 $42 - vol $3 - note b4 $16 - vol $6 - note e4 $21 - vol $4 - note e4 $0b - vol $6 - note fs4 $21 - vol $4 - note fs4 $0b - vol $6 - note cs5 $42 - vol $3 - note cs5 $16 - vol $6 - note b4 $21 - vol $4 - note b4 $0b - vol $6 - note cs5 $21 - vol $4 - note cs5 $0b - vol $6 - note ds5 $21 - vol $4 - note ds5 $0b - vol $6 - note fs5 $21 - vol $4 - note fs5 $0b - vol $6 - note e5 $21 - vol $4 - note e5 $0b - vol $6 - note a5 $2c - rest $0b - vol $4 - note f3 $0b - note fs3 $0b - note f3 $0b - note fs3 $0b - note as3 $0b - note b3 $0b - note as3 $0b - note b3 $0b - note f4 $0b - note fs4 $0b - note as4 $0b - note b4 $0b - note f5 $0b - note fs5 $0b - note c6 $0b - note cs6 $0b - rest $05 - vol $2 - note cs6 $0b - rest $06 - vol $1 - note cs6 $0b - rest $2c - goto musicf1539 - cmdff - -musMermaidsCaveChannel0: - cmdf2 - vibrato $00 - env $0 $00 - duty $02 -musicf1623: - vol $6 - note as5 $05 - rest $06 - note f5 $05 - vol $2 - note as5 $06 - vol $6 - note ds5 $05 - vol $2 - note f5 $06 - vol $6 - note f5 $05 - vol $2 - note ds5 $06 - vol $6 - note as4 $05 - vol $2 - note f5 $06 - vol $6 - note ds5 $05 - vol $2 - note as4 $06 - vol $6 - note f5 $05 - vol $2 - note ds5 $06 - vol $6 - note ds5 $05 - vol $2 - note f5 $06 - vol $6 - note as5 $05 - vol $2 - note ds5 $06 - vol $6 - note f5 $05 - vol $2 - note as5 $06 - vol $6 - note ds5 $05 - vol $2 - note f5 $06 - vol $6 - note f5 $05 - vol $2 - note ds5 $06 - vol $6 - note as4 $05 - vol $2 - note f5 $06 - vol $6 - note ds5 $05 - vol $2 - note as4 $06 - vol $6 - note f5 $05 - vol $2 - note ds5 $06 - vol $6 - note ds5 $05 - vol $2 - note f5 $06 - vol $6 - note as5 $05 - vol $2 - note ds5 $06 - vol $6 - note f5 $05 - vol $2 - note as5 $06 - vol $6 - note ds5 $05 - vol $2 - note f5 $06 - vol $6 - note f5 $05 - vol $2 - note ds5 $06 - vol $6 - note as4 $05 - vol $2 - note f5 $06 - vol $6 - note ds5 $05 - vol $2 - note as4 $06 - vol $6 - note f5 $05 - vol $2 - note ds5 $06 - vol $6 - note ds5 $05 - vol $2 - note f5 $06 - vol $6 - note b5 $05 - vol $2 - note ds5 $06 - vol $6 - note f5 $05 - vol $2 - note b5 $06 - vol $6 - note ds5 $05 - vol $2 - note f5 $06 - vol $6 - note f5 $05 - vol $2 - note ds5 $06 - vol $6 - note b4 $05 - vol $2 - note f5 $06 - vol $6 - note ds5 $05 - vol $2 - note b4 $06 - vol $6 - note f5 $05 - vol $2 - note ds5 $06 - vol $6 - note ds5 $05 - vol $2 - note f5 $06 - vol $6 - note as5 $05 - vol $2 - note ds5 $06 - vol $6 - note f5 $05 - vol $2 - note as5 $06 - vol $6 - note ds5 $05 - vol $2 - note f5 $06 - vol $6 - note f5 $05 - vol $2 - note ds5 $06 - vol $6 - note as4 $05 - vol $2 - note f5 $06 - vol $6 - note ds5 $05 - vol $2 - note as4 $06 - vol $6 - note f5 $05 - vol $2 - note ds5 $06 - vol $6 - note ds5 $05 - vol $2 - note f5 $06 - vol $6 - note as5 $05 - vol $2 - note ds5 $06 - vol $6 - note f5 $05 - vol $2 - note as5 $06 - vol $6 - note ds5 $05 - vol $2 - note f5 $06 - vol $6 - note f5 $05 - vol $2 - note ds5 $06 - vol $6 - note as4 $05 - vol $2 - note f5 $06 - vol $6 - note ds5 $05 - vol $2 - note as4 $06 - vol $6 - note f5 $05 - vol $2 - note ds5 $06 - vol $6 - note ds5 $05 - vol $2 - note f5 $06 - vol $6 - note as5 $05 - rest $06 - note f5 $05 - vol $2 - note as5 $06 - vol $6 - note ds5 $05 - vol $2 - note f5 $06 - vol $6 - note f5 $05 - vol $2 - note ds5 $06 - vol $6 - note as4 $05 - vol $2 - note f5 $06 - vol $6 - note ds5 $05 - vol $2 - note as4 $06 - vol $6 - note e5 $05 - vol $2 - note ds5 $06 - vol $6 - note ds5 $05 - vol $2 - note e5 $06 - vol $5 - note as3 $0b - note b3 $0b - note as3 $0b - note b3 $0b - note ds4 $0b - note e4 $0b - note ds4 $0b - note e4 $0b - note as4 $0b - note b4 $0b - note ds5 $0b - note e5 $0b - note as5 $0b - note b5 $0b - note ds6 $0b - note e6 $0b - vol $6 - note b5 $05 - rest $06 - note fs5 $05 - vol $2 - note b5 $06 - vol $6 - note e5 $05 - vol $2 - note fs5 $06 - vol $6 - note fs5 $05 - vol $2 - note e5 $06 - vol $6 - note b4 $05 - vol $2 - note fs5 $06 - vol $6 - note e5 $05 - vol $2 - note b4 $06 - vol $6 - note fs5 $05 - vol $2 - note e5 $06 - vol $6 - note e5 $05 - vol $2 - note fs5 $06 - vol $6 - note b5 $05 - vol $2 - note e5 $06 - vol $6 - note fs5 $05 - vol $2 - note b5 $06 - vol $6 - note e5 $05 - vol $2 - note fs5 $06 - vol $6 - note fs5 $05 - vol $2 - note e5 $06 - vol $6 - note b4 $05 - vol $2 - note fs5 $06 - vol $6 - note e5 $05 - vol $2 - note b4 $06 - vol $6 - note fs5 $05 - vol $2 - note e5 $06 - vol $6 - note e5 $05 - vol $2 - note fs5 $06 - vol $6 - note b5 $05 - vol $2 - note e5 $06 - vol $6 - note fs5 $05 - vol $2 - note b5 $06 - vol $6 - note e5 $05 - vol $2 - note fs5 $06 - vol $6 - note fs5 $05 - vol $2 - note e5 $06 - vol $6 - note b4 $05 - vol $2 - note fs5 $06 - vol $6 - note e5 $05 - vol $2 - note b4 $06 - vol $6 - note fs5 $05 - vol $2 - note e5 $06 - vol $6 - note e5 $05 - vol $2 - note fs5 $06 - vol $6 - note b5 $05 - vol $2 - note e5 $06 - vol $6 - note fs5 $05 - vol $2 - note b5 $06 - vol $6 - note e5 $05 - vol $2 - note fs5 $06 - vol $6 - note fs5 $05 - vol $2 - note e5 $06 - vol $6 - note b4 $05 - vol $2 - note fs5 $06 - vol $6 - note e5 $05 - vol $2 - note b4 $06 - vol $6 - note fs5 $05 - vol $2 - note e5 $06 - vol $6 - note e5 $05 - vol $2 - note fs5 $06 - vol $6 - note cs6 $05 - vol $2 - note e5 $06 - vol $6 - note gs5 $05 - vol $2 - note cs6 $06 - vol $6 - note fs5 $05 - vol $2 - note gs5 $06 - vol $6 - note gs5 $05 - vol $2 - note fs5 $06 - vol $6 - note cs5 $05 - vol $2 - note gs5 $06 - vol $6 - note fs5 $05 - vol $2 - note cs5 $06 - vol $6 - note gs5 $05 - vol $2 - note fs5 $06 - vol $6 - note fs5 $05 - vol $2 - note gs5 $06 - vol $6 - note ds6 $05 - vol $2 - note fs5 $06 - vol $6 - note a5 $05 - vol $2 - note ds6 $06 - vol $6 - note gs5 $05 - vol $2 - note a5 $06 - vol $6 - note a5 $05 - vol $2 - note gs5 $06 - vol $6 - note d5 $05 - vol $2 - note a5 $06 - vol $6 - note gs5 $05 - vol $2 - note d5 $06 - vol $6 - note a5 $05 - vol $2 - note gs5 $06 - vol $6 - note gs5 $05 - vol $2 - note a5 $06 - vol $6 - note e6 $05 - vol $2 - note gs5 $06 - vol $6 - note b5 $05 - vol $2 - note e6 $06 - vol $6 - note a5 $05 - vol $2 - note b5 $06 - vol $6 - note b5 $05 - vol $2 - note a5 $06 - vol $6 - note e5 $05 - vol $2 - note b5 $06 - vol $6 - note a5 $05 - vol $2 - note e5 $06 - vol $6 - note b5 $05 - vol $2 - note a5 $06 - vol $6 - note a5 $05 - vol $2 - note b5 $06 - vol $5 - note f3 $0b - note fs3 $0b - note f3 $0b - note fs3 $0b - note as3 $0b - note b3 $0b - note as3 $0b - note b3 $0b - note f4 $0b - note fs4 $0b - note as4 $0b - note b4 $0b - note f5 $0b - note fs5 $0b - note c6 $0b - note cs6 $0b - rest $58 - goto musicf1623 - cmdff - -musMermaidsCaveChannel4: -musicf1905: - duty $0e - note as3 $2c - note b3 $2c - note f4 $42 - rest $16 - note as3 $2c - note b3 $2c - note fs4 $42 - rest $16 - note as3 $2c - note b3 $2c - note gs4 $2c - note fs4 $2c - note ds4 $2c - note e4 $58 - rest $84 - note b3 $2c - note cs4 $2c - note e4 $42 - rest $16 - note b3 $2c - note cs4 $2c - note g4 $42 - rest $16 - note fs4 $2c - note gs4 $2c - note a4 $2c - note d5 $2c - note c5 $2c - note e5 $2c - note fs5 $58 - rest $b0 - goto musicf1905 - cmdff - -musMermaidsCaveChannel6: -musicf1949: - vol $3 - note $2a $0b - vol $1 - note $2a $0b - note $2a $0b - vol $1 - note $2a $0b - vol $2 - note $2a $0b - vol $2 - note $2a $0b - vol $3 - note $2a $0b - vol $4 - note $2a $0b - rest $58 - vol $3 - note $2a $0b - vol $1 - note $2a $0b - note $2a $0b - vol $1 - note $2a $0b - vol $2 - note $2a $0b - vol $2 - note $2a $0b - vol $3 - note $2a $0b - vol $4 - note $2a $0b - rest $58 - vol $3 - note $2a $0b - vol $1 - note $2a $0b - note $2a $0b - vol $1 - note $2a $0b - vol $2 - note $2a $0b - vol $2 - note $2a $0b - vol $3 - note $2a $0b - vol $4 - note $2a $0b - rest $58 - vol $3 - note $2a $0b - vol $1 - note $2a $0b - note $2a $0b - vol $1 - note $2a $0b - vol $2 - note $2a $0b - vol $2 - note $2a $0b - vol $3 - note $2a $0b - vol $4 - note $2a $0b - rest $b0 - vol $3 - note $2a $0b - vol $1 - note $2a $0b - note $2a $0b - vol $1 - note $2a $0b - vol $2 - note $2a $0b - vol $2 - note $2a $0b - vol $3 - note $2a $0b - vol $4 - note $2a $0b - rest $58 - vol $3 - note $2a $0b - vol $1 - note $2a $0b - note $2a $0b - vol $1 - note $2a $0b - vol $2 - note $2a $0b - vol $2 - note $2a $0b - vol $3 - note $2a $0b - vol $4 - note $2a $0b - rest $58 - vol $3 - note $2a $0b - vol $1 - note $2a $0b - note $2a $0b - vol $1 - note $2a $0b - vol $2 - note $2a $0b - vol $2 - note $2a $0b - vol $3 - note $2a $0b - vol $4 - note $2a $0b - rest $58 - vol $3 - note $2a $0b - vol $1 - note $2a $0b - note $2a $0b - vol $1 - note $2a $0b - vol $2 - note $2a $0b - vol $2 - note $2a $0b - vol $3 - note $2a $0b - vol $4 - note $2a $0b - rest $b0 - vol $3 - note $2a $0b - vol $1 - note $2a $0b - note $2a $0b - vol $1 - note $2a $0b - vol $2 - note $2a $0b - vol $2 - note $2a $0b - vol $3 - note $2a $0b - vol $4 - note $2a $0b - goto musicf1949 - cmdff diff --git a/audio/ages/mus/moonlitGrotto.s b/audio/ages/mus/moonlitGrotto.s deleted file mode 100644 index 716782dfd..000000000 --- a/audio/ages/mus/moonlitGrotto.s +++ /dev/null @@ -1,646 +0,0 @@ -musMoonlitGrottoStart: - -musMoonlitGrottoChannel1: - cmdf2 - vibrato $e1 - env $0 $00 - duty $01 -musicf0008: - vol $6 - note f3 $23 - rest $01 - vibrato $01 - vol $3 - note f3 $09 - rest $09 - vibrato $e1 - vol $6 - note c3 $09 - vol $3 - note c3 $09 - vol $6 - note ds3 $09 - vol $3 - note ds3 $09 - vol $6 - note c3 $09 - vol $3 - note c3 $09 - rest $12 - vol $6 - note c3 $09 - vol $3 - note c3 $09 - vol $6 - note ds3 $09 - vol $3 - note ds3 $09 - vol $6 - note fs3 $09 - vol $3 - note fs3 $09 - vol $6 - note f3 $51 - vibrato $01 - vol $3 - note f3 $09 - rest $09 - vibrato $e1 - vol $6 - note ds3 $09 - note f3 $09 - note ds3 $09 - note c3 $09 - vol $3 - note c3 $09 - rest $63 - vol $6 - note fs4 $09 - note f4 $09 - note ds4 $09 - note f4 $09 - note ds4 $09 - note c4 $09 - vol $3 - note c4 $09 - rest $6c - vol $6 - note c5 $09 - vol $3 - note c5 $09 - vol $6 - note b4 $09 - vol $3 - note b4 $09 - rest $09 - vol $6 - note b4 $09 - vol $6 - note c5 $09 - vol $3 - note c5 $09 - vol $6 - note b4 $09 - vol $3 - note b4 $09 - rest $12 - vol $6 - note b4 $09 - vol $3 - note b4 $09 - vol $6 - note c5 $09 - vol $3 - note c5 $09 - vol $6 - note ds5 $09 - vol $3 - note ds5 $09 - vol $6 - note d5 $1b - note ds5 $09 - note d5 $09 - note ds5 $09 - note d5 $09 - note ds5 $09 - note d5 $09 - note ds5 $09 - note d5 $09 - note ds5 $09 - note f5 $09 - vol $3 - note f5 $09 - vol $6 - note c6 $09 - vol $3 - note c6 $09 - vol $6 - note b5 $09 - vol $3 - note b5 $09 - rest $12 - vol $6 - note b5 $09 - vol $3 - note b5 $09 - vol $6 - note as5 $09 - vol $3 - note as5 $09 - rest $12 - vol $6 - note gs5 $09 - vol $3 - note gs5 $09 - vol $6 - note as5 $09 - vol $3 - note as5 $09 - rest $12 - vol $6 - note as5 $09 - vol $3 - note as5 $09 - vol $6 - note gs5 $09 - vol $3 - note gs5 $09 - rest $12 - vol $6 - note gs5 $09 - vol $3 - note gs5 $09 - vol $6 - note g5 $09 - vol $3 - note g5 $09 - vol $6 - note gs5 $09 - vol $3 - note gs5 $09 - vol $6 - note g5 $09 - vol $3 - note g5 $09 - rest $12 - vol $6 - note c5 $09 - vol $3 - note c5 $09 - rest $12 - vol $6 - note ds5 $09 - vol $3 - note ds5 $09 - vol $6 - note d5 $09 - vol $3 - note d5 $09 - vol $6 - note cs5 $09 - vol $3 - note cs5 $09 - vol $6 - note c5 $51 - vibrato $01 - vol $3 - note c5 $09 - vibrato $e1 - vol $7 - note b3 $12 - note c4 $09 - vol $3 - note c4 $09 - vol $7 - note b3 $12 - note c4 $09 - vol $3 - note c4 $09 - goto musicf0008 - cmdff - -musMoonlitGrottoChannel0: - cmdf2 - vibrato $e1 - env $0 $00 - duty $01 -musicf0144: - vol $6 - note c3 $24 - vibrato $01 - vol $2 - note c3 $09 - rest $09 - vibrato $e1 - vol $6 - note g2 $09 - vol $2 - note g2 $09 - vol $6 - note as2 $09 - vol $2 - note as2 $09 - vol $6 - note g2 $09 - vol $2 - note g2 $09 - rest $12 - vol $6 - note g2 $09 - vol $2 - note g2 $09 - vol $6 - note as2 $09 - vol $2 - note as2 $09 - vol $6 - note cs3 $09 - vol $2 - note cs3 $09 - vol $6 - note c3 $48 - vibrato $01 - vol $2 - note c3 $09 - rest $12 - vibrato $e1 - vol $6 - note as2 $09 - note c3 $09 - note as2 $09 - note g2 $09 - vol $2 - note g2 $09 - rest $63 - vol $7 - note cs4 $09 - note c4 $09 - note as3 $09 - note c4 $09 - note as3 $09 - note g3 $09 - rest $75 - note gs4 $09 - vol $3 - note gs4 $09 - vol $7 - note g4 $09 - vol $3 - note g4 $09 - rest $09 - vol $7 - note g4 $09 - note gs4 $09 - vol $3 - note gs4 $09 - vol $7 - note g4 $09 - vol $3 - note g4 $09 - rest $12 - vol $7 - note g4 $09 - vol $3 - note g4 $09 - vol $7 - note gs4 $09 - vol $3 - note gs4 $09 - vol $7 - note c5 $09 - vol $3 - note c5 $09 - vol $7 - note b4 $1b - note c5 $09 - note b4 $09 - note c5 $09 - note b4 $09 - note c5 $09 - note b4 $09 - note c5 $09 - note b4 $09 - note c5 $09 - note c5 $09 - vol $3 - note c5 $09 - vol $7 - note gs5 $09 - vol $3 - note gs5 $09 - vol $7 - note g5 $09 - vol $3 - note g5 $09 - vol $6 - note c5 $09 - vol $3 - note c5 $09 - vol $7 - note g5 $09 - vol $3 - note g5 $09 - vol $7 - note fs5 $09 - vol $3 - note fs5 $09 - vol $6 - note c5 $09 - vol $3 - note c5 $09 - vol $7 - note f5 $09 - vol $3 - note f5 $09 - vol $7 - note g5 $09 - vol $3 - note g5 $09 - vol $7 - note c5 $09 - vol $3 - note c5 $09 - vol $7 - note g5 $09 - vol $3 - note g5 $09 - vol $7 - note f5 $09 - vol $3 - note f5 $09 - vol $6 - note c5 $09 - vol $3 - note c5 $09 - vol $7 - note c5 $09 - vol $3 - note c5 $09 - vol $7 - note ds5 $09 - note d5 $09 - note cs5 $09 - note c5 $09 - note g4 $09 - vol $3 - note g4 $09 - rest $12 - vol $7 - note c4 $09 - vol $3 - note c4 $09 - rest $09 - vol $7 - note c4 $09 - note as4 $09 - vol $3 - note as4 $09 - vol $7 - note a4 $09 - vol $3 - note a4 $09 - vol $7 - note gs4 $09 - vol $3 - note gs4 $09 - vol $7 - note g4 $09 - vol $3 - note g4 $09 - rest $12 - vol $7 - note c5 $04 - rest $05 - note c5 $04 - rest $05 - note c6 $04 - rest $05 - vol $6 - note c6 $04 - rest $05 - vol $3 - note c6 $04 - rest $05 - vol $2 - note c6 $04 - rest $05 - vol $7 - note c5 $04 - rest $05 - note c5 $04 - rest $05 - note c6 $04 - rest $05 - vol $6 - note c6 $04 - rest $05 - vol $7 - note c6 $04 - rest $05 - vol $5 - note c6 $04 - rest $05 - vol $7 - note c7 $04 - rest $05 - vol $4 - note c7 $04 - rest $05 - goto musicf0144 - cmdff - -musMoonlitGrottoChannel4: - cmdf2 -musicf02b1: - duty $0e - note f1 $12 - rest $12 - note f2 $12 - rest $09 - note c2 $09 - note ds2 $09 - rest $09 - note ds2 $09 - rest $09 - note ds2 $09 - rest $09 - note c2 $09 - rest $09 - note f2 $09 - rest $09 - note f2 $09 - rest $09 - note f2 $12 - rest $09 - note c2 $09 - note ds2 $09 - rest $09 - note ds2 $09 - rest $09 - note d2 $09 - rest $09 - note c2 $09 - rest $09 - note f1 $12 - rest $12 - note f2 $12 - rest $09 - note c2 $09 - note ds2 $09 - rest $09 - note ds2 $09 - rest $09 - note ds2 $09 - rest $09 - note c2 $09 - rest $09 - note f2 $09 - rest $1b - note f2 $12 - rest $09 - note c2 $09 - note ds2 $09 - rest $09 - note ds2 $09 - rest $09 - note ds2 $09 - note d2 $09 - note cs2 $09 - note c2 $09 - note f1 $12 - rest $12 - note f2 $12 - rest $09 - note c2 $09 - note ds2 $09 - rest $09 - note ds2 $09 - rest $09 - note ds2 $09 - rest $09 - note c2 $09 - rest $09 - note f2 $09 - rest $1b - note f2 $12 - duty $0f - note f2 $09 - duty $0e - note c2 $09 - note ds2 $09 - rest $09 - note ds2 $09 - rest $09 - note ds2 $09 - rest $09 - note c2 $09 - rest $09 - note as1 $0d - rest $17 - note as2 $09 - rest $09 - note f2 $09 - rest $09 - note gs2 $09 - rest $09 - note gs2 $09 - rest $09 - note gs2 $09 - rest $09 - note f2 $09 - rest $09 - note as2 $0d - rest $17 - note as2 $12 - duty $0f - note as2 $09 - duty $0e - note f2 $09 - note gs2 $09 - rest $09 - note gs2 $09 - rest $09 - note gs2 $09 - note g2 $09 - note f2 $09 - note e2 $09 - note c2 $0d - rest $71 - note c2 $04 - rest $05 - note c2 $04 - rest $05 - note c2 $0d - rest $05 - note c2 $0d - rest $05 - note c2 $0d - rest $05 - note c2 $0d - rest $05 - note c2 $09 - note cs2 $09 - note d2 $09 - note ds2 $09 - note e2 $09 - note f2 $09 - note fs2 $09 - note g2 $09 - goto musicf02b1 - cmdff - -musMoonlitGrottoChannel6: - cmdf2 -musicf03c2: - vol $6 - note $24 $04 - rest $7a - note $24 $04 - rest $05 - note $24 $04 - rest $05 - note $24 $04 - rest $7a - note $24 $04 - rest $0e - note $24 $04 - rest $7a - note $24 $04 - rest $0e - note $24 $04 - rest $7a - note $24 $04 - rest $05 - note $24 $04 - rest $05 - note $24 $04 - rest $7a - note $24 $04 - rest $0e - note $24 $04 - rest $7a - note $24 $04 - rest $0e - note $24 $04 - rest $7a - note $24 $04 - rest $0e - note $24 $04 - rest $7a - note $24 $04 - rest $05 - note $24 $04 - rest $05 - vol $4 - note $2e $04 - rest $20 - note $2e $04 - rest $20 - note $2e $04 - rest $20 - note $2e $04 - rest $0e - vol $6 - note $24 $04 - rest $05 - note $24 $04 - rest $05 - note $24 $04 - rest $0e - vol $4 - note $2a $04 - rest $0e - vol $4 - note $2e $04 - rest $20 - vol $4 - note $2a $04 - rest $0e - note $2e $04 - rest $0e - note $2a $04 - rest $0e - note $2e $04 - rest $0e - goto musicf03c2 - cmdff diff --git a/audio/ages/mus/nayru.s b/audio/ages/mus/nayru.s deleted file mode 100644 index 8904a9c2c..000000000 --- a/audio/ages/mus/nayru.s +++ /dev/null @@ -1,242 +0,0 @@ -musNayruStart: -musNayruChannel1: - vibrato $e1 - env $0 $00 - cmdf2 -musicee9ec: - vol $6 - note d6 $24 - note a5 $24 - vibrato $01 - vol $4 - note a5 $12 - vibrato $e1 - vol $6 - note g5 $12 - note a5 $51 - vibrato $01 - vol $4 - note a5 $12 - rest $09 - vibrato $e1 - vol $6 - note d6 $24 - note a5 $24 - vibrato $01 - vol $4 - note a5 $12 - vibrato $e1 - vol $6 - note g5 $12 - note a5 $36 - vibrato $01 - vol $4 - note a5 $12 - vibrato $e1 - vol $6 - note d5 $24 - note ds5 $24 - note g5 $24 - note as5 $24 - note a5 $3f - vibrato $01 - vol $4 - note a5 $24 - rest $09 - vibrato $e1 - vol $6 - note a5 $24 - note g5 $24 - note f5 $24 - note g5 $3f - vibrato $01 - vol $4 - note g5 $1e - rest $0f - vibrato $e1 - goto musicee9ec - cmdff - -musNayruChannel0: -musiceea48: - vibrato $00 - env $0 $05 - vol $0 - note gs3 $12 - vol $6 - note g4 $06 - rest $0c - note as4 $06 - rest $03 - vol $4 - note g4 $06 - rest $03 - vol $6 - note d5 $06 - rest $03 - vol $4 - note as4 $06 - rest $03 - vol $6 - note g5 $06 - rest $03 - vol $4 - note d5 $06 - rest $0c - vol $4 - note g5 $06 - rest $15 - vol $6 - note d4 $06 - rest $0c - note f4 $06 - rest $03 - vol $4 - note d4 $06 - rest $03 - vol $6 - note a4 $06 - rest $03 - vol $4 - note f4 $06 - rest $03 - vol $6 - note d5 $06 - rest $03 - vol $4 - note a4 $06 - rest $0c - vol $4 - note d5 $06 - rest $15 - vol $6 - note g4 $06 - rest $0c - note as4 $06 - rest $03 - vol $4 - note g4 $06 - rest $03 - vol $6 - note d5 $06 - rest $03 - vol $4 - note as4 $06 - rest $03 - vol $6 - note g5 $06 - rest $03 - vol $4 - note d5 $06 - rest $0c - vol $4 - note g5 $06 - rest $15 - vol $6 - note d4 $06 - rest $0c - note f4 $06 - rest $03 - vol $4 - note d4 $06 - rest $03 - vol $6 - note a4 $06 - rest $03 - vol $4 - note f4 $06 - rest $03 - vol $6 - note d5 $06 - rest $03 - vol $4 - note a4 $06 - rest $0c - vol $4 - note d5 $06 - rest $03 - vol $6 - note c4 $06 - rest $0c - note ds4 $06 - rest $03 - vol $4 - note c4 $06 - rest $03 - vol $6 - note g4 $06 - rest $03 - vol $4 - note ds4 $06 - rest $03 - vol $6 - note c5 $06 - rest $03 - vol $4 - note g4 $06 - rest $0c - vol $4 - note c5 $06 - rest $15 - vol $6 - note d4 $06 - rest $0c - note f4 $06 - rest $03 - vol $4 - note d4 $06 - rest $03 - vol $6 - note a4 $06 - rest $03 - vol $4 - note f4 $06 - rest $03 - vol $6 - note d5 $06 - rest $03 - vol $4 - note a4 $06 - rest $0c - vol $4 - note d5 $06 - rest $15 - env $0 $00 - vol $6 - note d5 $24 - note c5 $24 - note c5 $24 - note d5 $3f - vol $3 - note d5 $1e - rest $0f - goto musiceea48 - cmdff - -musNayruChannel4: -musiceeb4d: - duty $0f - rest $16 - note d6 $24 - note a5 $36 - note g5 $12 - note a5 $51 - rest $1b - note d6 $24 - note a5 $36 - note g5 $12 - note a5 $48 - note d5 $24 - note ds5 $24 - note g5 $24 - note as5 $24 - note a5 $56 - rest $48 - duty $2c - note a4 $24 - duty $0f - note as4 $6c - goto musiceeb4d - cmdff - -.define musNayruChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/ages/mus/overworldPast.s b/audio/ages/mus/overworldPast.s deleted file mode 100644 index aa43bc4ab..000000000 --- a/audio/ages/mus/overworldPast.s +++ /dev/null @@ -1,824 +0,0 @@ -musOverworldPastStart: - -musOverworldPastChannel1: - vibrato $e1 - env $0 $00 - cmdf2 - duty $01 -musicee3c8: -; Measure 1 - vol $5 - note a4 $0e - vol $3 - note a4 $0e - - vol $5 - note e4 $0e - vol $3 - note e4 $0e - rest $15 - - vol $5 - note a4 $03 - rest $04 - - note a4 $05 - rest $02 - note b4 $05 - rest $02 - note cs5 $05 - rest $02 - note d5 $05 - rest $02 -; Measure 2 - note e5 $38 - vibrato $01 - vol $3 - note e5 $0e - rest $04 - - vibrato $e1 - vol $5 - note e5 $06 - rest $04 - note e5 $05 - rest $04 - note f5 $06 - rest $03 - note g5 $06 - rest $04 -; Measure 3 - note a5 $38 - - vibrato $01 - vol $3 - note a5 $0e - rest $04 - - vibrato $e1 - vol $5 - note a5 $06 - rest $04 - note a5 $05 - rest $04 - note g5 $06 - rest $03 - note f5 $06 - rest $04 -; Measure 4 - note g5 $09 - rest $05 - vol $3 - note g5 $03 - rest $01 - - vol $5 - note f5 $0a - note e5 $1c - vibrato $01 - vol $3 - note e5 $1c - - vibrato $e1 - vol $5 - note e5 $09 - note f5 $09 - note e5 $0a -; Measure 5 - note d5 $07 - vol $3 - note d5 $07 - - vol $5 - note d5 $07 - note e5 $07 - note f5 $1c - vibrato $01 - vol $3 - note f5 $1c - - vibrato $e1 - vol $5 - note e5 $0e - note d5 $0e -; Measure 6 - note c5 $07 - vol $3 - note c5 $07 - - vol $5 - note c5 $07 - note d5 $07 - note e5 $1c - vibrato $01 - vol $3 - note e5 $1c - - vibrato $e1 - vol $5 - note d5 $0e - note c5 $0e -; Measure 7 - note b4 $07 - vol $3 - note b4 $07 - - vol $5 - note b4 $07 - note cs5 $07 - note ds5 $1c - vibrato $01 - vol $3 - note ds5 $1c - - vibrato $e1 - vol $5 - note fs5 $1c -; Measure 8 - note e5 $0e - - note e4 $01 - rest $02 - note e4 $01 - rest $05 - note e4 $01 - rest $04 - - note fs4 $05 - rest $04 - note fs4 $06 - rest $03 - note fs4 $06 - rest $04 - - note gs4 $1c - vibrato $01 - vol $3 - note gs4 $1c -; Measure 9 Repeat of Measure 1 - vibrato $e1 - vol $5 - note a4 $0e - vol $3 - note a4 $0e - - vol $5 - note e4 $0e - vol $3 - note e4 $0e - rest $15 - - vol $5 - note a4 $03 - rest $04 - - note a4 $05 - rest $02 - note b4 $05 - rest $02 - - note cs5 $05 - rest $02 - note d5 $05 - rest $02 -; Measure 10 - note e5 $38 - vibrato $01 - vol $3 - note e5 $0e - rest $04 - - vibrato $e1 - vol $5 - note e5 $06 - rest $04 - note e5 $05 - rest $04 - note f5 $06 - rest $03 - note g5 $06 - rest $04 -; Measure 11 - note a5 $38 - - vibrato $01 - vol $3 - note a5 $0e - rest $04 - - vibrato $e1 - vol $5 - note a5 $06 - rest $04 - note a5 $05 - rest $04 - note g5 $06 - rest $03 - note f5 $06 - rest $04 -; Measure 12 - note g5 $07 - rest $03 - vol $3 - note g5 $07 - rest $01 - - vol $5 - note f5 $0a - note e5 $1c - vol $3 - note e5 $0e - rest $0e - - vol $5 - note e5 $09 - note f5 $09 - note e5 $0a -; Measure 13 - note d5 $07 - vol $3 - note d5 $07 - - vol $5 - note d5 $07 - note e5 $07 - note f5 $1c - vibrato $01 - vol $3 - note f5 $1c - - vibrato $e1 - vol $5 - note e5 $0e - note d5 $0e -; Measure 14 - note c5 $09 - note b4 $09 - note c5 $0a - - note d5 $09 - note c5 $09 - note d5 $0a - - note e5 $07 - vol $3 - note e5 $07 - rest $04 - - vol $5 - note e5 $04 - rest $06 - - note e5 $09 - note d5 $09 - note c5 $0a -; Measure 15 - note e5 $38 - note e6 $38 -; Measure 16 - note a5 $46 - rest $0e - - note e5 $03 - vol $3 - note e5 $04 - rest $02 - - vol $5 - note c5 $03 - vol $3 - note c5 $04 - rest $02 - - vol $5 - note a4 $04 - vol $3 - note a4 $03 - rest $03 - - goto musicee3c8 - cmdff - -musOverworldPastChannel0: - vibrato $e1 - env $0 $00 - cmdf2 - duty $01 -musicee57d: - vol $5 - note cs4 $0e - vol $3 - note cs4 $0e - - vol $5 - note d4 $09 - note cs4 $09 - note b3 $0a - - note cs4 $0e - vol $3 - note cs4 $07 - - vol $5 - note cs4 $07 - - note cs4 $05 - rest $02 - note d4 $05 - rest $02 - note e4 $05 - rest $02 - note fs4 $05 - rest $02 -; Measure 2 - note g4 $15 - - note a4 $05 - rest $02 - - note a4 $05 - rest $02 - note b4 $05 - rest $02 - note cs5 $05 - rest $02 - note d5 $05 - rest $02 - - note e5 $07 - rest $03 - vol $3 - note e5 $07 - rest $04 - vol $2 - note e5 $07 - - vol $5 - note g4 $09 - note a4 $09 - note b4 $0a -; Measure 3 - note c5 $12 - note f4 $06 - rest $04 - - note f4 $05 - rest $02 - note g4 $05 - rest $02 - note a4 $05 - rest $02 - note b4 $05 - rest $02 - - note c5 $07 - rest $07 - vol $3 - note c5 $03 - rest $01 - vol $5 - note c5 $06 - rest $04 - - note c5 $05 - rest $04 - note b4 $06 - rest $03 - note a4 $06 - rest $04 -; Measure 4 - note c5 $07 - rest $03 - vol $3 - note c5 $07 - rest $01 - vol $5 - note g4 $06 - rest $04 - - note g4 $05 - rest $04 - note g4 $06 - rest $03 - note f4 $06 - rest $04 - - note g4 $05 - rest $05 - vol $3 - note g4 $06 - rest $02 - vol $5 - note g4 $06 - rest $04 - - note g4 $05 - rest $04 - note f4 $06 - rest $03 - note g4 $06 - rest $04 -; Measure 5 - note f4 $0b - rest $03 - note f4 $07 - note e4 $07 - - note f4 $0b - rest $03 - note f4 $07 - note g4 $07 - - note a4 $1c - note g4 $0e - note f4 $0e -; Measure 6 - note e4 $0b - rest $03 - note e4 $07 - note d4 $07 - - note e4 $0b - rest $03 - note e4 $07 - note f4 $07 - - note g4 $1c - note f4 $0e - note e4 $0e -; Measure 7 - note ds4 $15 - rest $07 - note ds4 $07 - rest $03 - vol $3 - note ds4 $04 - - vol $5 - note ds4 $07 - note e4 $07 - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - - vol $5 - note fs4 $07 - note g4 $07 - - note a4 $07 - note b4 $07 - note cs5 $07 - note d5 $07 -; Measure 8 - note b4 $1c - - note d4 $05 - rest $04 - note d4 $06 - rest $03 - note d4 $06 - rest $04 - - note e4 $1c - vibrato $01 - vol $3 - note e4 $1c -; Measure 9 Repeat of M1 - vibrato $e1 - vol $5 - note cs4 $0e - vol $3 - note cs4 $0e - - vol $5 - note d4 $09 - note cs4 $09 - note b3 $0a - - note cs4 $0e - vol $3 - note cs4 $07 - - vol $5 - note cs4 $07 - - note cs4 $05 - rest $02 - note d4 $05 - rest $02 - note e4 $05 - rest $02 - note fs4 $05 - rest $02 -; Measure 10 same as M2 except for beat 3 - note g4 $15 - - note a4 $05 - rest $02 - - note a4 $05 - rest $02 - note b4 $05 - rest $02 - note cs5 $05 - rest $02 - note d5 $05 - rest $02 - - note e5 $1c ;different than M2 - note g4 $09 - note a4 $09 - note b4 $0a -; Measure 11 - note c5 $12 - note f4 $06 - rest $04 - - note f4 $05 - rest $02 - note g4 $05 - rest $02 - note a4 $05 - rest $02 - note b4 $05 - rest $02 - - note c5 $07 ;different than M3 - rest $03 - vol $3 - note c5 $07 - rest $01 - - vol $5 - note c5 $06 - rest $04 - - note c5 $05 - rest $04 - note b4 $06 - rest $03 - note a4 $06 - rest $04 -; Measure 12 - note c5 $07 - rest $03 - vol $3 - note c5 $07 - rest $01 - vol $5 - note g4 $06 - rest $04 - - note g4 $05 - rest $04 - note g4 $06 - rest $03 - note f4 $06 - rest $04 - - note g4 $05 - rest $05 - vol $3 - note g4 $06 - rest $02 - vol $5 - note g4 $06 - rest $04 - - note g4 $05 - rest $04 - note f4 $06 - rest $03 - note g4 $06 - rest $04 -; Measure 13 - note f4 $0b - rest $03 - note f4 $07 - note e4 $07 - - note f4 $0b - rest $03 - note f4 $07 - note g4 $07 - - note a4 $1c - note g4 $0e - note f4 $0e -; Measure 14 - note a3 $1c - note gs3 $1c - note g3 $38 -; Measure 15 - note fs3 $1c - note d3 $1c - note e3 $15 - rest $07 - - vol $8 - note e3 $04 - rest $05 - note e4 $05 - rest $04 - note d4 $05 - rest $05 -; Measure 16 - note c4 $04 - rest $05 - note b3 $05 - rest $04 - note a3 $05 - rest $05 - - note b3 $04 - rest $06 - vol $5 - note b3 $05 - rest $06 - vol $3 - note b3 $04 - rest $03 - - vol $8 - note a3 $04 - rest $06 - vol $5 - note a3 $05 - rest $06 - vol $3 - note a3 $04 - - rest $1f ;$03+$1c - goto musicee57d - cmdff - -musOverworldPastChannel4: -musicee79b: -; Measure 1 -.rept 4 - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $14 -.endr -; Measure 2 -.rept 4 - duty $0e - note g2 $04 - duty $0f - note g2 $04 - rest $14 -.endr -; Measure 3 -.rept 4 - duty $0e - note f2 $04 - duty $0f - note f2 $04 - rest $14 -.endr -; Measure 4 -.rept 4 - duty $0e - note c3 $04 - duty $0f - note c3 $04 - rest $14 -.endr -; Measure 5 -.rept 4 - duty $0e - note as2 $04 - duty $0f - note as2 $04 - rest $14 -.endr -; Measure 6 -.rept 4 - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $14 -.endr -; Measure 7 -.rept 4 - duty $0e - note b2 $04 - duty $0f - note b2 $04 - rest $14 -.endr -; Measure 8 - duty $0e - note e3 $04 - duty $0f - note e3 $04 - rest $14 - - duty $0e - note a3 $04 - duty $0f - note a3 $04 - rest $14 - - duty $0e - note b3 $1c - - note fs3 $04 - duty $0f - note fs3 $04 - rest $06 - - duty $0e - note gs3 $04 - duty $0f - note gs3 $04 - rest $06 -; Measure 9 -.rept 4 - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $14 -.endr -; Measure 10 -.rept 4 - duty $0e - note g2 $04 - duty $0f - note g2 $04 - rest $14 -.endr -; Measure 11 -.rept 4 - duty $0e - note f2 $04 - duty $0f - note f2 $04 - rest $14 -.endr -; Measure 12 -.rept 4 - duty $0e - note c3 $04 - duty $0f - note c3 $04 - rest $14 -.endr -; Measure 13 -.rept 4 - duty $0e - note as2 $04 - duty $0f - note as2 $04 - rest $14 -.endr -; Measure 14 - duty $17 - note e4 $09 - note ds4 $09 - note e4 $0a - - note gs4 $09 - note a4 $09 - note b4 $0a - - note c5 $09 - rest $09 - note c5 $0a - - note c5 $09 - note b4 $09 - note a4 $0a -; Measure 15 - note e5 $0e - rest $04 - note c5 $0e - rest $05 - - note a4 $13 - note gs4 $12 - rest $0a - - note gs4 $09 - note fs4 $09 - note gs4 $0a -; Measure 16 - note a4 $09 - note b4 $09 - note c5 $0a - - note d5 $09 - note c5 $09 - note b4 $0a - - note c5 $1c - rest $1c - goto musicee79b - cmdff - -.define musOverworldPastChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/ages/mus/ralph.s b/audio/ages/mus/ralph.s deleted file mode 100644 index 06eacd56c..000000000 --- a/audio/ages/mus/ralph.s +++ /dev/null @@ -1,910 +0,0 @@ -musRalphStart: - -musRalphChannel1: - vibrato $e1 - env $0 $00 - duty $01 - vol $6 - note ds4 $04 - note as3 $05 - note ds4 $05 - note gs4 $04 - note cs4 $05 - note gs4 $05 - note cs5 $04 - note fs4 $05 - note cs5 $05 - note fs5 $04 - note b4 $05 - note fs5 $05 - note f5 $1c - vibrato $01 - vol $3 - note f5 $07 - rest $15 - vibrato $e1 -musicf275f: - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $04 - vol $6 - note ds4 $03 - vol $3 - note ds4 $04 - vol $6 - note ds4 $03 - vol $3 - note ds4 $04 - vol $6 - note as4 $11 - vol $3 - note as4 $07 - rest $04 - vol $6 - note a4 $07 - rest $03 - vol $3 - note a4 $04 - vol $6 - note a4 $07 - note fs4 $07 - note d4 $07 - rest $03 - vol $3 - note d4 $04 - vol $6 - note a4 $07 - rest $03 - vol $3 - note a4 $04 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $04 - vol $6 - note ds4 $03 - vol $3 - note ds4 $04 - vol $6 - note ds4 $03 - vol $3 - note ds4 $04 - vol $6 - note as4 $11 - vol $3 - note as4 $07 - rest $04 - vol $6 - note a4 $07 - rest $03 - vol $3 - note a4 $04 - vol $6 - note a4 $03 - vol $3 - note a4 $04 - vol $6 - note a4 $03 - vol $3 - note a4 $04 - vol $6 - note d5 $07 - rest $03 - vol $3 - note d5 $04 - vol $6 - note a4 $07 - rest $03 - vol $3 - note a4 $04 - vol $6 - note gs4 $07 - rest $03 - vol $3 - note gs4 $04 - vol $6 - note gs4 $03 - vol $3 - note gs4 $04 - vol $6 - note gs4 $03 - vol $3 - note gs4 $04 - vol $6 - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note gs4 $07 - rest $03 - vol $3 - note gs4 $04 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note g4 $03 - vol $3 - note g4 $04 - vol $6 - note g4 $07 - note c5 $07 - rest $03 - vol $3 - note c5 $04 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - vol $6 - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note f4 $07 - rest $03 - vol $3 - note f4 $04 - vol $6 - note as4 $07 - rest $03 - vol $3 - note as4 $04 - vol $6 - note e4 $07 - note ds4 $07 - note d4 $07 - note cs4 $07 - note c4 $11 - vol $3 - note c4 $07 - rest $04 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $04 - vol $6 - note ds4 $03 - vol $3 - note ds4 $04 - vol $6 - note ds4 $07 - note as4 $0e - vol $3 - note as4 $07 - rest $07 - vol $6 - note a4 $03 - vol $3 - note a4 $04 - vol $6 - note a4 $03 - vol $3 - note a4 $04 - vol $6 - note a4 $07 - rest $03 - vol $3 - note a4 $04 - vol $6 - note d4 $0e - note cs4 $07 - rest $03 - vol $3 - note cs4 $04 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $04 - vol $6 - note ds4 $03 - vol $3 - note ds4 $04 - vol $6 - note ds4 $07 - note as4 $0e - vol $3 - note as4 $07 - rest $07 - vol $6 - note a4 $03 - vol $3 - note a4 $04 - vol $6 - note a4 $03 - vol $3 - note a4 $04 - vol $6 - note a4 $07 - rest $03 - vol $3 - note a4 $04 - vol $6 - note e5 $07 - note ds5 $07 - note d5 $07 - vol $3 - note d5 $07 - vol $6 - note c5 $07 - rest $03 - vol $3 - note c5 $04 - vol $6 - note c5 $03 - rest $04 - note c5 $07 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note c5 $07 - rest $03 - vol $3 - note c5 $04 - vol $6 - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note b4 $03 - vol $3 - note b4 $04 - vol $6 - note b4 $03 - vol $3 - note b4 $04 - vol $6 - note e5 $07 - rest $03 - vol $3 - note e5 $04 - vol $6 - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note as4 $0e - vol $3 - note as4 $07 - rest $07 - vol $6 - note as4 $07 - note a4 $07 - note gs4 $07 - note g4 $07 - note fs4 $07 - rest $03 - vol $3 - note fs4 $07 - rest $04 - vol $1 - note fs4 $07 - vol $6 - note as4 $11 - vol $3 - note as4 $07 - rest $04 - goto musicf275f - cmdff - -musRalphChannel0: - vol $0 - note gs3 $07 - vibrato $e1 - env $0 $00 - duty $01 - vol $5 - note ds4 $04 - note as3 $05 - note ds4 $05 - note gs4 $04 - note cs4 $05 - note gs4 $05 - note cs5 $04 - note fs4 $05 - note cs5 $05 - note fs5 $04 - note b4 $05 - note fs5 $05 - note f5 $1c - vibrato $01 - vol $2 - note f5 $07 - rest $0e - vibrato $e1 -musicf294f: - vol $6 - note g3 $07 - rest $03 - vol $3 - note g3 $04 - vol $6 - note g3 $03 - vol $3 - note g3 $04 - vol $6 - note g3 $03 - vol $3 - note g3 $04 - vol $6 - note ds4 $11 - vol $3 - note ds4 $07 - rest $04 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - vol $6 - note fs4 $07 - note d4 $07 - note a3 $07 - rest $03 - vol $3 - note a3 $04 - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $04 - vol $6 - note g3 $07 - rest $03 - vol $3 - note g3 $04 - vol $6 - note g3 $03 - rest $04 - note g3 $03 - rest $04 - note ds4 $11 - vol $3 - note ds4 $07 - rest $04 - vol $6 - note e4 $07 - rest $03 - vol $3 - note e4 $04 - vol $6 - note e4 $03 - vol $3 - note e4 $04 - vol $6 - note e4 $03 - vol $3 - note e4 $04 - vol $6 - note a4 $07 - rest $03 - vol $3 - note a4 $04 - vol $6 - note e4 $07 - rest $03 - vol $3 - note e4 $04 - vol $6 - note cs4 $07 - rest $03 - vol $3 - note cs4 $04 - vol $6 - note cs4 $03 - vol $3 - note cs4 $04 - vol $6 - note cs4 $03 - vol $3 - note cs4 $04 - vol $6 - note gs4 $07 - note f4 $07 - note cs4 $07 - rest $03 - vol $3 - note cs4 $04 - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $04 - vol $6 - note c4 $03 - vol $3 - note c4 $04 - vol $6 - note c4 $03 - vol $3 - note c4 $04 - vol $6 - note a4 $07 - note f4 $07 - note b3 $07 - rest $03 - vol $3 - note b3 $04 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $04 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $04 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - vol $6 - note cs4 $07 - note c4 $07 - note b3 $07 - note as3 $07 - note a3 $11 - vol $3 - note a3 $07 - rest $04 - vol $6 - note as3 $07 - rest $03 - vol $3 - note as3 $04 - vol $6 - note as3 $03 - vol $3 - note as3 $04 - vol $6 - note as3 $03 - vol $3 - note as3 $04 - rest $07 - vol $6 - note as3 $07 - note ds4 $07 - note g4 $07 - vol $6 - note fs4 $03 - vol $3 - note fs4 $04 - vol $6 - note fs4 $03 - vol $3 - note fs4 $04 - vol $6 - note fs4 $03 - vol $3 - note fs4 $04 - vol $6 - note e4 $07 - note a3 $07 - note as3 $07 - note b3 $07 - note a3 $07 - note g3 $07 - rest $03 - vol $3 - note g3 $04 - vol $6 - note g3 $03 - vol $3 - note g3 $04 - vol $6 - note g3 $03 - vol $3 - note g3 $04 - vol $6 - note g3 $07 - note as3 $07 - note g3 $07 - note as3 $07 - note fs4 $03 - vol $3 - note fs4 $04 - vol $6 - note fs4 $03 - vol $3 - note fs4 $04 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $04 - vol $6 - note a4 $07 - rest $03 - vol $3 - note a4 $04 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note g4 $03 - vol $3 - note g4 $04 - vol $6 - note g4 $03 - vol $3 - note g4 $04 - vol $6 - note c4 $07 - note e4 $07 - note g4 $07 - vol $3 - note g4 $07 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $04 - vol $6 - note ds4 $03 - vol $3 - note ds4 $04 - vol $6 - note ds4 $03 - vol $3 - note ds4 $04 - vol $6 - note g4 $07 - note e4 $07 - note b3 $07 - vol $3 - note b3 $07 - vol $6 - note fs4 $0e - vol $3 - note fs4 $07 - rest $07 - vol $6 - note fs4 $07 - note f4 $07 - note e4 $07 - note ds4 $07 - note d4 $07 - vol $3 - note d4 $07 - rest $0e - vol $6 - note d4 $11 - vol $3 - note d4 $07 - rest $04 - goto musicf294f - cmdff - -musRalphChannel4: - rest $70 -musicf2b0e: - duty $0e - note ds2 $07 - rest $0e - note ds2 $07 - note as2 $07 - rest $07 - note ds2 $07 - rest $07 - note d2 $07 - rest $0e - note fs2 $07 - note a2 $07 - rest $07 - note d2 $07 - rest $07 - note ds2 $07 - rest $0e - note ds2 $07 - note as2 $07 - rest $07 - note ds2 $07 - rest $07 - note d2 $07 - rest $0e - note fs2 $07 - note a2 $07 - rest $07 - note d2 $07 - rest $07 - note cs2 $0e - rest $07 - note cs2 $07 - note gs2 $07 - rest $07 - note cs2 $07 - rest $07 - note c2 $0e - rest $07 - note c2 $07 - note g2 $07 - rest $07 - note c2 $07 - rest $07 - note gs2 $07 - rest $07 - note g2 $07 - rest $07 - note fs2 $07 - rest $07 - note f2 $07 - rest $23 - note as1 $15 - note c2 $03 - note d2 $04 - note ds2 $0e - rest $07 - note ds2 $07 - note as2 $0e - rest $07 - note as2 $07 - note d2 $0e - rest $07 - note fs2 $07 - note a2 $0e - rest $07 - note a2 $07 - note ds2 $0e - rest $07 - note ds2 $07 - note as2 $0e - rest $07 - note ds2 $07 - note b2 $0e - rest $07 - note gs2 $07 - note e2 $0e - rest $07 - note gs2 $07 - note c3 $0e - rest $07 - note c3 $07 - note fs2 $07 - rest $07 - note b2 $07 - note fs2 $07 - note b2 $0e - rest $07 - note b2 $07 - note f2 $07 - rest $07 - note as2 $07 - note f2 $07 - note b1 $0e - rest $0e - note b1 $07 - note c2 $07 - note cs2 $07 - note d2 $07 - note ds2 $07 - rest $15 - note as1 $15 - note c2 $03 - note d2 $04 - goto musicf2b0e - cmdff - -musRalphChannel6: - rest $69 - vol $6 - note $26 $03 - vol $5 - note $26 $04 -musicf2be8: - vol $6 - note $24 $07 - vol $2 - note $2a $07 - note $2e $07 - rest $07 - vol $6 - note $26 $07 - vol $2 - note $2a $07 - note $2e $07 - rest $07 - vol $6 - note $24 $07 - vol $2 - note $2a $07 - note $2e $07 - rest $07 - vol $6 - note $26 $07 - vol $2 - note $2a $07 - note $2e $07 - rest $07 - vol $6 - note $24 $07 - vol $2 - note $2a $07 - note $2e $07 - rest $07 - vol $6 - note $26 $07 - vol $2 - note $2a $07 - note $2e $07 - rest $07 - vol $6 - note $24 $07 - vol $2 - note $2a $07 - note $2e $07 - rest $07 - vol $6 - note $26 $07 - vol $2 - note $2a $07 - note $2e $07 - rest $07 - vol $6 - note $24 $07 - vol $2 - note $2a $07 - note $2e $07 - rest $07 - vol $6 - note $26 $07 - vol $2 - note $2a $07 - note $2e $07 - rest $07 - vol $6 - note $24 $07 - vol $2 - note $2a $07 - note $2e $07 - rest $07 - vol $6 - note $26 $07 - vol $2 - note $2a $07 - note $2e $07 - rest $07 - note $2a $07 - rest $07 - note $2a $07 - rest $07 - note $2a $07 - rest $07 - note $2a $07 - rest $07 - note $2e $07 - rest $15 - vol $6 - note $24 $07 - rest $0e - note $26 $03 - vol $5 - note $26 $04 - vol $6 - note $24 $07 - vol $2 - note $2a $07 - note $2a $07 - note $2e $07 - vol $6 - note $26 $07 - vol $2 - note $2a $07 - note $2a $07 - note $2e $07 - vol $6 - note $24 $07 - vol $2 - note $2a $07 - note $2a $07 - note $2e $07 - vol $6 - note $26 $07 - vol $2 - note $2a $07 - note $2a $07 - note $2e $07 - vol $6 - note $24 $07 - vol $2 - note $2a $07 - note $2a $07 - note $2e $07 - vol $6 - note $26 $07 - vol $2 - note $2a $07 - note $2a $07 - note $2e $07 - vol $6 - note $24 $07 - vol $2 - note $2a $07 - note $2a $07 - note $2e $07 - vol $6 - note $26 $07 - vol $2 - note $2a $07 - note $2a $07 - note $2e $07 - vol $6 - note $24 $07 - vol $2 - note $2a $07 - note $2a $07 - note $2e $07 - vol $6 - note $26 $07 - vol $2 - note $2a $07 - note $2a $07 - note $2e $07 - vol $6 - note $24 $07 - vol $2 - note $2a $07 - note $2a $07 - note $2e $07 - vol $6 - note $26 $07 - vol $2 - note $2a $07 - note $2a $07 - note $2e $07 - note $2e $07 - rest $07 - note $2a $07 - note $2a $07 - note $2a $07 - note $2a $07 - note $2a $07 - note $2a $07 - note $2a $07 - rest $07 - vol $6 - note $26 $04 - vol $5 - note $26 $05 - vol $4 - note $26 $05 - vol $6 - note $26 $07 - rest $07 - vol $2 - note $2a $07 - note $2a $07 - goto musicf2be8 - cmdff diff --git a/audio/ages/mus/skullDungeon.s b/audio/ages/mus/skullDungeon.s deleted file mode 100644 index f11140f5c..000000000 --- a/audio/ages/mus/skullDungeon.s +++ /dev/null @@ -1,663 +0,0 @@ -musSkullDungeonStart: - -musSkullDungeonChannel1: - vibrato $e1 - env $0 $00 - duty $02 -musicf1a32: - vol $0 - note gs3 $16 - vol $6 - note ds4 $16 - note fs4 $16 - note gs4 $16 - note as4 $16 - note gs4 $16 - note fs4 $16 - note f4 $16 - note as4 $16 - note gs4 $16 - note fs4 $16 - note f4 $16 - note fs4 $16 - note ds4 $16 - note gs4 $16 - note as4 $16 - note b4 $2c - vibrato $01 - vol $3 - note b4 $16 - vibrato $e1 - vol $6 - note as4 $16 - note gs4 $2c - vibrato $01 - vol $3 - note gs4 $16 - vibrato $e1 - vol $6 - note fs4 $16 - note gs4 $2c - note fs4 $16 - note gs4 $16 - note as4 $2c - vibrato $01 - vol $3 - note as4 $2c - vibrato $e1 - vol $6 - note b4 $2c - note cs5 $16 - note ds5 $0b - note b4 $0b - note as4 $2c - vibrato $01 - vol $3 - note as4 $16 - vibrato $e1 - vol $6 - note as4 $16 - note gs4 $2c - note f4 $16 - note gs4 $16 - note as4 $16 - vol $3 - note as4 $16 - rest $16 - vol $6 - note as4 $16 - note b4 $16 - note as4 $16 - note b4 $16 - note as4 $16 - note b4 $16 - note as4 $16 - note b4 $16 - note as4 $16 - note as3 $0b - note c4 $0b - note d4 $0b - note ds4 $0b - note f4 $0b - note ds4 $0b - note d4 $0b - note c4 $0b - note as3 $0b - rest $05 - vol $3 - note as3 $0b - rest $06 - vol $1 - note as3 $0b - rest $2c - vol $6 - note as4 $16 - note gs4 $16 - note fs4 $16 - note f4 $16 - note fs4 $16 - note ds4 $16 - note gs4 $16 - note as4 $16 - note b4 $16 - note as4 $16 - note gs4 $16 - note fs4 $16 - note gs4 $16 - note f4 $16 - note gs4 $16 - note as4 $16 - note cs5 $0b - note b4 $0b - note as4 $0b - note gs4 $0b - note as4 $0b - note gs4 $0b - note fs4 $0b - note gs4 $0b - note fs4 $0b - note f4 $0b - note ds4 $0b - note f4 $0b - note d4 $0b - note ds4 $0b - note f4 $0b - note fs4 $0b - note gs4 $2c - note as4 $16 - note b4 $16 - note as4 $2c - vibrato $01 - vol $3 - note as4 $2b - rest $01 - vibrato $e1 - goto musicf1a32 - cmdff - -musSkullDungeonChannel0: - vibrato $e1 - env $0 $00 - duty $02 -musicf1b2a: - vol $0 - note gs3 $16 - vol $6 - note as3 $16 - note ds4 $16 - note f4 $16 - note fs4 $16 - note f4 $16 - note ds4 $16 - note d4 $16 - note fs4 $16 - note f4 $16 - note ds4 $16 - note d4 $16 - note ds4 $16 - note as3 $16 - note ds4 $16 - note fs4 $16 - note gs4 $2c - vibrato $01 - vol $3 - note gs4 $16 - vibrato $e1 - vol $6 - note fs4 $16 - note f4 $2c - vibrato $01 - vol $3 - note f4 $16 - vibrato $e1 - vol $6 - note ds4 $16 - note f4 $0b - rest $05 - vol $3 - note f4 $0b - rest $06 - vol $1 - note f4 $0b - vol $6 - note ds4 $0b - rest $05 - vol $3 - note ds4 $0b - rest $06 - vol $1 - note ds4 $0b - vol $6 - note d4 $0b - note c4 $0b - note as3 $0b - note a3 $0b - note as3 $0b - note c4 $0b - note d4 $0b - note f4 $0b - note gs3 $0b - rest $05 - vol $3 - note gs3 $06 - vol $6 - note b3 $0b - rest $05 - vol $3 - note b3 $06 - vol $6 - note gs3 $0b - rest $05 - vol $3 - note gs3 $06 - vol $6 - note b3 $0b - rest $05 - vol $3 - note b3 $06 - vol $6 - note as3 $0b - note b3 $0b - note as3 $0b - note a3 $0b - note as3 $0b - note d4 $0b - note f4 $0b - note as4 $0b - note f4 $0b - rest $05 - vol $3 - note f4 $06 - vol $6 - note ds4 $0b - rest $05 - vol $3 - note ds4 $06 - vol $6 - note d4 $0b - rest $05 - vol $3 - note d4 $06 - vol $6 - note c4 $0b - rest $05 - vol $3 - note c4 $06 - vol $6 - note as3 $0b - note b3 $0b - note as3 $0b - note b3 $0b - note as3 $0b - note d4 $0b - note f4 $0b - note as4 $0b - note gs4 $0b - note g4 $0b - note fs4 $0b - note g4 $0b - note gs4 $0b - note g4 $0b - note fs4 $0b - note g4 $0b - note gs4 $0b - note g4 $0b - note fs4 $0b - note f4 $0b - note e4 $0b - note ds4 $0b - note d4 $0b - note cs4 $0b - note d4 $0b - note ds4 $0b - note f4 $0b - note fs4 $0b - note gs4 $0b - note fs4 $0b - note f4 $0b - note ds4 $0b - note d4 $0b - note f4 $0b - note gs4 $0b - note b4 $0b - note as4 $0b - rest $05 - vol $3 - note as4 $0b - rest $06 - vol $1 - note as4 $0b - vol $6 - note fs4 $16 - note f4 $16 - note ds4 $16 - note d4 $16 - note ds4 $0b - rest $05 - vol $3 - note ds4 $06 - vol $6 - note as3 $0b - rest $05 - vol $3 - note as3 $06 - vol $6 - note ds4 $0b - rest $05 - vol $3 - note ds4 $06 - vol $6 - note as3 $0b - rest $05 - vol $3 - note as3 $06 - vol $6 - note gs4 $16 - note fs4 $16 - note f4 $16 - note ds4 $16 - note f4 $0b - rest $05 - vol $3 - note f4 $06 - vol $6 - note d4 $0b - rest $05 - vol $3 - note d4 $06 - vol $6 - note f4 $0b - rest $05 - vol $3 - note f4 $06 - vol $6 - note d4 $0b - rest $05 - vol $3 - note d4 $06 - vol $6 - note f3 $42 - note fs3 $16 - note gs3 $16 - note as3 $16 - note b3 $16 - note c4 $16 - note cs4 $16 - note d4 $16 - note ds4 $2c - note d4 $16 - note c4 $16 - note as3 $2c - goto musicf1b2a - cmdff - -musSkullDungeonChannel4: -musicf1c9f: - duty $0e - note ds2 $2c - note e2 $2c - note ds2 $2c - note e2 $2c - note ds2 $2c - note e2 $2c - note ds2 $2c - note e2 $2c - note f2 $42 - note ds2 $16 - note d2 $42 - note c2 $16 - note as1 $16 - rest $16 - note f2 $16 - rest $16 - note as2 $16 - note a2 $03 - note gs2 $03 - note g2 $05 - note fs2 $03 - note f2 $03 - note e2 $05 - note as1 $0e - rest $1e - note gs2 $2c - note a2 $2c - note as2 $16 - note as1 $0b - note b1 $0b - note as1 $0b - note b1 $0b - note as1 $0b - rest $0b - note f2 $37 - note ds2 $0b - note d2 $0b - note b1 $0b - note as1 $0e - rest $08 - note f2 $0b - note a2 $0b - note as2 $0e - rest $1e - note e2 $16 - note ds2 $16 - note d2 $16 - note ds2 $16 - note e2 $16 - note ds2 $16 - note e2 $16 - note ds2 $16 - note as2 $2c - note a2 $03 - note gs2 $03 - note g2 $05 - note fs2 $03 - note f2 $03 - note e2 $05 - note ds2 $03 - note d2 $03 - note cs2 $05 - note c2 $03 - note b1 $08 - note as1 $16 - rest $16 - note as1 $16 - rest $16 - note ds2 $0b - rest $0b - note ds2 $21 - rest $0b - note ds2 $1b - rest $06 - note ds2 $0b - note fs2 $0b - note gs2 $0b - note as2 $0b - note gs2 $0b - note fs2 $0b - note ds2 $0b - note f2 $0b - rest $0b - note f2 $21 - rest $0b - note f2 $1b - rest $06 - note f2 $0b - note fs2 $0b - note gs2 $0b - note as2 $0b - note gs2 $0b - note fs2 $0b - note f2 $0b - note as1 $0b - note ds2 $0b - note f2 $0b - note gs2 $0b - note as2 $0b - note gs2 $0b - note f2 $0b - note ds2 $0b - note as1 $0b - note d2 $0b - note f2 $0b - note gs2 $0b - note as2 $0b - note gs2 $0b - note f2 $0b - note d2 $0b - note as1 $0b - note d2 $0b - note f2 $0b - note gs2 $0b - note as2 $0b - note b2 $0b - note as2 $0b - note b2 $0b - note as2 $0b - note b2 $0b - note as2 $0b - note b2 $0b - note as2 $0b - note f2 $0b - note d2 $0b - note as1 $0b - goto musicf1c9f - cmdff - -musSkullDungeonChannel6: -musicf1da1: - vol $6 - note $24 $16 - vol $4 - note $2e $16 - rest $16 - note $2a $16 - vol $6 - note $24 $16 - vol $4 - note $2e $16 - rest $16 - vol $4 - note $2a $16 - vol $6 - note $24 $16 - vol $4 - note $2e $16 - rest $16 - note $2a $16 - vol $6 - note $24 $16 - vol $4 - note $2e $16 - rest $16 - vol $4 - note $2a $16 - vol $4 - note $2e $0b - rest $0b - note $2a $0b - note $2a $0b - note $2a $0b - rest $21 - note $2e $0b - rest $0b - vol $4 - note $2a $0b - vol $4 - note $2a $0b - note $2a $0b - rest $21 - vol $6 - note $24 $16 - vol $4 - note $2e $16 - rest $16 - note $2a $16 - vol $6 - note $24 $16 - vol $4 - note $2e $16 - rest $16 - vol $4 - note $2a $16 - vol $6 - note $24 $16 - vol $4 - note $2e $16 - note $2a $16 - note $2e $16 - vol $6 - note $24 $16 - vol $4 - note $2e $16 - note $2a $16 - vol $4 - note $2e $16 - vol $6 - note $24 $16 - vol $4 - note $2e $16 - note $2a $16 - note $2e $16 - vol $6 - note $24 $16 - vol $4 - note $2e $16 - note $2a $16 - vol $4 - note $2e $16 - vol $4 - note $2e $16 - note $2a $16 - note $2e $16 - note $2a $16 - note $2e $16 - note $2a $16 - note $2e $16 - vol $4 - note $2a $16 - vol $4 - note $2e $16 - rest $42 - vol $6 - note $24 $16 - vol $4 - note $2a $16 - vol $4 - note $2e $16 - rest $16 - vol $6 - note $24 $0b - vol $4 - note $2a $0b - note $2e $16 - rest $0b - note $2a $0b - note $2e $16 - vol $6 - note $24 $0b - vol $4 - note $2a $0b - note $2e $16 - rest $0b - note $2a $0b - vol $4 - note $2e $16 - vol $6 - note $24 $0b - vol $4 - note $2a $0b - note $2e $16 - rest $0b - note $2a $0b - note $2e $16 - vol $6 - note $24 $0b - vol $4 - note $2a $0b - note $2e $16 - rest $0b - note $2a $0b - vol $4 - note $2e $16 - vol $6 - note $24 $0b - vol $4 - note $2a $0b - note $2e $16 - vol $6 - note $24 $0b - vol $4 - note $2a $0b - note $2e $16 - vol $6 - note $24 $0b - vol $4 - note $2a $0b - note $2e $16 - vol $6 - note $24 $0b - vol $4 - note $2a $0b - vol $4 - note $2e $16 - vol $6 - note $24 $0b - vol $4 - note $2a $0b - note $2e $16 - vol $6 - note $24 $0b - vol $4 - note $2a $0b - note $2e $16 - note $2a $0b - note $2a $0b - note $2e $0b - rest $0b - note $2a $0b - note $2a $0b - vol $4 - note $2e $0b - rest $0b - goto musicf1da1 - cmdff diff --git a/audio/ages/mus/spiritsGrave.s b/audio/ages/mus/spiritsGrave.s deleted file mode 100644 index 3c9f1fa48..000000000 --- a/audio/ages/mus/spiritsGrave.s +++ /dev/null @@ -1,498 +0,0 @@ -musSpiritsGraveStart: - -musSpiritsGraveChannel1: - vibrato $00 - env $0 $00 - duty $02 -musicf2d27: - vol $5 - note as4 $07 - rest $03 - vol $3 - note as4 $07 - rest $04 - vol $1 - note as4 $07 - vol $5 - note f5 $07 - rest $03 - vol $2 - note f5 $07 - rest $04 - vol $1 - note f5 $07 - rest $1c - vol $5 - note e5 $07 - rest $03 - vol $2 - note e5 $07 - rest $04 - vol $1 - note e5 $07 - vol $5 - note f5 $07 - rest $03 - vol $2 - note f5 $07 - rest $04 - vol $1 - note f5 $07 - rest $1c - vol $5 - note gs5 $07 - rest $03 - vol $2 - note gs5 $07 - rest $04 - vol $1 - note gs5 $07 - vol $5 - note b6 $02 - rest $01 - vol $2 - note b6 $02 - rest $02 - vol $1 - note b6 $02 - rest $01 - vol $0 - note b6 $02 - rest $2c - vol $5 - note g5 $07 - rest $03 - vol $2 - note g5 $07 - rest $04 - vol $1 - note g5 $07 - vol $5 - note as6 $02 - rest $01 - vol $2 - note as6 $02 - rest $02 - vol $1 - note as6 $02 - rest $01 - vol $0 - note as6 $02 - rest $2c - vol $5 - note e5 $38 - note f5 $07 - rest $03 - vol $3 - note f5 $07 - rest $04 - vol $1 - note f5 $07 - vol $5 - note b7 $02 - rest $01 - vol $2 - note b7 $02 - rest $02 - vol $1 - note b7 $02 - rest $01 - vol $0 - note b7 $02 - rest $48 - vol $5 - note f5 $07 - rest $03 - vol $3 - note f5 $07 - rest $04 - vol $1 - note f5 $07 - vol $5 - note e5 $07 - rest $03 - vol $3 - note e5 $07 - rest $04 - vol $2 - note e5 $07 - rest $03 - vol $2 - note e5 $07 - rest $12 - vol $5 - note ds5 $07 - rest $03 - vol $3 - note ds5 $07 - rest $04 - vol $1 - note ds5 $07 - vol $5 - note d5 $07 - rest $03 - vol $3 - note d5 $07 - rest $04 - vol $2 - note d5 $07 - rest $03 - vol $2 - note d5 $07 - rest $12 - vol $5 - note cs5 $07 - rest $03 - vol $2 - note cs5 $07 - rest $04 - vol $1 - note cs5 $07 - vol $4 - note f6 $02 - rest $02 - vol $4 - note b6 $03 - rest $02 - vol $3 - note b6 $02 - rest $03 - vol $3 - note b6 $02 - rest $28 - vol $5 - note c5 $07 - rest $03 - vol $3 - note c5 $07 - rest $04 - vol $2 - note c5 $07 - rest $03 - vol $2 - note c5 $07 - rest $12 - vol $5 - note as6 $02 - rest $02 - vol $5 - note e6 $03 - rest $02 - vol $3 - note e6 $02 - rest $03 - vol $3 - note e6 $02 - rest $02 - vol $2 - note e6 $03 - rest $07 - vol $5 - note e3 $07 - note f3 $07 - note e4 $07 - note f4 $07 - note e5 $07 - note f5 $07 - note e6 $07 - note f6 $07 - note e7 $07 - note f7 $07 - note b6 $07 - note c7 $07 - note a6 $03 - note gs6 $04 - note g6 $03 - note fs6 $04 - note f6 $03 - rest $01 - vol $3 - note f6 $04 - rest $01 - vol $2 - note f6 $03 - rest $72 - goto musicf2d27 - cmdff - -musSpiritsGraveChannel0: - vibrato $00 - env $0 $00 - duty $02 -musicf2e8d: - vol $0 - note gs3 $1c - vol $5 - note cs5 $07 - rest $03 - vol $2 - note cs5 $07 - rest $04 - vol $1 - note cs5 $07 - rest $1c - vol $5 - note c5 $07 - rest $03 - vol $2 - note c5 $07 - rest $04 - vol $1 - note c5 $07 - vol $5 - note cs5 $07 - rest $03 - vol $2 - note cs5 $07 - rest $04 - vol $1 - note cs5 $07 - rest $1c - vol $5 - note d5 $07 - rest $03 - vol $2 - note d5 $07 - rest $04 - vol $1 - note d5 $07 - vol $5 - note f7 $02 - rest $02 - vol $3 - note f7 $03 - rest $02 - vol $2 - note f7 $02 - rest $03 - vol $1 - note f7 $02 - rest $28 - vol $5 - note cs5 $07 - rest $03 - vol $2 - note cs5 $07 - rest $04 - vol $1 - note cs5 $07 - vol $5 - note e7 $02 - rest $02 - vol $3 - note e7 $03 - rest $02 - vol $2 - note e7 $02 - rest $03 - vol $1 - note e7 $02 - rest $28 - vol $5 - note cs5 $38 - note d5 $07 - rest $03 - vol $2 - note d5 $07 - rest $04 - vol $1 - note d5 $07 - vol $5 - note f6 $02 - rest $02 - vol $3 - note f6 $03 - rest $02 - vol $2 - note f6 $02 - rest $03 - vol $1 - note f6 $02 - rest $44 - vol $5 - note d5 $07 - rest $03 - vol $2 - note d5 $07 - rest $04 - vol $1 - note d5 $07 - vol $5 - note cs5 $07 - rest $03 - vol $3 - note cs5 $07 - rest $04 - vol $3 - note cs5 $07 - rest $03 - vol $2 - note cs5 $07 - rest $12 - vol $5 - note c5 $07 - rest $03 - vol $2 - note c5 $07 - rest $04 - vol $1 - note c5 $07 - vol $5 - note b4 $07 - rest $03 - vol $3 - note b4 $07 - rest $04 - vol $3 - note b4 $07 - rest $03 - vol $2 - note b4 $07 - rest $12 - vol $5 - note as4 $07 - rest $03 - vol $3 - note as4 $07 - rest $04 - vol $3 - note as4 $07 - rest $03 - vol $2 - note as4 $04 - vol $4 - note f7 $03 - rest $01 - vol $4 - note b7 $03 - rest $02 - vol $2 - note b7 $02 - rest $03 - vol $2 - note b7 $02 - rest $21 - vol $5 - note a4 $07 - rest $03 - vol $3 - note a4 $07 - rest $04 - vol $3 - note a4 $07 - rest $03 - vol $2 - note a4 $07 - rest $19 - vol $5 - note as5 $02 - rest $02 - vol $5 - note e5 $03 - rest $02 - vol $3 - note e5 $02 - rest $03 - vol $2 - note e5 $02 - rest $02 - vol $2 - note e5 $03 - rest $0b - vol $4 - note e3 $07 - note f3 $07 - note e4 $07 - note f4 $07 - note e5 $07 - note f5 $07 - note e6 $07 - note f6 $07 - note e7 $07 - note f7 $07 - note b6 $07 - note c7 $07 - note a6 $04 - note gs6 $03 - note g6 $04 - vol $2 - note fs6 $03 - vol $2 - note f6 $03 - rest $70 - goto musicf2e8d - cmdff - -musSpiritsGraveChannel4: -musicf2fe0: - rest $c4 - duty $0e - note d2 $54 - note cs2 $2a - note c2 $07 - note b1 $07 - note as1 $3f - note a1 $07 - note gs1 $07 - note g1 $07 - note fs1 $46 - duty $0f - note fs1 $07 - rest $07 - duty $0e - note cs2 $38 - note a2 $38 - note gs2 $38 - note a1 $38 - note cs3 $38 - note c3 $38 - note fs1 $38 - note f1 $38 - rest $70 - goto musicf2fe0 - cmdff - -musSpiritsGraveChannel6: -musicf3014: - rest $38 - vol $2 - note $2a $0e - note $2a $0e - rest $38 - note $2e $0e - rest $0e - note $2a $0e - rest $46 - note $2a $0e - rest $62 - note $2a $0e - note $2a $0e - note $2e $0e - rest $0e - note $2a $0e - rest $62 - note $2a $0e - rest $0e - note $2e $0e - rest $0e - note $2a $0e - rest $46 - note $2a $0e - note $2a $0e - note $2e $0e - rest $2a - note $2a $0e - rest $46 - note $2a $0e - note $2a $0e - rest $38 - note $2a $07 - note $2a $0e - rest $23 - note $2a $0e - note $2a $0e - rest $1c - note $2e $0e - rest $0e - goto musicf3014 - cmdff diff --git a/audio/ages/mus/symmetryPast.s b/audio/ages/mus/symmetryPast.s deleted file mode 100644 index 89a6839d8..000000000 --- a/audio/ages/mus/symmetryPast.s +++ /dev/null @@ -1,674 +0,0 @@ -musSymmetryPastStart: - -musSymmetryPastChannel1: - vibrato $e1 - env $0 $00 - duty $01 -musicfb6a3: - vol $6 - note f4 $16 - note as4 $16 - note c5 $16 - note ds5 $16 - note d5 $2c - note g5 $2c - duty $02 - note f5 $07 - rest $04 - vol $5 - note f5 $03 - rest $03 - vol $4 - note f5 $05 - rest $03 - vol $3 - note f5 $03 - rest $05 - vol $2 - note f5 $03 - rest $08 - vol $5 - note c6 $03 - rest $03 - vol $4 - note c6 $05 - rest $03 - vol $3 - note c6 $03 - rest $05 - vol $2 - note c6 $03 - rest $13 - vol $5 - note ds6 $03 - rest $03 - vol $4 - note ds6 $05 - rest $03 - vol $3 - note ds6 $03 - rest $05 - vol $2 - note ds6 $03 - rest $13 - vol $5 - note g6 $03 - rest $03 - vol $4 - note g6 $05 - rest $03 - vol $3 - note g6 $03 - rest $05 - vol $2 - note g6 $03 - rest $13 - duty $01 - vol $6 - note ds6 $16 - note f6 $0b - note g6 $0b - note gs6 $16 - note g6 $0b - note f6 $0b - note ds6 $2c - note f6 $0b - rest $05 - vol $3 - note f6 $06 - vol $6 - note c6 $0b - rest $05 - vol $3 - note c6 $06 - vol $6 - note f4 $16 - note as3 $0b - note cs4 $0b - note ds4 $21 - vol $3 - note ds4 $0b - vol $6 - note as4 $21 - note gs4 $0b - note f4 $0b - rest $05 - vol $3 - note f4 $06 - vol $6 - note gs4 $0b - rest $05 - vol $3 - note gs4 $06 - vol $6 - note as4 $2c - note c5 $0b - rest $05 - vol $3 - note c5 $06 - vol $6 - note ds5 $0b - rest $05 - vol $3 - note ds5 $06 - vol $6 - note c5 $21 - note ds5 $0b - note f5 $0b - rest $05 - vol $3 - note f5 $0b - rest $06 - vol $2 - note f5 $0b - rest $16 - duty $02 - vol $6 - note e5 $03 - rest $03 - vol $5 - note e5 $05 - rest $03 - vol $3 - note e5 $03 - rest $05 - vol $6 - note ds6 $03 - rest $03 - vol $5 - note e6 $05 - rest $03 - vol $4 - note e6 $03 - rest $05 - vol $4 - note e6 $03 - rest $29 - vol $6 - note e5 $03 - rest $03 - vol $5 - note e5 $05 - rest $03 - vol $3 - note e5 $03 - rest $05 - vol $6 - note ds6 $03 - rest $03 - vol $5 - note e6 $05 - rest $03 - vol $4 - note e6 $03 - rest $05 - vol $3 - note e6 $03 - rest $29 - vol $6 - note f5 $03 - rest $03 - vol $5 - note f5 $05 - rest $03 - vol $3 - note f5 $03 - rest $05 - vol $6 - note e6 $03 - rest $03 - vol $5 - note f6 $05 - rest $03 - vol $4 - note f6 $03 - rest $05 - vol $4 - note f6 $03 - rest $29 - vol $6 - note f5 $03 - rest $03 - vol $5 - note f5 $05 - rest $03 - vol $3 - note f5 $03 - rest $05 - vol $6 - note e6 $03 - rest $03 - vol $5 - note f6 $05 - rest $03 - vol $4 - note f6 $03 - rest $05 - vol $3 - note f6 $03 - rest $13 - duty $01 - vol $6 - note c3 $2c - note d3 $16 - note e3 $16 - note g3 $2c - note f3 $16 - note ds3 $16 - rest $16 - duty $02 - note a5 $03 - rest $03 - vol $5 - note a5 $05 - rest $03 - vol $3 - note a5 $03 - rest $05 - vol $6 - note gs6 $03 - rest $03 - vol $5 - note a6 $05 - rest $03 - vol $4 - note a6 $03 - rest $05 - vol $4 - note a6 $03 - rest $29 - vol $6 - note c6 $03 - rest $03 - vol $5 - note c6 $05 - rest $03 - vol $3 - note c6 $03 - rest $05 - vol $6 - note b6 $03 - rest $03 - vol $5 - note c7 $05 - rest $03 - vol $4 - note c7 $03 - rest $05 - vol $3 - note c7 $03 - rest $13 - duty $01 - goto musicfb6a3 - cmdff - -musSymmetryPastChannel0: - vibrato $e1 - env $0 $00 - duty $02 -musicfb85d: - vol $0 - note gs3 $16 - vol $6 - note c5 $03 - rest $03 - vol $5 - note c5 $05 - rest $03 - vol $3 - note c5 $03 - rest $05 - vol $6 - note b5 $03 - rest $03 - vol $5 - note c6 $05 - rest $03 - vol $4 - note c6 $03 - rest $05 - vol $4 - note c6 $03 - rest $29 - vol $6 - note c5 $03 - rest $03 - vol $5 - note c5 $05 - rest $03 - vol $3 - note c5 $03 - rest $05 - vol $6 - note b5 $03 - rest $03 - vol $5 - note c6 $05 - rest $03 - vol $4 - note c6 $03 - rest $05 - vol $3 - note c6 $03 - rest $13 - duty $01 - vol $4 - note c3 $16 - note ds3 $16 - note f3 $16 - note gs3 $16 - note as3 $2c - note g3 $16 - duty $02 - note c5 $03 - rest $03 - vol $3 - note c5 $05 - rest $03 - vol $2 - note c5 $03 - rest $1b - vol $6 - note as4 $03 - rest $03 - vol $5 - note as4 $05 - rest $03 - vol $3 - note as4 $03 - rest $05 - vol $6 - note gs5 $03 - rest $03 - vol $5 - note as5 $05 - rest $03 - vol $4 - note as5 $03 - rest $05 - vol $4 - note as5 $03 - rest $29 - vol $6 - note as4 $03 - rest $03 - vol $5 - note as4 $05 - rest $03 - vol $3 - note as4 $03 - rest $05 - vol $6 - note gs5 $03 - rest $03 - vol $5 - note as5 $05 - rest $03 - vol $4 - note as5 $03 - rest $05 - vol $3 - note as5 $03 - rest $29 - vol $6 - note as4 $03 - rest $03 - vol $5 - note as4 $05 - rest $03 - vol $3 - note as4 $03 - rest $05 - vol $6 - note a5 $03 - rest $03 - vol $5 - note as5 $05 - rest $03 - vol $4 - note as5 $03 - rest $05 - vol $4 - note as5 $03 - rest $29 - vol $6 - note as4 $03 - rest $03 - vol $5 - note as4 $05 - rest $03 - vol $3 - note as4 $03 - rest $05 - vol $6 - note a5 $03 - rest $03 - vol $5 - note as5 $05 - rest $03 - vol $4 - note as5 $03 - rest $05 - vol $3 - note as5 $03 - rest $29 - vol $6 - note c5 $03 - rest $03 - vol $5 - note c5 $05 - rest $03 - vol $3 - note c5 $03 - rest $05 - vol $6 - note b5 $03 - rest $03 - vol $5 - note c6 $05 - rest $03 - vol $4 - note c6 $03 - rest $05 - vol $4 - note c6 $03 - rest $29 - vol $6 - note c5 $03 - rest $03 - vol $5 - note c5 $05 - rest $03 - vol $3 - note c5 $03 - rest $05 - vol $6 - note b5 $03 - rest $03 - vol $5 - note c6 $05 - rest $03 - vol $4 - note c6 $03 - rest $05 - vol $3 - note c6 $03 - rest $13 - duty $01 - vol $6 - note c4 $2c - note ds4 $2c - note f4 $16 - note g4 $0b - note gs4 $0b - note a4 $16 - duty $02 - vol $4 - note c5 $03 - rest $03 - vol $3 - note c5 $05 - rest $03 - vol $2 - note c5 $03 - rest $05 - duty $01 - vol $6 - note f3 $21 - note g3 $0b - vol $6 - note a3 $16 - note as3 $16 - note c4 $16 - vol $6 - note d4 $0b - vol $6 - note e4 $0b - note f4 $0b - rest $03 - vol $3 - note f4 $03 - rest $08 - vol $2 - note f4 $03 - rest $26 - duty $02 - vol $6 - note c5 $03 - rest $03 - vol $5 - note c5 $05 - rest $03 - vol $3 - note c5 $03 - rest $05 - vol $6 - note b5 $03 - rest $03 - vol $5 - note c6 $05 - rest $03 - vol $4 - note c6 $03 - rest $05 - vol $4 - note c6 $03 - rest $29 - vol $6 - note c5 $03 - rest $03 - vol $5 - note c5 $05 - rest $03 - vol $3 - note c5 $03 - rest $05 - vol $6 - note b5 $03 - rest $03 - vol $5 - note c6 $05 - rest $03 - vol $4 - note c6 $03 - rest $05 - vol $3 - note c6 $03 - rest $29 - vol $6 - note f5 $03 - rest $03 - vol $5 - note f5 $05 - rest $03 - vol $3 - note f5 $03 - rest $05 - vol $6 - note e6 $03 - rest $03 - vol $5 - note f6 $05 - rest $03 - vol $4 - note f6 $03 - rest $05 - vol $4 - note f6 $03 - rest $29 - vol $6 - note f5 $03 - rest $03 - vol $5 - note f5 $05 - rest $03 - vol $3 - note f5 $03 - rest $05 - vol $6 - note e6 $03 - rest $03 - vol $5 - note f6 $05 - rest $03 - vol $4 - note f6 $03 - rest $05 - vol $3 - note f6 $03 - rest $13 - goto musicfb85d - cmdff - -musSymmetryPastChannel4: -musicfba6b: - duty $0e - note f3 $2c - note as3 $16 - note c4 $16 - note ds4 $2c - note d4 $16 - note c4 $16 - note f3 $16 - note as3 $16 - note c4 $16 - note ds4 $16 - note d4 $2c - note as3 $16 - note g3 $16 - note ds3 $2c - note gs3 $16 - note as3 $16 - note cs4 $2c - note c4 $16 - note as3 $16 - note ds3 $2c - note as3 $2c - note cs4 $2c - note c4 $16 - note as3 $16 - note f3 $2c - note as3 $2c - note c4 $19 - note as3 $03 - note a3 $05 - note gs3 $03 - note g3 $03 - note fs3 $05 - note f3 $0b - rest $21 - note a5 $21 - note g5 $0b - note c5 $16 - note ds5 $16 - note f5 $16 - note a5 $16 - note g5 $0b - duty $0f - note g5 $07 - rest $1a - duty $0e - note a3 $21 - note g3 $0b - note f3 $0b - duty $0f - note f3 $0b - duty $0e - note c3 $0b - duty $0f - note c3 $0b - duty $0e - note ds3 $2c - note f3 $0b - duty $0f - note f3 $07 - duty $0e - note b2 $04 - note c3 $07 - rest $0f - note f3 $2c - note as3 $16 - note c4 $16 - note ds4 $2c - note d4 $16 - note c4 $10 - rest $06 - note f3 $16 - duty $0f - note f3 $16 - duty $0e - note c4 $16 - duty $0f - note c4 $16 - duty $0e - note c3 $16 - duty $0f - note c3 $16 - duty $0e - note c4 $16 - duty $0f - note c4 $16 - goto musicfba6b - cmdff - -.define musSymmetryPastChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/ages/mus/symmetryPresent.s b/audio/ages/mus/symmetryPresent.s deleted file mode 100644 index d7808c395..000000000 --- a/audio/ages/mus/symmetryPresent.s +++ /dev/null @@ -1,664 +0,0 @@ -musSymmetryPresentStart: - -musSymmetryPresentChannel1: - vibrato $00 - env $0 $00 - cmdf2 -musicef9db: - vol $0 - note gs3 $ff - note gs3 $21 - duty $01 - vol $6 - note e5 $12 - note fs5 $09 - note gs5 $09 - note a5 $12 - note gs5 $09 - note fs5 $09 - note e5 $24 - vol $6 - note fs5 $09 - rest $04 - vol $3 - note fs5 $05 - vol $6 - note cs5 $09 - rest $04 - vol $3 - note cs5 $05 - vol $6 - note fs4 $12 - vol $6 - note b3 $09 - note d4 $09 - note e4 $1b - vol $3 - note e4 $09 - vol $6 - note fs4 $06 - rest $03 - note fs4 $09 - rest $04 - vol $3 - note fs4 $05 - vol $6 - note fs4 $09 - note b3 $09 - rest $04 - vol $3 - note b3 $05 - vol $6 - note d4 $09 - rest $04 - vol $3 - note d4 $05 - vol $6 - note b4 $24 - note cs5 $09 - rest $04 - vol $3 - note cs5 $05 - vol $5 - note e5 $09 - rest $04 - vol $3 - note e5 $05 - vol $6 - note cs5 $1b - vol $5 - note e5 $09 - vol $7 - note fs5 $09 - rest $04 - vol $3 - note fs5 $09 - rest $05 - vol $2 - note fs5 $09 - rest $12 - duty $02 - vol $6 - note c5 $03 - rest $03 - vol $5 - note c5 $03 - rest $03 - vol $3 - note c5 $03 - rest $03 - vol $6 - note b5 $03 - rest $03 - vol $5 - note c6 $03 - rest $03 - vol $4 - note c6 $03 - rest $03 - vol $4 - note c6 $03 - rest $21 - vol $6 - note c5 $03 - rest $03 - vol $5 - note c5 $03 - rest $03 - vol $3 - note c5 $03 - rest $03 - vol $6 - note b5 $03 - rest $03 - vol $5 - note c6 $03 - rest $03 - vol $4 - note c6 $03 - rest $03 - vol $3 - note c6 $03 - rest $21 - vol $6 - note f5 $03 - rest $03 - vol $5 - note f5 $03 - rest $03 - vol $3 - note f5 $03 - rest $03 - vol $6 - note e6 $03 - rest $03 - vol $5 - note f6 $03 - rest $03 - vol $4 - note f6 $03 - rest $03 - vol $4 - note f6 $03 - rest $21 - vol $6 - note f5 $03 - rest $03 - vol $5 - note f5 $03 - rest $03 - vol $3 - note f5 $03 - rest $03 - vol $6 - note e6 $03 - rest $03 - vol $5 - note f6 $03 - rest $03 - vol $4 - note f6 $03 - rest $03 - vol $3 - note f6 $03 - rest $b1 - vol $6 - note g5 $03 - rest $03 - vol $5 - note g5 $03 - rest $03 - vol $3 - note g5 $03 - rest $03 - vol $6 - note fs6 $03 - rest $03 - vol $5 - note g6 $03 - rest $03 - vol $4 - note g6 $03 - rest $03 - vol $4 - note g6 $03 - rest $21 - vol $6 - note c6 $03 - rest $03 - vol $5 - note c6 $03 - rest $03 - vol $3 - note c6 $03 - rest $03 - vol $6 - note b6 $03 - rest $03 - vol $5 - note c7 $03 - rest $03 - vol $4 - note c7 $03 - rest $03 - vol $3 - note c7 $03 - rest $0f - duty $01 - goto musicef9db - cmdff - -musSymmetryPresentChannel0: - vibrato $00 - env $0 $00 - cmdf2 - duty $02 -musicefb34: - vol $0 - note gs3 $12 - vol $6 - note c5 $03 - rest $03 - vol $5 - note c5 $03 - rest $03 - vol $3 - note c5 $03 - rest $03 - vol $6 - note b5 $03 - rest $03 - vol $5 - note c6 $03 - rest $03 - vol $4 - note c6 $03 - rest $03 - vol $4 - note c6 $03 - rest $21 - vol $6 - note c5 $03 - rest $03 - vol $5 - note c5 $03 - rest $03 - vol $3 - note c5 $03 - rest $03 - vol $6 - note b5 $03 - rest $03 - vol $5 - note c6 $03 - rest $03 - vol $4 - note c6 $03 - rest $03 - vol $3 - note c6 $03 - rest $0f - duty $01 - vol $4 - note c3 $12 - note ds3 $09 - note e3 $09 - note f3 $12 - note a3 $12 - note b3 $09 - rest $04 - vol $2 - note b3 $05 - vol $4 - note g3 $09 - note d3 $09 - note g3 $11 - rest $01 - duty $02 - note c5 $03 - rest $03 - vol $3 - note c5 $03 - rest $03 - vol $2 - note c5 $03 - rest $15 - vol $6 - note b4 $03 - rest $03 - vol $5 - note b4 $03 - rest $03 - vol $3 - note b4 $03 - rest $03 - vol $6 - note a5 $03 - rest $03 - vol $5 - note b5 $03 - rest $03 - vol $4 - note b5 $03 - rest $03 - vol $4 - note b5 $03 - rest $21 - vol $6 - note b4 $03 - rest $03 - vol $5 - note b4 $03 - rest $03 - vol $3 - note b4 $03 - rest $03 - vol $6 - note a5 $03 - rest $03 - vol $5 - note b5 $03 - rest $03 - vol $4 - note b5 $03 - rest $03 - vol $3 - note b5 $03 - rest $0f - duty $01 - vol $4 - note b2 $12 - note d3 $12 - note e3 $12 - note g3 $12 - note a3 $12 - note fs3 $09 - note cs3 $09 - note fs3 $12 - duty $02 - note b4 $03 - rest $03 - vol $3 - note b4 $03 - rest $03 - vol $2 - note b4 $03 - rest $15 - vol $6 - note cs5 $03 - rest $03 - vol $5 - note cs5 $03 - rest $03 - vol $3 - note cs5 $03 - rest $03 - vol $6 - note c6 $03 - rest $03 - vol $5 - note cs6 $03 - rest $03 - vol $4 - note cs6 $03 - rest $03 - vol $4 - note cs6 $03 - rest $21 - vol $6 - note cs5 $03 - rest $03 - vol $5 - note cs5 $03 - rest $03 - vol $3 - note cs5 $03 - rest $03 - vol $6 - note c6 $03 - rest $03 - vol $5 - note cs6 $03 - rest $03 - vol $4 - note cs6 $03 - rest $03 - vol $3 - note cs6 $03 - rest $0f - duty $01 - vol $4 - note c3 $12 - note ds3 $12 - note f3 $12 - note g3 $12 - note a3 $12 - note e3 $09 - note f3 $09 - note e3 $12 - duty $02 - note c5 $03 - rest $03 - vol $3 - note c5 $03 - rest $03 - vol $2 - note c5 $03 - rest $03 - duty $01 - vol $7 - note f3 $09 - note g3 $09 - note a3 $09 - note as3 $09 - note c4 $09 - rest $04 - vol $4 - note c4 $09 - rest $05 - vol $2 - note c4 $09 - vol $4 - note f5 $09 - note g5 $09 - note a5 $09 - note as5 $09 - note c6 $09 - rest $04 - vol $2 - note c6 $09 - rest $05 - vol $1 - note c6 $09 - rest $12 - duty $02 - vol $6 - note c5 $03 - rest $03 - vol $5 - note c5 $03 - rest $03 - vol $3 - note c5 $03 - rest $03 - vol $6 - note b5 $03 - rest $03 - vol $5 - note c6 $03 - rest $03 - vol $4 - note c6 $03 - rest $03 - vol $4 - note c6 $03 - rest $21 - vol $6 - note c5 $03 - rest $03 - vol $5 - note c5 $03 - rest $03 - vol $3 - note c5 $03 - rest $03 - vol $6 - note b5 $03 - rest $03 - vol $5 - note c6 $03 - rest $03 - vol $4 - note c6 $03 - rest $03 - vol $3 - note c6 $03 - rest $0f - duty $01 - vol $4 - note c3 $12 - note ds3 $12 - note f3 $12 - note gs3 $12 - note as3 $12 - note g4 $09 - note f4 $09 - note g4 $12 - duty $02 - note c5 $03 - rest $03 - vol $3 - note c5 $03 - rest $03 - vol $2 - note c5 $03 - rest $03 - goto musicefb34 - cmdff - -musSymmetryPresentChannel4: - cmdf2 -musicefd1a: - duty $0e - note f3 $09 - duty $0f - note f3 $09 - rest $12 - duty $0e - note as3 $12 - note c4 $09 - duty $0f - note c4 $09 - duty $0e - note c3 $09 - duty $0f - note c3 $09 - duty $0e - note ds4 $09 - note d4 $09 - note c4 $09 - duty $0f - note c4 $09 - rest $12 - duty $0e - note f3 $12 - note as3 $12 - note c4 $12 - note ds4 $12 - note d4 $12 - note as3 $09 - note g3 $09 - note c4 $12 - duty $0f - note c4 $12 - duty $0e - note e3 $09 - duty $0f - note e3 $09 - rest $12 - duty $0e - note a3 $12 - note b3 $09 - duty $0f - note b3 $09 - duty $0e - note b2 $09 - duty $0f - note b2 $09 - duty $0e - note d4 $09 - note cs4 $09 - note b3 $09 - duty $0f - note b3 $09 - rest $12 - duty $0e - note e3 $12 - note a3 $12 - note b3 $12 - note d4 $12 - note cs4 $12 - note a3 $09 - note fs3 $09 - note b3 $12 - duty $0f - note b3 $12 - duty $0e - note fs2 $12 - duty $0f - note fs2 $12 - duty $0e - note b2 $09 - duty $0f - note b2 $09 - duty $0e - note cs3 $09 - duty $0f - note cs3 $09 - duty $0e - note cs2 $09 - duty $0f - note cs2 $09 - rest $12 - duty $0e - note cs3 $09 - duty $0f - note cs3 $09 - rest $12 - duty $0e - note a5 $1b - note g5 $09 - note c5 $09 - duty $0f - note c5 $09 - duty $0e - note ds5 $09 - duty $0f - note ds5 $09 - duty $0e - note f5 $12 - note g5 $09 - note a5 $09 - note g5 $09 - duty $0f - note g5 $09 - duty $0e - note a4 $09 - note g4 $09 - note a3 $1b - note g3 $09 - note f3 $09 - duty $0f - note f3 $09 - duty $0e - note c3 $09 - duty $0f - note c3 $09 - duty $0e - note ds3 $09 - duty $0f - note ds3 $09 - duty $0e - note ds3 $09 - duty $0f - note ds3 $09 - duty $0e - note f3 $09 - note c3 $09 - note c4 $09 - note a3 $09 - note f3 $09 - duty $0f - note f3 $09 - rest $12 - duty $0e - note as3 $12 - note c4 $09 - duty $0f - note c4 $09 - duty $0e - note c3 $09 - duty $0f - note c3 $09 - duty $0e - note ds4 $09 - note d4 $09 - note c4 $09 - duty $0f - note c4 $09 - rest $12 - duty $0e - note f3 $12 - note as3 $12 - note c4 $12 - note ds4 $12 - note d4 $12 - note as3 $09 - note g3 $09 - note c4 $12 - duty $0f - note c4 $12 - goto musicefd1a - cmdff - -.define musSymmetryPresentChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/ages/mus/tokayHouse.s b/audio/ages/mus/tokayHouse.s deleted file mode 100644 index 85c1a4522..000000000 --- a/audio/ages/mus/tokayHouse.s +++ /dev/null @@ -1,444 +0,0 @@ -musTokayHouseStart: - -musTokayHouseChannel1: - vibrato $00 - env $0 $00 - duty $02 -musicf1239: - vol $6 - note a4 $1c - rest $08 - note d5 $07 - rest $06 - vol $3 - note d5 $03 - rest $02 - vol $6 - note fs5 $07 - rest $06 - vol $3 - note fs5 $03 - rest $02 - vol $6 - note a5 $1c - rest $08 - note gs5 $07 - rest $0b - note f5 $07 - rest $06 - vol $3 - note f5 $03 - rest $02 - vol $6 - note gs5 $1c - rest $08 - note fs5 $07 - rest $06 - vol $3 - note fs5 $03 - rest $02 - vol $6 - note d5 $07 - rest $06 - vol $3 - note d5 $03 - rest $02 - vol $6 - note f5 $1c - rest $08 - note fs5 $07 - rest $06 - vol $3 - note fs5 $07 - rest $07 - vol $2 - note fs5 $07 - rest $02 - vol $6 - note as5 $1c - rest $08 - note a5 $07 - rest $06 - vol $3 - note a5 $07 - rest $07 - vol $2 - note a5 $07 - rest $02 - vol $6 - note as5 $07 - rest $06 - vol $3 - note as5 $03 - rest $02 - vol $6 - note as5 $07 - rest $06 - vol $3 - note as5 $03 - rest $02 - vol $6 - note a5 $07 - rest $06 - vol $3 - note a5 $07 - rest $07 - vol $2 - note a5 $07 - rest $02 - vol $6 - note a4 $1c - rest $08 - note d5 $07 - rest $06 - vol $3 - note d5 $03 - rest $02 - vol $6 - note fs5 $07 - rest $06 - vol $3 - note fs5 $03 - rest $02 - vol $6 - note a5 $1c - rest $08 - note gs5 $07 - rest $06 - vol $3 - note gs5 $03 - rest $02 - vol $6 - note f5 $07 - rest $06 - vol $3 - note f5 $03 - rest $02 - vol $6 - note gs5 $1c - rest $08 - note d6 $07 - rest $06 - vol $3 - note d6 $03 - rest $02 - vol $6 - note gs5 $07 - rest $06 - vol $3 - note gs5 $03 - rest $02 - vol $6 - note as5 $07 - rest $06 - vol $3 - note as5 $03 - rest $02 - vol $6 - note as5 $07 - rest $06 - vol $3 - note as5 $03 - rest $02 - vol $6 - note a5 $07 - rest $06 - vol $3 - note a5 $07 - rest $07 - vol $2 - note a5 $07 - rest $02 - vol $6 - note d6 $1c - rest $08 - note fs5 $07 - rest $06 - vol $3 - note fs5 $07 - rest $07 - vol $2 - note fs5 $07 - rest $02 - vol $6 - note d6 $07 - rest $06 - vol $3 - note d6 $03 - rest $02 - vol $6 - note d6 $07 - rest $06 - vol $3 - note d6 $03 - rest $02 - vol $6 - note fs5 $07 - rest $06 - vol $3 - note fs5 $07 - rest $07 - vol $2 - note fs5 $07 - rest $02 - vol $6 - note d6 $1c - rest $08 - note fs5 $15 - rest $06 - note g5 $07 - rest $02 - note a5 $24 - vol $3 - note a5 $12 - rest $12 - goto musicf1239 - cmdff - -musTokayHouseChannel0: - vibrato $00 - env $0 $00 - duty $02 -musicf1383: - vol $0 - note gs3 $12 - vol $6 - note d4 $07 - rest $02 - note cs4 $07 - rest $02 - note d4 $07 - rest $0b - vol $6 - note d5 $07 - rest $06 - vol $3 - note d5 $07 - rest $07 - vol $2 - note d5 $07 - rest $02 - vol $6 - note d4 $07 - rest $02 - note cs4 $07 - rest $02 - note d4 $07 - rest $0b - vol $6 - note d5 $07 - rest $06 - vol $3 - note d5 $07 - rest $07 - vol $2 - note d5 $07 - rest $02 - vol $6 - note d4 $07 - rest $02 - note cs4 $07 - rest $02 - note d4 $07 - rest $02 - note cs4 $07 - rest $02 - note d4 $07 - rest $02 - note cs4 $07 - rest $06 - vol $4 - note cs4 $07 - rest $07 - vol $6 - note gs3 $0e - rest $04 - note a3 $07 - rest $06 - vol $3 - note a3 $03 - rest $02 - vol $6 - note d5 $07 - rest $06 - vol $3 - note d5 $07 - rest $07 - vol $2 - note d5 $07 - rest $92 - vol $6 - note a3 $07 - rest $02 - note cs4 $07 - rest $02 - note d4 $07 - rest $06 - vol $3 - note d4 $07 - rest $07 - vol $6 - note gs3 $07 - rest $06 - vol $3 - note gs3 $07 - rest $07 - vol $6 - note gs3 $07 - rest $02 - note cs4 $07 - rest $02 - note d4 $07 - rest $06 - vol $3 - note d4 $03 - rest $02 - vol $6 - note gs3 $07 - rest $06 - vol $3 - note gs3 $07 - rest $07 - vol $2 - note gs3 $07 - rest $02 - vol $6 - note a3 $07 - rest $02 - note cs4 $07 - rest $02 - note d4 $07 - rest $06 - vol $3 - note d4 $07 - rest $07 - vol $6 - note gs3 $07 - rest $02 - note a3 $07 - rest $02 - note as3 $07 - rest $02 - note b3 $07 - rest $02 - note cs4 $07 - rest $02 - note d4 $07 - rest $06 - vol $3 - note d4 $07 - rest $07 - vol $2 - note d4 $07 - rest $02 - vol $6 - note as5 $1c - rest $08 - note d5 $07 - rest $06 - vol $3 - note d5 $07 - rest $07 - vol $2 - note d5 $07 - rest $02 - vol $6 - note as5 $07 - rest $06 - vol $3 - note as5 $03 - rest $02 - vol $6 - note as5 $07 - rest $06 - vol $3 - note as5 $03 - rest $02 - vol $6 - note d5 $07 - rest $06 - vol $3 - note d5 $07 - rest $07 - vol $2 - note d5 $07 - rest $02 - vol $6 - note as5 $1c - rest $08 - note d5 $15 - rest $06 - note e5 $07 - rest $02 - note fs5 $24 - vol $3 - note fs5 $12 - rest $12 - goto musicf1383 - cmdff - -musTokayHouseChannel4: - cmdf2 -musicf14ba: - duty $0e - note d3 $09 - rest $1b - note a3 $09 - rest $1b - note a2 $09 - rest $1b - note a3 $09 - rest $1b - note d3 $09 - rest $1b - note a3 $09 - rest $1b - note a2 $09 - rest $1b - note a3 $09 - rest $1b - duty $0e - note g4 $24 - note fs4 $09 - rest $1b - duty $0e - note g4 $09 - rest $09 - note g4 $09 - rest $09 - note fs4 $09 - rest $09 - note a3 $04 - note g3 $05 - note fs3 $04 - note e3 $05 - note d3 $24 - note a3 $09 - rest $09 - note a3 $09 - rest $09 - note a2 $09 - rest $1b - note a3 $09 - rest $1b - note d3 $24 - note a3 $09 - rest $09 - note a3 $09 - rest $09 - note a2 $09 - rest $09 - note a2 $09 - rest $09 - note d3 $09 - rest $ff - rest $2a - duty $0e - note a2 $04 - note as2 $05 - note b2 $04 - note cs3 $05 - goto musicf14ba - cmdff - -.define musTokayHouseChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/ages/mus/underwater.s b/audio/ages/mus/underwater.s deleted file mode 100644 index cdc3db0b4..000000000 --- a/audio/ages/mus/underwater.s +++ /dev/null @@ -1,716 +0,0 @@ -musUnderwaterStart: -musUnderwaterChannel1: - vibrato $e1 - env $0 $00 - duty $02 -musice776c: - vol $0 - note gs3 $18 - vol $6 - note g5 $0c - note a5 $0c - note as5 $0c - note c6 $0c - note a5 $06 - rest $03 - vol $4 - note a5 $06 - rest $03 - vol $2 - note a5 $06 - vol $6 - note fs5 $18 - vibrato $01 - vol $4 - note fs5 $0c - rest $06 - vibrato $e1 - vol $6 - note c5 $06 - note d5 $06 - rest $04 - vol $4 - note d5 $06 - rest $02 - vol $6 - note a5 $03 - rest $03 - note a5 $48 - note d6 $04 - vol $6 - note d7 $04 - rest $02 - vol $5 - note d7 $04 - rest $02 - vol $4 - note d7 $04 - rest $34 - vol $6 - note g5 $0c - note a5 $0c - note as5 $0c - note c6 $0c - note a5 $06 - rest $03 - vol $4 - note a5 $06 - rest $03 - vol $2 - note a5 $06 - vol $6 - note fs5 $18 - vibrato $01 - vol $4 - note fs5 $0c - rest $06 - vibrato $e1 - vol $6 - note c5 $06 - vol $6 - note d5 $06 - rest $0c - note d6 $03 - rest $03 - vol $6 - note d6 $30 - rest $18 - vol $7 - note c7 $04 - rest $02 - vol $6 - note d7 $04 - rest $02 - vol $5 - note d7 $04 - rest $02 - vol $4 - note d7 $04 - rest $02 - vol $6 - note c6 $04 - rest $02 - vol $4 - note c6 $04 - rest $02 - vol $2 - note c6 $04 - vol $6 - note c6 $08 - note d6 $20 - vibrato $01 - vol $4 - note d6 $0c - rest $04 - vibrato $e1 - vol $6 - note c6 $04 - rest $02 - vol $4 - note c6 $04 - rest $02 - vol $2 - note c6 $04 - vol $6 - note c6 $08 - note d6 $20 - vibrato $01 - vol $4 - note d6 $0c - rest $04 - vibrato $e1 - vol $6 - note c6 $04 - rest $02 - vol $4 - note c6 $04 - rest $02 - vol $2 - note c6 $04 - vol $6 - note c6 $08 - note e6 $08 - note d6 $08 - note c6 $08 - note d6 $54 - vibrato $01 - vol $4 - note d6 $0c - vibrato $e1 - vol $6 - note c6 $04 - rest $02 - vol $4 - note c6 $04 - rest $02 - vol $2 - note c6 $04 - vol $6 - note c6 $08 - note d6 $28 - vibrato $01 - vol $4 - note d6 $08 - vibrato $e1 - vol $6 - note c6 $10 - note a5 $08 - note d6 $28 - vibrato $01 - vol $4 - note d6 $08 - vibrato $e1 - vol $6 - note c6 $08 - note a5 $08 - note c6 $08 - note e6 $08 - note d6 $08 - note c6 $08 - note d6 $3c - vibrato $01 - vol $4 - note d6 $0c - vibrato $e1 - vol $6 - note a6 $18 - note g6 $18 - goto musice776c - cmdff - -musUnderwaterChannel0: - vibrato $00 - env $0 $00 - duty $02 -musice789b: - vol $9 - note fs3 $18 - note a3 $06 - rest $03 - vol $5 - note a3 $06 - rest $03 - vol $3 - note a3 $06 - vol $9 - note a3 $06 - rest $03 - vol $5 - note a3 $06 - rest $03 - vol $3 - note a3 $06 - vol $9 - note fs3 $18 - note a3 $06 - rest $03 - vol $5 - note a3 $06 - rest $03 - vol $3 - note a3 $06 - vol $9 - note a3 $06 - rest $03 - vol $5 - note a3 $06 - rest $03 - vol $3 - note a3 $06 - vol $9 - note fs3 $18 - note a3 $06 - rest $03 - vol $5 - note a3 $06 - rest $03 - vol $3 - note a3 $06 - vol $9 - note a3 $06 - rest $03 - vol $5 - note a3 $06 - rest $03 - vol $3 - note a3 $06 - vol $9 - note fs3 $18 - note a3 $06 - rest $03 - vol $5 - note a3 $06 - rest $03 - vol $3 - note a3 $06 - vol $9 - note a3 $06 - rest $03 - vol $5 - note a3 $06 - rest $03 - vol $3 - note a3 $06 - vol $9 - note fs3 $18 - note a3 $06 - rest $03 - vol $5 - note a3 $06 - rest $03 - vol $3 - note a3 $06 - vol $9 - note a3 $06 - rest $03 - vol $5 - note a3 $06 - rest $03 - vol $3 - note a3 $06 - vol $9 - note fs3 $18 - note a3 $06 - rest $03 - vol $5 - note a3 $06 - rest $03 - vol $3 - note a3 $06 - vol $9 - note a3 $06 - rest $03 - vol $5 - note a3 $06 - rest $03 - vol $3 - note a3 $06 - vol $9 - note fs3 $18 - note a3 $06 - rest $03 - vol $5 - note a3 $06 - rest $03 - vol $3 - note a3 $06 - vol $9 - note a3 $06 - rest $03 - vol $5 - note a3 $06 - rest $03 - vol $3 - note a3 $06 - vol $9 - note fs3 $18 - note a3 $06 - rest $03 - vol $5 - note a3 $06 - rest $03 - vol $3 - note a3 $06 - vol $6 - note g5 $04 - rest $02 - vol $4 - note g5 $04 - rest $02 - vol $2 - note g5 $04 - vol $6 - note g5 $08 - note a5 $12 - vol $4 - note a5 $06 - vol $6 - note a5 $04 - rest $02 - vol $4 - note a5 $02 - vol $6 - note e5 $04 - rest $02 - vol $4 - note e5 $02 - vol $6 - note a5 $04 - rest $02 - vol $4 - note a5 $02 - vol $6 - note g5 $04 - rest $02 - vol $4 - note g5 $04 - rest $02 - vol $2 - note g5 $04 - vol $6 - note g5 $08 - note a5 $12 - vol $4 - note a5 $06 - vol $6 - note e5 $04 - rest $02 - vol $4 - note e5 $02 - vol $6 - note g5 $04 - rest $02 - vol $4 - note g5 $02 - vol $6 - note a5 $04 - rest $02 - vol $4 - note a5 $02 - vol $6 - note g5 $04 - rest $02 - vol $4 - note g5 $04 - rest $02 - vol $2 - note g5 $04 - vol $6 - note g5 $08 - note b5 $08 - note a5 $08 - note g5 $08 - note a5 $18 - note fs3 $0c - note g3 $0c - note gs3 $0c - note a3 $0c - note as3 $0c - note b3 $0c - note g5 $04 - rest $02 - vol $4 - note g5 $04 - rest $02 - vol $2 - note g5 $04 - vol $6 - note g5 $08 - note a5 $18 - note e5 $06 - rest $03 - vol $4 - note e5 $06 - rest $01 - vol $6 - note e5 $08 - vol $6 - note g5 $10 - note e5 $08 - note a5 $18 - vol $6 - note e5 $08 - note d5 $08 - note e5 $08 - vol $6 - note g5 $08 - note e5 $08 - note g5 $08 - note b5 $08 - note a5 $08 - note g5 $08 - note a5 $18 - note d5 $08 - note a4 $08 - note d5 $08 - note a5 $08 - note e5 $08 - note a5 $08 - note e6 $08 - note a5 $08 - note e6 $08 - note d6 $08 - note a5 $08 - note d6 $08 - goto musice789b - cmdff - -musUnderwaterChannel4: -musice7a42: - duty $0e - note d2 $18 - duty $0f - note d2 $06 - rest $2a - duty $0e - note c2 $18 - duty $0f - note c2 $06 - rest $2a - duty $0e - note d2 $18 - duty $0f - note d2 $06 - rest $2a - duty $0e - note c2 $18 - duty $0f - note c2 $06 - rest $2a - duty $0e - note d2 $18 - duty $0f - note d2 $06 - rest $2a - duty $0e - note c2 $18 - duty $0f - note c2 $06 - rest $2a - duty $0e - note d2 $18 - duty $0f - note d2 $06 - rest $2a - duty $0e - note c2 $18 - duty $0f - note c2 $06 - rest $2a - duty $0e - note a1 $0c - duty $0f - note a1 $0c - duty $0e - note a2 $18 - duty $0f - note a2 $18 - duty $0e - note a1 $0c - duty $0f - note a1 $0c - duty $0e - note a2 $18 - duty $0f - note a2 $18 - duty $0e - note a1 $0c - duty $0f - note a1 $0c - duty $0e - note a2 $18 - duty $0f - note a2 $18 - duty $0e - note a1 $0c - duty $0f - note a1 $0c - duty $0e - note a2 $18 - duty $0f - note a2 $18 - duty $0e - note a1 $0c - rest $04 - note a1 $08 - note a2 $18 - note g2 $08 - note e2 $08 - note g2 $08 - note a1 $0c - rest $04 - note a1 $08 - note a2 $0c - rest $04 - note a2 $08 - note e2 $08 - note g2 $08 - note e2 $08 - note a1 $0c - rest $04 - note a1 $08 - note a2 $0c - rest $04 - note a2 $08 - note g2 $08 - note e2 $08 - note g2 $08 - note a1 $08 - note as1 $08 - note a1 $08 - note e2 $08 - note a2 $08 - note e2 $08 - note a2 $08 - note e3 $08 - note a2 $08 - goto musice7a42 - cmdff - -musUnderwaterChannel6: -musice7b1c: - vol $6 - note $24 $03 - rest $15 - note $26 $03 - rest $15 - note $26 $03 - rest $15 - note $24 $03 - rest $15 - note $26 $03 - rest $15 - note $26 $03 - rest $15 - note $24 $03 - rest $15 - note $26 $03 - rest $15 - note $26 $03 - rest $15 - note $24 $03 - rest $15 - note $26 $03 - rest $09 - note $26 $03 - rest $09 - note $26 $03 - rest $15 - note $24 $03 - rest $15 - note $26 $03 - rest $15 - note $26 $03 - rest $15 - note $24 $03 - rest $15 - note $26 $03 - rest $15 - note $26 $03 - rest $15 - note $24 $03 - rest $15 - note $26 $03 - rest $15 - note $26 $03 - rest $15 - note $24 $03 - rest $15 - note $26 $03 - rest $09 - note $26 $03 - rest $09 - note $26 $03 - rest $15 - note $24 $03 - rest $0d - note $24 $03 - rest $05 - note $26 $03 - rest $15 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $24 $03 - rest $0d - note $24 $03 - rest $05 - note $26 $03 - rest $15 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $24 $03 - rest $0d - note $24 $03 - rest $05 - note $26 $03 - rest $15 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $0d - note $26 $03 - rest $05 - note $26 $03 - rest $0d - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $0d - note $26 $03 - rest $05 - note $26 $03 - rest $0d - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $0d - note $26 $03 - rest $05 - note $26 $03 - rest $0d - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $0d - note $26 $03 - rest $05 - note $26 $03 - rest $0d - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - note $26 $03 - rest $05 - goto musice7b1c - cmdff \ No newline at end of file diff --git a/audio/ages/mus/wingDungeon.s b/audio/ages/mus/wingDungeon.s deleted file mode 100644 index e80d58359..000000000 --- a/audio/ages/mus/wingDungeon.s +++ /dev/null @@ -1,507 +0,0 @@ -musWingDungeonStart: - -musWingDungeonChannel1: - cmdf2 - vibrato $00 - env $0 $00 - duty $02 -musicf306e: - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $2 - note ds4 $07 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $2 - note ds4 $07 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $07 - rest $04 - vol $2 - note fs4 $07 - rest $1c - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $2 - note ds4 $07 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $2 - note ds4 $07 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $07 - rest $04 - vol $2 - note fs4 $07 - rest $1c - vol $8 - note ds4 $07 - rest $03 - vol $4 - note ds4 $07 - rest $04 - vol $2 - note ds4 $07 - vol $7 - note fs4 $07 - rest $03 - vol $4 - note fs4 $07 - rest $04 - vol $2 - note fs4 $07 - vol $7 - note g4 $07 - rest $03 - vol $3 - note g4 $07 - rest $04 - vol $2 - note g4 $07 - vol $7 - note fs4 $07 - rest $03 - vol $3 - note fs4 $07 - rest $04 - vol $2 - note fs4 $07 - vol $7 - note g4 $07 - rest $03 - vol $3 - note g4 $07 - rest $04 - vol $2 - note g4 $07 - vol $7 - note fs4 $07 - rest $03 - vol $3 - note fs4 $07 - rest $04 - vol $2 - note fs4 $07 - rest $38 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $1 - note ds4 $07 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $2 - note ds4 $07 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $07 - rest $04 - vol $2 - note fs4 $07 - rest $1c - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $04 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $04 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $04 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $04 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $07 - rest $04 - vol $1 - note fs4 $07 - rest $1c - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $1 - note ds4 $07 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $07 - rest $04 - vol $2 - note fs4 $07 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $07 - rest $04 - vol $1 - note g4 $07 - vol $6 - note as4 $07 - rest $03 - vol $3 - note as4 $07 - rest $04 - vol $1 - note as4 $07 - vol $6 - note d5 $07 - rest $03 - vol $3 - note d5 $04 - vol $6 - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $07 - rest $04 - vol $2 - note fs4 $07 - rest $ff - vol $0 - note c1 $0b - goto musicf306e - cmdff - -musWingDungeonChannel0: - cmdf2 - vibrato $00 - env $0 $00 - duty $02 -musicf31d1: - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $07 - rest $04 - vol $2 - note c4 $07 - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $07 - rest $04 - vol $2 - note c4 $07 - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $07 - rest $04 - vol $2 - note d4 $07 - rest $1c - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $07 - rest $04 - vol $2 - note c4 $07 - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $07 - rest $04 - vol $2 - note c4 $07 - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $07 - rest $04 - vol $2 - note d4 $07 - rest $1c - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $07 - rest $04 - vol $2 - note c4 $07 - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $07 - rest $04 - vol $2 - note d4 $07 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $2 - note ds4 $07 - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $07 - rest $04 - vol $2 - note d4 $07 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $2 - note ds4 $07 - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $07 - rest $04 - vol $2 - note d4 $07 - rest $38 - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $07 - rest $04 - vol $2 - note c4 $07 - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $07 - rest $04 - vol $2 - note c4 $07 - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $07 - rest $04 - vol $2 - note d4 $07 - rest $1c - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $04 - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $04 - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $04 - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $04 - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $07 - rest $04 - vol $2 - note d4 $04 - rest $1f - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $07 - rest $04 - vol $2 - note c4 $07 - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $07 - rest $04 - vol $2 - note d4 $07 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $2 - note ds4 $07 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $07 - rest $04 - vol $2 - note fs4 $07 - vol $6 - note as4 $07 - rest $03 - vol $3 - note as4 $04 - vol $6 - note a4 $07 - rest $03 - vol $3 - note a4 $04 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $04 - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $07 - rest $04 - vol $2 - note d4 $07 - rest $ff - vol $0 - note gs3 $0b - goto musicf31d1 - cmdff - -musWingDungeonChannel4: -musicf332d: - rest $ff - rest $c1 - duty $0e - note c3 $07 - rest $15 - note c3 $07 - rest $15 - note d3 $07 - rest $31 - note c3 $07 - rest $07 - note c3 $07 - rest $07 - note c3 $07 - rest $07 - note c3 $07 - rest $07 - note d3 $07 - rest $31 - note c3 $07 - rest $15 - note d3 $07 - rest $15 - note ds3 $07 - rest $15 - note fs3 $07 - rest $15 - note as3 $07 - rest $07 - note a3 $07 - rest $07 - note ds3 $07 - rest $07 - note d3 $07 - rest $ff - rest $20 - goto musicf332d - cmdff - -musWingDungeonChannel6: -musicf3379: - rest $ff - rest $89 - vol $3 - note $2a $0e - note $2e $0e - rest $62 - note $2a $0e - note $2e $0e - rest $54 - note $2a $0e - note $2e $0e - rest $d2 - note $2a $0e - note $2a $0e - note $2e $0e - rest $46 - note $2a $0e - note $2a $0e - note $2e $0e - rest $62 - goto musicf3379 - cmdff diff --git a/audio/ages/mus/zoraVillage.s b/audio/ages/mus/zoraVillage.s deleted file mode 100644 index 7943e834a..000000000 --- a/audio/ages/mus/zoraVillage.s +++ /dev/null @@ -1,571 +0,0 @@ -musZoraVillageStart: - -musZoraVillageChannel1: - vibrato $00 - env $0 $00 - duty $02 -musicfbb21: - vol $6 - note a5 $0b - vol $3 - note a5 $0b - vol $6 - note fs5 $0b - vol $3 - note fs5 $0b - vol $6 - note a5 $0b - vol $3 - note a5 $0b - vol $6 - note fs5 $0b - vol $3 - note fs5 $0b - vol $6 - note b5 $0b - rest $0b - note gs5 $0b - rest $03 - vol $3 - note gs5 $05 - rest $06 - vol $2 - note gs5 $05 - rest $06 - vol $1 - note gs5 $05 - rest $19 - vol $6 - note g5 $0b - vol $3 - note e5 $0b - vol $6 - note e5 $0b - vol $3 - note e5 $0b - vol $6 - note a5 $0b - vol $3 - note a5 $0b - vol $6 - note fs5 $0b - vol $4 - note fs5 $05 - rest $06 - vol $3 - note fs5 $05 - rest $06 - vol $3 - note fs5 $05 - rest $48 - vol $6 - note f5 $0b - vol $3 - note f5 $0b - vol $6 - note d5 $0b - vol $3 - note d5 $0b - vol $6 - note f5 $0b - vol $3 - note f5 $0b - vol $6 - note d5 $0b - vol $3 - note d5 $0b - rest $0b - vol $6 - note e5 $0b - note f5 $0b - note g5 $0b - rest $07 - vol $3 - note g5 $05 - rest $05 - vol $3 - note g5 $06 - rest $05 - vol $1 - note g5 $06 - rest $0a - vol $6 - note b5 $07 - rest $04 - vol $3 - note b5 $07 - rest $04 - vol $6 - note a5 $07 - rest $04 - vol $3 - note a5 $07 - rest $04 - vol $6 - note b5 $07 - rest $04 - vol $3 - note b5 $07 - rest $04 - vol $6 - note a5 $07 - rest $04 - vol $3 - note a5 $07 - rest $04 - vol $6 - note gs5 $05 - rest $09 - vol $4 - note gs5 $03 - rest $08 - vol $3 - note gs5 $03 - rest $08 - vol $2 - note gs5 $03 - rest $05 - vol $6 - note g5 $05 - rest $09 - vol $3 - note g5 $03 - rest $08 - vol $2 - note g5 $03 - rest $08 - vol $1 - note g5 $03 - rest $05 - vol $7 - note b5 $0b - rest $05 - vol $3 - note b5 $06 - vol $6 - note d6 $0b - rest $05 - vol $3 - note d6 $06 - vol $6 - note e6 $0b - rest $05 - vol $3 - note e6 $06 - vol $6 - note cs6 $0b - rest $05 - vol $3 - note cs6 $06 - vol $6 - note e5 $07 - rest $07 - vol $3 - note e5 $01 - rest $0a - vol $2 - note e5 $05 - rest $0e - vol $6 - note cs5 $07 - rest $07 - vol $3 - note cs5 $01 - rest $1d - vol $6 - note a5 $0b - rest $05 - vol $3 - note a5 $06 - vol $6 - note b5 $0b - rest $05 - vol $3 - note b5 $06 - vol $6 - note d6 $0b - rest $05 - vol $3 - note d6 $06 - vol $6 - note cs6 $0b - rest $05 - vol $3 - note cs6 $06 - vol $6 - note b5 $0b - rest $03 - vol $2 - note b5 $05 - rest $06 - vol $1 - note b5 $05 - rest $3a - vol $6 - note g5 $0b - rest $05 - vol $3 - note g5 $06 - vol $6 - note a5 $0b - rest $05 - vol $3 - note a5 $06 - vol $6 - note b5 $0b - rest $05 - vol $3 - note b5 $06 - rest $05 - vol $2 - note b5 $06 - rest $0b - vol $6 - note a5 $0b - rest $05 - vol $3 - note a5 $06 - vol $6 - note e5 $0b - rest $05 - vol $3 - note e5 $06 - vol $6 - note d6 $0b - rest $05 - vol $3 - note d6 $06 - rest $0b - vol $6 - note cs6 $05 - note c6 $06 - vol $6 - note b5 $6e - rest $42 - goto musicfbb21 - cmdff - -musZoraVillageChannel0: - vibrato $00 - env $0 $00 - duty $02 -musicfbcac: - rest $0b - vol $6 - note d5 $0b - rest $05 - vol $3 - note d5 $06 - vol $6 - note d5 $0b - rest $0b - note d5 $0b - rest $05 - vol $3 - note d5 $06 - vol $6 - note d5 $0b - rest $0b - note d5 $0b - rest $05 - vol $4 - note d5 $06 - rest $03 - vol $3 - note d5 $05 - rest $06 - vol $2 - note d5 $05 - rest $2f - vol $6 - note c5 $0b - rest $07 - vol $3 - note c5 $06 - vol $6 - note c5 $0b - rest $05 - vol $3 - note c5 $04 - vol $6 - note d5 $0b - rest $05 - vol $3 - note d5 $06 - vol $6 - note d5 $0b - rest $05 - vol $3 - note d5 $06 - rest $05 - vol $3 - note d5 $06 - rest $05 - vol $2 - note d5 $06 - rest $42 - vol $6 - note c5 $0b - rest $07 - vol $3 - note c5 $06 - vol $6 - note c5 $0b - rest $03 - vol $3 - note c5 $06 - vol $6 - note c5 $0b - rest $05 - vol $3 - note c5 $06 - vol $6 - note c5 $0b - rest $05 - vol $4 - note c5 $06 - rest $05 - vol $3 - note c5 $06 - rest $05 - vol $2 - note c5 $06 - rest $0b - vol $6 - note d6 $0b - note e6 $0b - note f6 $0b - note g6 $0b - rest $03 - vol $4 - note g6 $05 - rest $06 - vol $2 - note g6 $05 - rest $19 - vol $6 - note g5 $0b - rest $03 - vol $4 - note g5 $05 - rest $19 - vol $6 - note c6 $05 - rest $06 - note c6 $05 - rest $06 - vol $4 - note c6 $05 - rest $06 - vol $2 - note c6 $05 - rest $06 - vol $6 - note b5 $05 - rest $06 - note b5 $05 - rest $06 - vol $4 - note b5 $05 - rest $06 - vol $2 - note b5 $05 - rest $11 - vol $6 - note b4 $0b - rest $03 - vol $3 - note b4 $05 - rest $03 - vol $6 - note d5 $0b - rest $03 - vol $3 - note d5 $05 - rest $03 - vol $6 - note e5 $0b - rest $03 - vol $3 - note e5 $05 - rest $03 - vol $6 - note cs5 $0b - rest $03 - vol $3 - note cs5 $05 - rest $03 - vol $6 - note b6 $03 - rest $03 - vol $2 - note b6 $05 - vol $6 - note g6 $07 - rest $04 - vol $3 - note g6 $05 - rest $11 - vol $6 - note b6 $03 - rest $03 - vol $3 - note b6 $05 - vol $6 - note g6 $07 - rest $04 - vol $3 - note g6 $05 - rest $11 - vol $6 - note fs5 $0b - rest $03 - vol $3 - note fs5 $05 - rest $03 - vol $6 - note e5 $0b - rest $05 - vol $3 - note e5 $06 - vol $6 - note g5 $0b - rest $05 - vol $3 - note g5 $06 - vol $6 - note a5 $0b - rest $03 - vol $3 - note a5 $05 - rest $03 - vol $6 - note fs5 $03 - rest $03 - vol $6 - note fs5 $05 - vol $6 - note d5 $03 - rest $03 - vol $6 - note d5 $05 - vol $5 - note fs5 $05 - rest $01 - vol $3 - note fs5 $05 - vol $6 - note cs5 $03 - rest $03 - vol $3 - note cs5 $05 - vol $7 - note fs5 $05 - rest $01 - vol $3 - note fs5 $05 - vol $6 - note b4 $03 - rest $03 - vol $3 - note b4 $05 - vol $6 - note fs5 $05 - rest $01 - vol $3 - note fs5 $05 - rest $0b - vol $6 - note e5 $0b - note fs5 $03 - rest $03 - vol $3 - note fs5 $05 - vol $6 - note e5 $03 - rest $03 - vol $3 - note e5 $05 - vol $4 - note e5 $0b - vol $6 - note fs5 $0b - note e5 $0b - note b4 $0b - rest $05 - vol $3 - note b4 $06 - vol $6 - note d5 $0b - rest $05 - vol $3 - note d5 $06 - vol $6 - note a4 $0b - rest $05 - vol $3 - note a4 $06 - vol $6 - note e5 $07 - vol $4 - note e5 $04 - vol $5 - note a4 $07 - note a4 $04 - rest $07 - vol $2 - note cs5 $03 - rest $01 - vol $7 - note gs4 $05 - rest $06 - vol $3 - note gs4 $05 - rest $06 - vol $6 - note cs5 $05 - rest $06 - vol $3 - note cs5 $05 - rest $06 - vol $7 - note gs5 $05 - rest $06 - vol $3 - note gs5 $05 - rest $06 - vol $7 - note cs5 $05 - rest $06 - vol $3 - note cs5 $05 - rest $06 - vol $7 - note gs5 $05 - rest $06 - vol $3 - note gs5 $05 - rest $06 - vol $6 - note cs6 $05 - rest $06 - vol $3 - note cs6 $05 - rest $06 - vol $6 - note gs6 $05 - rest $06 - vol $3 - note gs6 $05 - rest $06 - vol $7 - note cs6 $05 - rest $06 - vol $3 - note cs6 $05 - rest $06 - goto musicfbcac - cmdff - -.define musZoraVillageChannel4 MUSIC_CHANNEL_FALLBACK EXPORT -.define musZoraVillageChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/ages/sfx/ages.s b/audio/ages/sfx/ages.s deleted file mode 100644 index ffbc79abc..000000000 --- a/audio/ages/sfx/ages.s +++ /dev/null @@ -1,100 +0,0 @@ -sndAgesStart: - -sndAgesChannel2: - duty $02 - env $0 $02 - vol $9 - note c5 $03 - note e5 $04 - note g5 $03 - note c6 $07 - note b5 $07 - note a5 $07 - note b5 $07 - note g5 $07 - note d6 $07 - note c6 $07 - note b5 $07 - note a5 $07 - note b5 $07 - note c6 $07 - note d6 $07 - note g5 $07 - note a5 $07 - note g5 $07 - note e5 $07 - note f5 $07 - rest $07 - note a5 $07 - rest $07 - note c6 $07 - rest $07 - note d6 $07 - rest $07 - note e4 $04 - note g4 $03 - note b4 $04 - note c5 $03 - note e5 $04 - note g5 $03 - note b5 $04 - env $0 $06 - note e6 $2d - rest $0a - cmdff - -sndAgesChannel3: - duty $02 - env $0 $02 - vol $0 - note gs3 $0a - vol $5 - note c5 $04 - note e5 $03 - note g5 $04 - note c6 $07 - note b5 $07 - note a5 $07 - note b5 $07 - note g5 $07 - note d6 $07 - note c6 $07 - note b5 $07 - note a5 $07 - note b5 $07 - note c6 $07 - note d6 $07 - note g5 $07 - note a5 $07 - note g5 $07 - note e5 $07 - note f5 $07 - rest $07 - note a5 $07 - rest $07 - note c6 $07 - rest $07 - note d6 $07 - rest $07 - note e4 $03 - note g4 $04 - note b4 $03 - note c5 $04 - note e5 $03 - note g5 $04 - note b5 $03 - env $0 $06 - note e6 $2d - cmdff - -sndAgesChannel5: - duty $0e - rest $c8 - rest $3a - cmdff - -sndAgesChannel7: - cmdf0 $00 - note $00 $c8 - note $00 $3a - cmdff diff --git a/audio/ages/sfx/currents.s b/audio/ages/sfx/currents.s deleted file mode 100644 index dd7747c43..000000000 --- a/audio/ages/sfx/currents.s +++ /dev/null @@ -1,103 +0,0 @@ -sndCurrentsStart: - -sndCurrentsChannel2: - duty $02 - env $0 $02 - vol $9 - note ds4 $06 - note as4 $06 - note d5 $06 - note as5 $06 - note ds6 $06 - note as5 $06 - note ds5 $06 - note as4 $06 - note ds4 $06 - note f4 $06 - note as4 $06 - note d5 $06 - note gs5 $06 - note f6 $06 - note gs5 $06 - note d5 $06 - note as4 $06 - note f4 $06 - note as5 $06 - note ds6 $06 - note as4 $06 - note g5 $06 - note g6 $06 - note ds6 $06 - note as5 $06 - note g5 $06 - note d6 $06 - note as5 $06 - note g5 $06 - note ds5 $06 - note ds4 $06 - note as4 $06 - note d5 $06 - note as5 $06 - note ds6 $06 - note g6 $06 - env $0 $05 - note as6 $2a - cmdff - -sndCurrentsChannel3: - duty $02 - env $0 $02 - vol $0 - note gs3 $0a - vol $5 - note ds4 $06 - note as4 $06 - note d5 $06 - note as5 $06 - note ds6 $06 - note as5 $06 - note ds5 $06 - note as4 $06 - note ds4 $06 - note f4 $06 - note as4 $06 - note d5 $06 - note gs5 $06 - note f6 $06 - note gs5 $06 - note d5 $06 - note as4 $06 - note f4 $06 - note as5 $06 - note ds6 $06 - note as4 $06 - note g5 $06 - note g6 $06 - note ds6 $06 - note as5 $06 - note g5 $06 - note d6 $06 - note as5 $06 - note g5 $06 - note ds5 $06 - note ds4 $06 - note as4 $06 - note d5 $06 - note as5 $06 - note ds6 $06 - note g6 $06 - env $0 $05 - note as6 $20 - cmdff - -sndCurrentsChannel5: - duty $0e - rest $c8 - rest $3a - cmdff - -sndCurrentsChannel7: - cmdf0 $00 - note $00 $c8 - note $00 $3a - cmdff diff --git a/audio/ages/sfx/echoes.s b/audio/ages/sfx/echoes.s deleted file mode 100644 index 0e6fcbb95..000000000 --- a/audio/ages/sfx/echoes.s +++ /dev/null @@ -1,66 +0,0 @@ -sndEchoesStart: - -sndEchoesChannel2: - duty $02 - env $0 $03 - vol $9 - note c5 $0c - note e5 $0c - note g5 $0c - note d5 $0c - note f5 $0c - note a5 $0c - note e5 $0c - note g5 $0c - note b5 $0c - note f5 $0c - note a5 $0c - note c6 $0c - note g5 $0c - rest $0c - note g5 $03 - note b5 $03 - note d6 $03 - env $0 $07 - note g6 $3f - rest $14 - cmdff - -sndEchoesChannel3: - duty $02 - env $0 $03 - vol $0 - note gs3 $12 - vol $5 - note c5 $0c - note e5 $0c - note g5 $0c - note d5 $0c - note f5 $0c - note a5 $0c - note e5 $0c - note g5 $0c - note b5 $0c - note f5 $0c - note a5 $0c - note c6 $0c - note g5 $0c - rest $0c - note g5 $03 - note b5 $03 - note d6 $03 - env $0 $07 - note g6 $3f - cmdff - -sndEchoesChannel5: - duty $0e - rest $fa - rest $08 - cmdff - -sndEchoesChannel7: - cmdf0 $00 - note $00 $fa - note $00 $08 - cmdff diff --git a/audio/ages/sfx/monkey.s b/audio/ages/sfx/monkey.s deleted file mode 100644 index 96def5f02..000000000 --- a/audio/ages/sfx/monkey.s +++ /dev/null @@ -1,11 +0,0 @@ -sndMonkeyStart: - -sndMonkeyChannel2: - duty $00 - vol $a - cmdf8 $0a - note c6 $05 - cmdf8 $00 - cmdff - -.define sndMonkeyChannel7 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/ages/sfx/moveBlock2.s b/audio/ages/sfx/moveBlock2.s deleted file mode 100644 index 3a713c5d8..000000000 --- a/audio/ages/sfx/moveBlock2.s +++ /dev/null @@ -1,19 +0,0 @@ -sndMoveBlock2Start: - -sndMoveBlock2Channel2: - duty $02 - vol $b - note d6 $01 - vol $0 - rest $02 - vol $d - note fs5 $01 - vol $0 - rest $02 - vol $8 - note c6 $01 - vol $0 - rest $02 - vol $9 - note f5 $01 - cmdff diff --git a/audio/ages/sfx/openGate.s b/audio/ages/sfx/openGate.s deleted file mode 100644 index a58347ff3..000000000 --- a/audio/ages/sfx/openGate.s +++ /dev/null @@ -1,29 +0,0 @@ -sndOpenGateStart: - -sndOpenGateChannel2: - duty $01 - vol $a - cmdf8 $ce - note cs3 $05 - cmdff - -sndOpenGateChannel7: - cmdf0 $f0 - note $37 $02 - cmdf0 $f0 - note $44 $01 - cmdf0 $e0 - note $45 $02 - cmdf0 $30 - note $56 $02 - cmdf0 $20 - note $56 $02 - cmdf0 $00 - note $56 $05 - cmdf0 $b1 - note $36 $04 - cmdf0 $90 - note $46 $01 - cmdf0 $80 - note $47 $02 - cmdff diff --git a/audio/ages/sfx/switch2.s b/audio/ages/sfx/switch2.s deleted file mode 100644 index d4359d87f..000000000 --- a/audio/ages/sfx/switch2.s +++ /dev/null @@ -1,17 +0,0 @@ -sndSwitch2Start: - -sndSwitch2Channel2: - duty $02 - vol $d - env $1 $00 - cmdf8 $00 - note c5 $04 - vol $c - note e5 $04 - vol $d - note gs5 $04 - vibrato $51 - env $1 $01 - vol $b - note c6 $14 - cmdff diff --git a/audio/ages/sfx/timewarpCompleted.s b/audio/ages/sfx/timewarpCompleted.s deleted file mode 100644 index abb86d98f..000000000 --- a/audio/ages/sfx/timewarpCompleted.s +++ /dev/null @@ -1,60 +0,0 @@ -sndTimewarpCompletedStart: -sndTimewarpCompletedChannel2: - duty $02 - vol $4 - note ds6 $02 - vol $2 - note as5 $01 - vol $5 - note f5 $02 - vol $5 - note ds6 $02 - vol $3 - note as5 $01 - vol $6 - note f5 $02 - vol $6 - note ds6 $02 - vol $4 - note as5 $01 - vol $7 - note f5 $02 - vol $7 - note ds6 $02 - vol $5 - note as5 $01 - vol $8 - note f5 $02 - vol $8 - note ds6 $02 - vol $6 - note as5 $01 - vol $9 - note f5 $02 - vol $9 - note ds6 $02 - vol $7 - note as5 $01 - vol $a - note f5 $02 - vol $7 - note ds6 $02 - vol $5 - note as5 $01 - vol $8 - note f5 $02 - vol $5 - note ds6 $02 - vol $3 - note as5 $01 - vol $6 - note f5 $02 - vol $3 - note ds6 $02 - vol $1 - note as5 $01 - vol $2 - note f5 $02 - vol $1 - note ds6 $02 - cmdff diff --git a/audio/ages/sfx/timewarpInitiated.s b/audio/ages/sfx/timewarpInitiated.s deleted file mode 100644 index f832cf2a8..000000000 --- a/audio/ages/sfx/timewarpInitiated.s +++ /dev/null @@ -1,422 +0,0 @@ -sndTimewarpInitiatedStart: - -sndTimewarpInitiatedChannel2: - duty $01 - vol $2 - note cs5 $02 - note ds5 $02 - vol $4 - note cs5 $02 - note ds5 $02 - vol $6 - note cs5 $02 - note ds5 $02 - vol $8 - note cs5 $02 - note ds5 $02 - vol $a - note cs5 $02 - note ds5 $02 - vol $8 - note cs5 $02 - note ds5 $02 - vol $6 - note cs5 $02 - note ds5 $02 - vol $4 - note cs5 $02 - note ds5 $02 - vol $2 - note cs5 $02 - note ds5 $02 - vol $1 - note cs5 $02 - note ds5 $02 - rest $0a - duty $02 - vol $1 - note as3 $01 - vol $1 - note a2 $01 - vol $1 - note gs3 $01 - vol $1 - note b3 $01 - vol $1 - note as2 $01 - vol $1 - note a3 $01 - vol $2 - note c4 $01 - vol $1 - note b2 $01 - vol $1 - note as3 $01 - vol $3 - note cs4 $01 - vol $1 - note c3 $01 - vol $1 - note b3 $01 - vol $4 - note d4 $01 - vol $2 - note cs3 $01 - vol $2 - note c4 $01 - vol $5 - note ds4 $01 - vol $3 - note d3 $01 - vol $3 - note cs4 $01 - vol $6 - note e4 $01 - vol $4 - note ds3 $01 - vol $4 - note d4 $01 - vol $7 - note f4 $01 - vol $5 - note e3 $01 - vol $5 - note ds4 $01 - vol $8 - note fs4 $01 - vol $6 - note f3 $01 - vol $6 - note e4 $01 - vol $9 - note g4 $01 - vol $7 - note fs3 $01 - vol $7 - note f4 $01 - vol $a - note gs4 $01 - vol $8 - note g3 $01 - vol $8 - note fs4 $01 - vol $7 - note ds4 $01 - vol $5 - note d3 $01 - vol $5 - note cs4 $01 - vol $8 - note e4 $01 - vol $6 - note ds3 $01 - vol $6 - note d4 $01 - vol $9 - note f4 $01 - vol $7 - note e3 $01 - vol $7 - note ds4 $01 - vol $a - note fs4 $01 - vol $8 - note f3 $01 - vol $8 - note e4 $01 - vol $a - note g4 $01 - vol $8 - note fs3 $01 - vol $8 - note f4 $01 - vol $a - note gs4 $01 - vol $8 - note g3 $01 - vol $8 - note fs4 $01 - vol $b - note a4 $01 - vol $9 - note gs3 $01 - vol $9 - note g4 $01 - vol $c - note as4 $01 - vol $a - note a3 $01 - vol $a - note gs4 $01 - vol $d - note b4 $01 - vol $b - note as3 $01 - vol $a - note gs4 $01 - vol $e - note c5 $01 - vol $c - note b3 $01 - vol $9 - note a4 $01 - vol $d - note cs5 $01 - vol $b - note c4 $01 - vol $8 - note as4 $01 - vol $a - note as3 $01 - vol $8 - note a2 $01 - vol $8 - note gs3 $01 - vol $a - note b3 $01 - vol $8 - note as2 $01 - vol $8 - note a3 $01 - vol $a - note c4 $01 - vol $8 - note b2 $01 - vol $8 - note as3 $01 - vol $a - note cs4 $01 - vol $8 - note c3 $01 - vol $8 - note b3 $01 - vol $a - note d4 $01 - vol $8 - note cs3 $01 - vol $8 - note c4 $01 - vol $a - note ds4 $01 - vol $8 - note d3 $01 - vol $8 - note cs4 $01 - vol $a - note e4 $01 - vol $8 - note ds3 $01 - vol $8 - note d4 $01 - vol $a - note f4 $01 - vol $8 - note e3 $01 - vol $8 - note ds4 $01 - vol $a - note fs4 $01 - vol $8 - note f3 $01 - vol $8 - note e4 $01 - vol $a - note g4 $01 - vol $8 - note fs3 $01 - vol $8 - note f4 $01 - vol $a - note gs4 $01 - vol $8 - note g3 $01 - vol $8 - note fs4 $01 - vol $b - note a4 $01 - vol $9 - note gs3 $01 - vol $9 - note g4 $01 - vol $c - note as4 $01 - vol $a - note a3 $01 - vol $a - note gs4 $01 - vol $d - note b4 $01 - vol $b - note as3 $01 - vol $a - note gs4 $01 - vol $e - note c5 $01 - vol $c - note b3 $01 - vol $9 - note a4 $01 - vol $e - note cs5 $01 - vol $c - note c4 $01 - vol $9 - note as4 $01 - vol $d - note d5 $01 - vol $b - note cs4 $01 - vol $8 - note b4 $01 - vol $d - note ds5 $01 - vol $b - note d4 $01 - vol $8 - note c5 $01 - vol $c - note e5 $01 - vol $a - note ds4 $01 - vol $7 - note cs5 $01 - vol $b - note f5 $01 - vol $9 - note e4 $01 - vol $6 - note d5 $01 - vol $a - note fs5 $01 - vol $8 - note f4 $01 - vol $5 - note ds5 $01 - vol $9 - note g5 $01 - vol $7 - note fs4 $01 - vol $4 - note e5 $01 - vol $8 - note gs5 $01 - vol $6 - note g4 $01 - vol $3 - note f5 $01 - vol $7 - note a5 $01 - vol $5 - note gs4 $01 - vol $2 - note fs5 $01 - vol $6 - note as5 $01 - vol $4 - note a4 $01 - vol $1 - note g5 $01 - vol $5 - note b5 $01 - vol $3 - note as4 $01 - vol $1 - note gs5 $01 - vol $4 - note c6 $01 - vol $2 - note b4 $01 - vol $1 - note a5 $01 - vol $3 - note cs6 $01 - vol $1 - note c5 $01 - vol $2 - note d6 $01 - vol $1 - note cs5 $01 - vol $1 - note ds6 $01 - vol $1 - note d5 $01 - vol $1 - note e6 $01 - cmdff - -sndTimewarpInitiatedChannel3: - duty $01 - cmdfd $ff - vol $0 - note gs3 $0d - vol $1 - note cs5 $02 - note ds5 $02 - vol $2 - note cs5 $02 - note ds5 $02 - vol $3 - note cs5 $02 - note ds5 $02 - vol $5 - note cs5 $02 - note ds5 $02 - vol $7 - note cs5 $02 - note ds5 $02 - vol $5 - note cs5 $02 - note ds5 $02 - vol $3 - note cs5 $02 - note ds5 $02 - vol $2 - note cs5 $02 - note ds5 $02 - vol $1 - note cs5 $02 - note ds5 $02 - rest $0a - duty $00 - env $2 $00 - cmdfd $00 - vol $5 - note c7 $0d - vol $2 - note c7 $17 - vol $3 - note c7 $08 - vol $6 - note c7 $0c - vol $2 - note c7 $11 - vol $4 - note c7 $16 - vol $2 - note c7 $0a - vol $1 - note c7 $10 - rest $18 - cmdff - -sndTimewarpInitiatedChannel5: - rest $cc - cmdff - -sndTimewarpInitiatedChannel7: - cmdf0 $00 - note $15 $30 - cmdf0 $10 - note $36 $03 - cmdf0 $10 - note $35 $03 - cmdf0 $20 - note $34 $03 - cmdf0 $30 - note $27 $03 - note $26 $03 - note $25 $03 - note $24 $6e - cmdf0 $37 - note $24 $1c - cmdff diff --git a/audio/ages/sfx/tingle.s b/audio/ages/sfx/tingle.s deleted file mode 100644 index c4f510c0a..000000000 --- a/audio/ages/sfx/tingle.s +++ /dev/null @@ -1,26 +0,0 @@ -sndTingleStart: - -sndTingleChannel2: - duty $01 - cmdf8 $fc - vol $b - note ds4 $05 - rest $01 - vol $0 - note ds4 $01 - cmdf8 $02 - env $0 $07 - vol $a - note ds4 $46 - env $0 $00 - vol $9 - note e5 $01 - vol $a - note f5 $01 - vol $b - note fs5 $05 - cmdf8 $fc - env $0 $02 - vol $b - note fs5 $17 - cmdff diff --git a/audio/ages/sfx/tokay.s b/audio/ages/sfx/tokay.s deleted file mode 100644 index 484c20d00..000000000 --- a/audio/ages/sfx/tokay.s +++ /dev/null @@ -1,43 +0,0 @@ -sndTokayStart: - -sndTokayChannel2: - duty $00 - cmdf8 $ba - vol $7 - note as3 $02 - vol $8 - note b3 $02 - vol $a - note c4 $02 - vol $c - note cs4 $02 - vol $e - note d4 $02 - note d4 $02 - note d4 $02 - note d4 $02 - note d4 $02 - note d4 $02 - note d4 $02 - note d4 $02 - vol $c - note cs4 $02 - vol $a - note c4 $02 - vol $8 - note b3 $02 - vol $7 - note as3 $02 - vol $6 - note a3 $02 - vol $5 - note gs3 $02 - vol $4 - note g3 $02 - vol $3 - note fs3 $02 - vol $2 - note f3 $02 - vol $1 - note e3 $02 - cmdff diff --git a/audio/ages/sfx/wind.s b/audio/ages/sfx/wind.s deleted file mode 100644 index 3becbeef0..000000000 --- a/audio/ages/sfx/wind.s +++ /dev/null @@ -1,100 +0,0 @@ -sndWindStart: - -sndWindChannel7: - cmdf0 $40 - note $37 $01 - note $36 $01 - note $35 $01 - note $34 $01 - note $27 $01 - note $34 $01 - note $35 $01 - note $36 $01 - note $37 $01 - cmdf0 $60 - note $37 $01 - note $36 $01 - note $35 $01 - note $34 $01 - note $27 $01 - note $34 $01 - note $35 $01 - note $36 $01 - note $37 $01 - cmdf0 $80 - note $37 $01 - note $36 $01 - note $35 $01 - note $34 $01 - note $27 $01 - note $34 $01 - note $35 $01 - note $36 $01 - note $37 $01 - cmdf0 $90 - note $37 $01 - note $36 $01 - note $35 $01 - note $34 $01 - note $27 $01 - note $34 $01 - note $35 $01 - note $36 $01 - note $37 $01 - cmdf0 $b0 - note $37 $01 - note $36 $01 - note $35 $01 - note $34 $01 - note $27 $01 - note $34 $01 - note $35 $01 - note $36 $01 - note $37 $01 - cmdf0 $90 - note $37 $01 - note $36 $01 - note $35 $01 - note $34 $01 - note $27 $01 - note $34 $01 - note $35 $01 - note $36 $01 - note $37 $01 - cmdf0 $70 - note $37 $01 - note $36 $01 - note $35 $01 - note $34 $01 - note $27 $01 - note $34 $01 - note $35 $01 - note $36 $01 - note $37 $01 - cmdf0 $56 - note $36 $03 - note $35 $03 - note $34 $03 - note $27 $19 - cmdff - duty $00 - vol $9 - cmdf8 $7f - note d3 $03 - cmdf8 $00 - cmdf8 $81 - note a3 $03 - cmdf8 $00 - vol $f - cmdf8 $ef - note a2 $32 - cmdff - cmdf0 $40 - .db $44 $02 $45 - .db $02 $46 $02 - cmdf0 $40 - .db $46 $28 $47 - .db $02 $54 $02 - .db $55 $02 $56 - .db $02 $57 $02 - cmdff diff --git a/audio/ages/soundChannelData.s b/audio/ages/soundChannelData.s index ff8664ad5..13c2ed90b 100644 --- a/audio/ages/soundChannelData.s +++ b/audio/ages/soundChannelData.s @@ -16,34 +16,34 @@ bank39ChannelFallback: .redefine MUSIC_CHANNEL_FALLBACK bank39ChannelFallback -.include "audio/common/sfx/baseball.s" +.include "audio/common/sfx/bin/baseball.s" .ifdef BUILD_VANILLA .dsb 11 $ff .endif -.include "audio/ages/sfx/monkey.s" -.include "audio/common/sfx/beam.s" -.include "audio/common/sfx/wave.s" -.include "audio/common/sfx/swordObtained.s" -.include "audio/common/sfx/pieceOfPower.s" -.include "audio/common/sfx/linkSwim.s" +.include "audio/ages/sfx/bin/monkey.s" +.include "audio/common/sfx/bin/beam.s" +.include "audio/common/sfx/bin/wave.s" +.include "audio/common/sfx/bin/swordObtained.s" +.include "audio/common/sfx/bin/pieceOfPower.s" +.include "audio/common/sfx/bin/linkSwim.s" snd97Start: snd97Channel2: cmdff -.include "audio/common/sfx/poof.s" -.include "audio/common/sfx/bigSword.s" -.include "audio/common/sfx/rumble.s" -.include "audio/common/sfx/veranProjectile.s" -.include "audio/common/sfx/shock.s" -.include "audio/common/sfx/beam1.s" -.include "audio/common/sfx/fadeout.s" -.include "audio/common/sfx/pickUp.s" -.include "audio/common/sfx/chicken.s" -.include "audio/common/sfx/makuDisappear.s" -.include "audio/common/sfx/beam2.s" +.include "audio/common/sfx/bin/poof.s" +.include "audio/common/sfx/bin/bigSword.s" +.include "audio/common/sfx/bin/rumble.s" +.include "audio/common/sfx/bin/veranProjectile.s" +.include "audio/common/sfx/bin/shock.s" +.include "audio/common/sfx/bin/beam1.s" +.include "audio/common/sfx/bin/fadeout.s" +.include "audio/common/sfx/bin/pickUp.s" +.include "audio/common/sfx/bin/chicken.s" +.include "audio/common/sfx/bin/makuDisappear.s" +.include "audio/common/sfx/bin/beam2.s" sndb7Start: sndb7Channel2: @@ -51,22 +51,22 @@ sndb7Channel2: sndb7Channel7: cmdff -.include "audio/common/sfx/veranFairyAttack.s" -.include "audio/common/sfx/rumble2.s" -.include "audio/common/sfx/warpStart.s" -.include "audio/common/sfx/endless.s" -.include "audio/common/sfx/bigExplosion2.s" +.include "audio/common/sfx/bin/veranFairyAttack.s" +.include "audio/common/sfx/bin/rumble2.s" +.include "audio/common/sfx/bin/warpStart.s" +.include "audio/common/sfx/bin/endless.s" +.include "audio/common/sfx/bin/bigExplosion2.s" sndbdStart: sndbdChannel2: cmdff -.include "audio/common/mus/mapleGame.s" -.include "audio/common/mus/finalBoss.s" -.include "audio/common/mus/essence.s" -.include "audio/ages/sfx/echoes.s" -.include "audio/ages/mus/underwater.s" -.include "audio/ages/mus/makuTree.s" +.include "audio/common/mus/bin/mapleGame.s" +.include "audio/common/mus/bin/finalBoss.s" +.include "audio/common/mus/bin/essence.s" +.include "audio/ages/sfx/bin/echoes.s" +.include "audio/ages/mus/bin/underwater.s" +.include "audio/ages/mus/bin/makuTree.s" .ifdef BUILD_VANILLA .dsb 162 $ff @@ -86,103 +86,112 @@ bank3aChannelFallback: .redefine MUSIC_CHANNEL_FALLBACK bank3aChannelFallback -.include "audio/common/mus/indoors.s" -.include "audio/common/mus/titlescreen.s" -.include "audio/common/mus/miniboss.s" -.include "audio/common/mus/gameover.s" -.include "audio/common/mus/cave.s" -.include "audio/common/mus/getEssence.s" -.include "audio/common/sfx/swordSlash.s" -.include "audio/common/sfx/killEnemy.s" -.include "audio/common/sfx/openMenu.s" -.include "audio/common/sfx/closeMenu.s" -.include "audio/common/sfx/energyThing.s" -.include "audio/common/sfx/swordBeam.s" -.include "audio/common/sfx/linkDead.s" -.include "audio/common/sfx/linkFall.s" -.include "audio/common/sfx/bossDamage.s" -.include "audio/common/sfx/explosion.s" -.include "audio/common/sfx/doorClose.s" -.include "audio/common/sfx/moveBlock.s" -.include "audio/common/sfx/lightTorch.s" -.include "audio/common/sfx/unknown3.s" -.include "audio/common/sfx/minecart.s" -.include "audio/common/sfx/strongPound.s" -.include "audio/common/sfx/roller.s" -.include "audio/common/sfx/mysterySeed.s" -.include "audio/common/sfx/switch.s" -.include "audio/common/sfx/aquamentusHover.s" -.include "audio/common/sfx/unknown4.s" -.include "audio/common/sfx/bossDead.s" -.include "audio/common/sfx/lightning.s" -.include "audio/ages/sfx/wind.s" -.include "audio/common/sfx/pirateBell.s" -.include "audio/common/sfx/magicPowder.s" -.include "audio/common/sfx/menuMove.s" -.include "audio/common/sfx/scentSeed.s" +.include "audio/common/mus/bin/indoors.s" +.include "audio/common/mus/bin/titlescreen.s" +; Sound index 0 (dumpMusic.py's original, unhelpfully-named "musNone") and index 1 +; ("musTitlescreen") share identical channel data in the original ROM -- both really are +; the title screen theme. A single mml2wla run only emits one label set (this one, the +; correctly-named "Titlescreen"), so the other index's labels are aliased onto it here. +.define musNoneStart musTitlescreenStart EXPORT +.define musNoneChannel0 musTitlescreenChannel0 EXPORT +.define musNoneChannel1 musTitlescreenChannel1 EXPORT +.define musNoneChannel4 musTitlescreenChannel4 EXPORT +.define musNoneChannel6 MUSIC_CHANNEL_FALLBACK EXPORT +.include "audio/common/mus/bin/miniboss.s" +.include "audio/common/mus/bin/gameover.s" +.include "audio/common/mus/bin/cave.s" +.include "audio/common/mus/bin/getEssence.s" +.include "audio/common/sfx/bin/swordSlash.s" +.include "audio/common/sfx/bin/killEnemy.s" +.include "audio/common/sfx/bin/openMenu.s" +.include "audio/common/sfx/bin/closeMenu.s" +.include "audio/common/sfx/bin/energyThing.s" +.include "audio/common/sfx/bin/swordBeam.s" +.include "audio/common/sfx/bin/linkDead.s" +.include "audio/common/sfx/bin/linkFall.s" +.include "audio/common/sfx/bin/bossDamage.s" +.include "audio/common/sfx/bin/explosion.s" +.include "audio/common/sfx/bin/doorClose.s" +.include "audio/common/sfx/bin/moveBlock.s" +.include "audio/common/sfx/bin/lightTorch.s" +.include "audio/common/sfx/bin/unknown3.s" +.include "audio/common/sfx/bin/minecart.s" +.include "audio/common/sfx/bin/strongPound.s" +.include "audio/common/sfx/bin/roller.s" +.include "audio/common/sfx/bin/mysterySeed.s" +.include "audio/common/sfx/bin/switch.s" +.include "audio/common/sfx/bin/aquamentusHover.s" +.include "audio/common/sfx/bin/unknown4.s" +.include "audio/common/sfx/bin/bossDead.s" +.include "audio/common/sfx/bin/lightning.s" +.include "audio/common/sfx/bin/wind.s" +.include "audio/common/sfx/bin/pirateBell.s" +.include "audio/common/sfx/bin/magicPowder.s" +.include "audio/common/sfx/bin/menuMove.s" +.include "audio/common/sfx/bin/scentSeed.s" snd86Start: snd86Channel2: cmdff -.include "audio/common/sfx/teleport.s" +.include "audio/common/sfx/bin/teleport.s" sndd5Start: sndd5Channel2: cmdff cmdff -.include "audio/common/sfx/transform.s" -.include "audio/common/sfx/blueStalfosCharge.s" +.include "audio/common/sfx/bin/transform.s" +.include "audio/common/sfx/bin/blueStalfosCharge.s" snd92Start: snd92Channel2: cmdff -.include "audio/common/sfx/fluteRicky.s" -.include "audio/common/sfx/fluteDimitri.s" -.include "audio/common/sfx/fluteMoosh.s" -.include "audio/common/mus/preCredits.s" -.include "audio/common/mus/twinrova.s" -.include "audio/common/sfx/makuTreePast.s" -.include "audio/common/sfx/restore.s" +.include "audio/common/sfx/bin/fluteRicky.s" +.include "audio/common/sfx/bin/fluteDimitri.s" +.include "audio/common/sfx/bin/fluteMoosh.s" +.include "audio/common/mus/bin/preCredits.s" +.include "audio/common/mus/bin/twinrova.s" +.include "audio/common/sfx/bin/makuTreePast.s" +.include "audio/common/sfx/bin/restore.s" sndcfStart: sndcfChannel2: cmdff -.include "audio/common/sfx/moosh.s" -.include "audio/common/sfx/ding.s" -.include "audio/common/sfx/dekuScrub.s" -.include "audio/common/sfx/floodgates.s" -.include "audio/common/sfx/ricky.s" -.include "audio/common/sfx/circling.s" -.include "audio/common/sfx/dig.s" +.include "audio/common/sfx/bin/moosh.s" +.include "audio/common/sfx/bin/ding.s" +.include "audio/common/sfx/bin/dekuScrub.s" +.include "audio/common/sfx/bin/floodgates.s" +.include "audio/common/sfx/bin/ricky.s" +.include "audio/common/sfx/bin/circling.s" +.include "audio/common/sfx/bin/dig.s" snd7aStart: snd7aChannel2: cmdff cmdff -.include "audio/ages/sfx/switch2.s" -.include "audio/ages/sfx/openGate.s" -.include "audio/ages/sfx/moveBlock2.s" -.include "audio/ages/sfx/tokay.s" -.include "audio/ages/sfx/tingle.s" -.include "audio/common/sfx/dimitri.s" -.include "audio/common/sfx/whistle.s" -.include "audio/common/sfx/goronDanceB.s" -.include "audio/common/sfx/getSeed.s" -.include "audio/common/sfx/slash.s" -.include "audio/common/sfx/shield.s" -.include "audio/common/sfx/unknown5.s" -.include "audio/ages/sfx/timewarpInitiated.s" -.include "audio/ages/sfx/timewarpCompleted.s" -.include "audio/common/sfx/goron.s" -.include "audio/common/sfx/ghost.s" -.include "audio/common/sfx/becomeBaby.s" -.include "audio/common/sfx/jingle.s" -.include "audio/common/sfx/strike.s" +.include "audio/ages/sfx/bin/switch2.s" +.include "audio/ages/sfx/bin/openGate.s" +.include "audio/ages/sfx/bin/moveBlock2.s" +.include "audio/ages/sfx/bin/tokay.s" +.include "audio/ages/sfx/bin/tingle.s" +.include "audio/common/sfx/bin/dimitri.s" +.include "audio/common/sfx/bin/whistle.s" +.include "audio/common/sfx/bin/goronDanceB.s" +.include "audio/common/sfx/bin/getSeed.s" +.include "audio/common/sfx/bin/slash.s" +.include "audio/common/sfx/bin/shield.s" +.include "audio/common/sfx/bin/unknown5.s" +.include "audio/ages/sfx/bin/timewarpInitiated.s" +.include "audio/ages/sfx/bin/timewarpCompleted.s" +.include "audio/common/sfx/bin/goron.s" +.include "audio/common/sfx/bin/ghost.s" +.include "audio/common/sfx/bin/becomeBaby.s" +.include "audio/common/sfx/bin/jingle.s" +.include "audio/common/sfx/bin/strike.s" .ifdef BUILD_VANILLA .db $ff $ff @@ -202,26 +211,26 @@ bank3bChannelFallback: .redefine MUSIC_CHANNEL_FALLBACK bank3bChannelFallback -.include "audio/common/mus/minigame.s" -.include "audio/common/mus/fileSelect.s" -.include "audio/common/mus/fairyFountain.s" -.include "audio/common/mus/overworld.s" -.include "audio/common/mus/essenceRoom.s" -.include "audio/common/mus/ganon.s" -.include "audio/ages/mus/overworldPast.s" -.include "audio/ages/mus/nayru.s" -.include "audio/ages/mus/crescent.s" -.include "audio/ages/mus/lynnaCity.s" -.include "audio/ages/mus/lynnaVillage.s" -.include "audio/ages/mus/makuPath.s" -.include "audio/ages/mus/symmetryPresent.s" -.include "audio/common/sfx/splash.s" -.include "audio/common/sfx/text2.s" -.include "audio/common/sfx/filledHeartContainer.s" -.include "audio/common/sfx/seedShooter.s" -.include "audio/common/sfx/unknown7.s" -.include "audio/common/sfx/enemyJump.s" -.include "audio/common/sfx/galeSeed.s" +.include "audio/common/mus/bin/minigame.s" +.include "audio/common/mus/bin/fileSelect.s" +.include "audio/common/mus/bin/fairyFountain.s" +.include "audio/common/mus/bin/overworld.s" +.include "audio/common/mus/bin/essenceRoom.s" +.include "audio/common/mus/bin/ganon.s" +.include "audio/ages/mus/bin/overworldPast.s" +.include "audio/ages/mus/bin/nayru.s" +.include "audio/ages/mus/bin/crescent.s" +.include "audio/ages/mus/bin/lynnaCity.s" +.include "audio/ages/mus/bin/lynnaVillage.s" +.include "audio/ages/mus/bin/makuPath.s" +.include "audio/ages/mus/bin/symmetryPresent.s" +.include "audio/common/sfx/bin/splash.s" +.include "audio/common/sfx/bin/text2.s" +.include "audio/common/sfx/bin/filledHeartContainer.s" +.include "audio/common/sfx/bin/seedShooter.s" +.include "audio/common/sfx/bin/unknown7.s" +.include "audio/common/sfx/bin/enemyJump.s" +.include "audio/common/sfx/bin/galeSeed.s" sndcaStart: sndcaChannel2: @@ -229,9 +238,9 @@ sndcaChannel2: sndcaChannel7: cmdff -.include "audio/common/sfx/selectItem.s" -.include "audio/common/sfx/solvePuzzle.s" -.include "audio/common/sfx/getItem.s" +.include "audio/common/sfx/bin/selectItem.s" +.include "audio/common/sfx/bin/solvePuzzle.s" +.include "audio/common/sfx/bin/getItem.s" .ifdef BUILD_VANILLA .dsb 152 $ff @@ -251,32 +260,32 @@ bank3cChannelFallback: .redefine MUSIC_CHANNEL_FALLBACK bank3cChannelFallback -.include "audio/ages/mus/moonlitGrotto.s" -.include "audio/common/mus/onoxCastle.s" -.include "audio/common/mus/sadness.s" -.include "audio/common/mus/intro2.s" -.include "audio/ages/mus/ambiPalace.s" -.include "audio/ages/mus/tokayHouse.s" -.include "audio/ages/mus/mermaidsCave.s" -.include "audio/ages/mus/skullDungeon.s" -.include "audio/ages/mus/blackTower.s" -.include "audio/ages/mus/fairyForest.s" -.include "audio/ages/mus/ralph.s" -.include "audio/ages/mus/spiritsGrave.s" -.include "audio/ages/mus/wingDungeon.s" -.include "audio/ages/mus/crownDungeon.s" -.include "audio/ages/mus/jabuJabusBelly.s" -.include "audio/common/sfx/damageEnemy.s" -.include "audio/common/sfx/chargeSword.s" -.include "audio/common/sfx/clink.s" -.include "audio/common/sfx/throw.s" -.include "audio/common/sfx/bombLand.s" -.include "audio/common/sfx/jump.s" -.include "audio/common/sfx/gainHeart.s" -.include "audio/common/sfx/breakRock.s" -.include "audio/common/sfx/fairyCutscene.s" -.include "audio/ages/sfx/currents.s" -.include "audio/ages/sfx/ages.s" +.include "audio/ages/mus/bin/moonlitGrotto.s" +.include "audio/common/mus/bin/onoxCastle.s" +.include "audio/common/mus/bin/sadness.s" +.include "audio/common/mus/bin/intro2.s" +.include "audio/ages/mus/bin/ambiPalace.s" +.include "audio/ages/mus/bin/tokayHouse.s" +.include "audio/ages/mus/bin/mermaidsCave.s" +.include "audio/ages/mus/bin/skullDungeon.s" +.include "audio/ages/mus/bin/blackTower.s" +.include "audio/ages/mus/bin/fairyForest.s" +.include "audio/ages/mus/bin/ralph.s" +.include "audio/ages/mus/bin/spiritsGrave.s" +.include "audio/ages/mus/bin/wingDungeon.s" +.include "audio/ages/mus/bin/crownDungeon.s" +.include "audio/ages/mus/bin/jabuJabusBelly.s" +.include "audio/common/sfx/bin/damageEnemy.s" +.include "audio/common/sfx/bin/chargeSword.s" +.include "audio/common/sfx/bin/clink.s" +.include "audio/common/sfx/bin/throw.s" +.include "audio/common/sfx/bin/bombLand.s" +.include "audio/common/sfx/bin/jump.s" +.include "audio/common/sfx/bin/gainHeart.s" +.include "audio/common/sfx/bin/breakRock.s" +.include "audio/common/sfx/bin/fairyCutscene.s" +.include "audio/ages/sfx/bin/currents.s" +.include "audio/ages/sfx/bin/ages.s" .ifdef BUILD_VANILLA .dsb 678 $ff @@ -296,18 +305,18 @@ bank3dChannelFallback: .redefine MUSIC_CHANNEL_FALLBACK bank3dChannelFallback -.include "audio/common/mus/triumphant.s" -.include "audio/common/mus/disaster.s" -.include "audio/common/mus/pirates.s" -.include "audio/common/mus/finalDungeon.s" -.include "audio/common/mus/rosaDate.s" -.include "audio/common/mus/roomOfRites.s" -.include "audio/common/mus/blackTowerEntrance.s" -.include "audio/common/mus/zeldaSaved.s" -.include "audio/common/mus/mapleTheme.s" -.include "audio/common/mus/intro1.s" -.include "audio/common/mus/crazyDance.s" -.include "audio/ages/mus/ancientTomb.s" +.include "audio/common/mus/bin/triumphant.s" +.include "audio/common/mus/bin/disaster.s" +.include "audio/ages/mus/bin/pirates.s" +.include "audio/common/mus/bin/finalDungeon.s" +.include "audio/common/mus/bin/rosaDate.s" +.include "audio/common/mus/bin/roomOfRites.s" +.include "audio/common/mus/bin/blackTowerEntrance.s" +.include "audio/common/mus/bin/zeldaSaved.s" +.include "audio/common/mus/bin/mapleTheme.s" +.include "audio/common/mus/bin/intro1.s" +.include "audio/common/mus/bin/crazyDance.s" +.include "audio/ages/mus/bin/ancientTomb.s" snd93Start: snd93Channel2: @@ -317,16 +326,16 @@ snd94Start: snd94Channel2: cmdff -.include "audio/common/sfx/compass.s" -.include "audio/common/sfx/land.s" -.include "audio/common/sfx/switchHook.s" -.include "audio/common/sfx/opening.s" -.include "audio/common/sfx/clink2.s" -.include "audio/common/sfx/fallInHole.s" -.include "audio/common/sfx/error.s" -.include "audio/common/sfx/solvePuzzle2.s" -.include "audio/common/sfx/damageLink.s" -.include "audio/common/sfx/gohmaSpawnGel.s" +.include "audio/common/sfx/bin/compass.s" +.include "audio/common/sfx/bin/land.s" +.include "audio/common/sfx/bin/switchHook.s" +.include "audio/common/sfx/bin/opening.s" +.include "audio/common/sfx/bin/clink2.s" +.include "audio/common/sfx/bin/fallInHole.s" +.include "audio/common/sfx/bin/error.s" +.include "audio/common/sfx/bin/solvePuzzle2.s" +.include "audio/common/sfx/bin/damageLink.s" +.include "audio/common/sfx/bin/gohmaSpawnGel.s" .ifdef BUILD_VANILLA .dsb 93 $ff @@ -466,25 +475,25 @@ sndddChannel6: .endif -.include "audio/common/mus/greatMoblin.s" -.include "audio/common/mus/ladxSideview.s" -.include "audio/common/mus/syrup.s" -.include "audio/common/mus/goronCave.s" -.include "audio/common/mus/credits2.s" -.include "audio/common/mus/boss.s" -.include "audio/common/mus/credits1.s" -.include "audio/ages/mus/symmetryPast.s" -.include "audio/ages/mus/zoraVillage.s" -.include "audio/common/sfx/heartBeep.s" -.include "audio/common/sfx/rupee.s" -.include "audio/common/sfx/swordSpin.s" -.include "audio/common/sfx/openChest.s" -.include "audio/common/sfx/cutGrass.s" -.include "audio/common/sfx/enterCave.s" -.include "audio/common/sfx/bigExplosion.s" -.include "audio/common/sfx/boomerang.s" -.include "audio/common/sfx/dropEssence.s" -.include "audio/common/sfx/text.s" +.include "audio/common/mus/bin/greatMoblin.s" +.include "audio/common/mus/bin/ladxSideview.s" +.include "audio/common/mus/bin/syrup.s" +.include "audio/common/mus/bin/goronCave.s" +.include "audio/common/mus/bin/credits2.s" +.include "audio/common/mus/bin/boss.s" +.include "audio/common/mus/bin/credits1.s" +.include "audio/ages/mus/bin/symmetryPast.s" +.include "audio/ages/mus/bin/zoraVillage.s" +.include "audio/common/sfx/bin/heartBeep.s" +.include "audio/common/sfx/bin/rupee.s" +.include "audio/common/sfx/bin/swordSpin.s" +.include "audio/common/sfx/bin/openChest.s" +.include "audio/common/sfx/bin/cutGrass.s" +.include "audio/common/sfx/bin/enterCave.s" +.include "audio/common/sfx/bin/bigExplosion.s" +.include "audio/common/sfx/bin/boomerang.s" +.include "audio/common/sfx/bin/dropEssence.s" +.include "audio/common/sfx/bin/text.s" .ifdef BUILD_VANILLA .dsb 3 $ff diff --git a/audio/common/mus/blackTowerEntrance.s b/audio/common/mus/blackTowerEntrance.s deleted file mode 100644 index 43a93bb1e..000000000 --- a/audio/common/mus/blackTowerEntrance.s +++ /dev/null @@ -1,291 +0,0 @@ -musBlackTowerEntranceStart: - -musBlackTowerEntranceChannel1: - vibrato $00 - env $0 $00 - duty $01 -musicf6412: - vol $6 - note b3 $2c - note cs4 $42 - vol $3 - note cs4 $16 - vol $6 - note cs4 $2c - note ds4 $42 - vol $3 - note ds4 $16 - vol $6 - note ds4 $2c - note e4 $2c - note g4 $2c - note as4 $2c - note cs5 $2c - note e5 $2c - note g5 $2c - vol $6 - note as5 $03 - rest $03 - note d6 $05 - vol $4 - note as5 $03 - vol $6 - note as5 $03 - vol $4 - note d6 $05 - rest $03 - note as5 $03 - vol $6 - note as5 $05 - rest $07 - vol $4 - note as5 $04 - vol $6 - note as5 $03 - rest $03 - note d6 $05 - vol $4 - note as5 $03 - vol $6 - note as5 $03 - vol $4 - note d6 $05 - rest $03 - note as5 $03 - vol $6 - note as5 $05 - rest $07 - vol $4 - note as5 $04 - vol $6 - note as5 $03 - rest $03 - note d6 $05 - vol $4 - note as5 $03 - vol $6 - note as5 $03 - vol $4 - note d6 $05 - rest $03 - note as5 $03 - vol $6 - note as5 $05 - rest $07 - vol $4 - note as5 $04 - vol $6 - note as5 $03 - rest $03 - note d6 $05 - vol $4 - note as5 $03 - vol $6 - note as5 $03 - vol $4 - note d6 $05 - rest $03 - note as5 $03 - vol $6 - note as5 $05 - rest $07 - vol $4 - note as5 $04 - vol $6 - note d6 $0b - note f6 $0b - note gs6 $0b - note c7 $0b - rest $58 - vol $6 - note cs4 $2c - note ds4 $42 - vol $3 - note ds4 $16 - vol $6 - note ds4 $2c - note f4 $42 - vol $3 - note f4 $16 - vol $6 - note f4 $2c - vol $6 - note fs4 $2c - note a4 $2c - note c5 $2c - note ds5 $2c - note fs5 $2c - note a5 $2c - note c6 $03 - rest $03 - note e6 $05 - vol $4 - note c6 $03 - vol $6 - note c6 $03 - vol $4 - note e6 $05 - rest $03 - note c6 $03 - vol $6 - note c6 $05 - rest $07 - vol $4 - note c6 $04 - vol $6 - note c6 $03 - rest $03 - note e6 $05 - vol $4 - note c6 $03 - vol $6 - note c6 $03 - vol $4 - note e6 $05 - rest $03 - note c6 $03 - vol $6 - note c6 $05 - rest $07 - vol $4 - note c6 $04 - vol $6 - note c6 $03 - rest $03 - note e6 $05 - vol $4 - note c6 $03 - vol $6 - note c6 $03 - vol $4 - note e6 $05 - rest $03 - note c6 $03 - vol $6 - note c6 $05 - rest $07 - vol $4 - note c6 $04 - vol $6 - note c6 $03 - rest $03 - note e6 $05 - vol $3 - note c6 $03 - vol $6 - note c6 $03 - vol $3 - note e6 $05 - rest $03 - note c6 $03 - vol $6 - note c6 $05 - rest $07 - vol $3 - note c6 $04 - vol $6 - note e6 $0b - note g6 $0b - note as6 $0b - note c7 $0b - rest $58 - goto musicf6412 - cmdff - -musBlackTowerEntranceChannel0: - vibrato $00 - env $0 $00 - duty $01 -musicf6550: - vol $7 - note fs3 $2c - note gs3 $4d - vol $3 - note gs3 $0b - vol $7 - note gs3 $2c - note as3 $4d - vol $3 - note as3 $0b - vol $7 - note as3 $2c - note b3 $2c - note d4 $2c - note f4 $2c - note gs4 $2c - note b4 $2c - note d5 $2c - note e5 $b0 - rest $10 - vol $3 - note d6 $0b - note f6 $0b - note gs6 $0b - note c7 $0b - rest $48 - vol $6 - note gs3 $2c - note as3 $4d - vol $3 - note as3 $0b - vol $6 - note as3 $2c - note c4 $4d - vol $3 - note c4 $0b - vol $6 - note c4 $2c - note cs4 $2c - note e4 $2c - note g4 $2c - note as4 $2c - note cs5 $2c - note e5 $2c - note fs5 $b0 - rest $10 - vol $3 - note e6 $0b - note g6 $0b - note as6 $0b - note c7 $0b - rest $48 - goto musicf6550 - cmdff - -musBlackTowerEntranceChannel4: -musicf65b0: - duty $0e - note g2 $2c - note a2 $42 - rest $16 - note a2 $2c - note b2 $42 - rest $16 - note b2 $2c - note c3 $2c - note e3 $2c - note g3 $2c - note as3 $2c - note cs4 $2c - note e4 $2c - note g4 $b0 - rest $84 - note a2 $2c - note b2 $42 - rest $16 - note b2 $2c - note cs3 $42 - rest $16 - note cs3 $2c - note d3 $2c - note fs3 $2c - note a3 $2c - note c4 $2c - note ds4 $2c - note fs4 $2c - note a4 $b0 - rest $84 - goto musicf65b0 - cmdff - -.define musBlackTowerEntranceChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/boss.s b/audio/common/mus/boss.s deleted file mode 100644 index 127abb93a..000000000 --- a/audio/common/mus/boss.s +++ /dev/null @@ -1,1743 +0,0 @@ -musBossStart: - -musBossChannel1: - vibrato $00 - env $0 $00 -.ifdef ROM_SEASONS - cmdf2 -.endif - duty $02 -musicf9f6b: - vol $6 - note b4 $0c - note e4 $06 - note b4 $0c - note e4 $06 - note b4 $24 - vol $3 - note b4 $18 - vol $6 - note as4 $0c - note fs4 $06 - note as4 $0c - note fs4 $06 - note as4 $24 - vol $3 - note as4 $18 - vol $6 - note b4 $0c - note e4 $06 - note b4 $0c - note e4 $06 - note b4 $24 - vol $3 - note b4 $18 - vol $6 - note as4 $06 - note b4 $06 - rest $03 - vol $3 - note b4 $03 - vol $6 - note c5 $06 - note cs5 $06 - rest $03 - vol $3 - note cs5 $03 - vol $6 - note d5 $06 - note ds5 $06 - rest $03 - vol $3 - note ds5 $03 - vol $6 - note e5 $06 - note f5 $06 - rest $03 - vol $3 - note f5 $03 - vol $6 - note fs5 $06 - note g5 $06 - note gs5 $06 - note a5 $06 - note b4 $0c - note e4 $06 - note b4 $0c - note e4 $06 - note b4 $24 - vol $3 - note b4 $18 - vol $6 - note as4 $0c - note fs4 $06 - note as4 $0c - note fs4 $06 - note as4 $24 - vol $3 - note as4 $18 - vol $6 - note b4 $0c - note e4 $06 - note b4 $0c - note e4 $06 - note b4 $24 - vol $3 - note b4 $18 - vol $6 - note a4 $06 - note as4 $06 - rest $03 - vol $3 - note as4 $03 - vol $6 - note b4 $06 - note c5 $06 - vol $6 - note cs5 $06 - note d5 $06 - note ds5 $06 - note e5 $1e - vol $3 - note e5 $0c - rest $06 - vol $6 - note c5 $12 - note g4 $12 - note c5 $0c - note b4 $12 - note fs4 $06 - rest $03 - vol $3 - note fs4 $06 - rest $03 - vol $1 - note fs4 $06 - rest $06 - vol $6 - note c5 $12 - vol $6 - note g4 $12 - note c5 $0c - note cs5 $12 - note gs5 $06 - rest $03 - vol $3 - note gs5 $06 - rest $03 - vol $1 - note gs5 $06 - rest $06 - vol $6 - note c5 $12 - note g4 $12 - note c5 $0c - note b4 $18 - note ds5 $18 - note d5 $06 - note cs5 $06 - rest $03 - vol $3 - note cs5 $03 - vol $6 - note c5 $06 - note b4 $06 - rest $03 - vol $3 - note b4 $03 - vol $6 - note as4 $06 - note a4 $06 - rest $03 - vol $3 - note a4 $03 - vol $6 - note gs4 $06 - note g4 $06 - rest $03 - vol $3 - note g4 $03 - vol $6 - note g4 $06 - note fs4 $06 - note f4 $06 - note e4 $06 - note ds4 $48 - vol $3 - note ds4 $18 - rest $60 - goto musicf9f6b - cmdff - -musBossChannel0: - vibrato $00 - env $0 $00 -.ifdef ROM_SEASONS - cmdf2 -.endif - duty $02 -musicfa087: - vol $6 - note g4 $0c - note b3 $06 - note g4 $0c - note b3 $06 - note g4 $18 - note b3 $0c - note e4 $0c - note g4 $0c - note fs4 $0c - note as3 $06 - note fs4 $0c - note as3 $06 - note fs4 $18 - note as4 $0c - note a4 $0c - note gs4 $0c - note g4 $0c - note b3 $06 - note g4 $0c - note b3 $06 - note g4 $24 - vol $3 - note g4 $18 - vol $6 - note d4 $06 - note cs4 $06 - rest $03 - vol $3 - note cs4 $03 - vol $6 - note c4 $06 - note b3 $06 - rest $03 - vol $3 - note b3 $03 - vol $6 - note as3 $06 - note a3 $06 - rest $03 - vol $3 - note a3 $03 - vol $6 - note gs3 $06 - note g3 $06 - rest $03 - vol $3 - note g3 $03 - vol $6 - note fs3 $06 - note f3 $06 - note e3 $06 - note d3 $06 - note g4 $0c - note b3 $06 - note g4 $0c - note b3 $06 - note g4 $18 - note b3 $0c - note e4 $0c - note g4 $0c - note fs4 $0c - note as3 $06 - note fs4 $0c - note as3 $06 - note fs4 $18 - note as4 $0c - note a4 $0c - note gs4 $0c - note g4 $0c - note b3 $06 - note g4 $0c - note b3 $06 - note g4 $18 - note b3 $0c - note e4 $0c - note g4 $0c - rest $60 - note g4 $12 - note e4 $12 - note g4 $0c - note fs4 $12 - note ds4 $06 - rest $03 - vol $3 - note ds4 $06 - rest $03 - vol $1 - note ds4 $06 - rest $06 - vol $6 - note g4 $12 - note e4 $12 - note g4 $0c - note fs4 $12 - note b4 $06 - rest $03 - vol $3 - note b4 $06 - rest $03 - vol $1 - note b4 $06 - rest $06 - vol $6 - note g4 $12 - note e4 $12 - note c4 $0c - note b3 $0c - note ds4 $0c - note fs4 $0c - note b4 $0c - rest $60 - note ds4 $06 - note d4 $06 - rest $03 - vol $3 - note d4 $03 - vol $6 - note cs4 $06 - note c4 $06 - rest $03 - vol $3 - note c4 $03 - vol $6 - note b3 $06 - note as3 $06 - rest $03 - vol $3 - note as3 $03 - vol $6 - note a3 $06 - note gs3 $06 - rest $03 - vol $3 - note gs3 $03 - vol $6 - note g3 $06 - note fs3 $06 - note f3 $06 - note e3 $06 - rest $60 - goto musicfa087 - cmdff - -musBossChannel4: -.ifdef ROM_SEASONS - cmdf2 -.endif -musicfa18c: - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note ds2 $04 - duty $17 - note ds2 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note ds3 $04 - duty $17 - note ds3 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note ds2 $04 - duty $17 - note ds2 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note ds3 $04 - duty $17 - note ds3 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note ds2 $04 - duty $17 - note ds2 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note ds3 $04 - duty $17 - note ds3 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note ds2 $04 - duty $17 - note ds2 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note ds3 $04 - duty $17 - note ds3 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note b3 $04 - duty $17 - note b3 $02 - duty $12 - note as3 $04 - duty $17 - note as3 $08 - duty $12 - note a3 $04 - duty $17 - note a3 $02 - duty $12 - note gs3 $04 - duty $17 - note gs3 $08 - duty $12 - note g3 $04 - duty $17 - note g3 $02 - duty $12 - note fs3 $04 - duty $17 - note fs3 $08 - duty $12 - note f3 $04 - duty $17 - note f3 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $08 - duty $12 - note ds3 $04 - duty $17 - note ds3 $02 - duty $12 - note d3 $04 - duty $17 - note d3 $02 - duty $12 - note cs3 $04 - duty $17 - note cs3 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note ds2 $04 - duty $17 - note ds2 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note ds3 $04 - duty $17 - note ds3 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note ds2 $04 - duty $17 - note ds2 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note ds3 $04 - duty $17 - note ds3 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note ds2 $04 - duty $17 - note ds2 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note ds3 $04 - duty $17 - note ds3 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note ds2 $04 - duty $17 - note ds2 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note ds3 $04 - duty $17 - note ds3 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $08 - duty $12 - note a2 $04 - duty $17 - note a2 $02 - duty $12 - note gs2 $04 - duty $17 - note gs2 $02 - duty $12 - note g2 $04 - duty $17 - note g2 $02 - duty $12 - note fs2 $04 - duty $17 - note fs2 $02 - duty $12 - note f2 $04 - duty $17 - note f2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note e3 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note c2 $04 - duty $17 - note c2 $02 - duty $12 - note g2 $04 - duty $17 - note g2 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note g2 $04 - duty $17 - note g2 $02 - duty $12 - note c2 $04 - duty $17 - note c2 $02 - duty $12 - note g2 $04 - duty $17 - note g2 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note g2 $04 - duty $17 - note g2 $02 - duty $12 - note b1 $04 - duty $17 - note b1 $02 - duty $12 - note fs2 $04 - duty $17 - note fs2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note fs2 $04 - duty $17 - note fs2 $02 - duty $12 - note b1 $04 - duty $17 - note b1 $02 - duty $12 - note fs2 $04 - duty $17 - note fs2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note fs2 $04 - duty $17 - note fs2 $02 - duty $12 - note c2 $04 - duty $17 - note c2 $02 - duty $12 - note g2 $04 - duty $17 - note g2 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note g2 $04 - duty $17 - note g2 $02 - duty $12 - note c2 $04 - duty $17 - note c2 $02 - duty $12 - note g2 $04 - duty $17 - note g2 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note g2 $04 - duty $17 - note g2 $02 - duty $12 - note b1 $04 - duty $17 - note b1 $02 - duty $12 - note fs2 $04 - duty $17 - note fs2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note fs2 $04 - duty $17 - note fs2 $02 - duty $12 - note b1 $04 - duty $17 - note b1 $02 - duty $12 - note fs2 $04 - duty $17 - note fs2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note fs2 $04 - duty $17 - note fs2 $02 - duty $12 - note c2 $04 - duty $17 - note c2 $02 - duty $12 - note g2 $04 - duty $17 - note g2 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note g2 $04 - duty $17 - note g2 $02 - duty $12 - note c2 $04 - duty $17 - note c2 $02 - duty $12 - note g2 $04 - duty $17 - note g2 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note g2 $04 - duty $17 - note g2 $02 - duty $12 - note b1 $04 - duty $17 - note b1 $02 - duty $12 - note fs2 $04 - duty $17 - note fs2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note fs2 $04 - duty $17 - note fs2 $02 - duty $12 - note b1 $04 - duty $17 - note b1 $02 - duty $12 - note fs2 $04 - duty $17 - note fs2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note fs2 $04 - duty $17 - note fs2 $02 - duty $12 - note g2 $04 - duty $17 - note g2 $02 - duty $12 - note fs2 $04 - duty $17 - note fs2 $08 - duty $12 - note f2 $04 - duty $17 - note f2 $02 - duty $12 - note e2 $04 - duty $17 - note e2 $08 - duty $12 - note ds2 $04 - duty $17 - note ds2 $02 - duty $12 - note d2 $04 - duty $17 - note d2 $08 - duty $12 - note cs2 $04 - duty $17 - note cs2 $02 - duty $12 - note c2 $04 - duty $17 - note c2 $08 - duty $12 - note b1 $04 - duty $17 - note b1 $02 - duty $12 - note c2 $04 - duty $17 - note c2 $02 - duty $12 - note as2 $04 - duty $17 - note as2 $02 - duty $12 - note b2 $04 - duty $17 - note b2 $02 - duty $12 - note ds3 $05 - duty $17 - note ds3 $13 - duty $12 - note b1 $48 - rest $60 - goto musicfa18c - cmdff - -musBossChannel6: -.ifdef ROM_SEASONS - cmdf2 -.endif -musicfa756: - vol $5 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $0b - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $5 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $4 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $4 - vol $8 - note $28 $01 - vol $2 - note $27 $05 - vol $2 - note $2a $06 - note $2a $0c - note $2a $06 - note $2a $0c - note $2a $06 - note $2a $0c - vol $2 - note $2a $06 - note $2a $0c - note $2a $06 - note $2a $06 - note $2a $06 - note $2a $06 - goto musicfa756 - cmdff diff --git a/audio/common/mus/cave.s b/audio/common/mus/cave.s deleted file mode 100644 index 2cb06f99f..000000000 --- a/audio/common/mus/cave.s +++ /dev/null @@ -1,236 +0,0 @@ -musCaveStart: - -musCaveChannel1: - duty $02 -musice932a: -; Measure 1 - env $0 $06 - vol $6 - note b2 $0c - note cs3 $0c - note d3 $0c - - env $0 $04 - note a3 $0c - rest $24 - - env $0 $05 - note b4 $0c - note b4 $18 - rest $18 -; Measure 2 - env $0 $06 - note b2 $0c - note cs3 $0c - note d3 $0c - - env $0 $04 - note gs3 $0c - rest $24 - - env $0 $05 - note as4 $0c - note as4 $18 - rest $18 -; Measure 3 - env $0 $06 - note cs3 $0c - note ds3 $0c - note e3 $0c - - env $0 $04 - note b3 $0c - rest $24 - - env $0 $05 - note cs5 $0c - note cs5 $18 - rest $18 -; Measure 4 - env $0 $06 - note cs3 $0c - note ds3 $0c - note e3 $0c - - env $0 $04 - note as3 $0c - rest $24 - - env $0 $05 - note c5 $0c - note c5 $18 - rest $18 -; Measure 5 -; 4/4 - env $0 $06 - note fs3 $0c - note gs3 $0c - note a3 $0c - - env $0 $04 - note e4 $0c - rest $24 - - env $0 $05 - note e5 $0c -; Measure 6 -; 4/4 - env $0 $06 - note g3 $0c - note a3 $0c - note as3 $0c - - env $0 $04 - note f4 $0c - rest $24 - - env $0 $05 - note f5 $0c -; Measure 7 -; 9/8 - note b3 $0c - note cs4 $0c - note d4 $0c - - note a5 $0c - env $0 $04 - note gs5 $0c - note g5 $0c - note fs5 $0c - env $0 $00 - vol $5 - note f5 $08 -; Measure 8 (+eighth triplet) -; 11/8 - rest $94 - goto musice932a - cmdff - -musCaveChannel0: - duty $02 -musice93c4: -; Measure 1 - vol $0 - note gs3 $16 - - env $0 $05 - vol $3 - note b2 $0c - note cs3 $0c - note d3 $0c - - env $0 $04 - note a3 $0c - rest $0e - - vol $6 - env $0 $03 - note f4 $0c - note f4 $18 - rest $2e -; Measure 2b - vol $3 - env $0 $05 - note b2 $0c - note cs3 $0c - note d3 $0c - - env $0 $04 - note gs3 $0c - rest $0e - - vol $6 - env $0 $03 - note e4 $0c - note e4 $18 - rest $2e -; Measure 3b - vol $3 - env $0 $05 - note cs3 $0c - note ds3 $0c - note e3 $0c - - env $0 $04 - note b3 $0c - rest $0e - - vol $6 - env $0 $03 - note g4 $0c - note g4 $18 - rest $2e -; Measure 4b - vol $3 - env $0 $05 - note cs3 $0c - note ds3 $0c - note e3 $0c - - env $0 $04 - note as3 $0c - rest $0e - - vol $6 - env $0 $03 - note fs4 $0c - note fs4 $18 - rest $2e ;$18 + $16 -; Measure 5b -; 4/4 - vol $3 - env $0 $05 - note fs3 $0c - note gs3 $0c - note a3 $0c - - env $0 $04 - note e4 $0c - rest $0e - - vol $6 - env $0 $03 - note as4 $0c -; Measure 6 -; 4/4 - rest $16 - vol $3 - env $0 $05 - note g3 $0c - note a3 $0c - note as3 $0c - - env $0 $04 - note f4 $0c - rest $0e - - vol $6 - env $0 $03 - note b4 $0c -; Measure 7 -; 9/8 - rest $16 - - vol $3 - env $0 $04 - note b3 $0c - note cs4 $0c - note d4 $02 - - vol $6 - env $0 $04 - note f5 $0c - note e5 $0c - note ds5 $0c - - env $0 $00 - vol $5 - note d5 $08 -; Measure 8 -; 7/4 @ 180 BPM - rest $94 - goto musice93c4 - cmdff - -.define musCaveChannel4 MUSIC_CHANNEL_FALLBACK EXPORT -.define musCaveChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/crazyDance.s b/audio/common/mus/crazyDance.s deleted file mode 100644 index 48fc2af8c..000000000 --- a/audio/common/mus/crazyDance.s +++ /dev/null @@ -1,248 +0,0 @@ -musCrazyDanceStart: - -musCrazyDanceChannel1: - vibrato $00 - env $0 $02 - cmdf2 - duty $02 - vol $6 - note b6 $02 - note as6 $02 - note b6 $03 - note as6 $02 - note b6 $07 - rest $28 - note c7 $02 - note b6 $02 - note c7 $03 - note b6 $02 - note c7 $07 - rest $3c -musicf79ae: - vibrato $00 - env $0 $00 - duty $00 - note d6 $05 - note ds6 $05 - note d6 $05 - note cs6 $05 - note c6 $05 - note b5 $05 - note c6 $05 - note cs6 $05 - note d6 $05 - note ds6 $05 - note d6 $05 - note cs6 $05 - note c6 $05 - note b5 $05 - note c6 $05 - note cs6 $05 - note d6 $05 - vol $3 - note d6 $05 - vol $6 - note d7 $05 - vol $3 - note d7 $05 - vol $6 - note d6 $05 - vol $3 - note d6 $05 - vol $6 - note d6 $05 - note ds6 $05 - note e6 $05 - note f6 $05 - note e6 $05 - note ds6 $05 - note d6 $05 - vol $3 - note d6 $05 - rest $0a - vol $6 - note d6 $05 - note ds6 $05 - note d6 $05 - note cs6 $05 - note c6 $05 - note b5 $05 - note c6 $05 - note cs6 $05 - note d6 $05 - note ds6 $05 - note d6 $05 - note cs6 $05 - note c6 $05 - note b5 $05 - note c6 $05 - note cs6 $05 - note d6 $05 - vol $3 - note d6 $05 - vol $6 - note d7 $05 - vol $3 - note d7 $05 - vol $6 - note d6 $05 - vol $3 - note d6 $05 - vol $6 - note d6 $05 - note ds6 $05 - note e6 $05 - note f6 $05 - note e6 $05 - note ds6 $05 - note d6 $05 - vol $3 - note d6 $05 - rest $0a - vol $5 - note d6 $05 - note ds6 $05 - note d6 $05 - note cs6 $05 - note c6 $05 - note b5 $05 - note c6 $05 - note cs6 $05 - note d6 $05 - note ds6 $05 - note d6 $05 - note cs6 $05 - note c6 $05 - note b5 $05 - note c6 $05 - note cs6 $05 - vol $2 - note cs6 $05 - rest $69 - vibrato $00 - env $0 $02 - duty $02 - vol $6 - note d7 $02 - note c7 $02 - note b6 $02 - note a6 $04 - note g6 $02 - note fs6 $02 - note e6 $02 - note d6 $0b - rest $53 - vibrato $00 - env $0 $00 - duty $00 - goto musicf79ae - cmdff - -musCrazyDanceChannel0: - vibrato $00 - env $0 $02 - cmdf2 - duty $02 - vol $6 - note f6 $07 - rest $31 - note fs6 $07 - rest $45 -musicf7a98: - vol $6 - note g4 $05 - rest $05 - note d5 $05 - rest $05 - note d4 $05 - rest $05 - note d5 $05 - rest $05 - note g4 $05 - rest $05 - note d5 $05 - rest $05 - note d4 $05 - rest $05 - note d5 $05 - rest $05 - note gs4 $05 - rest $05 - note ds5 $05 - rest $05 - note ds4 $05 - rest $05 - note ds5 $05 - rest $05 - note gs4 $05 - rest $05 - note ds5 $05 - rest $05 - note ds4 $05 - rest $05 - note ds5 $05 - rest $05 - note as4 $05 - rest $05 - note f5 $05 - rest $05 - note f4 $05 - rest $05 - note f5 $05 - rest $05 - note as4 $05 - rest $05 - note f5 $05 - rest $05 - note f4 $05 - rest $05 - note f5 $05 - rest $05 - note c5 $05 - rest $05 - note g5 $05 - rest $05 - note g4 $05 - rest $05 - note g5 $05 - rest $05 - note c5 $05 - rest $05 - note g5 $05 - rest $05 - note b4 $05 - rest $05 - note a4 $05 - rest $05 - vol $5 - note g4 $05 - rest $05 - note d5 $05 - rest $05 - note d4 $05 - rest $05 - note d5 $05 - rest $05 - note g4 $05 - rest $05 - note d5 $05 - rest $05 - note d4 $05 - rest $05 - note d5 $05 - rest $78 - vol $3 - note d7 $02 - note c7 $03 - note b6 $02 - note a6 $02 - note g6 $02 - note fs6 $04 - note e6 $02 - note d6 $0a - rest $4e - goto musicf7a98 - cmdff - -.define musCrazyDanceChannel4 MUSIC_CHANNEL_FALLBACK EXPORT -.define musCrazyDanceChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/credits1.s b/audio/common/mus/credits1.s deleted file mode 100644 index 1bd0bd43c..000000000 --- a/audio/common/mus/credits1.s +++ /dev/null @@ -1,1665 +0,0 @@ -musCredits1Start: - -musCredits1Channel1: - vibrato $e1 - env $0 $00 - duty $02 - vol $6 - note g4 $18 - vol $3 - note g4 $08 - vol $6 - note g4 $0a - note d4 $0b - note g4 $0b - note f4 $18 - vol $3 - note f4 $08 - vol $6 - note f4 $0a - note g4 $0b - note a4 $0b - note as4 $18 - vol $3 - note as4 $08 - vol $6 - note as4 $0a - note g4 $0b - note as4 $0b - note a4 $18 - vol $3 - note a4 $08 - vol $6 - note a4 $0a - note as4 $0b - note c5 $0b - note d5 $40 - vibrato $01 - vol $3 - note d5 $20 - vibrato $e1 - vol $6 - note c5 $08 - rest $02 - note c5 $08 - rest $02 - note c5 $09 - rest $03 - note d5 $50 - vibrato $01 - vol $3 - note d5 $10 - vibrato $e1 - vol $6 - note c5 $0a - note b4 $0b - note a4 $0b -musicfaba1: - note g4 $08 - rest $04 - vol $3 - note g4 $08 - rest $04 - vol $1 - note g4 $08 - vol $6 - note d4 $20 - vol $3 - note d4 $10 - vol $6 - note g4 $08 - rest $04 - vol $3 - note g4 $04 - vol $6 - note g4 $08 - note a4 $08 - note b4 $08 - note c5 $08 - note d5 $40 - vibrato $01 - vol $3 - note d5 $10 - vibrato $e1 - vol $6 - note d5 $08 - rest $04 - vol $3 - note d5 $04 - vol $6 - note d5 $0a - note ds5 $0b - note f5 $0b - note g5 $40 - vibrato $01 - vol $3 - note g5 $10 - vibrato $e1 - vol $6 - note g5 $10 - note f5 $10 - note ds5 $10 - note f5 $08 - rest $04 - vol $3 - note f5 $08 - rest $04 - vol $6 - note ds5 $08 - note d5 $28 - vibrato $01 - vol $3 - note d5 $18 - vibrato $e1 - vol $6 - note d5 $0a - note ds5 $0b - note d5 $0b - note c5 $08 - rest $04 - vol $3 - note c5 $04 - vol $6 - note c5 $08 - note d5 $08 - vol $6 - note ds5 $28 - vol $3 - note ds5 $08 - vol $6 - note ds5 $10 - note d5 $10 - note c5 $10 - note as4 $08 - rest $04 - vol $3 - note as4 $04 - vol $6 - note as4 $08 - note c5 $08 - note d5 $20 - vol $3 - note d5 $10 - vol $6 - note d5 $10 - note c5 $10 - note as4 $10 - note a4 $08 - rest $04 - vol $3 - note a4 $04 - vol $6 - note a4 $08 - note b4 $08 - note cs5 $20 - vibrato $01 - vol $3 - note cs5 $10 - vibrato $e1 - vol $6 - note cs5 $08 - note d5 $08 - note e5 $08 - note fs5 $08 - note g5 $08 - note a5 $08 - note fs5 $08 - rest $04 - vol $3 - note fs5 $04 - vol $6 - note d5 $02 - rest $02 - note d5 $04 - rest $02 - note d5 $02 - rest $04 - note e5 $08 - rest $02 - note e5 $08 - rest $02 - note e5 $09 - rest $03 - note fs5 $28 - vibrato $01 - vol $3 - note fs5 $18 - vibrato $e1 - vol $6 - note g4 $08 - rest $04 - vol $3 - note g4 $08 - rest $04 - vol $1 - note g4 $08 - vol $6 - note d4 $28 - vol $3 - note d4 $08 - vol $6 - note g4 $08 - rest $04 - vol $3 - note g4 $04 - vol $6 - note g4 $08 - note a4 $08 - note b4 $08 - note c5 $08 - note d5 $40 - vibrato $01 - vol $3 - note d5 $10 - vibrato $e1 - vol $6 - note d5 $08 - rest $04 - vol $3 - note d5 $04 - vol $6 - note d5 $0a - note ds5 $0b - note f5 $0b - note g5 $48 - vibrato $01 - vol $3 - note g5 $08 - vibrato $e1 - vol $6 - note a5 $08 - note as5 $08 - note c6 $08 - note as5 $08 - note a5 $08 - note g5 $08 - note g5 $08 - rest $04 - vol $3 - note g5 $08 - rest $04 - vol $6 - note a5 $08 - note f5 $28 - vibrato $01 - env $0 $00 - vol $3 - note f5 $18 - vibrato $e1 - vol $6 - note d5 $0a - note ds5 $0b - note d5 $0b - note c5 $08 - rest $04 - vol $3 - note c5 $04 - vol $6 - note c5 $08 - note d5 $08 - note ds5 $28 - vol $3 - note ds5 $08 - vol $6 - note ds5 $10 - note d5 $10 - note c5 $10 - note as4 $0a - note a4 $0b - note as4 $0b - note c5 $0a - note as4 $0b - note c5 $0b - note d5 $08 - rest $04 - vol $3 - note d5 $08 - rest $01 - vol $6 - note cs5 $08 - rest $03 - note d5 $0a - note g5 $0b - note as5 $0b - rest $20 - note d5 $20 - note d6 $28 - note c6 $08 - note as5 $08 - note a5 $08 - note g5 $40 - vibrato $01 - vol $3 - note g5 $20 - vibrato $e1 - duty $00 - vol $8 - note d5 $0a - note ds5 $0b - note f5 $0b - note g5 $08 - rest $04 - vol $3 - note g5 $08 - rest $04 - vol $1 - note g5 $08 - vol $8 - note d5 $20 - vibrato $01 - vol $3 - note d5 $18 - vibrato $e1 - vol $8 - note g5 $04 - rest $04 - note g5 $08 - note a5 $08 - note as5 $08 - note c6 $08 - note a5 $08 - rest $04 - vol $3 - note a5 $08 - rest $04 - vol $8 - note f5 $08 - note c5 $20 - vol $3 - note c5 $10 - vol $8 - note c5 $08 - note d5 $08 - note f5 $08 - note ds5 $08 - note d5 $08 - note c5 $08 - note d5 $08 - rest $04 - vol $3 - note d5 $08 - rest $04 - vol $1 - note d5 $08 - vol $8 - note g4 $20 - vol $3 - note g4 $10 - vol $8 - note g4 $08 - note fs4 $08 - note g4 $08 - note a4 $08 - note as4 $08 - note c5 $08 - note d5 $40 - vibrato $01 - vol $3 - note d5 $10 - vibrato $e1 - vol $8 - note d5 $10 - note cs5 $10 - note d5 $08 - rest $04 - vol $3 - note d5 $04 - vol $8 - note as5 $08 - rest $04 - vol $3 - note as5 $08 - rest $04 - vol $8 - note a5 $08 - note g5 $20 - vol $1 - note g5 $0a - vol $8 - note d5 $06 - rest $05 - note d5 $05 - rest $06 - note d5 $0a - note as4 $0b - note g5 $0b - note gs5 $08 - rest $04 - vol $3 - note gs5 $08 - rest $04 - vol $8 - note as5 $08 - note c6 $20 - vol $3 - note c6 $0a - vol $8 - note c6 $08 - rest $02 - note d6 $09 - rest $03 - note ds6 $0a - note f6 $0b - note ds6 $0b - note d6 $2a - rest $06 - note d6 $05 - rest $03 - note d6 $05 - rest $03 - note d6 $2a - rest $06 - note d6 $05 - rest $03 - note d6 $05 - rest $03 - note d6 $10 - vol $3 - note d6 $10 - duty $02 - vol $8 - note e5 $05 - rest $05 - note e5 $06 - rest $05 - note e5 $05 - rest $06 - note f5 $1a - rest $06 - note fs5 $05 - rest $05 - note fs5 $06 - rest $05 - note fs5 $05 - rest $06 - goto musicfaba1 - cmdff - -musCredits1Channel0: - vibrato $00 - env $0 $00 - duty $02 - vol $6 - note as3 $40 - note a3 $40 - note g3 $40 - note f3 $40 - note ds3 $20 - note g3 $08 - rest $02 - note g3 $08 - rest $02 - note g3 $09 - rest $03 - note d4 $20 - note ds3 $08 - rest $02 - note ds3 $08 - rest $02 - note ds3 $09 - rest $03 - note d3 $10 - note g3 $08 - note a3 $08 - note d4 $10 - note g3 $08 - note a3 $08 - note d3 $1d - rest $03 - note d3 $08 - rest $02 - note d3 $08 - rest $02 - note d3 $09 - rest $03 -musicfae87: - vol $0 - note gs3 $15 - note b3 $05 - rest $02 - vol $3 - note b3 $04 - vol $6 - note b3 $08 - note c4 $08 - note b3 $08 - note a3 $08 - note b3 $40 - vol $6 - note f4 $10 - note g4 $10 - note a4 $10 - note b4 $10 - note c5 $10 - note b4 $08 - rest $04 - vol $3 - note b4 $04 - vol $6 - note b4 $0a - note c5 $0b - note d5 $0b - note ds5 $10 - vol $3 - note ds5 $05 - vol $6 - note as4 $05 - rest $02 - vol $3 - note as4 $04 - vol $6 - note as4 $08 - note c5 $08 - note as4 $08 - note a4 $08 - note as4 $0a - rest $02 - vol $3 - note as4 $04 - vol $6 - note as4 $10 - note a4 $10 - note g4 $10 - note a4 $08 - rest $04 - vol $3 - note a4 $08 - rest $04 - vol $6 - note g4 $08 - note f4 $08 - rest $02 - note f4 $0b - note g4 $0b - note gs4 $10 - note g4 $10 - note f4 $0a - note ds4 $0b - note d4 $0b - note ds4 $20 - vol $3 - note ds4 $10 - vol $6 - note ds4 $08 - note f4 $08 - note g4 $08 - rest $04 - vol $3 - note g4 $04 - vol $6 - note g4 $10 - note f4 $10 - note ds4 $10 - note d4 $20 - vol $3 - note d4 $10 - vol $6 - note d4 $08 - note ds4 $08 - note f4 $0a - rest $06 - note f4 $10 - note ds4 $10 - note d4 $10 - note cs4 $20 - vol $3 - note cs4 $10 - vol $6 - note cs4 $08 - note d4 $08 - note e4 $10 - note fs4 $10 - vol $6 - note g4 $10 - vol $6 - note a4 $10 - note as4 $20 - note a4 $08 - rest $04 - vol $3 - note a4 $08 - rest $04 - vol $1 - note a4 $08 - vol $6 - note as4 $20 - note a4 $08 - rest $04 - vol $3 - note a4 $08 - rest $04 - vol $1 - note a4 $08 - vol $6 - note g5 $40 - note d5 $20 - note c5 $20 - note b4 $10 - note g4 $08 - rest $04 - vol $3 - note g4 $04 - vol $6 - note g4 $08 - note a4 $08 - note b4 $08 - note c5 $08 - note d5 $10 - note b4 $08 - rest $04 - vol $3 - note b4 $04 - vol $6 - note b4 $0a - note c5 $0b - note d5 $0b - note ds5 $20 - note as4 $10 - note g4 $10 - note ds4 $10 - note as4 $10 - note a4 $10 - note g4 $10 - note a4 $08 - rest $04 - vol $3 - note a4 $08 - rest $04 - vol $6 - note g4 $08 - note f4 $05 - rest $03 - note f4 $10 - note g4 $08 - note f4 $30 - vol $3 - note f4 $10 - vol $6 - note ds4 $20 - vol $3 - note ds4 $10 - vol $6 - note f4 $10 - note g4 $08 - rest $04 - vol $3 - note g4 $04 - vol $6 - note g4 $10 - note f4 $10 - note ds4 $10 - note d4 $20 - note e4 $20 - note fs4 $20 - note g4 $20 - note a4 $10 - note as4 $10 - note a4 $10 - note g4 $10 - note fs4 $10 - note ds5 $10 - note d5 $10 - note fs4 $10 - note as4 $10 - note c5 $10 - note as4 $10 - note a4 $10 - note g4 $08 - rest $04 - vol $3 - note g4 $04 - vol $6 - note g3 $08 - note a3 $08 - note as3 $08 - note c4 $08 - note d4 $05 - note ds4 $05 - note f4 $06 - note as4 $08 - rest $04 - vol $3 - note as4 $08 - rest $04 - vol $6 - note a4 $08 - note g4 $20 - vol $3 - note g4 $18 - vol $6 - note d4 $08 - note g4 $08 - note f4 $08 - note g4 $08 - note a4 $08 - note c5 $08 - rest $04 - vol $3 - note c5 $08 - rest $04 - vol $6 - note as4 $08 - note a4 $08 - note as4 $08 - note a4 $08 - note g4 $08 - note f4 $30 - vol $3 - note f4 $10 - vol $6 - note g4 $18 - vol $3 - note g4 $08 - vol $6 - note d4 $20 - note c4 $20 - note f4 $10 - note g4 $10 - note d4 $18 - vol $3 - note d4 $08 - vol $6 - note g4 $08 - note a4 $08 - note as4 $08 - note c5 $08 - note d5 $10 - note as4 $10 - note a4 $10 - note as4 $10 - note d5 $08 - rest $04 - vol $3 - note d5 $08 - rest $04 - vol $6 - note c5 $08 - note as4 $18 - vol $3 - note as4 $10 - rest $02 - vol $6 - note as4 $06 - rest $05 - note as4 $05 - rest $06 - note as4 $0a - note g4 $0b - note d4 $0b - note c4 $08 - rest $04 - vol $3 - note c4 $08 - rest $01 - vol $6 - note gs3 $08 - rest $03 - note gs3 $0a - note ds3 $0b - note gs3 $0b - note c4 $0a - note gs3 $0b - note c4 $0b - note ds4 $0a - note c4 $0b - note ds4 $0b - note d4 $10 - note g4 $08 - note a4 $08 - note d5 $10 - note g4 $08 - note a4 $08 - note d4 $10 - note g3 $08 - note a3 $08 - note d3 $10 - note g2 $08 - note a2 $08 - note d3 $04 - note e3 $04 - vol $6 - note fs3 $04 - note g3 $04 - note a3 $04 - note as3 $04 - note c4 $04 - note d4 $04 - note g4 $05 - rest $05 - note g4 $06 - rest $05 - note g4 $05 - rest $06 - note a4 $1a - rest $06 - note as4 $05 - rest $05 - note as4 $06 - rest $05 - note as4 $05 - rest $06 - goto musicfae87 - cmdff - -musCredits1Channel4: - duty $0e - rest $ff - rest $ff - rest $02 -musicfb0de: - duty $0e - note g3 $80 - note f3 $80 - note ds3 $40 - note f3 $20 - note ds3 $20 - note d3 $40 - note g3 $40 - note c3 $30 - note g3 $10 - note c4 $30 - duty $17 - note c4 $10 - duty $0e - note as2 $30 - note g3 $10 - note as3 $28 - duty $17 - note as3 $18 - duty $0e - note a2 $20 - note b2 $20 - note c3 $20 - note cs3 $20 - note d3 $20 - rest $40 - note d2 $08 - rest $02 - note d2 $08 - rest $02 - note d2 $09 - rest $03 - note g2 $08 - duty $17 - note g2 $08 - duty $0e - note g2 $18 - duty $17 - note g2 $08 - duty $0e - note g2 $18 - duty $17 - note g2 $08 - duty $0e - note g2 $18 - duty $17 - note g2 $08 - duty $0e - note g2 $10 - duty $0e - note f2 $08 - duty $17 - note f2 $08 - duty $0e - note f2 $18 - duty $17 - note f2 $08 - duty $0e - note f2 $18 - duty $17 - note f2 $08 - duty $0e - note f2 $18 - duty $17 - note f2 $08 - duty $0e - note f2 $10 - duty $0e - note ds2 $08 - duty $17 - note ds2 $08 - duty $0e - note ds2 $18 - duty $17 - note ds2 $08 - duty $0e - note ds2 $10 - duty $0e - note f2 $08 - duty $17 - note f2 $08 - duty $0e - note f2 $1c - duty $17 - note f2 $04 - duty $0e - note ds2 $10 - duty $0e - note d2 $08 - duty $17 - note d2 $08 - duty $0e - note a2 $20 - note d3 $20 - note a2 $10 - note f2 $10 - note d2 $10 - note c2 $08 - note d2 $08 - note ds2 $18 - note d2 $08 - note ds2 $08 - note f2 $08 - note g2 $08 - note fs2 $08 - note g2 $08 - note a2 $08 - note as2 $08 - note c3 $08 - note as2 $08 - note a2 $08 - note g2 $10 - note gs2 $08 - note g2 $08 - note fs2 $10 - note g2 $08 - note fs2 $08 - note f2 $10 - note fs2 $08 - note f2 $08 - note e2 $10 - note f2 $08 - note e2 $08 - note ds2 $08 - duty $17 - note ds2 $08 - duty $0e - note ds2 $1c - duty $17 - note ds2 $04 - duty $0e - note ds2 $05 - note f2 $05 - note ds2 $06 - duty $0e - note d2 $14 - duty $17 - note d2 $0c - duty $0e - note d2 $08 - note a2 $08 - note d3 $08 - note d2 $08 - duty $0e - note g2 $10 - duty $17 - note g2 $10 - duty $0e - note g2 $08 - note a2 $08 - note g2 $08 - note fs2 $08 - note g2 $08 - note a2 $08 - note as2 $08 - note c3 $08 - note d3 $08 - note ds3 $08 - note f3 $08 - note g3 $08 - duty $0e - note ds3 $20 - duty $17 - note ds3 $08 - duty $0e - note as2 $08 - note ds3 $08 - note d3 $08 - note ds3 $10 - note as2 $10 - note a2 $10 - note g2 $10 - duty $0e - note d2 $20 - duty $17 - note d2 $08 - duty $0e - note f3 $04 - duty $17 - note f3 $04 - duty $0e - note f3 $08 - note ds3 $08 - note d3 $20 - note d2 $20 - duty $0e - note g2 $08 - duty $17 - note g2 $08 - duty $0e - note g2 $1c - duty $17 - note g2 $04 - duty $0e - note g2 $10 - duty $0e - note f2 $0c - duty $17 - note f2 $04 - duty $0e - note f2 $1c - duty $17 - note f2 $04 - duty $0e - note f2 $10 - duty $0e - note e2 $08 - duty $17 - note e2 $08 - duty $0e - note e2 $10 - duty $17 - note e2 $08 - duty $0e - note e2 $08 - note f2 $08 - note e2 $08 - duty $0e - note ds2 $1d - duty $17 - note ds2 $03 - duty $0e - note d2 $1d - duty $17 - note d2 $03 - duty $0e - note c2 $28 - note g2 $08 - note c3 $08 - note b2 $08 - note as2 $20 - note a2 $20 - note gs2 $0a - note ds2 $0b - note gs2 $0b - note c3 $0a - note gs2 $0b - note c3 $0b - note ds3 $0a - note c3 $0b - note ds3 $0b - note gs3 $0a - note ds3 $0b - note gs3 $0b - duty $0e - note d3 $08 - duty $17 - note d3 $08 - duty $0e - note d2 $18 - duty $17 - note d2 $08 - duty $0e - note d2 $18 - duty $17 - note d2 $08 - duty $0e - note d2 $18 - duty $17 - note d2 $08 - duty $0e - note d2 $08 - duty $17 - note d2 $08 - duty $0e - note d2 $20 - duty $0e - note e2 $05 - duty $17 - note e2 $05 - duty $0e - note e2 $06 - duty $17 - note e2 $05 - duty $0e - note e2 $05 - duty $17 - note e2 $06 - duty $0e - note f2 $1a - duty $17 - note f2 $06 - duty $0e - note fs2 $05 - duty $17 - note fs2 $05 - duty $0e - note fs2 $06 - duty $17 - note fs2 $05 - duty $0e - note fs2 $05 - duty $17 - note fs2 $06 - goto musicfb0de - cmdff - -musCredits1Channel6: - vol $6 - note $26 $38 - vol $4 - note $26 $02 - vol $5 - note $26 $02 - vol $5 - note $26 $04 - vol $7 - note $26 $10 - vol $6 - note $26 $20 - note $26 $10 - note $26 $38 - vol $4 - note $26 $02 - vol $5 - note $26 $02 - vol $5 - note $26 $04 - vol $7 - note $26 $10 - vol $6 - note $26 $20 - note $26 $10 - vol $7 - note $26 $30 - vol $4 - note $26 $05 - vol $5 - note $26 $05 - vol $5 - note $26 $06 - vol $6 - note $26 $10 - vol $6 - note $26 $20 - note $26 $10 - note $26 $10 - vol $4 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $10 - vol $4 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $10 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $04 - vol $5 - note $26 $04 - vol $4 - note $26 $04 - vol $4 - note $26 $04 - note $26 $04 - vol $4 - note $26 $04 - vol $5 - note $26 $04 - vol $7 - note $26 $04 -musicfb3a3: - vol $6 - note $26 $18 - vol $5 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $10 - note $26 $10 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $20 - note $26 $20 - note $26 $10 - vol $5 - note $26 $20 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $18 - vol $5 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $10 - note $26 $10 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $10 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $5 - note $26 $06 - vol $6 - note $26 $10 - vol $5 - note $26 $05 - vol $6 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $10 - vol $5 - note $26 $10 - note $26 $10 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $18 - vol $5 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $10 - note $26 $10 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $20 - note $26 $20 - note $26 $10 - vol $5 - note $26 $20 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $18 - vol $5 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $10 - note $26 $10 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $10 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $5 - note $26 $06 - vol $6 - note $26 $10 - vol $5 - note $26 $05 - vol $6 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $10 - vol $5 - note $26 $10 - note $26 $10 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $10 - note $26 $10 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $10 - note $26 $10 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $10 - note $26 $10 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $10 - note $26 $10 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $10 - note $26 $10 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $10 - note $26 $10 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $10 - note $26 $10 - vol $5 - note $26 $05 - vol $5 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $20 - note $26 $05 - vol $5 - note $26 $05 - vol $4 - note $26 $06 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $6 - note $26 $06 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $20 - vol $6 - note $26 $05 - note $26 $05 - note $26 $06 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $20 - vol $6 - note $26 $05 - note $26 $05 - note $26 $06 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $20 - vol $6 - note $26 $05 - note $26 $05 - note $26 $06 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $20 - vol $6 - note $26 $05 - note $26 $05 - note $26 $06 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $20 - vol $6 - note $26 $05 - note $26 $05 - note $26 $06 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $08 - note $26 $08 - vol $6 - note $26 $10 - vol $5 - note $26 $20 - vol $6 - note $26 $05 - note $26 $05 - note $26 $06 - note $26 $10 - vol $4 - note $26 $04 - vol $5 - note $26 $04 - vol $5 - note $26 $04 - vol $6 - note $26 $04 - vol $6 - note $26 $10 - vol $5 - note $26 $04 - vol $5 - note $26 $04 - vol $6 - note $26 $04 - vol $6 - note $26 $04 - vol $6 - note $26 $10 - vol $5 - note $26 $04 - vol $5 - note $26 $04 - vol $6 - note $26 $04 - vol $6 - note $26 $04 - vol $6 - note $26 $10 - note $26 $10 - note $26 $20 - note $26 $04 - vol $6 - note $26 $04 - vol $5 - note $26 $04 - vol $5 - note $26 $04 - note $26 $04 - vol $5 - note $26 $04 - vol $6 - note $26 $04 - vol $6 - note $26 $04 - vol $6 - note $26 $20 - note $26 $0a - note $26 $0b - note $26 $0b - goto musicfb3a3 - cmdff diff --git a/audio/common/mus/credits2.s b/audio/common/mus/credits2.s deleted file mode 100644 index 5905172d8..000000000 --- a/audio/common/mus/credits2.s +++ /dev/null @@ -1,2539 +0,0 @@ -musCredits2Start: - -musCredits2Channel1: - vibrato $e1 - env $0 $00 - duty $01 - vol $6 - note c4 $09 - rest $04 - vol $3 - note c4 $09 - rest $05 - vol $6 - note as3 $09 - note c4 $90 - vibrato $01 - env $0 $00 - vol $4 - note c4 $24 - vol $2 - note c4 $12 - vibrato $e1 - env $0 $00 - vol $6 - note c4 $06 - rest $03 - vol $3 - note c4 $06 - rest $03 - vol $6 - note c4 $06 - rest $03 - vol $3 - note c4 $06 - rest $03 - vol $6 - note c4 $06 - rest $03 - vol $3 - note c4 $06 - rest $03 - vol $6 - note c4 $09 - rest $04 - vol $3 - note c4 $09 - rest $05 - vol $6 - note as3 $09 - note c4 $90 - vibrato $01 - env $0 $00 - vol $4 - note c4 $24 - vol $2 - note c4 $24 - vibrato $e1 - env $0 $00 - vol $6 - note f4 $06 - note g4 $06 - note gs4 $06 - note as4 $06 - note c5 $06 - note d5 $06 - vol $6 - note ds5 $09 - rest $04 - vol $3 - note ds5 $09 - rest $05 - vol $6 - note d5 $09 - note c5 $48 - vibrato $01 - env $0 $00 - vol $3 - note c5 $24 - vibrato $e1 - env $0 $00 - vol $6 - note g4 $12 - note gs4 $12 - note as4 $12 - note c5 $12 - note d5 $12 - note ds5 $12 - note f5 $12 - note fs5 $12 - note g5 $20 - vol $3 - note g5 $10 - vol $6 - note g5 $04 - rest $04 - note g5 $04 - rest $04 - note g5 $1c - vol $3 - note g5 $0e - vol $6 - note g5 $03 - rest $04 - note g5 $03 - rest $04 - note g5 $0e - note g4 $02 - rest $02 - note g4 $03 - rest $02 - note g4 $02 - rest $03 - note a4 $04 - rest $05 - note a4 $05 - rest $04 - note a4 $05 - rest $05 - note b4 $0e - vol $3 - note b4 $0e - vol $6 - note g5 $1c - vibrato $e1 - env $0 $00 -musicf8e5b: - duty $02 - vol $6 - note c5 $07 - rest $03 - vol $3 - note c5 $07 - rest $04 - vol $1 - note c5 $07 - vol $6 - note g4 $2a - note c5 $07 - rest $03 - vol $3 - note c5 $04 - vol $6 - note c5 $07 - note d5 $07 - note e5 $07 - note f5 $07 - note g5 $38 - vibrato $01 - env $0 $00 - vol $3 - note g5 $0e - vol $1 - note g5 $0e - vibrato $e1 - env $0 $00 - vol $6 - note g5 $09 - note gs5 $09 - note as5 $0a - note c6 $38 - vibrato $01 - env $0 $00 - vol $3 - note c6 $0e - vibrato $e1 - env $0 $00 - vol $6 - note c6 $0e - note as5 $0e - note gs5 $0e - note as5 $07 - rest $07 - vol $3 - note as5 $07 - vol $6 - note gs5 $07 - note g5 $2a - vibrato $01 - env $0 $00 - vol $3 - note g5 $0e - vibrato $e1 - env $0 $00 - vol $6 - note g5 $1c - note f5 $07 - rest $07 - vol $3 - note f5 $07 - vol $6 - note g5 $07 - note gs5 $31 - vol $3 - note gs5 $07 - vol $6 - note g5 $0e - note f5 $0e - note ds5 $07 - rest $07 - vol $3 - note ds5 $07 - vol $6 - note f5 $07 - note g5 $38 - note f5 $0e - note ds5 $0e - note d5 $07 - rest $07 - vol $3 - note d5 $07 - vol $6 - note e5 $07 - note fs5 $2a - note g5 $0e - note a5 $0e - note b5 $0e - note c6 $62 - note d6 $07 - note c6 $07 - note b5 $54 - vibrato $01 - env $0 $00 - vol $3 - note b5 $1c - vibrato $e1 - env $0 $00 - vol $6 - note c5 $07 - rest $07 - vol $3 - note c5 $07 - vol $6 - note g4 $03 - rest $04 - note g4 $2a - vol $3 - note g4 $07 - vol $6 - note c5 $03 - rest $04 - note c5 $07 - note d5 $07 - note e5 $07 - note f5 $07 - note g5 $31 - vibrato $01 - env $0 $00 - vol $3 - note g5 $0e - vol $1 - note g5 $07 - vibrato $e1 - env $0 $00 - vol $6 - note g5 $07 - rest $03 - vol $3 - note g5 $04 - vol $6 - note g5 $0e - note gs5 $07 - note as5 $07 - note c6 $38 - vibrato $01 - env $0 $00 - vol $3 - note c6 $0e - vibrato $e1 - env $0 $00 - vol $6 - note c6 $04 - note d6 $05 - note c6 $05 - note as5 $03 - rest $07 - vol $3 - note as5 $04 - vol $6 - note gs5 $03 - rest $07 - vol $3 - note gs5 $04 - vol $6 - note as5 $0e - rest $03 - vol $3 - note as5 $04 - vol $6 - note gs5 $07 - note g5 $2a - vibrato $01 - env $0 $00 - vol $3 - note g5 $0e - vibrato $e1 - env $0 $00 - vol $6 - note g5 $1c - note f5 $07 - rest $07 - vol $3 - note f5 $07 - vol $6 - note g5 $07 - note gs5 $1c - vol $3 - note gs5 $0e - vol $6 - note gs5 $04 - note as5 $05 - note gs5 $05 - note g5 $07 - rest $03 - vol $3 - note g5 $04 - vol $6 - note f5 $07 - rest $03 - vol $3 - note f5 $04 - vol $6 - note ds5 $07 - rest $03 - vol $3 - note ds5 $04 - vol $6 - note ds5 $07 - note f5 $07 - note g5 $1c - vol $3 - note g5 $0e - vol $6 - note g5 $04 - note gs5 $05 - note g5 $05 - note f5 $07 - rest $03 - vol $3 - note f5 $04 - vol $6 - note ds5 $07 - rest $03 - vol $3 - note ds5 $04 - vol $6 - note d5 $07 - rest $03 - vol $3 - note d5 $04 - vol $6 - note d5 $07 - note e5 $07 - note fs5 $07 - rest $03 - vol $3 - note fs5 $04 - vol $6 - note fs5 $07 - note g5 $07 - note a5 $07 - rest $03 - vol $3 - note a5 $04 - vol $6 - note a5 $07 - note b5 $07 - note c6 $07 - note b5 $07 - note c6 $07 - note d6 $07 - note ds6 $54 - vibrato $01 - env $0 $00 - vol $3 - note ds6 $0e - vibrato $e1 - env $0 $00 - vol $6 - note f6 $07 - note ds6 $07 - note d6 $46 - vibrato $01 - env $0 $00 - vol $3 - note d6 $1c - vol $1 - note d6 $0e - vibrato $e1 - env $0 $00 - vol $6 - note c6 $07 - rest $07 - vol $3 - note c6 $07 - vol $6 - note d6 $07 - note ds6 $23 - vol $3 - note ds6 $07 - vol $6 - note c6 $0e - note d6 $0e - note ds6 $0e - note d6 $07 - rest $07 - vol $3 - note d6 $07 - vol $6 - note as5 $07 - note g5 $2a - vol $3 - note g5 $0e - vol $6 - note g5 $1c - note gs5 $07 - rest $07 - vol $3 - note gs5 $07 - vol $6 - note as5 $07 - note c6 $23 - vol $3 - note c6 $07 - vol $6 - note gs5 $0e - note as5 $0e - note c6 $0e - note as5 $07 - rest $07 - vol $3 - note as5 $07 - vol $6 - note gs5 $07 - note g5 $2a - vol $3 - note g5 $0e - vol $6 - note g5 $07 - rest $03 - vol $3 - note g5 $04 - vol $6 - note gs5 $07 - note g5 $07 - note f5 $07 - rest $07 - vol $3 - note f5 $07 - vol $6 - note g5 $07 - note gs5 $23 - vol $3 - note gs5 $07 - vol $6 - note f5 $0e - note g5 $0e - note gs5 $0e - note g5 $15 - vol $3 - note g5 $07 - vol $6 - note ds5 $15 - vol $3 - note ds5 $07 - vol $6 - note c6 $1c - vol $3 - note c6 $07 - vol $6 - note c6 $07 - note d6 $07 - note ds6 $07 - note d6 $07 - rest $07 - vol $3 - note d6 $07 - vol $6 - note a5 $03 - rest $04 - note a5 $2a - vol $3 - note a5 $0e - vol $6 - note d6 $0e - note c6 $0e - note b5 $07 - rest $07 - vol $3 - note b5 $07 - vol $6 - note g5 $07 - note g6 $2a - note f6 $0e - note ds6 $0e - note d6 $0e - note ds6 $07 - rest $07 - vol $3 - note ds6 $07 - vol $6 - note f6 $07 - note g6 $23 - vol $3 - note g6 $07 - vol $6 - note ds6 $0e - note f6 $0e - note g6 $0e - note f6 $07 - rest $07 - vol $3 - note f6 $07 - vol $6 - note ds6 $07 - note d6 $2a - vol $3 - note d6 $0e - vol $6 - note d6 $1c - note c6 $07 - rest $07 - vol $3 - note c6 $07 - vol $6 - note d6 $07 - note ds6 $23 - vol $3 - note ds6 $07 - vol $6 - note c6 $07 - note d6 $07 - note ds6 $07 - note f6 $07 - note g6 $07 - note gs6 $07 - note as6 $38 - vibrato $01 - env $0 $00 - vol $3 - note as6 $0e - vol $1 - note as6 $0e - vibrato $e1 - env $0 $00 - vol $6 - note as5 $1c - vol $6 - note gs5 $07 - rest $07 - vol $3 - note gs5 $07 - vol $6 - note as5 $07 - note c6 $23 - vol $3 - note c6 $07 - vol $6 - note gs5 $0e - note as5 $0e - note c6 $0e - note g5 $0e - note fs5 $07 - note g5 $07 - note a5 $0e - note g5 $07 - note a5 $07 - note b5 $0e - note a5 $07 - note b5 $07 - note c6 $0e - vol $6 - note b5 $07 - note c6 $07 - note d6 $2a - vol $3 - note d6 $0e - vol $6 - note g6 $23 - note f6 $07 - note ds6 $07 - note d6 $07 - note c6 $38 - vibrato $01 - env $0 $00 - vol $3 - note c6 $1c - vol $1 - note c6 $0e - rest $0e - vibrato $e1 - env $0 $00 - goto musicf8e5b - cmdff - -musCredits2Channel0: - vol $0 - note gs3 $5a - vibrato $e1 - env $0 $00 - duty $01 - vol $6 - note e3 $09 - note f3 $09 - note g3 $09 - rest $04 - vol $3 - note g3 $05 - vol $6 - note g3 $09 - note a3 $09 - note as3 $12 - note a3 $06 - note as3 $06 - note a3 $06 - note g3 $12 - note f3 $12 - note e3 $12 - note d3 $12 - note c3 $12 - note d3 $12 - note e3 $09 - rest $04 - vol $3 - note e3 $09 - rest $05 - vol $6 - note d3 $09 - note e3 $90 - vol $4 - note e3 $24 - vol $2 - note e3 $24 - vol $6 - note gs3 $06 - note as3 $06 - note c4 $06 - note d4 $06 - note ds4 $06 - note f4 $06 - note g4 $09 - rest $04 - vol $3 - note g4 $09 - rest $05 - vol $6 - note f4 $09 - note ds4 $48 - vol $3 - note ds4 $12 - vol $6 - note ds4 $09 - note f4 $09 - note ds4 $12 - note f4 $12 - note g4 $12 - note gs4 $12 - note as4 $12 - note gs4 $12 - note as4 $12 - note c5 $12 - duty $02 - note b4 $08 - rest $04 - vol $3 - note b4 $08 - rest $04 - vol $1 - note b4 $08 - vol $6 - note g4 $20 - vol $3 - note g4 $0e - vol $6 - note d4 $03 - rest $04 - note d4 $03 - rest $04 - note g4 $0e - note d4 $03 - rest $04 - note d4 $03 - rest $04 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note d3 $07 - note e3 $07 - note f3 $07 - note g3 $07 - note a3 $07 - note as3 $07 - note b3 $07 - note a3 $07 - note b3 $07 - note c4 $07 - note d4 $07 - note e4 $07 - note f4 $07 - note g4 $07 -musicf923f: - rest $38 - vibrato $e1 - env $0 $00 - note c4 $07 - rest $03 - vol $3 - note c4 $07 - rest $04 - vol $1 - note c4 $07 - vol $6 - note g3 $2a - vibrato $01 - env $0 $00 - vol $3 - note g3 $0e - vibrato $e1 - env $0 $00 - vol $6 - note c4 $07 - note d4 $07 - note e4 $07 - note f4 $07 - note g4 $2a - vibrato $01 - env $0 $00 - vol $3 - note g4 $0e - vibrato $e1 - env $0 $00 - vol $6 - note g4 $25 - note gs4 $09 - note g4 $0a - note f4 $09 - note g4 $09 - note f4 $0a - note ds4 $09 - note f4 $09 - note ds4 $0a - note d4 $07 - rest $07 - vol $3 - note d4 $07 - vol $6 - note c4 $07 - note as3 $0e - note ds4 $07 - note f4 $07 - note g4 $0e - note ds4 $0e - note as3 $0e - note g3 $0e - rest $2a - note gs3 $07 - note as3 $07 - note c4 $38 - rest $2a - note ds4 $07 - note d4 $07 - note ds4 $38 - note a3 $38 - note b3 $1c - note c4 $1c - note d4 $0a - rest $04 - vibrato $00 - env $0 $02 - note g4 $03 - rest $01 - vol $5 - note g4 $04 - rest $01 - vol $4 - note g4 $03 - rest $02 - vibrato $00 - env $0 $00 - vol $6 - note g4 $0e - vibrato $00 - env $0 $02 - note c5 $03 - rest $01 - vol $5 - note c5 $04 - rest $01 - vol $4 - note c5 $03 - rest $02 - vibrato $00 - env $0 $00 - vol $6 - note c5 $0e - vibrato $00 - env $0 $02 - note d5 $03 - rest $01 - vol $5 - note d5 $04 - rest $01 - vol $4 - note d5 $03 - rest $02 - vibrato $00 - env $0 $00 - vol $6 - note d5 $0e - vibrato $00 - env $0 $02 - note g5 $03 - rest $01 - vol $5 - note g5 $04 - rest $01 - vol $4 - note g5 $03 - rest $02 - vibrato $00 - env $0 $00 - vol $6 - note g5 $0e - vibrato $00 - env $0 $02 - note d5 $03 - rest $01 - vol $5 - note d5 $04 - rest $01 - vol $4 - note d5 $03 - rest $02 - vibrato $00 - env $0 $00 - vol $6 - note d5 $0e - vibrato $00 - env $0 $02 - note c5 $03 - rest $01 - vol $5 - note c5 $04 - rest $01 - vol $4 - note c5 $03 - rest $02 - vibrato $00 - env $0 $00 - vol $6 - note c5 $0e - vibrato $00 - env $0 $02 - note g4 $03 - rest $01 - vol $5 - note g4 $04 - rest $01 - vol $4 - note g4 $03 - rest $02 - vibrato $00 - env $0 $00 - vol $6 - note g4 $0e - vibrato $00 - env $0 $02 - note d4 $03 - rest $01 - vol $5 - note d4 $04 - rest $01 - vol $4 - note d4 $03 - rest $3a - vibrato $e1 - env $0 $00 - vol $6 - note e4 $1c - note c4 $1c - note g3 $15 - note c4 $03 - rest $04 - note c4 $07 - note d4 $07 - note e4 $07 - note f4 $07 - note g4 $2a - vibrato $01 - env $0 $00 - vol $3 - note g4 $0e - vibrato $e1 - env $0 $00 - vol $6 - note g4 $2a - note gs4 $07 - note g4 $07 - note f4 $0e - note g4 $07 - note f4 $07 - note ds4 $0e - note f4 $07 - note ds4 $07 - note d4 $07 - rest $07 - vol $3 - note d4 $07 - vol $6 - note c4 $07 - note as3 $07 - rest $03 - vol $3 - note as3 $04 - vol $6 - note ds4 $07 - note f4 $07 - note g4 $0e - note ds4 $0e - note as3 $0e - note g3 $0e - rest $2a - note gs3 $07 - note as3 $07 - note c4 $1c - vol $3 - note c4 $1c - rest $2a - vol $6 - note c4 $07 - note d4 $07 - note ds4 $1c - vol $3 - note ds4 $1c - rest $1c - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $04 - vol $6 - note d4 $07 - note e4 $07 - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - vol $6 - note fs4 $07 - note gs4 $07 - note a4 $07 - note gs4 $07 - note a4 $07 - note b4 $07 - note g3 $07 - note fs3 $07 - note g3 $07 - note a3 $07 - note b3 $07 - note a3 $07 - note b3 $07 - note c4 $07 - note d4 $07 - note cs4 $07 - note d4 $07 - note ds4 $07 - note f4 $07 - note e4 $07 - note f4 $07 - note g4 $07 - vol $6 - note gs4 $07 - note g4 $07 - note gs4 $07 - note as4 $07 - note c5 $07 - note b4 $07 - note c5 $07 - note d5 $07 - note ds5 $07 - note d5 $07 - note ds5 $07 - note f5 $07 - note g5 $03 - rest $04 - note g5 $07 - note a5 $07 - note b5 $07 - note ds5 $07 - rest $07 - vol $3 - note ds5 $07 - vol $6 - note f5 $07 - note g5 $1c - vol $3 - note g5 $0e - vol $6 - note ds5 $0e - note f5 $0e - note g5 $0e - note f5 $07 - rest $07 - vol $3 - note f5 $07 - vol $6 - note d5 $07 - note as4 $0e - note d5 $07 - note ds5 $07 - note f5 $0e - note d5 $0e - vol $6 - note as4 $0e - note d5 $0e - note c5 $38 - note d5 $1c - note c5 $1c - note d5 $07 - rest $07 - vol $3 - note d5 $07 - vol $6 - note c5 $07 - note as4 $0e - note d5 $07 - note c5 $07 - note d5 $0e - note as4 $0e - note g4 $0e - note d4 $0e - note f4 $1c - vol $3 - note f4 $0e - vol $6 - note gs4 $07 - note g4 $07 - note gs4 $0e - note g4 $0e - note f4 $0e - note g4 $07 - note gs4 $07 - note g4 $07 - note f4 $07 - note ds4 $1c - note e4 $07 - note ds4 $07 - note d4 $07 - note cs4 $07 - note c4 $07 - rest $03 - vol $3 - note c4 $04 - vol $6 - note c4 $07 - note b3 $07 - note as3 $0e - note a3 $1c - vol $3 - note a3 $0e - vibrato $00 - env $0 $02 - vol $6 - note d4 $03 - rest $01 - note d4 $04 - rest $01 - note d4 $03 - rest $02 - vibrato $e1 - env $0 $00 - note fs4 $0e - note a4 $0e - note fs5 $0e - note ds5 $0e - note g3 $07 - note gs3 $07 - note g3 $07 - note fs3 $07 - note g3 $07 - note a3 $07 - note b3 $07 - note c4 $07 - note d4 $07 - note ds4 $07 - note d4 $07 - note cs4 $07 - note d4 $07 - note ds4 $07 - note f4 $07 - note fs4 $07 - note g4 $23 - rest $07 - note g4 $03 - rest $04 - note g4 $03 - rest $04 - note g4 $2a - vibrato $01 - env $0 $00 - vol $3 - note g4 $0e - vibrato $e1 - env $0 $00 - vol $6 - note g4 $1c - vol $3 - note g4 $0e - vol $6 - note g4 $07 - note c5 $07 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note g4 $0e - note gs4 $0e - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note g4 $38 - note f4 $1c - note c5 $1c - note as4 $1c - vol $3 - note as4 $0e - vol $6 - note as4 $07 - note c5 $07 - note cs5 $07 - note c5 $07 - note as4 $07 - note gs4 $07 - note g4 $07 - note f4 $07 - note e4 $07 - note g4 $07 - note f4 $07 - rest $07 - vol $3 - note f4 $07 - vol $6 - note g4 $07 - note gs4 $0e - note f4 $07 - note g4 $07 - note gs4 $07 - rest $03 - vol $3 - note gs4 $04 - vol $6 - note f4 $0e - note g4 $0e - note gs4 $0e - note g4 $0e - note fs4 $07 - note f4 $07 - note e4 $0e - note ds4 $07 - note d4 $07 - note cs4 $0e - note c4 $07 - note b3 $07 - note as3 $0e - note a3 $07 - note gs3 $07 - note f3 $18 - rest $04 - note f3 $09 - note g3 $09 - note gs3 $0a - note g3 $0e - vol $3 - note g3 $0e - vol $6 - note g3 $09 - note a3 $09 - note b3 $0a - note c4 $0e - vol $3 - note c4 $0e - vol $6 - note g3 $0a - rest $04 - note g3 $03 - rest $04 - note g3 $03 - rest $04 - note c4 $1c - vibrato $01 - env $0 $00 - vol $3 - note c4 $0e - rest $0e - vibrato $e1 - env $0 $00 - goto musicf923f - cmdff - -musCredits2Channel4: - rest $09 - duty $0f - note c4 $04 - rest $17 - note as3 $09 - note c4 $b4 - rest $12 - note c4 $04 - rest $0e - note c4 $04 - rest $0e - note c4 $04 - rest $05 - duty $06 - note as2 $51 - rest $09 - note as2 $09 - note a2 $09 - note as2 $12 - note a2 $09 - note g2 $09 - note a2 $12 - note g2 $09 - note f2 $09 - note g2 $12 - note f2 $09 - note e2 $09 - note d2 $09 - note e2 $09 - note f2 $09 - note g2 $09 - note f2 $09 - note g2 $09 - note gs2 $09 - note as2 $09 - note gs2 $2d - note c3 $09 - note ds3 $09 - note g3 $09 - note gs3 $09 - note g3 $09 - note gs3 $09 - note as3 $09 - note c4 $09 - note as3 $09 - note c4 $09 - note d4 $09 - note ds4 $09 - note d4 $09 - note c4 $09 - note as3 $09 - note gs3 $09 - note g3 $09 - note f3 $09 - note ds3 $09 - note d3 $09 - note c3 $09 - note as2 $09 - note gs2 $09 - note g2 $09 - note f2 $09 - note ds2 $09 - note d2 $09 - note g2 $10 - duty $0f - note g2 $08 - rest $08 - duty $06 - note g2 $10 - duty $0f - note g2 $08 - rest $08 - duty $06 - note a2 $0e - duty $0f - note a2 $07 - rest $07 - duty $06 - note a2 $0e - duty $0f - note a2 $07 - rest $07 - duty $06 - note as2 $0e - duty $0f - note as2 $07 - rest $07 - duty $06 - note as2 $0e - duty $0f - note as2 $07 - rest $07 - duty $06 - note b2 $0e - duty $0f - note b2 $07 - rest $07 - duty $06 - note g2 $15 - duty $0f - note g2 $07 -musicf969f: - duty $04 - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note as2 $07 - duty $0f - note as2 $07 - rest $0e - duty $04 - note as2 $07 - duty $0f - note as2 $07 - rest $0e - duty $04 - note as2 $07 - duty $0f - note as2 $07 - rest $0e - duty $04 - note as2 $07 - duty $0f - note as2 $07 - rest $0e - duty $04 - note gs2 $07 - duty $0f - note gs2 $07 - rest $0e - duty $04 - note gs2 $07 - duty $0f - note gs2 $07 - rest $0e - duty $04 - note as2 $07 - duty $0f - note as2 $07 - rest $0e - duty $04 - note as2 $07 - duty $0f - note as2 $07 - rest $0e - duty $04 - note ds2 $07 - duty $0f - note ds2 $07 - rest $0e - duty $04 - note ds2 $07 - duty $0f - note ds2 $07 - rest $0e - duty $04 - note ds2 $07 - duty $0f - note ds2 $07 - rest $0e - duty $04 - note ds2 $07 - duty $0f - note ds2 $07 - rest $0e - duty $04 - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $04 - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $04 - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $04 - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $04 - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note d3 $07 - duty $0f - note d3 $07 - rest $0e - duty $04 - note d3 $07 - duty $0f - note d3 $07 - rest $0e - duty $04 - note d3 $07 - duty $0f - note d3 $07 - rest $0e - duty $04 - note d3 $07 - duty $0f - note d3 $07 - rest $0e - duty $04 - note g2 $1c - duty $0f - note g2 $07 - rest $07 - duty $04 - note g2 $03 - duty $0f - note g2 $04 - duty $04 - note g2 $03 - duty $0f - note g2 $04 - duty $04 - note g2 $03 - duty $0f - note g2 $04 - rest $07 - duty $04 - note g2 $0e - duty $0f - note g2 $07 - rest $07 - duty $04 - note g2 $03 - duty $0f - note g2 $04 - rest $07 - duty $04 - note g2 $11 - duty $0f - note g2 $07 - rest $04 - duty $04 - note g2 $11 - duty $0f - note g2 $07 - rest $04 - duty $04 - note a2 $11 - duty $0f - note a2 $07 - rest $04 - duty $04 - note b2 $11 - duty $0f - note b2 $07 - rest $04 - duty $04 - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note g2 $07 - duty $0f - note g2 $07 - rest $0e - duty $04 - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note g2 $07 - duty $0f - note g2 $07 - rest $0e - duty $04 - note as2 $07 - duty $0f - note as2 $07 - rest $0e - duty $04 - note f2 $07 - duty $0f - note f2 $07 - rest $0e - duty $04 - note as2 $07 - duty $0f - note as2 $07 - rest $0e - duty $04 - note f2 $07 - duty $0f - note f2 $07 - rest $0e - duty $04 - note gs2 $07 - duty $0f - note gs2 $07 - rest $0e - duty $04 - note gs2 $18 - duty $0f - note gs2 $04 - duty $04 - note as2 $07 - rest $15 - note as2 $18 - duty $0f - note as2 $04 - duty $04 - note ds3 $07 - duty $0f - note ds3 $07 - rest $0e - duty $04 - note as2 $07 - duty $0f - note as2 $07 - rest $0e - duty $04 - note ds3 $07 - duty $0f - note ds3 $07 - rest $0e - duty $04 - note ds3 $1c - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $04 - note gs2 $07 - duty $0f - note gs2 $07 - rest $0e - duty $04 - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $04 - note cs3 $1c - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note c3 $18 - duty $0f - note c3 $04 - duty $04 - note d3 $07 - duty $0f - note d3 $07 - rest $0e - duty $04 - note a2 $07 - duty $0f - note a2 $07 - rest $0e - duty $04 - note d3 $07 - duty $0f - note d3 $07 - rest $0e - duty $04 - note a2 $03 - duty $0f - note a2 $04 - rest $07 - duty $04 - note a2 $07 - note gs2 $07 - note g2 $1c - duty $0f - note g2 $07 - rest $07 - duty $04 - note g2 $03 - duty $0f - note g2 $04 - duty $04 - note g2 $03 - duty $0f - note g2 $04 - duty $04 - note g2 $03 - duty $0f - note g2 $04 - rest $07 - duty $04 - note g2 $11 - duty $0f - note g2 $04 - rest $07 - duty $04 - note g2 $03 - duty $0f - note g2 $04 - rest $07 - duty $04 - note g2 $1c - note a2 $1c - note as2 $1c - note b2 $1c - note c3 $1c - duty $0f - note c3 $07 - rest $07 - duty $04 - note c3 $03 - duty $0f - note c3 $04 - duty $04 - note c3 $03 - duty $0f - note c3 $04 - duty $04 - note c3 $03 - duty $0f - note c3 $04 - rest $07 - duty $04 - note c3 $11 - duty $0f - note c3 $07 - rest $04 - duty $04 - note c3 $07 - duty $0f - note c3 $07 - duty $04 - note g2 $1c - duty $0f - note g2 $07 - rest $07 - duty $04 - note g2 $03 - duty $0f - note g2 $04 - duty $04 - note g2 $03 - duty $0f - note g2 $04 - duty $04 - note g2 $03 - duty $0f - note g2 $04 - rest $07 - duty $04 - note g2 $11 - duty $0f - note g2 $07 - rest $04 - duty $04 - note g2 $07 - duty $0f - note g2 $07 - duty $04 - note gs2 $1c - duty $0f - note gs2 $07 - rest $07 - duty $04 - note gs2 $03 - duty $0f - note gs2 $04 - duty $04 - note gs2 $03 - duty $0f - note gs2 $04 - duty $04 - note as2 $03 - duty $0f - note as2 $04 - rest $07 - duty $04 - note as2 $11 - duty $0f - note as2 $07 - rest $04 - duty $04 - note as2 $07 - duty $0f - note as2 $07 - duty $04 - note ds2 $07 - duty $0f - note ds2 $07 - rest $0e - duty $04 - note ds2 $07 - duty $0f - note ds2 $07 - rest $0e - duty $04 - note ds2 $07 - duty $0f - note ds2 $07 - rest $0e - duty $04 - note ds2 $1c - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $04 - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $04 - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $04 - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $04 - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $04 - note c3 $1c - note d3 $07 - duty $0f - note d3 $07 - rest $0e - duty $04 - note d3 $07 - duty $0f - note d3 $07 - rest $0e - duty $04 - note d3 $07 - duty $0f - note d3 $07 - rest $0e - duty $04 - note d3 $07 - duty $0f - note d3 $07 - rest $0e - duty $04 - note g2 $18 - duty $0f - note g2 $04 - duty $04 - note a2 $18 - duty $0f - note a2 $04 - duty $04 - note as2 $18 - duty $0f - note as2 $04 - duty $04 - note b2 $18 - duty $0f - note b2 $04 - duty $04 - note c3 $1f - duty $0f - note c3 $07 - rest $04 - duty $04 - note c3 $03 - duty $0f - note c3 $04 - duty $04 - note c3 $03 - duty $0f - note c3 $04 - duty $04 - note c3 $03 - duty $0f - note c3 $04 - rest $07 - duty $04 - note c3 $15 - duty $0f - note c3 $07 - duty $04 - note c3 $07 - duty $0f - note c3 $07 - duty $04 - note as2 $1f - duty $0f - note as2 $07 - rest $04 - duty $04 - note as2 $03 - duty $0f - note as2 $04 - duty $04 - note as2 $03 - duty $0f - note as2 $04 - duty $04 - note as2 $03 - duty $0f - note as2 $04 - rest $07 - duty $04 - note as2 $15 - duty $0f - note as2 $07 - duty $04 - note as2 $07 - duty $0f - note as2 $07 - duty $04 - note gs2 $1f - duty $0f - note gs2 $07 - rest $04 - duty $04 - note gs2 $03 - duty $0f - note gs2 $04 - duty $04 - note gs2 $03 - duty $0f - note gs2 $04 - duty $04 - note as2 $07 - duty $0f - note as2 $07 - duty $04 - note as2 $11 - duty $0f - note as2 $07 - rest $04 - duty $04 - note as2 $07 - duty $0f - note as2 $07 - duty $04 - note g2 $1f - duty $0f - note g2 $07 - rest $04 - duty $04 - note g2 $03 - duty $0f - note g2 $04 - duty $04 - note g2 $03 - duty $0f - note g2 $04 - duty $04 - note cs3 $03 - duty $0f - note cs3 $04 - rest $07 - duty $04 - note cs3 $11 - duty $0f - note cs3 $07 - rest $04 - duty $04 - note cs3 $07 - duty $0f - note cs3 $07 - duty $04 - note f2 $07 - duty $0f - note f2 $07 - rest $0e - duty $04 - note f2 $07 - duty $0f - note f2 $07 - rest $0e - duty $04 - note f2 $07 - duty $0f - note f2 $07 - rest $0e - duty $04 - note f2 $15 - duty $0f - note f2 $07 - duty $04 - note c3 $1c - note b2 $1c - note as2 $1c - note a2 $1c - note gs2 $15 - duty $0f - note gs2 $07 - duty $04 - note gs2 $15 - duty $0f - note gs2 $07 - duty $04 - note g2 $18 - duty $0f - note g2 $04 - duty $04 - note g2 $18 - duty $0f - note g2 $04 - duty $04 - note c3 $0a - duty $0f - note c3 $07 - rest $0b - duty $04 - note g2 $0a - duty $0f - note g2 $07 - rest $0b - duty $04 - note c3 $1c - duty $0f - note c3 $07 - rest $15 - goto musicf969f - cmdff - -musCredits2Channel6: - rest $ff - rest $ff - rest $ff - rest $db - vol $4 - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $0e - vol $3 - note $26 $04 - vol $3 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $03 - vol $3 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - note $26 $03 - vol $3 - note $26 $04 - vol $3 - note $26 $03 - vol $4 - note $26 $04 -musicf9c2e: - vol $3 - note $26 $1c - vol $4 - note $26 $1c - note $26 $1c - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $1c - note $26 $1c - note $26 $1c - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $1c - note $26 $1c - note $26 $1c - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $1c - note $26 $1c - note $26 $1c - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $1c - note $26 $1c - note $26 $1c - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $1c - note $26 $1c - note $26 $1c - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $1c - note $26 $1c - note $26 $1c - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $2a - vol $3 - note $26 $04 - vol $3 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $0e - note $26 $1c - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $1c - note $26 $1c - note $26 $1c - note $26 $0e - vol $4 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $1c - note $26 $1c - note $26 $1c - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $1c - note $26 $1c - note $26 $1c - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $1c - note $26 $1c - note $26 $1c - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $1c - note $26 $1c - note $26 $1c - note $26 $04 - vol $2 - note $26 $05 - vol $3 - note $26 $05 - vol $3 - note $26 $04 - vol $3 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $1c - note $26 $1c - note $26 $1c - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $1c - note $26 $1c - note $26 $1c - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $1c - note $26 $1c - note $26 $1c - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $1c - note $26 $0e - note $26 $04 - vol $3 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $0e - note $26 $1c - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - note $26 $1c - note $26 $1c - note $26 $1c - note $26 $04 - vol $3 - note $26 $05 - note $26 $05 - note $26 $04 - vol $3 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $2a - vol $3 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - note $26 $04 - vol $4 - note $26 $0e - note $26 $1c - note $26 $0e - note $26 $2a - vol $3 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - note $26 $04 - vol $4 - note $26 $0e - note $26 $0e - note $26 $0e - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $2a - vol $3 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - note $26 $04 - vol $4 - note $26 $0e - note $26 $1c - note $26 $0e - note $26 $2a - vol $3 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - note $26 $04 - vol $4 - note $26 $0e - note $26 $0e - note $26 $0e - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $1c - note $26 $0e - vol $3 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - note $26 $04 - vol $4 - note $26 $0e - note $26 $1c - note $26 $0e - note $26 $1c - note $26 $0e - vol $3 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - note $26 $04 - vol $4 - note $26 $0e - note $26 $1c - note $26 $0e - note $26 $1c - note $26 $0e - vol $3 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - note $26 $04 - vol $4 - note $26 $0e - note $26 $1c - note $26 $0e - note $26 $0e - vol $3 - note $26 $03 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $0e - vol $3 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - note $26 $04 - vol $4 - note $26 $0e - vol $3 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - note $26 $03 - vol $3 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - note $26 $04 - vol $4 - note $26 $1c - note $26 $0e - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $0e - note $26 $1c - note $26 $0e - note $26 $1c - note $26 $0e - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $0e - note $26 $1c - note $26 $0e - note $26 $1c - note $26 $0e - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $0e - note $26 $1c - note $26 $0e - note $26 $1c - note $26 $0e - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $0e - note $26 $1c - note $26 $0e - note $26 $1c - note $26 $0e - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $0e - note $26 $1c - note $26 $0e - note $26 $0e - vol $3 - note $26 $04 - vol $3 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $0e - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $0e - vol $4 - note $26 $03 - vol $3 - note $26 $04 - vol $3 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $1c - note $26 $0e - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $0e - note $26 $1c - note $26 $0e - note $26 $1c - note $26 $0e - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $0e - note $26 $0e - note $26 $1c - goto musicf9c2e - cmdff diff --git a/audio/common/mus/disaster.s b/audio/common/mus/disaster.s deleted file mode 100644 index c0d946f5d..000000000 --- a/audio/common/mus/disaster.s +++ /dev/null @@ -1,1026 +0,0 @@ -musDisasterStart: - -musDisasterChannel1: - vibrato $e1 - env $0 $00 - duty $02 -musicf47e4: - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $04 - vol $6 - note d4 $03 - vol $3 - note d4 $04 - vol $6 - note d4 $03 - vol $3 - note d4 $04 - vol $6 - note f4 $54 - vibrato $01 - env $0 $00 - vol $5 - note f4 $1c - vol $1 - note f4 $1c - vibrato $e1 - env $0 $00 - vol $6 - note e4 $2a - vol $3 - note e4 $0e - vol $6 - note ds4 $0e - note a3 $07 - rest $03 - vol $3 - note a3 $04 - note ds4 $0e - note a3 $07 - rest $03 - vol $1 - note a3 $04 - note ds4 $0e - note a3 $07 - rest $03 - vol $0 - note a3 $04 - note ds4 $0e - note a3 $07 - rest $03 - vol $0 - note a3 $04 - vol $6 - note ds4 $0e - note a4 $07 - rest $03 - vol $3 - note a4 $04 - vol $5 - note ds5 $0e - note a5 $07 - rest $03 - vol $2 - note a5 $04 - vol $3 - note ds4 $0e - note a4 $07 - rest $03 - vol $1 - note a4 $04 - vol $2 - note ds5 $0e - note a5 $07 - rest $03 - vol $1 - note a5 $04 - vol $6 - note f4 $07 - rest $03 - vol $3 - note f4 $04 - vol $6 - note f4 $03 - vol $3 - note f4 $04 - vol $6 - note f4 $03 - vol $3 - note f4 $04 - vol $6 - note gs4 $54 - vibrato $01 - env $0 $00 - vol $4 - note gs4 $38 - vol $2 - note gs4 $1c - vibrato $e1 - env $0 $00 - vol $6 - note g4 $0e - note gs4 $07 - note g4 $07 - note fs4 $0e - note cs4 $07 - rest $03 - vol $3 - note cs4 $04 - note fs4 $0e - note cs4 $07 - rest $03 - vol $1 - note cs4 $04 - note fs4 $0e - note cs4 $07 - rest $03 - vol $0 - note cs4 $04 - note fs4 $0e - note cs4 $07 - rest $03 - vol $0 - note cs4 $04 - vol $6 - note g4 $0e - note cs4 $07 - rest $03 - vol $3 - note cs4 $04 - note g4 $0e - note cs4 $07 - rest $03 - vol $1 - note cs4 $04 - vol $6 - note g4 $0e - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - note g4 $0e - note cs5 $07 - rest $03 - vol $1 - note cs5 $04 - vol $6 - note a4 $07 - note e5 $07 - note a5 $07 - rest $03 - vol $3 - note a5 $04 - vol $6 - note a4 $07 - note e5 $07 - note a5 $07 - rest $03 - vol $3 - note a5 $04 - vol $6 - note as4 $07 - note f5 $07 - note as5 $07 - rest $03 - vol $3 - note as5 $07 - rest $19 - vol $6 - note a4 $07 - note e5 $07 - note a5 $07 - rest $03 - vol $3 - note a5 $04 - vol $6 - note a4 $07 - note e5 $07 - note a5 $07 - rest $03 - vol $3 - note a5 $04 - vol $6 - note gs5 $07 - note gs4 $03 - rest $04 - note gs4 $07 - rest $03 - vol $3 - note gs4 $07 - rest $19 - vol $6 - note a4 $07 - note e5 $07 - vol $6 - note a5 $07 - rest $03 - vol $3 - note a5 $04 - vol $6 - note as4 $07 - note f5 $07 - note as5 $07 - rest $03 - vol $3 - note as5 $04 - vol $6 - note b4 $07 - note fs5 $07 - note b5 $07 - rest $03 - vol $3 - note b5 $04 - vol $6 - note c5 $07 - note g5 $07 - note c6 $07 - rest $03 - vol $3 - note c6 $04 - vol $6 - note d6 $07 - note cs6 $07 - note ds6 $07 - note d6 $07 - note cs6 $07 - note c6 $07 - note d6 $07 - note cs6 $07 - note c6 $07 - note b5 $07 - note cs6 $07 - note c6 $07 - note b5 $07 - note as5 $07 - note c6 $07 - note b5 $07 - goto musicf47e4 - cmdff - -musDisasterChannel0: - vibrato $e1 - env $0 $00 - duty $02 -musicf497c: - vol $6 - note a2 $07 - rest $07 - note b2 $07 - vol $3 - note a2 $07 - vol $6 - note c3 $07 - vol $3 - note b2 $07 - vol $6 - note d3 $07 - vol $3 - note c3 $07 - vol $6 - note ds3 $07 - vol $3 - note d3 $07 - vol $6 - note d3 $07 - vol $3 - note ds3 $07 - vol $6 - note c3 $07 - vol $3 - note d3 $07 - vol $6 - note b2 $07 - vol $3 - note c3 $07 - vol $6 - note a2 $07 - vol $3 - note b2 $07 - vol $6 - note b2 $07 - vol $3 - note a2 $07 - vol $6 - note c3 $07 - vol $3 - note b2 $07 - vol $6 - note d3 $07 - vol $3 - note c3 $07 - vol $6 - note ds3 $07 - vol $3 - note d3 $07 - vol $6 - note d3 $07 - vol $3 - note ds3 $07 - vol $6 - note c3 $07 - vol $3 - note d3 $07 - vol $6 - note b2 $07 - vol $3 - note c3 $07 - vol $6 - note a2 $07 - vol $3 - note b2 $07 - vol $6 - note b2 $07 - vol $3 - note a2 $07 - vol $6 - note c3 $07 - vol $3 - note b2 $07 - vol $6 - note d3 $07 - vol $3 - note c3 $07 - vol $6 - note ds3 $07 - vol $3 - note d3 $07 - vol $6 - note d3 $07 - vol $3 - note ds3 $07 - vol $6 - note c3 $07 - vol $3 - note d3 $07 - vol $6 - note b2 $07 - vol $3 - note c3 $07 - vol $6 - note a2 $07 - vol $3 - note b2 $07 - vol $6 - note b2 $07 - vol $3 - note a2 $07 - vol $6 - note c3 $07 - vol $3 - note b2 $07 - vol $6 - note d3 $07 - vol $3 - note c3 $07 - vol $6 - note ds3 $07 - vol $3 - note d3 $07 - vol $6 - note d3 $07 - vol $3 - note ds3 $07 - vol $6 - note c3 $07 - vol $3 - note d3 $07 - vol $6 - note b2 $07 - vol $3 - note c3 $07 - vol $6 - note a2 $07 - vol $3 - note b2 $07 - vol $6 - note b2 $07 - vol $3 - note a2 $07 - vol $6 - note c3 $07 - vol $3 - note b2 $07 - vol $6 - note d3 $07 - vol $3 - note c3 $07 - vol $6 - note ds3 $07 - vol $3 - note d3 $07 - vol $6 - note d3 $07 - vol $3 - note ds3 $07 - vol $6 - note c3 $07 - vol $3 - note d3 $07 - vol $6 - note b2 $07 - vol $3 - note c3 $07 - vol $6 - note a2 $07 - vol $3 - note b2 $07 - vol $6 - note b2 $07 - vol $3 - note a2 $07 - vol $6 - note c3 $07 - vol $3 - note b2 $07 - vol $6 - note d3 $07 - vol $3 - note c3 $07 - vol $6 - note ds3 $07 - vol $3 - note d3 $07 - vol $6 - note d3 $07 - vol $3 - note ds3 $07 - vol $6 - note c3 $07 - vol $3 - note d3 $07 - vol $6 - note b2 $07 - vol $3 - note c3 $07 - vol $6 - note a2 $07 - vol $3 - note b2 $07 - vol $6 - note b2 $07 - vol $3 - note a2 $07 - vol $6 - note c3 $07 - vol $3 - note b2 $07 - vol $6 - note d3 $07 - vol $3 - note c3 $07 - vol $6 - note ds3 $07 - vol $3 - note d3 $07 - vol $6 - note d3 $07 - vol $3 - note ds3 $07 - vol $6 - note c3 $07 - vol $3 - note d3 $07 - vol $6 - note b2 $07 - vol $3 - note c3 $07 - vol $6 - note a2 $07 - vol $3 - note b2 $07 - vol $6 - note b2 $07 - vol $3 - note a2 $07 - vol $6 - note c3 $07 - vol $3 - note b2 $07 - vol $6 - note d3 $07 - vol $3 - note c3 $07 - vol $6 - note ds3 $07 - vol $3 - note d3 $07 - vol $6 - note d3 $07 - vol $3 - note ds3 $07 - vol $6 - note c3 $07 - vol $3 - note d3 $07 - vol $6 - note b2 $07 - vol $3 - note c3 $07 - vol $6 - note cs3 $07 - vol $3 - note b2 $07 - vol $6 - note ds3 $07 - note e3 $07 - note cs3 $07 - note e3 $07 - note ds3 $07 - note e3 $07 - note d3 $07 - note f3 $07 - note e3 $07 - note f3 $07 - note d3 $07 - note f3 $07 - note e3 $07 - note f3 $07 - note cs3 $07 - note e3 $07 - note ds3 $07 - note e3 $07 - note cs3 $07 - note e3 $07 - note ds3 $07 - note e3 $07 - note c3 $07 - note ds3 $07 - note d3 $07 - note ds3 $07 - note c3 $07 - note ds3 $07 - note d3 $07 - note ds3 $07 - note cs3 $07 - note e3 $07 - note ds3 $07 - note e3 $07 - note d3 $07 - note f3 $07 - note e3 $07 - note f3 $07 - note ds3 $07 - note fs3 $07 - note f3 $07 - note fs3 $07 - note e3 $07 - note g3 $07 - vol $6 - note fs3 $07 - note g3 $07 - note as5 $07 - note a5 $07 - note b5 $07 - note as5 $07 - note a5 $07 - note gs5 $07 - note as5 $07 - note a5 $07 - note gs5 $07 - note g5 $07 - note a5 $07 - note gs5 $07 - note g5 $07 - note fs5 $07 - note gs5 $07 - note g5 $07 - goto musicf497c - cmdff - -musDisasterChannel4: -musicf4b82: - duty $0e - note d2 $0e - note e2 $0e - note f2 $0e - note g2 $0e - note gs2 $0e - note g2 $0e - note f2 $0e - note e2 $0e - note d2 $0e - note e2 $0e - note f2 $0e - note g2 $0e - note gs2 $0e - note g2 $0e - note f2 $0e - note e2 $0e - note d2 $0e - note e2 $0e - note f2 $0e - note g2 $0e - note gs2 $0e - note g2 $0e - note f2 $0e - note e2 $0e - note d2 $0e - note e2 $0e - note f2 $0e - note g2 $0e - note gs2 $0e - note g2 $0e - note f2 $0e - note e2 $0e - note d2 $0e - note e2 $0e - note f2 $0e - note g2 $0e - note gs2 $0e - note g2 $0e - note f2 $0e - note e2 $0e - note d2 $0e - note e2 $0e - note f2 $0e - note g2 $0e - note gs2 $0e - note g2 $0e - note f2 $0e - note e2 $0e - note d2 $0e - note e2 $0e - note f2 $0e - note g2 $0e - note gs2 $0e - note g2 $0e - note f2 $0e - note e2 $0e - note d2 $0e - note e2 $0e - note f2 $0e - note g2 $0e - note gs2 $0e - note g2 $0e - note f2 $0e - note e2 $0e - note a1 $03 - rest $04 - note a1 $03 - rest $0b - note a1 $03 - rest $04 - note a1 $03 - rest $04 - note a1 $07 - rest $07 - note a1 $03 - rest $04 - note as1 $03 - rest $04 - note as1 $07 - rest $07 - note as1 $03 - rest $04 - note as1 $03 - rest $04 - note as1 $02 - rest $05 - note as1 $02 - rest $05 - note as1 $03 - rest $04 - note a1 $03 - rest $04 - note a1 $03 - rest $0b - note a1 $03 - rest $04 - note a1 $03 - rest $04 - note a1 $07 - rest $07 - note a1 $03 - rest $04 - note gs1 $03 - rest $04 - note gs1 $07 - rest $07 - note gs1 $03 - rest $04 - note gs1 $03 - rest $04 - note gs1 $02 - rest $05 - note gs1 $02 - rest $05 - note gs1 $03 - rest $04 - note a1 $03 - rest $04 - note a1 $07 - rest $07 - note a1 $03 - rest $04 - note as1 $03 - rest $04 - note as1 $07 - rest $07 - note as1 $03 - rest $04 - note b1 $03 - rest $04 - note b1 $07 - rest $07 - note b1 $03 - rest $04 - note c2 $03 - rest $04 - note c2 $07 - rest $07 - note c2 $07 - note cs2 $07 - note d2 $07 - note c2 $07 - note cs2 $07 - note b1 $07 - note c2 $07 - note as1 $07 - note b1 $07 - note a1 $07 - note as1 $07 - note gs1 $07 - note a1 $07 - note g1 $07 - note gs1 $07 - note fs1 $07 - note g1 $07 - goto musicf4b82 - cmdff - -musDisasterChannel6: -musicf4cbe: - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $3 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $3 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $3 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $3 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $3 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $3 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $3 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $3 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $3 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - vol $2 - note $2a $07 - vol $2 - note $2a $07 - note $2a $07 - note $2a $07 - vol $4 - note $26 $07 - vol $3 - note $26 $0e - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $3 - note $26 $0e - note $26 $07 - vol $4 - note $26 $07 - vol $3 - note $26 $0e - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - note $26 $07 - vol $3 - note $26 $0e - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $3 - note $26 $0e - note $26 $07 - vol $4 - note $26 $07 - vol $3 - note $26 $0e - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - note $26 $07 - vol $3 - note $26 $0e - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $3 - note $26 $0e - note $26 $07 - vol $4 - note $26 $07 - vol $3 - note $26 $0e - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - note $26 $07 - vol $3 - note $26 $0e - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $3 - note $26 $0e - note $26 $07 - vol $4 - note $26 $07 - vol $3 - note $26 $0e - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - goto musicf4cbe - cmdff diff --git a/audio/common/mus/essence.s b/audio/common/mus/essence.s deleted file mode 100644 index 6499ac3a8..000000000 --- a/audio/common/mus/essence.s +++ /dev/null @@ -1,345 +0,0 @@ -musEssenceStart: - -musEssenceChannel1: -; Measure 1 - vibrato $d1 - env $0 $00 - duty $02 - vol $5 - note d7 $02 - vol $4 - note b6 $02 - vol $4 - note g6 $02 - note f6 $02 - vol $4 - note d6 $02 - note b5 $02 - vol $4 - note a5 $02 - vol $4 - note f5 $02 - vol $4 - note d5 $02 - vol $3 - note b4 $02 - vol $3 - note g4 $02 - vol $3 - note f4 $01 - rest $01 - - duty $01 - vol $6 - note b4 $04 - rest $01 - vol $3 - note b4 $03 - - vol $6 - note b4 $04 - rest $01 - vol $3 - note b4 $03 - - vol $6 - note c5 $04 - rest $01 - vol $3 - note c5 $03 - - vol $6 - note d5 $10 -; Measure 2 - vol $3 - note b4 $04 - note d5 $04 - - vol $6 - note g5 $10 - note gs5 $04 - note a5 $04 - note as5 $0c - vol $3 - note fs5 $04 - - vol $6 - note gs5 $04 - vol $3 - note as5 $04 - - vol $6 - note fs5 $08 -; Measure 3 - note cs5 $04 - vol $3 - note fs5 $04 - - vol $6 - note f5 $04 - vol $3 - note cs5 $04 - - vol $6 - note ds5 $14 - note f5 $02 - note fs5 $02 - note gs5 $0c - vol $3 - note ds5 $04 - - vol $6 - note gs5 $04 - note as5 $04 -; Measure 4 - note b5 $08 - note a5 $04 - vol $3 - note b5 $04 - - vol $6 - note g5 $04 - vol $3 - note a5 $04 - - vol $6 - note d6 $08 - note cs6 $04 - vol $3 - note g5 $04 - - vol $6 - note b5 $04 - vol $3 - note d6 $04 - - vol $6 - note cs6 $08 - note b5 $04 - vol $3 - note cs6 $04 -; Measure 5 - vol $6 - note a5 $04 - vol $3 - note b5 $04 - - vol $6 - note e6 $08 - note cs6 $04 - note a5 $04 - - note gs5 $04 - note e5 $04 - note b4 $04 - note cs5 $04 - - note ds5 $04 - note fs5 $04 - note b5 $04 - note cs6 $04 - - note ds6 $04 - note e6 $04 -; Measure 6 - note ds6 $04 - note e6 $04 - note ds6 $04 - note e6 $04 - note fs6 $27 - rest $01 - vibrato $01 - env $0 $00 - vol $3 - note fs6 $04 - rest $01 - vol $2 - note fs6 $04 - rest $01 - vol $1 - note fs6 $04 - cmdff - -musEssenceChannel0: -; Measure 1 - vol $0 - note gs3 $03 - vibrato $d1 - env $0 $00 - duty $02 - vol $3 - note d7 $02 - vol $2 - note b6 $02 - note g6 $02 - note f6 $02 - vol $2 - note d6 $02 - note b5 $02 - vol $2 - note a5 $02 - note f5 $02 - vol $2 - note d5 $02 - vol $2 - note b4 $02 - vol $2 - note g4 $01 - - vol $3 - note d5 $02 - vol $3 - note b4 $02 - vol $3 - note a4 $02 - vol $3 - note f4 $02 - - vol $3 - note d4 $02 - vol $2 - note b3 $01 - rest $01 - - duty $01 - vol $4 - note d3 $0c - vol $5 - note f3 $0c -; Measure 2 - vol $5 - note a3 $0c - vol $6 - note b3 $0c - vol $6 - note d4 $0c - - vol $5 - note fs4 $18 - vol $6 - note cs4 $18 -; Measure 3 - vol $5 - note c4 $20 - vol $3 - note c4 $08 - - vol $3 - note ds4 $02 - vol $3 - note gs4 $02 - vol $3 - note c5 $02 - vol $4 - note ds5 $02 -; Measure 4 - vol $6 - note d6 $04 - vol $6 - note g5 $04 - vol $5 - note e5 $04 - vol $5 - note d5 $04 - - vol $4 - note b4 $04 - vol $3 - note g4 $04 - note b5 $04 - vol $3 - note g5 $04 - - vol $3 - note e5 $04 - vol $3 - note d5 $04 - vol $2 - note b4 $04 - vol $2 - note g4 $04 - - vol $6 - note e6 $04 - vol $6 - note a5 $04 - vol $5 - note e5 $04 - vol $5 - note cs5 $04 -; Measure 5 - vol $4 - note a4 $04 - vol $3 - note e4 $04 - vol $3 - note cs6 $04 - vol $3 - note a5 $04 - - vol $3 - note e5 $04 - vol $3 - note cs5 $04 - vol $2 - note a4 $04 - vol $2 - note e4 $04 - - vol $6 - note fs3 $10 - - vol $3 - note fs3 $08 - vol $6 - note b3 $04 - note cs4 $04 -; Measure 6 - note ds4 $04 - note fs4 $04 - note b4 $04 - note cs5 $04 - - note ds5 $28 - rest $01 - vol $3 - note ds5 $03 - rest $01 - vol $2 - note ds5 $03 - rest $01 - vol $1 - note ds5 $03 - cmdff - -musEssenceChannel4: -; Measure 1 - duty $0e - note g2 $60 -; Measure 2c - note ds2 $20 -; Measure 3 - note f2 $08 - note fs2 $08 - note gs2 $30 -; Measure 4 - note e2 $20 - note fs2 $08 - note g2 $08 - note a2 $30 -; Measure 5b - note b2 $10 - duty $0f - note b2 $08 - duty $0e - note fs2 $10 -; Measure 6a - duty $0f - note fs2 $08 - duty $0e - note b2 $26 - duty $0f - note b2 $07 - cmdff - -.define musEssenceChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/essenceRoom.s b/audio/common/mus/essenceRoom.s deleted file mode 100644 index 446b2ce6c..000000000 --- a/audio/common/mus/essenceRoom.s +++ /dev/null @@ -1,227 +0,0 @@ -musEssenceRoomStart: - -musEssenceRoomChannel1: - vibrato $00 - env $0 $03 - duty $02 -musiced519: - vol $6 - note a2 $09 - vol $6 - note e3 $09 - note g3 $09 - note c4 $09 - note b3 $09 - note d4 $09 - note g4 $09 - note c5 $09 - note b4 $09 - note g4 $09 - note d4 $09 - note c4 $09 - note b3 $09 - note g3 $09 - note d3 $09 - note c3 $09 - note b2 $09 - note fs3 $09 - note g3 $09 - note d4 $09 - note b3 $09 - note fs4 $09 - note g4 $09 - note d5 $09 - note cs5 $09 - note g4 $09 - note fs4 $09 - note d4 $09 - note cs4 $09 - note g3 $09 - note fs3 $09 - note cs3 $09 - note c3 $09 - note g3 $09 - note as3 $09 - note ds4 $09 - note c4 $09 - note g4 $09 - note as4 $09 - note ds5 $09 - note d5 $09 - note as4 $09 - note f4 $09 - note ds4 $09 - note d4 $09 - note as3 $09 - note f3 $09 - note ds3 $09 - note d3 $09 - note g3 $09 - note a3 $09 - note c4 $09 - note d4 $09 - note g4 $09 - note c5 $09 - note f5 $09 - note e5 $09 - note c5 $09 - note g4 $09 - note f4 $09 - note e4 $09 - note c4 $09 - note g3 $09 - note e3 $09 - goto musiced519 - cmdff - -musEssenceRoomChannel0: - vibrato $00 - env $0 $03 - duty $02 - vol $1 - note a2 $09 - note e3 $04 -musiced5aa: - vol $4 - note a2 $09 - vol $4 - note e3 $09 - note g3 $09 - note c4 $09 - note b3 $09 - note d4 $09 - note g4 $09 - note c5 $09 - note b4 $09 - note g4 $09 - note d4 $09 - note c4 $09 - note b3 $09 - note g3 $09 - note d3 $09 - note c3 $09 - note b2 $09 - note fs3 $09 - note g3 $09 - note d4 $09 - note b3 $09 - note fs4 $09 - note g4 $09 - note d5 $09 - note cs5 $09 - note g4 $09 - note fs4 $09 - note d4 $09 - note cs4 $09 - note g3 $09 - note fs3 $09 - note cs3 $09 - note c3 $09 - note g3 $09 - note as3 $09 - note ds4 $09 - note c4 $09 - note g4 $09 - note as4 $09 - note ds5 $09 - note d5 $09 - note as4 $09 - note f4 $09 - note ds4 $09 - note d4 $09 - note as3 $09 - note f3 $09 - note ds3 $09 - note d3 $09 - note g3 $09 - note a3 $09 - note c4 $09 - note d4 $09 - note g4 $09 - note c5 $09 - note f5 $09 - note e5 $09 - note c5 $09 - note g4 $09 - note f4 $09 - note e4 $09 - note c4 $09 - note g3 $09 - note e3 $09 - goto musiced5aa - cmdff - -musEssenceRoomChannel4: - duty $08 - note a2 $09 - note e3 $09 - note g3 $09 -musiced638: - note a2 $09 - note e3 $09 - note g3 $09 - note c4 $09 - note b3 $09 - note d4 $09 - note g4 $09 - note c5 $09 - note b4 $09 - note g4 $09 - note d4 $09 - note c4 $09 - note b3 $09 - note g3 $09 - note d3 $09 - note c3 $09 - note b2 $09 - note fs3 $09 - note g3 $09 - note d4 $09 - note b3 $09 - note fs4 $09 - note g4 $09 - note d5 $09 - note cs5 $09 - note g4 $09 - note fs4 $09 - note d4 $09 - note cs4 $09 - note g3 $09 - note fs3 $09 - note cs3 $09 - note c3 $09 - note g3 $09 - note as3 $09 - note ds4 $09 - note c4 $09 - note g4 $09 - note as4 $09 - note ds5 $09 - note d5 $09 - note as4 $09 - note f4 $09 - note ds4 $09 - note d4 $09 - note as3 $09 - note f3 $09 - note ds3 $09 - note d3 $09 - note g3 $09 - note a3 $09 - note c4 $09 - note d4 $09 - note g4 $09 - note c5 $09 - note f5 $09 - note e5 $09 - note c5 $09 - note g4 $09 - note f4 $09 - note e4 $09 - note c4 $09 - note g3 $09 - note e3 $09 - goto musiced638 - cmdff - -.define musEssenceRoomChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/fairyFountain.s b/audio/common/mus/fairyFountain.s deleted file mode 100644 index 738d6b070..000000000 --- a/audio/common/mus/fairyFountain.s +++ /dev/null @@ -1,126 +0,0 @@ -musFairyFountainStart: - -musFairyFountainChannel1: - vibrato $00 - env $0 $02 - duty $02 -musicec76b: - vol $6 - note b3 $0c - note cs4 $0c - note e4 $0c - note g4 $0c - note b4 $0c - note cs5 $0c - note e5 $0c - note g5 $0c - note b5 $0c - note cs6 $0c - note e6 $0c - note g6 $0c - note b6 $0c - note cs7 $0c - note e7 $0c - note g7 $0c - note as3 $0c - note c4 $0c - note ds4 $0c - note fs4 $0c - note as4 $0c - note c5 $0c - note ds5 $0c - note fs5 $0c - note as5 $0c - note c6 $0c - note ds6 $0c - note fs6 $0c - note as6 $0c - note c7 $0c - note ds7 $0c - note fs7 $0c - goto musicec76b - cmdff - -musFairyFountainChannel0: - vol $1 - note b3 $06 - vibrato $00 - env $0 $02 - duty $02 -musicec7b9: - vol $6 - note b3 $0c - note cs4 $0c - note e4 $0c - note g4 $0c - note b4 $0c - note cs5 $0c - note e5 $0c - note g5 $0c - note b5 $0c - note cs6 $0c - note e6 $0c - note g6 $0c - note b6 $0c - note cs7 $0c - note e7 $0c - note g7 $0c - note as3 $0c - note c4 $0c - note ds4 $0c - note fs4 $0c - note as4 $0c - note c5 $0c - note ds5 $0c - note fs5 $0c - note as5 $0c - note c6 $0c - note ds6 $0c - note fs6 $0c - note as6 $0c - note c7 $0c - note ds7 $0c - note fs7 $0c - goto musicec7b9 - cmdff - -musFairyFountainChannel4: - duty $0f - rest $09 -musicec802: - note b3 $0c - note cs4 $0c - note e4 $0c - note g4 $0c - note b4 $0c - note cs5 $0c - note e5 $0c - note g5 $0c - note b5 $0c - note cs6 $0c - note e6 $0c - note g6 $0c - note b6 $0c - note cs7 $0c - note e7 $0c - note g7 $0c - note as3 $0c - note c4 $0c - note ds4 $0c - note fs4 $0c - note as4 $0c - note c5 $0c - note ds5 $0c - note fs5 $0c - note as5 $0c - note c6 $0c - note ds6 $0c - note fs6 $0c - note as6 $0c - note c7 $0c - note ds7 $0c - note fs7 $0c - goto musicec802 - cmdff - -.define musFairyFountainChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/fileSelect.s b/audio/common/mus/fileSelect.s deleted file mode 100644 index 4fb5a8a8f..000000000 --- a/audio/common/mus/fileSelect.s +++ /dev/null @@ -1,608 +0,0 @@ -musFileSelectStart: - -musFileSelectChannel1: - vibrato $00 - duty $02 - env $0 $00 - vol $5 - note as4 $07 - vol $3 - note as4 $07 - rest $0e - env $0 $00 - vol $5 - note f4 $15 - vol $3 - note f4 $15 - env $0 $02 - vol $5 - note as4 $07 - rest $07 - vibrato $00 - env $0 $02 - note as4 $07 - note c5 $07 - note d5 $07 - note ds5 $07 - vibrato $00 - env $0 $00 - note f5 $1c - vol $3 - note f5 $0e - vol $2 - note f5 $0e - rest $38 - env $0 $00 - vol $5 - note as5 $07 - vol $3 - note as5 $07 - rest $0e - env $0 $00 - vol $5 - note f5 $15 - vol $3 - note f5 $15 - env $0 $02 - vol $5 - note as5 $07 - rest $07 - env $0 $02 - note as5 $07 - note c6 $07 - note d6 $07 - note ds6 $07 - env $0 $00 - note f6 $1c - vol $3 - note f6 $0e - vol $2 - note f6 $0e - rest $38 -musicec37c: - env $0 $00 - vol $5 - note as4 $07 - vol $3 - note as4 $07 - rest $0e - env $0 $00 - vol $5 - note f4 $15 - vol $3 - note f4 $15 - env $0 $02 - vol $5 - note as4 $07 - rest $07 - env $0 $02 - note as4 $07 - note c5 $07 - note d5 $07 - note ds5 $07 - vibrato $00 - env $0 $00 - note f5 $1c - vol $3 - note f5 $0e - vol $2 - note f5 $0e - rest $38 - env $0 $00 - vol $5 - note as5 $07 - vol $3 - note as5 $07 - rest $0e - env $0 $00 - vol $5 - note f5 $15 - vol $3 - note f5 $15 - env $0 $02 - vol $5 - note as5 $07 - rest $07 - env $0 $02 - note as5 $07 - note c6 $07 - note d6 $07 - note ds6 $07 - vibrato $00 - env $0 $08 - note f6 $1c - vol $3 - note f6 $0e - vol $2 - note f6 $0e - rest $38 - goto musicec37c - cmdff - -musFileSelectChannel0: - vol $0 - note gs3 $70 - vibrato $00 - env $0 $00 - duty $02 - vol $8 - note gs3 $07 - vol $4 - note gs3 $07 - rest $0e - vol $8 - note ds3 $15 - vol $3 - note ds3 $15 - vol $8 - env $0 $01 - note gs3 $07 - rest $07 - env $0 $00 - vol $8 - note gs3 $04 - vol $2 - note gs3 $03 - vol $8 - note as3 $04 - vol $2 - note as3 $03 - vol $8 - note c4 $04 - vol $2 - note c4 $03 - vol $8 - note ds4 $04 - vol $2 - note ds4 $03 - vol $8 - vol $8 - note fs4 $04 - vol $2 - note fs4 $03 - rest $85 - env $0 $00 - vol $8 - note gs4 $07 - vol $4 - note gs4 $07 - rest $0e - vol $8 - note ds4 $0e - vol $3 - note ds4 $0e - env $0 $00 - vol $8 - note gs4 $04 - vol $2 - note gs4 $03 - vol $8 - note ds4 $04 - vol $2 - note ds4 $03 - vol $8 - note c4 $04 - vol $2 - note c4 $03 - vol $8 - note gs3 $04 - vol $2 - note gs3 $03 -musicec44d: - vol $8 - note as3 $04 - vol $2 - note as3 $03 - rest $69 - env $0 $00 - vol $8 - note gs3 $07 - vol $4 - note gs3 $07 - rest $0e - vol $8 - note ds3 $15 - vol $3 - note ds3 $15 - vol $8 - env $0 $01 - note gs3 $07 - rest $07 - env $0 $00 - vol $8 - note gs3 $04 - vol $2 - note gs3 $03 - vol $8 - note as3 $04 - vol $2 - note as3 $03 - vol $8 - note c4 $04 - vol $2 - note c4 $03 - vol $8 - note ds4 $04 - vol $2 - note ds4 $03 - vol $8 - note fs4 $04 - vol $2 - note fs4 $03 - rest $85 - env $0 $00 - vol $8 - note gs4 $07 - vol $4 - note gs4 $07 - rest $0e - vol $8 - note ds4 $0e - vol $3 - note ds4 $0e - env $0 $00 - vol $8 - note gs4 $04 - vol $2 - note gs4 $03 - vol $8 - note ds4 $04 - vol $2 - note ds4 $03 - vol $8 - note c4 $04 - vol $2 - note c4 $03 - vol $8 - note gs3 $04 - vol $2 - note gs3 $03 - goto musicec44d - cmdff - -musFileSelectChannel4: - duty $0a - note as2 $03 - duty $0d - note as2 $05 - rest $06 - duty $0a - note as2 $03 - duty $0d - note as2 $05 - rest $14 - duty $0a - note as2 $03 - duty $0d - note as2 $05 - rest $06 - duty $0a - note as2 $03 - duty $0d - note as2 $05 - rest $06 - duty $0a - note as2 $03 - duty $0d - note as2 $05 - rest $14 - duty $0a - note as2 $03 - duty $0d - note as2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $14 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $14 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 - duty $0a - note fs2 $03 - duty $0d - note fs2 $05 - rest $06 - duty $0a - note fs2 $03 - duty $0d - note fs2 $05 - rest $14 - duty $0a - note fs2 $03 - duty $0d - note fs2 $05 - rest $06 - duty $0a - note fs2 $03 - duty $0d - note fs2 $05 - rest $06 - duty $0a - note fs2 $03 - duty $0d - note fs2 $05 - rest $14 - duty $0a - note fs2 $03 - duty $0d - note fs2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $14 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $14 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 -musicec5ac: - duty $0a - note as2 $03 - duty $0d - note as2 $05 - rest $06 - duty $0a - note as2 $03 - duty $0d - note as2 $05 - rest $14 - duty $0a - note as2 $03 - duty $0d - note as2 $05 - rest $06 - duty $0a - note as2 $03 - duty $0d - note as2 $05 - rest $06 - duty $0a - note as2 $03 - duty $0d - note as2 $05 - rest $14 - duty $0a - note as2 $03 - duty $0d - note as2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $14 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $14 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 - duty $0a - note fs2 $03 - duty $0d - note fs2 $05 - rest $06 - duty $0a - note fs2 $03 - duty $0d - note fs2 $05 - rest $14 - duty $0a - note fs2 $03 - duty $0d - note fs2 $05 - rest $06 - duty $0a - note fs2 $03 - duty $0d - note fs2 $05 - rest $06 - duty $0a - note fs2 $03 - duty $0d - note fs2 $05 - rest $14 - duty $0a - note fs2 $03 - duty $0d - note fs2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $14 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $14 - duty $0a - note gs2 $03 - duty $0d - note gs2 $05 - rest $06 - goto musicec5ac - cmdff - -musFileSelectChannel6: - vol $5 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 -musicec701: - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - note $2a $0e - note $2a $07 - note $2a $07 - goto musicec701 - cmdff diff --git a/audio/common/mus/finalBoss.s b/audio/common/mus/finalBoss.s deleted file mode 100644 index 3802d43ca..000000000 --- a/audio/common/mus/finalBoss.s +++ /dev/null @@ -1,1298 +0,0 @@ -musFinalBossStart: - -musFinalBossChannel1: - vibrato $e1 - env $0 $00 - duty $02 -musice6c42: - vol $6 - note gs3 $3c - vibrato $01 - env $0 $00 - vol $3 - note gs3 $0c - vibrato $e1 - env $0 $00 - vol $6 - note gs3 $08 - note a3 $08 - note as3 $08 - note b3 $48 - vibrato $01 - env $0 $00 - vol $3 - note b3 $18 - vibrato $e1 - env $0 $00 - vol $6 - note gs4 $3c - vibrato $01 - env $0 $00 - vol $3 - note gs4 $0c - vibrato $e1 - env $0 $00 - vol $6 - note gs4 $08 - note a4 $08 - note as4 $08 - note b4 $48 - vibrato $01 - env $0 $00 - vol $3 - note b4 $18 - vibrato $e1 - env $0 $00 - vol $6 - note as3 $3c - vibrato $01 - env $0 $00 - vol $3 - note as3 $0c - vibrato $e1 - env $0 $00 - vol $6 - note as3 $08 - note b3 $08 - note c4 $08 - note cs4 $48 - vibrato $01 - env $0 $00 - vol $3 - note cs4 $18 - vibrato $e1 - env $0 $00 - vol $6 - note as4 $3c - vibrato $01 - env $0 $00 - vol $3 - note as4 $0c - vibrato $e1 - env $0 $00 - vol $6 - note as4 $08 - note b4 $08 - note c5 $08 - note cs5 $48 - vibrato $01 - env $0 $00 - vol $3 - note cs5 $18 - vibrato $e1 - env $0 $00 - vol $6 - note ds5 $12 - note d5 $06 - rest $03 - vol $3 - note d5 $06 - rest $03 - vol $1 - note d5 $06 - rest $06 - vol $6 - note cs5 $12 - note c5 $06 - rest $03 - vol $3 - note c5 $06 - rest $03 - vol $1 - note c5 $06 - rest $06 - vol $6 - note ds5 $06 - rest $03 - vol $3 - note ds5 $03 - vol $6 - note ds5 $06 - note d5 $06 - rest $03 - vol $3 - note d5 $06 - rest $03 - vol $1 - note d5 $06 - rest $06 - vol $6 - note cs5 $03 - rest $03 - vol $6 - note cs5 $03 - rest $03 - vol $6 - note cs5 $06 - note c5 $06 - rest $03 - vol $3 - note c5 $06 - rest $03 - vol $1 - note c5 $06 - rest $06 - vol $6 - note e5 $12 - note ds5 $06 - vol $4 - note c5 $06 - note b4 $06 - note as4 $06 - note a4 $06 - vol $6 - note d5 $12 - note cs5 $06 - vol $4 - note fs4 $06 - note f4 $06 - note e4 $06 - note ds4 $06 - vol $6 - note e5 $06 - rest $03 - vol $3 - note e5 $03 - vol $6 - note e5 $06 - note ds5 $06 - vol $4 - note cs5 $06 - note c5 $06 - note b4 $06 - note as4 $06 - vol $6 - note d5 $03 - rest $03 - vol $6 - note d5 $03 - rest $03 - vol $6 - note d5 $06 - note cs5 $06 - vol $4 - note fs4 $04 - note g4 $04 - note gs4 $04 - note a4 $04 - note as4 $04 - note b4 $04 - vol $6 - note d5 $06 - rest $03 - vol $3 - note d5 $06 - rest $03 - vol $6 - note as5 $06 - note a5 $30 - note f5 $18 - note cs5 $06 - note c5 $06 - note b4 $06 - note as4 $06 - note a4 $06 - note gs4 $06 - note g4 $06 - note fs4 $06 - note f4 $06 - note e4 $06 - note ds4 $06 - note d4 $06 - note cs4 $06 - note c4 $06 - note b3 $06 - note as3 $06 - goto musice6c42 - cmdff - -musFinalBossChannel0: - vibrato $e1 - env $0 $00 - duty $02 -musice6da9: - vol $6 - note d3 $3c - vibrato $01 - env $0 $00 - vol $3 - note d3 $0c - vibrato $e1 - env $0 $00 - vol $6 - note d3 $08 - note ds3 $08 - note e3 $08 - note f3 $06 - note b2 $06 - vol $0 - note b2 $03 - vol $3 - note b2 $03 - vol $6 - note f3 $06 - note b2 $06 - vol $0 - note b2 $03 - vol $3 - note b2 $03 - vol $6 - note f3 $06 - note b2 $06 - vol $0 - note b2 $03 - vol $3 - note b2 $03 - vol $6 - note f3 $06 - note b2 $06 - note f2 $06 - note b2 $06 - note f3 $06 - note b2 $06 - note f2 $06 - note d3 $3c - vibrato $01 - env $0 $00 - vol $3 - note d3 $0c - vibrato $e1 - env $0 $00 - vol $6 - note d3 $08 - note ds3 $08 - note e3 $08 - note f3 $06 - note b2 $06 - vol $0 - note b2 $03 - vol $3 - note b2 $03 - vol $6 - note f3 $06 - note b2 $06 - vol $0 - note b2 $03 - vol $3 - note b2 $03 - vol $6 - note f3 $06 - note b2 $06 - vol $0 - note b2 $03 - vol $3 - note b2 $03 - vol $6 - note f3 $06 - note b2 $06 - note f2 $06 - note b2 $06 - note f3 $06 - note b2 $06 - note f2 $06 - note e3 $3c - vibrato $01 - env $0 $00 - vol $3 - note e3 $0c - vibrato $e1 - env $0 $00 - vol $6 - note e3 $08 - note f3 $08 - note fs3 $08 - note g3 $06 - note cs3 $06 - vol $0 - note cs3 $03 - vol $3 - note cs3 $03 - vol $6 - note g3 $06 - note cs3 $06 - vol $0 - note cs3 $03 - vol $3 - note cs3 $03 - vol $6 - note g3 $06 - note cs3 $06 - vol $0 - note cs3 $03 - vol $3 - note cs3 $03 - vol $6 - note g3 $06 - note cs3 $06 - note g2 $06 - note cs3 $06 - note g3 $06 - note cs3 $06 - note g2 $06 - note e3 $3c - vibrato $01 - env $0 $00 - vol $3 - note e3 $0c - vibrato $e1 - env $0 $00 - vol $6 - note e3 $08 - note f3 $08 - note fs3 $08 - note g3 $06 - note cs3 $06 - vol $0 - note cs3 $03 - vol $3 - note cs3 $03 - vol $6 - note g3 $06 - note cs3 $06 - vol $0 - note cs3 $03 - vol $3 - note cs3 $03 - vol $6 - note g3 $06 - note cs3 $06 - vol $0 - note cs3 $03 - vol $3 - note cs3 $03 - vol $6 - note g3 $06 - note cs3 $06 - note g2 $06 - note cs3 $06 - note g3 $06 - note cs4 $06 - note g4 $06 - note as4 $12 - note a4 $06 - note as3 $06 - note a3 $06 - note gs3 $06 - note g3 $06 - note gs4 $12 - note g4 $06 - note gs3 $06 - note g3 $06 - note fs3 $06 - note f3 $06 - note as4 $06 - vol $0 - note as4 $03 - vol $3 - note as4 $03 - vol $6 - note as4 $06 - note a4 $06 - note as3 $06 - note a3 $06 - note gs3 $06 - note g3 $06 - note gs4 $03 - vol $0 - note gs4 $03 - vol $6 - note gs4 $03 - vol $0 - note gs4 $03 - vol $6 - note gs4 $06 - note g4 $06 - note gs3 $06 - note g3 $06 - note fs3 $06 - note f3 $06 - note b4 $12 - note as4 $06 - note b3 $06 - note as3 $06 - note a3 $06 - note gs3 $06 - note a4 $12 - note gs4 $06 - note a3 $06 - note gs3 $06 - note g3 $06 - note fs3 $06 - note b4 $06 - vol $0 - note b4 $03 - vol $3 - note b4 $03 - vol $6 - note b4 $06 - note as4 $06 - note b3 $06 - note as3 $06 - note a3 $06 - note gs3 $06 - note a4 $03 - vol $0 - note a4 $03 - vol $6 - note a4 $03 - vol $0 - note a4 $03 - vol $6 - note a4 $06 - note gs4 $06 - note a3 $04 - note as3 $04 - note b3 $04 - note c4 $04 - note cs4 $04 - note d4 $04 - note ds4 $04 - note e4 $04 - note f4 $04 - note fs4 $04 - note g4 $04 - note gs4 $04 - note a4 $04 - note as4 $04 - note b4 $04 - note c5 $04 - note cs5 $04 - note d5 $04 - note ds5 $04 - note e5 $04 - note f5 $04 - note fs5 $04 - note g5 $04 - note gs5 $04 - vol $6 - note a5 $60 - vol $6 - note as5 $04 - vol $6 - note b5 $04 - vol $5 - note c6 $04 - vol $5 - note cs6 $04 - vol $4 - note d6 $04 - vol $4 - note e6 $04 - goto musice6da9 - cmdff - -musFinalBossChannel4: -musice6f81: - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note d2 $04 - duty $0f - note d2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note d2 $04 - duty $0f - note d2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note d2 $04 - duty $0f - note d2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note d2 $04 - duty $0f - note d2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $08 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note d2 $04 - duty $0f - note d2 $02 - duty $12 - note gs2 $04 - duty $0f - note gs2 $02 - duty $12 - note d2 $04 - duty $0f - note d2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note e2 $04 - duty $0f - note e2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note e2 $04 - duty $0f - note e2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note e2 $04 - duty $0f - note e2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note e2 $04 - duty $0f - note e2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $08 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note e2 $04 - duty $0f - note e2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note e2 $04 - duty $0f - note e2 $02 - duty $12 - note e3 $12 - note ds3 $06 - duty $0f - note ds3 $18 - duty $12 - note d3 $12 - note cs3 $06 - duty $0f - note cs3 $18 - duty $12 - note e3 $06 - duty $0f - note e3 $06 - duty $12 - note e3 $06 - note ds3 $06 - duty $0f - note ds3 $18 - duty $12 - note d3 $03 - duty $0f - note d3 $03 - duty $12 - note d3 $03 - duty $0f - note d3 $03 - duty $12 - note d3 $06 - note cs3 $06 - note f2 $06 - note e2 $06 - note ds2 $06 - note d2 $06 - note cs2 $06 - note d2 $06 - note ds2 $06 - note e2 $06 - note f2 $06 - note e2 $06 - note ds2 $06 - note cs2 $06 - note d2 $06 - note ds2 $06 - note e2 $06 - note fs2 $06 - note g2 $06 - note gs2 $06 - note a2 $06 - note as2 $06 - note b2 $06 - note c3 $06 - note cs3 $06 - note b2 $06 - note as2 $06 - note a2 $06 - note gs2 $06 - note g2 $06 - note gs2 $06 - note a2 $06 - note gs2 $06 - note g2 $06 - note fs2 $04 - note g2 $04 - note gs2 $04 - note a2 $04 - note as2 $04 - note b2 $04 - note ds2 $06 - duty $0f - note ds2 $0c - duty $12 - note cs3 $06 - note c3 $30 - note d4 $06 - note cs4 $06 - note c4 $06 - note b3 $06 - note as3 $06 - note a3 $06 - note gs3 $06 - note g3 $06 - note fs3 $06 - note f3 $06 - note e3 $06 - note ds3 $06 - note d3 $06 - note cs3 $06 - note c3 $06 - note b2 $06 - note as2 $04 - note a2 $04 - note gs2 $04 - note ds2 $04 - note d2 $04 - note b1 $04 - goto musice6f81 - cmdff - -musFinalBossChannel6: -musice7305: - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $17 - vol $5 - note $24 $18 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $8 - note $28 $01 - vol $3 - note $27 $05 - vol $8 - note $28 $01 - vol $3 - note $27 $05 - vol $8 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - note $24 $12 - vol $8 - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $26 $0c - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $8 - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $26 $0c - vol $8 - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $26 $0c - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $6 - note $28 $01 - vol $3 - note $27 $03 - vol $8 - note $28 $01 - vol $3 - note $27 $05 - vol $8 - note $28 $01 - vol $3 - note $27 $05 - vol $8 - note $28 $01 - vol $3 - note $27 $05 - vol $8 - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $26 $0c - vol $6 - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $28 $01 - vol $3 - note $27 $01 - vol $6 - note $28 $01 - vol $3 - note $27 $01 - vol $7 - note $28 $01 - vol $3 - note $27 $01 - vol $8 - note $28 $01 - vol $3 - note $27 $01 - vol $9 - note $28 $01 - vol $3 - note $27 $01 - vol $a - note $28 $01 - vol $3 - note $27 $01 - goto musice7305 - cmdff diff --git a/audio/common/mus/finalDungeon.s b/audio/common/mus/finalDungeon.s deleted file mode 100644 index 2e70f3a0d..000000000 --- a/audio/common/mus/finalDungeon.s +++ /dev/null @@ -1,656 +0,0 @@ -musFinalDungeonStart: - -musFinalDungeonChannel1: -musicf54c8: - vibrato $00 - env $0 $05 - duty $02 - vol $6 - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note cs5 $0f - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - note g4 $0f - note cs5 $0f - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - note g4 $0f - note cs5 $0f - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - note g4 $0f - note cs5 $0f - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - note g4 $0f - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note cs5 $0f - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - note g4 $0f - note cs5 $0f - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - note g4 $0f - note cs5 $0f - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - note g4 $0f - note cs5 $0f - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - note g4 $0f - vibrato $e1 - env $0 $00 - note e4 $4b - vibrato $01 - env $0 $00 - vol $3 - note e4 $0f - vibrato $e1 - env $0 $00 - vol $6 - note ds4 $4b - vibrato $01 - env $0 $00 - vol $3 - note ds4 $0f - vibrato $e1 - env $0 $00 - vol $6 - note d4 $4b - vibrato $01 - env $0 $00 - vol $3 - note d4 $0f - vibrato $e1 - env $0 $00 - vol $6 - note cs4 $4b - vibrato $01 - env $0 $00 - vol $3 - note cs4 $0f - vibrato $00 - env $0 $03 - vol $6 - note c4 $0f - note g3 $0f - note fs3 $0f - note c4 $0f - note g3 $0f - note fs3 $0f - vol $5 - note c5 $0f - note g4 $0f - note fs4 $0f - note c5 $0f - note g4 $0f - note fs4 $0f - env $0 $04 - vol $4 - note c6 $0f - note g5 $0f - vol $4 - note fs5 $0f - vol $4 - note c6 $0f - note g5 $0f - vol $4 - note fs5 $0f - env $0 $05 - vol $3 - note c7 $0f - note g6 $0f - note fs6 $0f - vol $3 - note c7 $0f - note g6 $0f - note fs6 $0f - vibrato $e1 - env $0 $00 - vol $6 - note d4 $4b - vibrato $01 - env $0 $00 - vol $3 - note d4 $0f - vibrato $e1 - env $0 $00 - vol $6 - note cs4 $4b - vibrato $01 - env $0 $00 - vol $3 - note cs4 $0f - vibrato $e1 - env $0 $00 - vol $6 - note c4 $4b - vibrato $01 - env $0 $00 - vol $3 - note c4 $0f - vibrato $e1 - env $0 $00 - vol $6 - note b3 $4b - vibrato $01 - env $0 $00 - vol $3 - note b3 $0f - vibrato $00 - env $0 $03 - vol $6 - note a3 $0f - note e3 $0f - note ds3 $0f - note a3 $0f - note e3 $0f - note ds3 $0f - vol $5 - note a4 $0f - note e4 $0f - note ds4 $0f - note a4 $0f - note e4 $0f - note ds4 $0f - env $0 $04 - vol $4 - note a5 $0f - note e5 $0f - note ds5 $0f - note a5 $0f - note e5 $0f - note ds5 $0f - env $0 $05 - vol $3 - note a6 $0f - note e6 $0f - note ds6 $0f - note a6 $0f - note e6 $0f - note ds6 $0f - goto musicf54c8 - cmdff - -musFinalDungeonChannel0: -musicf567e: - vibrato $00 - env $0 $05 - duty $02 - vol $1 - note ds5 $0f - vol $3 - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note cs5 $0f - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - note g4 $0f - note cs5 $0f - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - vol $4 - note g4 $0f - note cs5 $0f - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - note g4 $0f - note cs5 $0f - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - note g4 $0f - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note ds5 $0f - note a4 $0f - note gs4 $0f - note ds4 $0f - note gs4 $0f - note a4 $0f - note cs5 $0f - vol $4 - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - note g4 $0f - note cs5 $0f - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - note g4 $0f - note cs5 $0f - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - note g4 $0f - note cs5 $0f - note g4 $0f - note fs4 $0f - note cs4 $0f - note fs4 $0f - vibrato $e1 - env $0 $00 - vol $6 - note b3 $3c - vibrato $01 - env $0 $00 - vol $3 - note b3 $1e - vibrato $e1 - env $0 $00 - vol $6 - note as3 $3c - vibrato $01 - env $0 $00 - vol $3 - note as3 $1e - vibrato $e1 - env $0 $00 - vol $6 - note a3 $3c - vibrato $01 - env $0 $00 - vol $3 - note a3 $1e - vibrato $e1 - env $0 $00 - vol $6 - note gs3 $3c - vibrato $01 - env $0 $00 - vol $3 - note gs3 $1e - rest $0f - vibrato $00 - env $0 $03 - vol $4 - note c4 $0f - note g3 $0f - note fs3 $0f - note c4 $0f - note g3 $0f - note fs3 $0f - vol $3 - note c5 $0f - vol $3 - note g4 $0f - note fs4 $0f - note c5 $0f - note g4 $0f - note fs4 $0f - vol $2 - note c6 $0f - vol $2 - note g5 $0f - note fs5 $0f - note c6 $0f - note g5 $0f - note fs5 $0f - vol $1 - note c7 $0f - vol $1 - note g6 $0f - vol $1 - note fs6 $0f - vol $1 - note c7 $0f - vol $1 - note g6 $0f - vibrato $e1 - env $0 $00 - vol $6 - note as2 $3c - vibrato $01 - env $0 $00 - vol $3 - note as2 $1e - vibrato $e1 - env $0 $00 - vol $6 - note a2 $3c - vibrato $01 - env $0 $00 - vol $3 - note a2 $1e - vibrato $e1 - env $0 $00 - vol $6 - note gs2 $3c - vibrato $01 - env $0 $00 - vol $3 - note gs2 $1e - vibrato $e1 - env $0 $00 - vol $6 - note g2 $3c - vibrato $01 - env $0 $00 - vol $3 - note g2 $1e - rest $0b - vibrato $00 - env $0 $03 - vol $3 - note a3 $0f - note e3 $0f - note ds3 $0f - note a3 $0f - note e3 $0f - vol $2 - note ds3 $0f - note a4 $0f - note e4 $0f - note ds4 $0f - note a4 $0f - note e4 $0f - note ds4 $0f - vol $2 - note a5 $0f - note e5 $0f - note ds5 $0f - vol $2 - note a5 $0f - note e5 $0f - note ds5 $0f - vol $1 - note a6 $0f - note e6 $0f - vol $1 - note ds6 $0f - note a6 $0f - vol $1 - note e6 $0f - note ds6 $04 - goto musicf567e - cmdff - -musFinalDungeonChannel4: -musicf5837: - duty $0e - note gs2 $a5 - note ds2 $0f - duty $0e - note gs2 $08 - duty $0f - note gs2 $07 - duty $0e - note gs2 $08 - duty $0f - note gs2 $07 - duty $0e - rest $96 - note g2 $a5 - note cs2 $0f - duty $0e - note g2 $08 - duty $0f - note g2 $07 - duty $0e - note g2 $08 - duty $0f - note g2 $07 - duty $0e - rest $96 - note gs2 $a5 - note ds3 $0f - duty $0e - note gs2 $08 - duty $0f - note gs2 $07 - duty $0e - note gs2 $08 - duty $0f - note gs2 $07 - duty $0e - rest $96 - note g2 $a5 - note cs3 $0f - duty $0e - note g2 $08 - duty $0f - note g2 $07 - duty $0e - note g2 $08 - duty $0f - note g2 $07 - duty $0e - rest $96 - note gs2 $2a - rest $03 - note gs2 $0f - rest $0f - note gs2 $07 - rest $08 - note gs2 $07 - rest $08 - note gs2 $19 - rest $05 - note gs2 $19 - rest $05 - note gs2 $07 - rest $08 - note gs2 $07 - rest $08 - note gs2 $19 - rest $05 - note gs2 $19 - rest $05 - note gs2 $07 - rest $08 - note gs2 $07 - rest $08 - note gs2 $19 - rest $05 - note gs2 $19 - rest $05 - note gs2 $0f - note fs2 $2a - rest $03 - note fs2 $0f - rest $0f - note fs2 $07 - rest $08 - note fs2 $07 - rest $08 - note fs2 $19 - rest $05 - note fs2 $19 - rest $05 - note fs2 $07 - rest $08 - note fs2 $07 - rest $08 - note fs2 $19 - rest $05 - note fs2 $19 - rest $05 - note fs2 $07 - rest $08 - note fs2 $07 - rest $08 - note fs2 $19 - rest $05 - note fs2 $19 - rest $05 - note fs2 $0f - note f3 $07 - rest $08 - note f3 $19 - rest $05 - note f3 $19 - rest $05 - note f3 $0f - note e3 $07 - rest $08 - note e3 $19 - rest $05 - note e3 $19 - rest $05 - note e3 $07 - rest $08 - note ds3 $07 - rest $08 - note ds3 $19 - rest $05 - note ds3 $19 - rest $05 - note ds3 $07 - rest $08 - note d3 $07 - rest $08 - note d3 $19 - rest $05 - note d3 $19 - rest $05 - note d3 $07 - rest $08 - note fs2 $07 - rest $08 - note fs2 $19 - rest $05 - note fs2 $19 - rest $05 - note fs2 $07 - rest $08 - note fs2 $07 - rest $08 - note fs2 $19 - rest $05 - note fs2 $19 - rest $05 - note fs2 $07 - rest $08 - note fs2 $07 - rest $08 - note fs2 $19 - rest $05 - note fs2 $19 - rest $05 - note fs2 $07 - rest $08 - note fs2 $07 - rest $08 - note fs2 $19 - rest $05 - note fs2 $19 - rest $05 - note fs2 $07 - rest $08 - goto musicf5837 - cmdff - -.define musFinalDungeonChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/gameover.s b/audio/common/mus/gameover.s deleted file mode 100644 index 88abb691a..000000000 --- a/audio/common/mus/gameover.s +++ /dev/null @@ -1,310 +0,0 @@ -musGameoverStart: - -musGameoverChannel1: - duty $02 - env $0 $03 -musice9124: - vol $8 - note e6 $09 - rest $04 - vol $5 - note e6 $09 - rest $05 - vol $2 - note e6 $09 - vol $8 - note b5 $09 - rest $04 - vol $5 - note b5 $09 - rest $05 - vol $2 - note b5 $09 - rest $24 - vol $8 - note e6 $04 - rest $05 - note fs6 $04 - rest $05 - note gs6 $04 - rest $05 - note a6 $04 - rest $05 - note b6 $09 - rest $04 - vol $5 - note b6 $09 - rest $05 - vol $2 - note b6 $09 - rest $04 - vol $1 - note b6 $09 - rest $3b - vol $8 - note b6 $09 - rest $04 - vol $5 - note b6 $05 - vol $8 - note c7 $09 - note d7 $09 - note e7 $09 - rest $04 - vol $5 - note e7 $09 - rest $05 - vol $2 - note e7 $09 - rest $04 - vol $1 - note e7 $09 - rest $3b - vol $8 - note e7 $09 - rest $04 - vol $5 - note e7 $05 - vol $8 - note d7 $09 - note c7 $09 - note b6 $09 - rest $04 - vol $5 - note b6 $09 - rest $05 - vol $2 - note b6 $09 - rest $04 - vol $1 - note b6 $09 - rest $3b - vol $8 - note b6 $09 - rest $04 - vol $5 - note b6 $09 - rest $05 - vol $2 - note b6 $09 - vol $8 - note a6 $09 - rest $04 - vol $5 - note a6 $05 - vol $8 - note b6 $09 - rest $04 - vol $5 - note b6 $05 - vol $8 - note c7 $09 - rest $04 - vol $5 - note c7 $09 - rest $05 - vol $2 - note c7 $09 - rest $04 - vol $1 - note c7 $09 - rest $17 - vol $8 - note b6 $09 - rest $04 - vol $5 - note b6 $05 - vol $8 - note a6 $09 - rest $04 - vol $5 - note a6 $05 - vol $8 - note g6 $09 - rest $04 - vol $5 - note g6 $05 - vol $8 - note a6 $09 - rest $04 - vol $5 - note a6 $05 - vol $8 - note b6 $09 - rest $04 - vol $5 - note b6 $09 - rest $05 - vol $2 - note b6 $09 - rest $24 - vol $8 - note a6 $09 - rest $04 - vol $5 - note a6 $05 - vol $8 - note g6 $09 - rest $04 - vol $5 - note g6 $05 - vol $8 - note fs6 $09 - rest $04 - vol $5 - note fs6 $05 - vol $8 - note gs6 $09 - rest $04 - vol $5 - note gs6 $05 - vol $8 - note as6 $09 - rest $04 - vol $5 - note as6 $09 - rest $05 - vol $2 - note as6 $09 - rest $24 - vol $8 - note cs7 $09 - rest $04 - vol $5 - note cs7 $09 - rest $05 - vol $2 - note cs7 $09 - vol $8 - note b6 $09 - rest $04 - vol $5 - note b6 $09 - rest $05 - vol $2 - note b6 $09 - rest $04 - vol $1 - note b6 $09 - rest $5f - goto musice9124 - cmdff - -musGameoverChannel0: - duty $02 - env $0 $03 -musice925c: - vol $0 - note gs3 $12 - vol $6 - note gs4 $12 - note b4 $12 - note e5 $12 - note gs5 $12 - rest $48 - note fs4 $12 - note b4 $12 - note ds5 $12 - note fs5 $12 - note b5 $12 - rest $36 - note e5 $12 - note g5 $12 - note c6 $12 - note e6 $12 - note c6 $12 - note g5 $12 - note e5 $12 - rest $12 - note b4 $12 - note e5 $12 - note fs5 $12 - note ds5 $12 - rest $36 - note f5 $12 - note c5 $12 - note f5 $12 - note a5 $12 - note c6 $12 - rest $36 - note e6 $12 - note b5 $12 - note g5 $12 - note e5 $12 - note b4 $12 - rest $12 - note e5 $12 - rest $12 - note fs5 $12 - note cs5 $12 - note b4 $12 - note cs5 $12 - note as4 $12 - note cs5 $12 - note fs4 $12 - note cs5 $12 - note b5 $12 - note b4 $12 - note e5 $12 - note fs5 $12 - note ds5 $12 - rest $36 - goto musice925c - cmdff - -musGameoverChannel4: -musice92cc: - rest $09 - duty $08 - note e6 $12 - rest $12 - note b5 $12 - rest $36 - note e6 $09 - note fs6 $09 - note gs6 $09 - note a6 $09 - note b6 $12 - rest $5a - note b6 $12 - note cs7 $09 - rest $09 - note e7 $12 - rest $5a - note e7 $12 - note d7 $09 - note c7 $09 - note b6 $12 - rest $5a - note b6 $12 - rest $12 - note a6 $12 - note b6 $12 - note c7 $12 - rest $36 - note b6 $12 - note a6 $12 - note g6 $12 - note a6 $12 - note b6 $12 - rest $36 - note a6 $12 - note g6 $12 - note fs6 $12 - note gs6 $12 - note as6 $12 - rest $36 - note cs7 $12 - rest $12 - note b6 $12 - rest $75 - goto musice92cc - cmdff - -.ifdef ROM_SEASONS -.ifdef BUILD_VANILLA - .db $ff $ff -.endif -.endif - -.define musGameoverChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/ganon.s b/audio/common/mus/ganon.s deleted file mode 100644 index 4cfa07a40..000000000 --- a/audio/common/mus/ganon.s +++ /dev/null @@ -1,1862 +0,0 @@ -musGanonStart: - -musGanonChannel1: - vibrato $00 - env $0 $00 - cmdf2 - duty $01 -musiced6c3: - vol $6 - note c4 $06 - rest $03 - vol $3 - note c4 $06 - rest $03 - vol $6 - note g4 $06 - note fs4 $48 - note f4 $48 - note ds4 $0c - note f4 $06 - note ds4 $06 - note c4 $06 - rest $03 - vol $3 - note c4 $06 - rest $03 - vol $1 - note c4 $06 - vol $6 - note fs3 $30 - vol $3 - note fs3 $30 - rest $30 - vol $6 - note fs3 $06 - note g3 $06 - note c4 $06 - note ds4 $06 - note g4 $06 - rest $03 - vol $3 - note g4 $06 - rest $03 - vol $6 - note c5 $06 - note b4 $30 - note g4 $06 - rest $03 - vol $3 - note g4 $06 - rest $03 - vol $6 - note b4 $06 - note as4 $18 - note g4 $06 - rest $03 - vol $3 - note g4 $06 - rest $03 - vol $6 - note as4 $06 - note a4 $18 - note f4 $06 - rest $03 - vol $3 - note f4 $06 - rest $03 - vol $6 - note gs4 $06 - note g4 $0c - note ds4 $06 - note c4 $06 - note g3 $06 - rest $03 - vol $3 - note g3 $06 - rest $03 - vol $1 - note g3 $06 - rest $30 - vol $6 - note g4 $0c - note ds4 $06 - note c4 $06 - note g3 $06 - rest $03 - vol $3 - note g3 $06 - rest $03 - vol $1 - note g3 $06 - rest $18 - vol $6 - note d4 $06 - note ds4 $06 - note g4 $06 - note b4 $06 - note d5 $06 - rest $03 - vol $3 - note d5 $06 - rest $03 - vol $6 - note f5 $06 - note ds5 $30 - note b4 $06 - rest $03 - vol $3 - note b4 $06 - rest $03 - vol $7 - note d5 $06 - note c5 $18 - note g4 $06 - rest $03 - vol $3 - note g4 $06 - rest $03 - vol $7 - note as4 $06 - note a4 $18 - note f4 $06 - rest $03 - vol $3 - note f4 $06 - rest $03 - vol $7 - note gs4 $06 - note g4 $06 - rest $03 - vol $3 - note g4 $06 - rest $03 - vol $1 - note g4 $06 - vol $7 - note c4 $48 - vol $3 - note c4 $18 - rest $48 - vol $6 - note f4 $06 - rest $03 - vol $3 - note f4 $06 - rest $03 - vol $6 - note gs4 $06 - note cs5 $18 - note c5 $18 - note b4 $06 - rest $03 - vol $3 - note b4 $06 - rest $03 - vol $6 - note d5 $06 - note g5 $24 - vol $3 - note g5 $0c - vol $6 - note gs5 $06 - rest $03 - vol $3 - note gs5 $06 - rest $03 - vol $6 - note f5 $06 - note cs6 $0c - note c6 $0c - note b5 $0c - note as5 $0c - note a5 $06 - rest $03 - vol $3 - note a5 $06 - rest $03 - vol $1 - note a5 $06 - vol $6 - note b4 $48 - goto musiced6c3 - cmdff - -musGanonChannel0: - vibrato $00 - env $0 $00 - cmdf2 - duty $02 -musiced7fa: - vol $6 - note g3 $06 - rest $03 - vol $3 - note g3 $06 - rest $03 - vol $6 - note ds4 $06 - note d4 $48 - note cs4 $48 - note c4 $0c - note cs4 $06 - note c4 $06 - note g3 $06 - rest $03 - vol $3 - note g3 $06 - rest $03 - vol $1 - note g3 $06 - rest $18 - vol $6 - note c5 $06 - rest $03 - vol $3 - note c5 $06 - rest $03 - vol $1 - note c5 $06 - vol $6 - note fs4 $06 - rest $03 - vol $3 - note fs4 $06 - rest $03 - vol $1 - note fs4 $06 - vol $6 - note c6 $06 - rest $03 - vol $3 - note c6 $06 - rest $03 - vol $1 - note c6 $06 - vol $6 - note fs5 $06 - rest $03 - vol $3 - note fs5 $06 - rest $03 - vol $1 - note fs5 $06 - vol $6 - note ds6 $06 - rest $03 - vol $3 - note ds6 $06 - rest $03 - vol $1 - note ds6 $06 - vol $6 - note c6 $06 - rest $03 - vol $3 - note c6 $03 - vol $4 - note fs3 $06 - note g3 $06 - note c4 $06 - note ds4 $06 - note g4 $08 - rest $04 - vol $6 - note ds4 $48 - note d4 $30 - note cs4 $30 - vol $6 - note ds4 $0c - note c4 $06 - note g3 $06 - note ds3 $06 - rest $03 - vol $3 - note ds3 $06 - rest $03 - vol $1 - note ds3 $06 - rest $40 - vol $3 - note g4 $0c - note ds4 $06 - note c4 $06 - note g3 $06 - rest $02 - vol $6 - note g6 $0c - note ds6 $06 - note c6 $06 - note g5 $06 - note c4 $06 - note ds4 $06 - note g4 $06 - note b4 $06 - rest $03 - vol $3 - note b4 $06 - rest $03 - vol $1 - note b4 $06 - vol $6 - note c5 $30 - note f4 $18 - note ds4 $30 - note d4 $18 - note cs4 $18 - note c4 $06 - rest $03 - vol $3 - note c4 $06 - rest $03 - vol $1 - note c4 $06 - vol $6 - note g3 $48 - note g5 $06 - rest $03 - vol $3 - note g5 $06 - rest $03 - vol $1 - note g5 $06 - vol $6 - note c5 $06 - rest $03 - vol $3 - note c5 $06 - rest $03 - vol $1 - note c5 $06 - vol $6 - note g6 $06 - rest $03 - vol $3 - note g6 $06 - rest $03 - vol $1 - note g6 $06 - vol $6 - note c6 $06 - rest $03 - vol $3 - note c6 $06 - rest $03 - vol $1 - note c6 $06 - vol $3 - note cs4 $06 - rest $03 - vol $1 - note cs4 $06 - rest $03 - vol $6 - note f4 $06 - note gs4 $12 - vol $3 - note gs4 $06 - vol $6 - note f4 $12 - vol $3 - note f4 $06 - vol $6 - note d4 $06 - rest $03 - vol $3 - note d4 $06 - rest $03 - vol $6 - note g4 $06 - note b4 $18 - vol $3 - note b4 $18 - vol $6 - note f5 $06 - rest $03 - vol $3 - note f5 $06 - rest $03 - vol $6 - note cs5 $06 - note as5 $0c - note a5 $0c - note gs5 $0c - note g5 $0c - note f5 $06 - rest $03 - vol $3 - note f5 $06 - rest $03 - vol $1 - note f5 $06 - vol $6 - note gs4 $48 - goto musiced7fa - cmdff - -musGanonChannel4: - cmdf2 -musiced957: - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note c3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note c3 $04 - duty $17 - note fs3 $02 - duty $12 - note ds3 $04 - duty $17 - note c3 $02 - duty $12 - note g3 $04 - duty $17 - note ds3 $02 - duty $12 - note fs3 $04 - duty $17 - note g3 $02 - duty $12 - note cs3 $04 - duty $17 - note fs3 $02 - duty $12 - note f3 $04 - duty $17 - note cs3 $02 - duty $12 - note g3 $04 - duty $17 - note f3 $02 - duty $12 - note gs3 $04 - duty $17 - note g3 $02 - duty $12 - note cs3 $04 - duty $17 - note gs3 $02 - duty $12 - note f3 $04 - duty $17 - note cs3 $02 - duty $12 - note g3 $04 - duty $17 - note f3 $02 - duty $12 - note gs3 $04 - duty $17 - note g3 $02 - duty $12 - note cs3 $04 - duty $17 - note gs3 $02 - duty $12 - note f3 $04 - duty $17 - note cs3 $02 - duty $12 - note g3 $04 - duty $17 - note f3 $02 - duty $12 - note gs3 $04 - duty $17 - note g3 $02 - duty $12 - note g2 $04 - duty $17 - note gs3 $02 - duty $12 - note b2 $04 - duty $17 - note g2 $02 - duty $12 - note c3 $04 - duty $17 - note b2 $02 - duty $12 - note d3 $04 - duty $17 - note c3 $02 - duty $12 - note ds3 $04 - duty $17 - note b2 $02 - duty $12 - note e3 $04 - duty $17 - note ds3 $02 - duty $12 - note f3 $04 - duty $17 - note e3 $02 - duty $12 - note fs3 $04 - duty $17 - note f3 $02 - duty $12 - note g3 $04 - duty $17 - note fs3 $02 - duty $12 - note gs3 $04 - duty $17 - note g3 $02 - duty $12 - note a3 $04 - duty $17 - note gs3 $02 - duty $12 - note as3 $04 - duty $17 - note a3 $02 - duty $12 - note cs3 $04 - duty $17 - note as3 $02 - duty $12 - note f3 $04 - duty $17 - note cs3 $02 - duty $12 - note g3 $04 - duty $17 - note f3 $02 - duty $12 - note gs3 $04 - duty $17 - note g3 $02 - duty $12 - note cs3 $04 - duty $17 - note gs3 $02 - duty $12 - note f3 $04 - duty $17 - note cs3 $02 - duty $12 - note g3 $04 - duty $17 - note f3 $02 - duty $12 - note gs3 $04 - duty $17 - note g3 $02 - duty $12 - note cs3 $04 - duty $17 - note f3 $02 - duty $12 - note f3 $04 - duty $17 - note cs3 $02 - duty $12 - note g3 $04 - duty $17 - note f3 $02 - duty $12 - note gs3 $04 - duty $17 - note g3 $02 - duty $12 - note as3 $04 - duty $17 - note gs3 $02 - duty $17 - note as3 $12 - duty $12 - note g2 $48 - goto musiced957 - cmdff - -musGanonChannel6: - cmdf2 -musicee08c: - vol $6 - note $24 $12 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $11 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $12 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $11 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $12 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $11 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $12 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $11 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $12 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $11 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $12 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $11 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $12 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $11 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $12 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $11 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $12 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $11 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $12 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $11 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $12 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $11 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $12 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $11 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $6 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - note $24 $0c - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - note $24 $06 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $0b - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - goto musicee08c - cmdff diff --git a/audio/common/mus/getEssence.s b/audio/common/mus/getEssence.s deleted file mode 100644 index d4e4dffa4..000000000 --- a/audio/common/mus/getEssence.s +++ /dev/null @@ -1,87 +0,0 @@ -musGetEssenceStart: - -musGetEssenceChannel1: - duty $00 - vol $b - note a5 $06 - vol $1 - note a5 $04 - vol $b - note as5 $06 - vol $1 - note as5 $03 - vol $b - note b5 $06 - vol $1 - note b5 $02 - vol $b - note c6 $06 - vol $1 - note c6 $02 - vol $b - note cs6 $06 - vol $1 - note cs6 $02 - vol $b - env $0 $00 - vibrato $e1 - note d6 $52 - cmdff - -musGetEssenceChannel0: - duty $00 - vol $c - note c5 $06 - vol $1 - note c5 $04 - vol $c - note cs5 $06 - vol $1 - note cs5 $03 - vol $c - note d5 $06 - vol $1 - note d5 $02 - vol $c - note ds5 $06 - vol $1 - note ds5 $02 - vol $c - note e5 $06 - vol $1 - note e5 $02 - vol $c - env $0 $00 - vibrato $e1 - note f5 $52 - cmdff - -musGetEssenceChannel4: - duty $0a - note f3 $06 - rest $04 - note fs3 $06 - rest $03 - note g3 $06 - rest $02 - note gs3 $06 - rest $02 - note a3 $06 - rest $02 - note as3 $4b - cmdff - -musGetEssenceChannel6: - vol $0 - note $30 $1b - vol $5 - note $30 $04 - vol $0 - note $30 $04 - vol $3 - note $30 $04 - vol $0 - note $30 $04 - vol $2 - note $30 $52 - cmdff diff --git a/audio/common/mus/goronCave.s b/audio/common/mus/goronCave.s deleted file mode 100644 index 08c93c06a..000000000 --- a/audio/common/mus/goronCave.s +++ /dev/null @@ -1,1359 +0,0 @@ -musGoronCaveStart: - -musGoronCaveChannel1: - vibrato $00 - env $0 $00 -.ifdef ROM_SEASONS - cmdf2 -.endif - duty $02 -musicf83e8: - vol $0 - note gs3 $30 - vol $6 - note e4 $0d - rest $03 - vol $3 - note e4 $02 - rest $02 - vol $6 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $10 - vol $6 - note d4 $08 - rest $02 - vol $3 - note d4 $04 - rest $02 - vol $6 - note c4 $08 - rest $02 - vol $3 - note c4 $04 - rest $02 - vol $3 - note c4 $02 - rest $ae - vol $6 - note e4 $05 - rest $03 - vol $6 - note e4 $05 - rest $03 - vol $6 - note e4 $05 - rest $05 - vol $3 - note e4 $04 - rest $02 - vol $6 - note e4 $05 - rest $05 - vol $3 - note e4 $04 - rest $02 - vol $6 - note d4 $05 - rest $03 - vol $3 - note d4 $04 - rest $04 - vol $6 - note c4 $05 - rest $03 - vol $3 - note c4 $04 - rest $04 - vol $2 - note c4 $02 - rest $5e - vol $6 - note as3 $08 - rest $02 - vol $3 - note as3 $04 - rest $02 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $04 - rest $04 - vol $2 - note c4 $02 - rest $2e - vol $6 - note e4 $0d - rest $03 - note e4 $02 - rest $02 - vol $3 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $10 - vol $6 - note d4 $08 - rest $02 - vol $3 - note d4 $04 - rest $02 - vol $6 - note c4 $08 - rest $02 - vol $3 - note c4 $04 - rest $04 - vol $1 - note c4 $02 - rest $ac - vol $6 - note e4 $05 - rest $03 - vol $6 - note e4 $05 - rest $03 - vol $6 - note e4 $05 - rest $05 - vol $3 - note e4 $04 - rest $02 - vol $6 - note e4 $05 - rest $05 - vol $3 - note e4 $04 - rest $02 - vol $6 - note d4 $05 - rest $03 - vol $3 - note d4 $04 - rest $04 - vol $6 - note c4 $05 - rest $03 - vol $3 - note c4 $04 - rest $04 - vol $2 - note c4 $02 - rest $5e - vol $6 - note as3 $08 - rest $02 - vol $3 - note as3 $04 - rest $02 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $04 - rest $04 - vol $1 - note c4 $02 - rest $5e - vol $6 - note as3 $08 - rest $02 - vol $3 - note as3 $02 - rest $04 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $02 - rest $06 - vol $6 - note as3 $08 - rest $02 - vol $3 - note as3 $02 - rest $04 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $02 - rest $46 - vol $6 - note as3 $08 - rest $02 - vol $3 - note as3 $02 - rest $04 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $02 - rest $06 - vol $1 - note c4 $02 - rest $5e - vol $6 - note as3 $08 - rest $02 - vol $3 - note as3 $02 - rest $04 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $02 - rest $06 - vol $6 - note d4 $08 - rest $02 - vol $3 - note d4 $02 - rest $04 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $02 - rest $06 - vol $6 - note as3 $08 - rest $02 - vol $3 - note as3 $02 - rest $04 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $02 - rest $06 - vol $1 - note c4 $02 - rest $ff - rest $ff - rest $10 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $04 - vol $6 - note a4 $08 - rest $02 - vol $3 - note a4 $02 - rest $04 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $04 - vol $6 - note a4 $08 - rest $02 - vol $3 - note a4 $02 - rest $04 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $04 - vol $6 - note as4 $0c - rest $01 - vol $3 - note as4 $03 - rest $02 - note as4 $02 - rest $0c - vol $6 - note as4 $0a - rest $02 - vol $1 - note as4 $04 - rest $02 - vol $3 - note as4 $02 - rest $06 - vol $2 - note as4 $02 - rest $04 - vol $6 - note a4 $08 - rest $02 - vol $3 - note a4 $02 - rest $04 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $34 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $04 - vol $6 - note a4 $08 - rest $02 - vol $3 - note a4 $02 - rest $04 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $04 - vol $6 - note a4 $08 - rest $02 - vol $3 - note a4 $02 - rest $04 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $04 - vol $6 - note a4 $08 - rest $02 - vol $3 - note a4 $02 - rest $04 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $04 - vol $6 - note as4 $0c - rest $01 - vol $3 - note as4 $03 - rest $05 - vol $3 - note as4 $03 - rest $02 - vol $3 - note as4 $02 - rest $04 - vol $6 - note as4 $10 - rest $02 - vol $3 - note as4 $02 - rest $06 - note as4 $02 - rest $04 - vol $6 - note a4 $08 - rest $02 - vol $3 - note a4 $02 - rest $04 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - vol $0 - rest $ff - vol $0 - rest $ff - rest $36 - vol $6 - note e4 $0d - rest $03 - note e4 $02 - rest $02 - vol $4 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $10 - vol $6 - note d4 $08 - rest $02 - vol $3 - note d4 $04 - rest $02 - vol $6 - note c4 $08 - rest $02 - vol $3 - note c4 $04 - rest $04 - vol $2 - note c4 $02 - rest $ac - vol $6 - note e4 $05 - rest $03 - vol $6 - note e4 $05 - rest $03 - vol $6 - note e4 $05 - rest $05 - vol $3 - note e4 $04 - rest $02 - vol $6 - note e4 $05 - rest $05 - vol $3 - note e4 $04 - rest $02 - vol $6 - note d4 $05 - rest $03 - vol $3 - note d4 $04 - rest $04 - vol $6 - note c4 $05 - rest $03 - vol $3 - note c4 $04 - rest $04 - vol $2 - note c4 $02 - rest $4e - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $04 - vol $6 - note a4 $08 - rest $02 - vol $3 - note a4 $02 - rest $04 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $04 - vol $6 - note a4 $08 - rest $02 - vol $3 - note a4 $02 - rest $04 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $04 - vol $6 - note as4 $08 - rest $02 - vol $3 - note as4 $02 - rest $06 - note as4 $02 - rest $06 - note as4 $02 - rest $04 - vol $6 - note as4 $08 - rest $02 - vol $3 - note as4 $02 - rest $06 - vol $3 - note as4 $02 - rest $06 - vol $2 - note as4 $02 - rest $04 - vol $6 - note a4 $08 - rest $02 - vol $3 - note a4 $02 - rest $04 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $34 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $04 - vol $6 - note a4 $08 - rest $02 - vol $3 - note a4 $02 - rest $04 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $04 - vol $6 - note a4 $08 - rest $02 - vol $3 - note a4 $02 - rest $04 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $04 - vol $6 - note a4 $08 - rest $02 - vol $3 - note a4 $02 - rest $04 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - rest $04 - vol $6 - note as4 $08 - rest $02 - vol $3 - note as4 $02 - rest $06 - vol $3 - note as4 $02 - rest $06 - vol $3 - note as4 $02 - rest $04 - vol $6 - note as4 $08 - rest $02 - vol $5 - note as4 $02 - rest $06 - vol $4 - note as4 $02 - rest $06 - vol $3 - note as4 $02 - rest $04 - vol $6 - note a4 $08 - rest $02 - vol $3 - note a4 $02 - rest $04 - vol $6 - note g4 $08 - rest $02 - vol $3 - note g4 $02 - vol $0 - rest $ff - vol $0 - rest $85 - goto musicf83e8 - cmdff - -musGoronCaveChannel0: - vibrato $00 - env $0 $00 -.ifdef ROM_SEASONS - cmdf2 -.endif - duty $02 -musicf87b3: - vol $6 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $08 - rest $10 - note g2 $08 - rest $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $04 - rest $04 - note g2 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $04 - rest $04 - note g2 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $04 - rest $04 - note g2 $18 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $08 - rest $10 - note g2 $08 - rest $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $08 - rest $10 - note g2 $08 - note as2 $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $04 - rest $04 - note g2 $10 - rest $10 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note c2 $20 - note e3 $08 - rest $08 - note g2 $08 - rest $18 - note g2 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note g2 $08 - rest $08 - note as2 $10 - note c3 $08 - rest $08 - note as2 $10 - note c3 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note g2 $08 - rest $18 - note g2 $08 - rest $08 - note as2 $10 - note c3 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note g2 $08 - rest $18 - note g2 $08 - rest $08 - note as2 $10 - note c3 $08 - rest $08 - note as2 $10 - note c3 $08 - rest $08 - note e3 $10 - note c3 $08 - rest $18 - note g2 $10 - note as2 $10 - note c3 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note g2 $08 - rest $18 - note g2 $08 - rest $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note c2 $08 - rest $10 - note c2 $08 - note e3 $18 - note g2 $04 - rest $04 - note g2 $08 - rest $08 - note g2 $08 - note as2 $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note g2 $08 - rest $18 - note g2 $08 - rest $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $08 - rest $10 - note g2 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $08 - rest $10 - note c3 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note c2 $10 - rest $08 - note ds3 $08 - note e3 $10 - note c3 $08 - note g2 $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note c2 $10 - rest $10 - note e3 $10 - note c3 $08 - note g2 $08 - rest $10 - note c3 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note c2 $10 - rest $08 - note ds3 $08 - note e3 $10 - note c3 $08 - note g2 $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note c2 $08 - rest $18 - note e3 $10 - note c3 $08 - note g2 $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $08 - rest $10 - note g2 $08 - rest $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $04 - rest $04 - note g2 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $04 - rest $04 - note g2 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note c2 $20 - note e3 $08 - rest $08 - note g2 $08 - rest $18 - note g2 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $08 - rest $08 - note g2 $08 - rest $18 - note g2 $08 - rest $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note c2 $08 - rest $10 - note c2 $08 - note e3 $18 - note g2 $08 - rest $10 - note g2 $08 - note as2 $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $08 - rest $08 - note g2 $08 - rest $18 - note g2 $08 - rest $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note c2 $08 - rest $08 - note c2 $08 - rest $08 - note e3 $10 - note c3 $08 - note g2 $08 - rest $10 - note c3 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - note c2 $0a - rest $0e - note ds3 $08 - note e3 $10 - note c3 $08 - note g2 $08 - note c3 $08 - rest $08 - note g2 $08 - rest $08 - note as2 $08 - rest $08 - note c3 $08 - rest $08 - goto musicf87b3 - cmdff - -musGoronCaveChannel4: -.ifdef ROM_SEASONS - cmdf2 -.endif -musicf8b3e: - duty $17 - rest $30 - note g3 $0d - rest $23 - note f3 $08 - rest $08 - note e3 $08 - rest $b8 - note g3 $02 - rest $06 - note g3 $02 - rest $06 - note g3 $04 - rest $0c - note g3 $04 - rest $0c - note f3 $04 - rest $0c - note e3 $04 - rest $6c - note d3 $08 - rest $08 - note e3 $04 - rest $3c - note g3 $0d - rest $23 - note f3 $08 - rest $08 - note e3 $08 - rest $b8 - note g3 $02 - rest $06 - note g3 $02 - rest $06 - note g3 $04 - rest $0c - note g3 $04 - rest $0c - note f3 $04 - rest $0c - note e3 $04 - rest $6c - note d3 $08 - rest $08 - note e3 $04 - rest $6c - note d3 $08 - rest $08 - note e3 $04 - rest $0c - note d3 $08 - rest $08 - note e3 $04 - rest $4c - note d3 $08 - rest $08 - note e3 $04 - rest $6c - note f3 $06 - rest $0a - note f3 $04 - rest $0c - note f3 $06 - rest $0a - note f3 $04 - rest $ff - rest $ff - rest $3e - duty $17 - note e4 $08 - rest $08 - note f4 $08 - rest $08 - note e4 $08 - rest $08 - note f4 $08 - rest $08 - note e4 $08 - rest $08 - note g4 $0c - rest $14 - note g4 $0a - rest $16 - note f4 $08 - rest $08 - note e4 $08 - rest $38 - note e4 $08 - rest $08 - note f4 $08 - rest $08 - note e4 $08 - rest $08 - note f4 $08 - rest $08 - note e4 $08 - rest $08 - note f4 $08 - rest $08 - note e4 $08 - rest $08 - note g4 $0c - rest $14 - note g4 $10 - rest $10 - note f4 $08 - rest $08 - note e4 $08 - rest $ff - rest $ff - rest $3a - duty $17 - note g3 $0d - rest $23 - note f3 $08 - rest $08 - note e3 $08 - rest $b8 - note g3 $04 - rest $04 - note g3 $04 - rest $04 - note g3 $08 - rest $08 - note g3 $08 - rest $08 - note f3 $08 - rest $08 - note e3 $08 - rest $58 - note e4 $08 - rest $08 - note f4 $08 - rest $08 - note e4 $08 - rest $08 - note f4 $08 - rest $08 - note e4 $08 - rest $08 - note g4 $08 - rest $18 - note g4 $08 - rest $18 - note f4 $08 - rest $08 - note e4 $08 - rest $38 - note e4 $08 - rest $08 - note f4 $08 - rest $08 - note e4 $08 - rest $08 - note f4 $08 - rest $08 - note e4 $08 - rest $08 - note f4 $08 - rest $08 - note e4 $08 - rest $08 - note g4 $08 - rest $18 - note g4 $08 - rest $18 - note f4 $08 - rest $08 - note e4 $08 - rest $ff - rest $89 - goto musicf8b3e - cmdff - -musGoronCaveChannel6: -.ifdef ROM_SEASONS - cmdf2 -.endif -musicf8c98: - vol $6 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - note $24 $10 - note $24 $30 - note $24 $30 - note $24 $10 - note $24 $10 - note $24 $60 - note $24 $10 - goto musicf8c98 - cmdff - -.ifdef ROM_SEASONS -.ifdef BUILD_VANILLA - .db $ff $ff $ff $ff -.endif -.endif diff --git a/audio/common/mus/greatMoblin.s b/audio/common/mus/greatMoblin.s deleted file mode 100644 index cc41f1c25..000000000 --- a/audio/common/mus/greatMoblin.s +++ /dev/null @@ -1,289 +0,0 @@ -musGreatMoblinStart: - -musGreatMoblinChannel1: - vibrato $00 - env $0 $00 -.ifdef ROM_SEASONS - cmdf2 -.endif - duty $00 -musicf800f: - vol $6 - note cs4 $48 - note c4 $09 - rest $04 - vol $3 - note c4 $09 - rest $05 - vol $1 - note c4 $09 - vol $6 - note fs4 $12 - note g4 $09 - rest $04 - vol $3 - note g4 $05 - vol $6 - note gs4 $12 - note g4 $09 - rest $04 - vol $3 - note g4 $09 - rest $05 - vol $1 - note g4 $09 - rest $5a - vol $6 - note cs4 $48 - note c4 $09 - rest $04 - vol $3 - note c4 $09 - rest $05 - vol $1 - note c4 $09 - vol $6 - note fs4 $12 - note g4 $09 - rest $04 - vol $3 - note g4 $05 - vol $6 - note as4 $0c - note a4 $0c - note gs4 $0c - note g4 $09 - rest $04 - vol $3 - note g4 $09 - rest $05 - vol $1 - note g4 $09 - rest $48 - vol $6 - note c5 $48 - note fs4 $09 - rest $04 - vol $3 - note fs4 $09 - rest $05 - vol $1 - note fs4 $09 - vol $6 - note f4 $12 - note ds4 $09 - rest $04 - vol $3 - note ds4 $05 - vol $6 - note f4 $09 - note ds4 $09 - note c4 $09 - rest $04 - vol $3 - note c4 $09 - rest $05 - vol $1 - note c4 $09 - rest $36 - vol $6 - note f4 $12 - note ds4 $12 - note fs4 $0c - note f4 $0c - note ds4 $0c - note f4 $12 - note ds4 $12 - note c4 $09 - rest $04 - vol $3 - note c4 $09 - rest $05 - vol $1 - note c4 $09 - vol $6 - note as3 $12 - note ds4 $12 - note c4 $09 - rest $04 - vol $3 - note c4 $09 - rest $05 - vol $1 - note c4 $09 - vol $6 - note as3 $09 - rest $04 - vol $3 - note as3 $09 - rest $05 - vol $1 - note as3 $09 - vol $6 - note e3 $48 - goto musicf800f - cmdff - -musGreatMoblinChannel0: -.ifdef ROM_SEASONS - cmdf2 -.endif - env $0 $02 - vol $9 -musicf80d6: - note c2 $24 - note fs2 $09 - rest $09 - note fs2 $09 - rest $09 - note fs2 $09 - rest $3f - note c2 $09 - rest $1b - note fs2 $09 - rest $09 - note fs2 $04 - rest $05 - note fs2 $04 - rest $05 - note fs2 $04 - rest $20 - note c2 $04 - rest $05 - note c2 $04 - rest $05 - note c2 $04 - rest $0e - note c2 $24 - note fs2 $09 - rest $09 - note fs2 $09 - rest $09 - note fs2 $09 - rest $1b - note fs2 $09 - rest $1b - note c2 $09 - rest $1b - note fs2 $09 - rest $09 - note fs2 $04 - rest $05 - note fs2 $04 - rest $05 - note as2 $12 - note a2 $12 - note gs2 $12 - note g2 $12 - note c2 $51 - rest $09 - note fs2 $09 - note f2 $09 - note e2 $09 - note ds2 $09 - note d2 $09 - note cs2 $09 - note c2 $09 - rest $1b - note fs2 $09 - rest $09 - note fs2 $04 - rest $05 - note fs2 $04 - rest $05 - note fs2 $09 - rest $1b - note c2 $04 - rest $05 - note c2 $04 - rest $05 - note c2 $04 - rest $0e - note c2 $24 - note fs2 $09 - rest $09 - note fs2 $09 - rest $09 - note fs2 $09 - rest $3f - note c2 $09 - rest $1b - note fs2 $09 - rest $09 - note fs2 $04 - rest $05 - note fs2 $04 - rest $05 - note as2 $48 - goto musicf80d6 - cmdff - -musGreatMoblinChannel4: -.ifdef ROM_SEASONS - cmdf2 -.endif -musicf8182: - duty $17 - note g3 $48 - note fs3 $09 - duty $0c - note fs3 $12 - rest $09 - duty $17 - note c4 $12 - note cs4 $09 - duty $0c - note cs4 $09 - duty $17 - note d4 $12 - note cs4 $09 - duty $0c - note cs4 $12 - rest $87 - duty $17 - note g3 $24 - note fs3 $09 - duty $0c - note fs3 $12 - rest $09 - duty $17 - note c4 $12 - note cs4 $09 - duty $0c - note d4 $09 - duty $17 - note e4 $0c - note ds4 $0c - note d4 $0c - note cs4 $09 - duty $0c - note cs4 $12 - rest $63 - duty $17 - note g4 $09 - note fs4 $09 - note f4 $09 - note e4 $09 - note ds4 $09 - note d4 $09 - note cs4 $09 - duty $0c - note cs4 $12 - rest $09 - duty $17 - note b3 $12 - note a3 $09 - duty $0c - note a3 $09 - duty $17 - note b3 $09 - note a3 $09 - note fs3 $09 - duty $17 - note fs3 $12 - rest $ff - rest $84 - goto musicf8182 - cmdff - -.define musGreatMoblinChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/indoors.s b/audio/common/mus/indoors.s deleted file mode 100644 index c746ead3c..000000000 --- a/audio/common/mus/indoors.s +++ /dev/null @@ -1,671 +0,0 @@ -musIndoorsStart: - -musIndoorsChannel1: - vibrato $e1 - env $0 $00 - duty $02 -musice8007: - vol $7 - note b5 $0b - note c6 $0b - note b5 $0b - note c6 $0b - note b5 $0b - rest $05 - vol $3 - note b5 $06 - vol $7 - note g5 $0b - rest $05 - vol $3 - note g5 $06 - vol $7 - note e5 $0b - rest $05 - vol $3 - note e5 $06 - vol $7 - note g5 $0b - rest $05 - vol $3 - note g5 $06 - vol $7 - note a5 $0b - note as5 $0b - note a5 $0b - note as5 $0b - note a5 $0b - rest $05 - vol $3 - note a5 $06 - vol $6 - note f5 $0b - rest $05 - vol $3 - note f5 $06 - vol $6 - note d5 $0b - rest $05 - vol $3 - note d5 $06 - vol $6 - note f5 $0b - rest $05 - vol $3 - note f5 $06 - vol $7 - note b5 $0b - note c6 $0b - note b5 $0b - note c6 $0b - note b5 $0b - rest $05 - vol $3 - note b5 $06 - vol $7 - note g5 $0b - rest $05 - vol $3 - note g5 $06 - vol $7 - note e5 $0b - rest $05 - vol $3 - note e5 $06 - vol $7 - note g5 $0b - rest $05 - vol $3 - note g5 $06 - vol $7 - note a5 $0b - note as5 $0b - note a5 $0b - note as5 $0b - note a5 $0b - rest $05 - vol $3 - note a5 $06 - vol $6 - note f5 $0b - rest $05 - vol $3 - note f5 $06 - vol $6 - note d5 $0b - rest $05 - vol $3 - note d5 $06 - vol $6 - note f5 $0b - rest $05 - vol $3 - note f5 $06 - vol $6 - note g5 $0b - note gs5 $0b - vol $6 - note g5 $0b - vol $6 - note gs5 $0b - vol $6 - note g5 $0b - rest $05 - vol $3 - note g5 $06 - vol $6 - note ds5 $0b - rest $05 - vol $3 - note ds5 $06 - vol $6 - note c5 $0b - rest $05 - vol $3 - note c5 $06 - vol $6 - note g5 $0b - rest $05 - vol $3 - note g5 $06 - vol $6 - note f5 $0b - note g5 $0b - note f5 $0b - note g5 $0b - vol $5 - note f5 $0b - rest $05 - vol $2 - note f5 $06 - vol $6 - note d5 $0b - rest $05 - vol $3 - note d5 $06 - vol $6 - note as4 $0b - rest $05 - vol $3 - note as4 $06 - vol $6 - note d5 $0b - rest $05 - vol $3 - note d5 $06 - vol $6 - note c5 $42 - vol $6 - note a4 $0b - rest $05 - vol $3 - note a4 $06 - vol $6 - note c5 $0b - rest $05 - vol $3 - note c5 $06 - vol $6 - note f5 $0b - rest $05 - vol $3 - note f5 $06 - vol $8 - note g5 $58 - vol $5 - note g6 $03 - rest $03 - vol $4 - note g6 $05 - rest $03 - vol $4 - note g6 $03 - rest $1b - goto musice8007 - cmdff - -musIndoorsChannel4: - duty $08 -musice812e: - note g5 $0b - note a5 $0b - note g5 $0b - note a5 $0b - note g5 $03 - rest $03 - note g5 $05 - rest $03 - vol $4 - note g5 $03 - rest $05 - vol $6 - note e5 $03 - rest $03 - vol $4 - note e5 $05 - rest $03 - vol $4 - note e5 $03 - rest $05 - vol $6 - note b4 $03 - rest $03 - vol $4 - note b4 $05 - rest $03 - vol $4 - note b4 $03 - rest $05 - vol $6 - note g4 $03 - rest $03 - vol $4 - note g4 $05 - rest $03 - vol $4 - note g4 $03 - rest $05 - vol $6 - note f5 $0b - note g5 $0b - note f5 $0b - note g5 $0b - note f5 $03 - rest $03 - vol $4 - note f5 $05 - rest $03 - vol $4 - note f5 $03 - rest $05 - vol $6 - note d5 $03 - rest $03 - vol $5 - note d5 $05 - rest $03 - vol $4 - note d5 $03 - rest $05 - vol $6 - note as4 $03 - rest $03 - vol $4 - note as4 $05 - rest $03 - vol $3 - note as4 $03 - rest $05 - vol $6 - note f4 $03 - rest $03 - vol $4 - note f4 $05 - rest $03 - vol $3 - note f4 $03 - rest $05 - vol $6 - note g5 $0b - note a5 $0b - note g5 $0b - note a5 $0b - note g5 $03 - rest $03 - vol $5 - note g5 $05 - rest $03 - vol $4 - note g5 $03 - rest $05 - vol $6 - note e5 $03 - rest $03 - vol $4 - note e5 $05 - rest $03 - vol $4 - note e5 $03 - rest $05 - vol $6 - note b4 $03 - rest $03 - vol $4 - note b4 $05 - rest $03 - vol $4 - note b4 $03 - rest $05 - vol $6 - note g4 $03 - rest $03 - vol $4 - note g4 $05 - rest $03 - vol $4 - note g4 $03 - rest $05 - vol $6 - note f5 $0b - note g5 $0b - note f5 $0b - note g5 $0b - note f5 $03 - rest $03 - vol $4 - note f5 $05 - rest $03 - vol $4 - note f5 $03 - rest $05 - vol $6 - note d5 $03 - rest $03 - vol $5 - note d5 $05 - rest $03 - vol $4 - note d5 $03 - rest $05 - vol $6 - note as4 $03 - rest $03 - vol $5 - note as4 $05 - rest $03 - vol $4 - note as4 $03 - rest $05 - vol $6 - note f4 $03 - rest $03 - vol $5 - note f4 $05 - rest $03 - vol $3 - note f4 $03 - rest $05 - vol $7 - note ds5 $0b - vol $6 - note f5 $0b - note ds5 $0b - note f5 $0b - note ds5 $03 - rest $03 - vol $5 - note ds5 $05 - rest $03 - vol $3 - note ds5 $03 - rest $05 - vol $6 - note c5 $03 - rest $03 - vol $5 - note c5 $05 - rest $03 - vol $3 - note c5 $03 - rest $05 - vol $6 - note gs4 $03 - rest $03 - vol $5 - note gs4 $05 - rest $03 - vol $4 - note gs4 $03 - rest $05 - vol $6 - note ds4 $03 - rest $03 - vol $5 - note ds4 $05 - rest $03 - vol $4 - note ds4 $03 - rest $05 - vol $6 - note d5 $0b - note ds5 $0b - note d5 $0b - note ds5 $0b - note d5 $03 - rest $03 - vol $5 - note d5 $05 - rest $03 - vol $4 - note d5 $03 - rest $05 - vol $6 - note as4 $03 - rest $03 - vol $5 - note as4 $05 - rest $03 - vol $4 - note as4 $03 - rest $05 - vol $6 - note f4 $03 - rest $03 - vol $5 - note f4 $05 - rest $03 - vol $4 - note f4 $03 - rest $05 - vol $6 - note d4 $03 - rest $03 - vol $4 - note d4 $05 - rest $03 - vol $3 - note d4 $03 - rest $05 - vol $6 - note ds4 $0b - note d4 $0b - vol $6 - note c4 $03 - rest $03 - vol $5 - note c4 $05 - rest $03 - vol $3 - note c4 $03 - rest $05 - vol $6 - note ds4 $03 - rest $03 - vol $5 - note ds4 $05 - rest $03 - vol $3 - note ds4 $03 - rest $05 - vol $6 - note f4 $03 - rest $03 - vol $5 - note f4 $05 - rest $03 - vol $5 - note f4 $03 - rest $05 - vol $6 - note a4 $03 - rest $03 - vol $6 - note a4 $05 - rest $03 - vol $5 - note a4 $03 - rest $05 - vol $6 - note c5 $03 - rest $03 - vol $5 - note c5 $05 - rest $03 - vol $4 - note c5 $03 - rest $05 - vol $7 - note b4 $0b - rest $03 - vol $6 - note b4 $03 - rest $05 - vol $5 - note b4 $03 - rest $03 - vol $4 - note b4 $05 - rest $0b - vol $6 - note c5 $0b - rest $03 - vol $5 - note c5 $03 - rest $05 - vol $4 - note c5 $03 - rest $03 - vol $4 - note c5 $05 - rest $0b - vol $6 - note d5 $07 - rest $04 - vol $4 - note d5 $03 - rest $03 - vol $4 - note d5 $05 - rest $03 - vol $3 - note d5 $03 - rest $10 - goto musice812e - cmdff - -musIndoorsChannel0: - duty $02 -musice8357: - vol $6 - note c4 $0b - vol $3 - note c4 $0b - vol $6 - note g4 $0b - vol $3 - note g4 $0b - vol $6 - note b4 $0b - vol $3 - note b4 $0b - vol $6 - note e5 $0b - vol $3 - note e5 $16 - rest $21 - vol $6 - note as3 $0b - vol $3 - note as3 $0b - vol $6 - note f4 $0b - vol $3 - note f4 $0b - vol $6 - note a4 $0b - vol $3 - note a4 $0b - vol $6 - note d5 $0b - vol $3 - note d5 $16 - rest $21 - vol $6 - note c4 $0b - vol $3 - note c4 $0b - vol $6 - note g4 $0b - vol $3 - note g4 $0b - vol $6 - note b4 $0b - vol $3 - note b4 $0b - vol $6 - note e5 $0b - vol $3 - note e5 $16 - rest $21 - vol $6 - note as3 $0b - vol $3 - note as3 $0b - vol $6 - note f4 $0b - vol $3 - note f4 $0b - vol $6 - note a4 $0b - vol $3 - note a4 $0b - vol $6 - note d5 $0b - vol $3 - note d5 $16 - rest $21 - vol $6 - note gs3 $0b - vol $3 - note gs3 $0b - vol $6 - note ds4 $0b - vol $3 - note ds4 $0b - vol $6 - note g4 $0b - vol $3 - note g4 $0b - vol $6 - note c5 $0b - vol $3 - note c5 $16 - rest $21 - vol $6 - note g3 $0b - vol $3 - note g3 $0b - vol $6 - note d4 $0b - vol $3 - note d4 $0b - vol $6 - note g4 $0b - vol $3 - note g4 $0b - vol $6 - note as4 $0b - vol $3 - note as4 $16 - rest $21 - vol $6 - note f3 $0b - vol $3 - note f3 $0b - vol $6 - note c4 $0b - vol $3 - note c4 $0b - vol $6 - note f4 $0b - vol $3 - note f4 $0b - vol $6 - note a4 $0b - vol $3 - note a4 $16 - rest $21 - vol $6 - note g3 $0b - vol $3 - note g3 $0b - vol $6 - note b3 $0b - vol $3 - note b3 $0b - vol $6 - note d4 $0b - vol $3 - note d4 $0b - vol $6 - note g4 $0b - vol $3 - note g4 $0b - vol $6 - note d4 $0b - vol $3 - note d4 $0b - vol $6 - note b3 $0b - vol $3 - note b3 $0b - goto musice8357 - cmdff - -.ifdef ROM_SEASONS -.ifdef BUILD_VANILLA - .db $ff $ff $ff -.endif -.endif - -.define musIndoorsChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/intro1.s b/audio/common/mus/intro1.s deleted file mode 100644 index 61c9380a1..000000000 --- a/audio/common/mus/intro1.s +++ /dev/null @@ -1,1882 +0,0 @@ -musIntro1Start: - -musIntro1Channel1: - vibrato $e1 - env $0 $00 - cmdf2 - duty $01 - vol $5 - note d4 $2a - vol $3 - note d4 $0e - vol $5 - note g4 $54 - vibrato $01 - env $0 $00 - vol $3 - note g4 $1c - vibrato $e1 - env $0 $00 - vol $5 - note d4 $1c - note g4 $1c - note f4 $0e - note e4 $0e - note f4 $1c - note c4 $38 - vibrato $01 - env $0 $00 - vol $3 - note c4 $1c - vibrato $e1 - env $0 $00 - vol $6 - note c4 $1c - note f4 $1c - note as4 $1c - note gs4 $0e - note fs4 $0e - note gs4 $1c - note ds4 $38 - vibrato $01 - env $0 $00 - vol $3 - note ds4 $1c - vibrato $e1 - env $0 $00 - vol $6 - note ds4 $1c - note gs4 $1c - note cs5 $1c - note b4 $0e - note as4 $0e - note b4 $1c - note fs4 $38 - vibrato $01 - env $0 $00 - vol $4 - note fs4 $1c - vibrato $e1 - env $0 $00 - vol $7 - note fs4 $1c - vol $6 - note b4 $1c - vol $9 - note e5 $1c - vol $4 - note e5 $07 - rest $03 - vol $3 - note e5 $07 - rest $04 - vol $2 - note e5 $07 - duty $02 - vol $6 - note ds5 $15 - vol $4 - note ds5 $07 - vol $6 - note as4 $07 - rest $03 - vol $4 - note as4 $04 - vol $6 - note as5 $07 - rest $03 - vol $4 - note as5 $04 - vol $6 - note gs5 $1c - note g5 $07 - rest $03 - vol $4 - note g5 $04 - vol $6 - note f5 $1c - note cs5 $07 - rest $03 - vol $4 - note cs5 $04 - vol $6 - note ds5 $07 - note f5 $07 - note g5 $07 - rest $03 - vol $4 - note g5 $04 - vol $6 - note f5 $0e - note ds5 $0e - note cs5 $0e - note f5 $0e - note ds5 $1c - vibrato $01 - env $0 $00 - vol $4 - note ds5 $1c - vibrato $e1 - env $0 $00 - vol $6 - note ds5 $07 - note f5 $07 - note g5 $07 - note gs5 $07 - rest $03 - vol $4 - note gs5 $07 - rest $04 - vol $2 - note gs5 $07 - rest $03 - vol $1 - note gs5 $04 - vol $6 - note as5 $1c - note ds6 $1c - vol $4 - note ds6 $0e - vol $6 - note f6 $0e - note cs6 $0e - note as5 $07 - note cs6 $07 - note ds6 $07 - note f6 $07 - note fs6 $07 - rest $03 - vol $4 - note fs6 $04 - vol $6 - note f6 $0e - note ds6 $0e - note cs6 $0e - note as5 $0e - rest $03 - vol $4 - note as5 $07 - rest $04 - vol $6 - note f6 $07 - rest $03 - vol $4 - note f6 $04 - vol $6 - note fs6 $07 - note gs6 $07 - note a6 $07 - rest $03 - vol $4 - note a6 $04 - vol $6 - note gs6 $0e - note fs6 $0e - note e6 $0e - note d6 $0e - note c6 $1c - note b5 $07 - rest $03 - vol $4 - note b5 $04 - vol $6 - note a5 $1c - note g5 $07 - rest $03 - vol $4 - note g5 $04 - vol $6 - note a5 $38 - vibrato $01 - env $0 $00 - vol $4 - note a5 $1c - vibrato $e1 - vol $6 - note gs5 $1c - vol $6 - note fs5 $07 - rest $03 - vol $3 - note fs5 $04 - vol $6 - note e5 $1c - note d5 $07 - rest $03 - vol $3 - note d5 $04 - vol $6 - note e5 $46 - vibrato $01 - env $0 $00 - vol $3 - note e5 $0e - vibrato $e1 - vol $6 - note b4 $07 - rest $07 - vol $4 - note b4 $07 - rest $07 - vol $2 - note b4 $07 - rest $07 - vol $1 - note b4 $07 - rest $07 - vibrato $e1 - env $0 $00 - vol $0 - note b4 $07 - rest $15 - vibrato $00 - duty $02 -musicf6ed3: - vol $5 - note e5 $05 - rest $05 - vol $7 - note d5 $05 - vol $3 - note e5 $05 - vol $7 - note a4 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note a4 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note g5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note g5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note a4 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note a4 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note g5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note g5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note a4 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note a4 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note g5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note g5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note a4 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note a4 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note g5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note g5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note a4 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note a4 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note g5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note g5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note a4 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note a4 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note g5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note g5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note a4 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note a4 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note g5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note g5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note a4 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note a4 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note g5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note g5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note a4 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note a4 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note g5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note g5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note e5 $05 - vol $7 - note a4 $05 - vol $4 - note d5 $05 - vol $7 - note d5 $05 - vol $4 - note a4 $05 - vol $7 - note e5 $05 - vol $4 - note d5 $05 - vol $7 - note g5 $05 - vol $4 - note e5 $05 - vol $7 - note b5 $05 - vol $4 - note g5 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note b5 $05 - vol $4 - note a5 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note e5 $05 - vol $4 - note a5 $05 - vol $7 - note g5 $05 - vol $4 - note e5 $05 - vol $7 - note a5 $05 - vol $4 - note g5 $05 - vol $7 - note c6 $05 - vol $4 - note a5 $05 - vol $7 - note b5 $05 - vol $4 - note c6 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note b5 $05 - vol $4 - note a5 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note e5 $05 - vol $4 - note a5 $05 - vol $7 - note g5 $05 - vol $4 - note e5 $05 - vol $7 - note a5 $05 - vol $4 - note g5 $05 - vol $7 - note c6 $05 - vol $4 - note a5 $05 - vol $7 - note b5 $05 - vol $4 - note c6 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note b5 $05 - vol $4 - note a5 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note e5 $05 - vol $4 - note a5 $05 - vol $7 - note g5 $05 - vol $4 - note e5 $05 - vol $7 - note a5 $05 - vol $4 - note g5 $05 - vol $7 - note c6 $05 - vol $4 - note a5 $05 - vol $7 - note b5 $05 - vol $4 - note c6 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note b5 $05 - vol $4 - note a5 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note e5 $05 - vol $4 - note a5 $05 - vol $7 - note g5 $05 - vol $4 - note e5 $05 - vol $7 - note a5 $05 - vol $4 - note g5 $05 - vol $7 - note c6 $05 - vol $4 - note a5 $05 - vol $7 - note b5 $05 - vol $4 - note c6 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note b5 $05 - vol $4 - note a5 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note e5 $05 - vol $4 - note a5 $05 - vol $7 - note g5 $05 - vol $4 - note e5 $05 - vol $7 - note a5 $05 - vol $4 - note g5 $05 - vol $7 - note c6 $05 - vol $4 - note a5 $05 - vol $7 - note b5 $05 - vol $4 - note c6 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note b5 $05 - vol $4 - note a5 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note fs5 $05 - vol $4 - note a5 $05 - vol $7 - note e5 $05 - vol $4 - note fs5 $05 - vol $7 - note fs5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note fs5 $05 - vol $7 - note b4 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note b4 $05 - vol $7 - note fs5 $05 - vol $4 - note e5 $05 - vol $7 - note a5 $05 - vol $4 - note fs5 $05 - vol $7 - note fs5 $05 - vol $4 - note a5 $05 - vol $7 - note e5 $05 - vol $4 - note fs5 $05 - vol $7 - note fs5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note fs5 $05 - vol $7 - note b4 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note b4 $05 - vol $7 - note fs5 $05 - vol $4 - note e5 $05 - vol $7 - note a5 $05 - vol $4 - note fs5 $05 - vol $7 - note e5 $05 - vol $4 - note a5 $05 - vol $7 - note fs5 $05 - vol $4 - note e5 $05 - vol $7 - note a5 $05 - vol $4 - note fs5 $05 - vol $7 - note b5 $05 - vol $4 - note a5 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note fs5 $05 - vol $4 - note a5 $05 - vol $7 - note a5 $05 - vol $4 - note fs5 $05 - vol $7 - note fs5 $05 - vol $4 - note a5 $05 - vol $7 - note b5 $05 - vol $4 - note fs5 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note fs5 $05 - vol $4 - note a5 $05 - vol $7 - note e5 $05 - vol $4 - note fs5 $05 - vol $7 - note fs5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note fs5 $05 - vol $7 - note fs5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note fs5 $05 - vol $7 - note b4 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note b4 $05 - vol $7 - note fs5 $05 - vol $4 - note e5 $05 - vol $7 - note a5 $05 - vol $4 - note fs5 $05 - vol $7 - note b5 $05 - vol $4 - note a5 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note d6 $05 - vol $4 - note a5 $05 - vol $7 - note cs6 $05 - vol $4 - note d6 $05 - vol $7 - note b5 $05 - vol $4 - note cs6 $05 - vol $7 - note a5 $05 - vol $4 - note b5 $05 - vol $7 - note fs5 $05 - vol $4 - note a5 $05 - vol $7 - note e5 $05 - vol $4 - note fs5 $05 - vol $7 - note fs5 $05 - vol $4 - note e5 $05 - vol $7 - note e5 $05 - vol $4 - note fs5 $05 - vol $7 - note b4 $05 - vol $4 - note e5 $05 - vol $7 - note a4 $05 - vol $4 - note b4 $05 - goto musicf6ed3 - cmdff - -musIntro1Channel0: - vol $0 - note gs3 $62 - vibrato $e1 - env $0 $00 - cmdf2 - duty $02 - vol $5 - note d5 $07 - note g5 $07 - note d6 $07 - rest $03 - vol $3 - note d6 $07 - rest $04 - vol $2 - note d6 $07 - rest $03 - vol $2 - note d6 $07 - rest $04 - vol $1 - note d6 $07 - rest $07 - duty $01 - vol $4 - note b3 $1c - note d4 $1c - note c4 $0e - note b3 $0e - note c4 $1c - note g3 $1c - vol $2 - note g3 $0e - duty $02 - vol $5 - note c5 $07 - note f5 $07 - note c6 $07 - note f5 $07 - note c5 $07 - rest $03 - vol $4 - note c5 $07 - rest $04 - vol $3 - note c5 $07 - rest $03 - vol $2 - note c5 $07 - rest $04 - vol $1 - note c5 $07 - rest $31 - duty $01 - vol $5 - note ds4 $0e - note cs4 $0e - vol $5 - note ds4 $1c - note as3 $1c - vol $2 - note as3 $0e - duty $02 - vol $5 - note ds5 $07 - note gs5 $07 - note cs6 $07 - rest $03 - vol $4 - note cs6 $07 - rest $04 - vol $3 - note cs6 $07 - rest $03 - vol $2 - note cs6 $07 - rest $04 - vol $1 - note cs6 $07 - rest $07 - duty $01 - vol $6 - note c4 $1c - vol $7 - note f4 $1c - vol $6 - note fs4 $0e - note f4 $0e - note fs4 $1c - note cs4 $1c - vol $4 - note cs4 $0e - duty $02 - vol $6 - note fs5 $07 - note b5 $07 - vol $6 - note e6 $07 - rest $03 - vol $5 - note e6 $07 - rest $04 - vol $4 - note e6 $07 - rest $03 - vol $3 - note e6 $07 - rest $04 - vol $2 - note e6 $07 - rest $07 - vol $6 - note b3 $07 - vol $6 - note cs4 $07 - vol $7 - note ds4 $07 - vol $7 - note e4 $07 - vol $8 - note fs4 $07 - vol $8 - note gs4 $07 - vol $9 - note a4 $07 - vol $9 - note b4 $07 - vol $3 - note b4 $07 - rest $03 - vol $3 - note b4 $07 - rest $04 - vol $2 - note b4 $07 - vol $6 - note as4 $15 - vol $4 - note as4 $07 - vol $6 - note ds4 $07 - rest $03 - vol $4 - note ds4 $04 - vol $6 - note g4 $07 - rest $03 - vol $4 - note g4 $04 - vol $6 - note f4 $1c - vol $4 - note f4 $0e - vol $6 - note cs4 $1c - note as3 $07 - rest $03 - vol $4 - note as3 $04 - vol $6 - note b3 $0e - note ds4 $07 - rest $03 - vol $4 - note ds4 $04 - vol $6 - note cs4 $0e - note b3 $0e - note as3 $0e - note cs4 $0e - note as3 $0e - vol $4 - note as3 $0e - vol $6 - note ds3 $07 - note as3 $07 - note ds4 $03 - rest $04 - note ds4 $07 - note as4 $03 - rest $04 - note as4 $07 - note ds5 $03 - rest $04 - note ds5 $07 - rest $03 - vol $4 - note ds5 $07 - rest $04 - vol $2 - note ds5 $07 - rest $03 - vol $1 - note ds5 $04 - vol $6 - note ds5 $1c - note fs5 $1c - vol $4 - note fs5 $0e - vol $6 - note cs5 $0e - note as4 $1c - note fs5 $07 - note gs5 $07 - note as5 $07 - rest $03 - vol $4 - note as5 $04 - vol $6 - note ds5 $0e - note cs5 $0e - note as4 $0e - note ds5 $0e - note f5 $0e - note cs5 $0e - note d5 $07 - note e5 $07 - note fs5 $07 - rest $03 - vol $4 - note fs5 $04 - vol $6 - note e5 $0e - note cs5 $0e - note b4 $0e - note fs5 $0e - note a5 $1c - note g5 $07 - rest $03 - vol $4 - note g5 $04 - vol $6 - note f5 $1c - note e5 $07 - rest $03 - vol $4 - note e5 $04 - vol $6 - note f5 $1c - note e5 $0e - note d5 $1c - note c5 $0e - note b4 $1c - note a4 $07 - rest $03 - vol $4 - note a4 $04 - vol $6 - note gs4 $1c - note fs4 $07 - rest $03 - vol $4 - note fs4 $04 - vol $6 - note gs4 $1c - note a4 $07 - rest $03 - vol $4 - note a4 $04 - vol $6 - note gs4 $1c - note fs4 $07 - rest $03 - vol $4 - note fs4 $04 - vol $6 - note gs4 $07 - rest $07 - vol $5 - note gs4 $07 - rest $07 - vol $3 - note gs4 $07 - rest $07 - vol $2 - note gs4 $07 - rest $07 - vol $1 - note gs4 $07 - rest $15 - vibrato $00 - duty $01 -musicf74a6: - rest $78 - vol $7 - note e3 $28 - note g3 $46 - vol $4 - note g3 $0a - vol $7 - note e3 $28 - note g3 $28 - note a3 $28 - note c4 $28 - note b3 $28 - note g3 $28 - note a3 $28 - note e3 $50 - vol $4 - note e3 $14 - vol $7 - note d3 $05 - vol $4 - note d3 $05 - vol $7 - note d3 $05 - vol $4 - note d3 $05 - vol $7 - note e3 $78 - vol $4 - note e3 $1e - vol $2 - note e3 $1e - vol $1 - note e3 $14 - vol $7 - note a3 $28 - note c4 $46 - vol $4 - note c4 $0a - vol $7 - note a3 $28 - note c4 $28 - note d4 $28 - note fs4 $28 - note a4 $28 - note c5 $28 - note b4 $5a - vol $4 - note b4 $0a - vol $7 - note a2 $05 - vol $4 - note a2 $05 - vol $7 - note a2 $05 - vol $4 - note a2 $05 - vol $7 - note b2 $78 - vol $4 - note b2 $1e - vol $2 - note b2 $1e - vol $1 - note b2 $1e - vol $0 - note b2 $1e - rest $78 - goto musicf74a6 - cmdff - -musIntro1Channel4: - cmdf2 - duty $0e - note g3 $07 - rest $07 - note f3 $07 - duty $0f - note g3 $07 - duty $0e - note g3 $07 - duty $0f - note f3 $07 - duty $0e - note d3 $07 - duty $0f - note g3 $07 - duty $0e - note g3 $07 - duty $0f - note d3 $07 - duty $0e - note f3 $07 - duty $0f - note g3 $07 - duty $0e - note g3 $07 - duty $0f - note f3 $07 - duty $0e - note d3 $07 - duty $0f - note g3 $07 - duty $0e - note g3 $07 - duty $0f - note d3 $07 - duty $0e - note f3 $07 - duty $0f - note g3 $07 - duty $0e - note g3 $07 - duty $0f - note f3 $07 - duty $0e - note d3 $07 - duty $0f - note g3 $07 - duty $0e - note g3 $07 - duty $0f - note d3 $07 - duty $0e - note f3 $07 - duty $0f - note g3 $07 - duty $0e - note g3 $07 - duty $0f - note f3 $07 - duty $0e - note d3 $07 - duty $0f - note g3 $07 - duty $0e - note g3 $07 - duty $0f - note d3 $07 - duty $0e - note f3 $07 - duty $0f - note g3 $07 - duty $0e - note g3 $07 - duty $0f - note f3 $07 - duty $0e - note d3 $07 - duty $0f - note g3 $07 - duty $0e - note g3 $07 - duty $0f - note d3 $07 - duty $0e - note f3 $07 - duty $0f - note g3 $07 - duty $0e - note g3 $07 - duty $0f - note f3 $07 - duty $0e - note d3 $07 - duty $0f - note g3 $07 - duty $0e - note g3 $07 - duty $0f - note d3 $07 - duty $0e - note f3 $07 - duty $0f - note g3 $07 - duty $0e - note g3 $07 - duty $0f - note f3 $07 - duty $0e - note d3 $07 - duty $0f - note g3 $07 - duty $0e - note g3 $07 - duty $0f - note d3 $07 - duty $0e - note f3 $07 - duty $0f - note g3 $07 - duty $0e - note g3 $07 - duty $0f - note f3 $07 - duty $0e - note d3 $07 - duty $0f - note g3 $07 - duty $0e - note f3 $07 - duty $0f - note d3 $07 - duty $0e - note ds3 $07 - duty $0f - note f3 $07 - duty $0e - note f3 $07 - duty $0f - note ds3 $07 - duty $0e - note c3 $07 - duty $0f - note f3 $07 - duty $0e - note f3 $07 - duty $0f - note c3 $07 - duty $0e - note ds3 $07 - duty $0f - note f3 $07 - duty $0e - note f3 $07 - duty $0f - note ds3 $07 - duty $0e - note c3 $07 - duty $0f - note f3 $07 - duty $0e - note f3 $07 - duty $0f - note c3 $07 - duty $0e - note ds3 $07 - duty $0f - note f3 $07 - duty $0e - note f3 $07 - duty $0f - note ds3 $07 - duty $0e - note c3 $07 - duty $0f - note f3 $07 - duty $0e - note gs3 $07 - duty $0f - note c3 $07 - duty $0e - note fs3 $07 - duty $0f - note gs3 $07 - duty $0e - note gs3 $07 - duty $0f - note fs3 $07 - duty $0e - note ds3 $07 - duty $0f - note gs3 $07 - duty $0e - note b3 $07 - duty $0f - note ds3 $07 - duty $0e - note as3 $07 - duty $0f - note b3 $07 - duty $0e - note b3 $07 - duty $0f - note as3 $07 - duty $0e - note fs3 $07 - duty $0f - note b3 $07 - duty $0e - note b3 $07 - duty $0f - note fs3 $07 - duty $0e - note as3 $07 - duty $0f - note b3 $07 - duty $0e - note b3 $07 - duty $0f - note as3 $07 - duty $0e - note fs3 $07 - duty $0f - note b3 $07 - duty $0e - note b3 $07 - duty $0f - note fs3 $07 - duty $0e - note as3 $07 - duty $0f - note b3 $07 - duty $0e - note b3 $07 - duty $0f - note as3 $07 - duty $0e - note fs3 $07 - duty $0f - note b3 $07 - duty $0e - note gs2 $07 - note a2 $07 - note b2 $07 - note cs3 $07 - note ds3 $07 - note e3 $07 - note fs3 $07 - note gs3 $07 - rest $1c - note ds2 $15 - duty $0f - note ds2 $0e - duty $2c - note ds2 $07 - duty $0e - note ds2 $0e - note cs2 $0e - duty $0f - note cs2 $0e - duty $0e - note cs2 $0e - note f2 $0e - note ds2 $0e - note cs2 $0e - note b1 $0e - duty $0f - note b1 $0e - duty $0e - note b1 $0e - note as1 $1c - note cs2 $0e - note ds2 $15 - duty $0f - note ds2 $07 - duty $0e - note as1 $0e - note ds2 $0e - note as1 $0e - note ds2 $0e - note b1 $0e - duty $0f - note b1 $0e - duty $0e - note fs2 $1c - note b2 $1c - note as2 $1c - note f2 $0e - note as2 $0e - duty $0f - note as2 $0e - duty $0e - note f2 $0e - note as1 $1c - note cs2 $1c - note f2 $1c - note d2 $1c - note e2 $1c - duty $0f - note e2 $0e - duty $0e - note e2 $0e - note f2 $15 - duty $0f - note f2 $07 - duty $0e - note f2 $23 - duty $0f - note f2 $07 - duty $0e - note f2 $07 - duty $0f - note f2 $07 - duty $0e - note f2 $0e - note c2 $0e - note d2 $0e - note e2 $0e - note f2 $0e - note g2 $0e - note e2 $07 - duty $0f - note e2 $07 - duty $0e - note e2 $18 - duty $0f - note e2 $04 - duty $0e - note e2 $15 - duty $0f - note e2 $07 - duty $0e - note e2 $07 - duty $0f - note e2 $07 - duty $0e - note e2 $1c - note b1 $0e - note e2 $1c - note gs2 $0e - note e2 $1c - rest $38 -musicf77c0: - rest $78 - duty $0e - note a3 $28 - note d4 $46 - duty $17 - note d4 $0a - duty $0e - note a3 $28 - note d4 $28 - note e4 $28 - note g4 $28 - note fs4 $28 - note d4 $28 - note e4 $28 - note a3 $50 - duty $17 - note a3 $14 - duty $0e - note a2 $05 - duty $17 - note a2 $05 - duty $0e - note a2 $05 - duty $17 - note a2 $05 - duty $0e - note a2 $78 - duty $17 - note a2 $1e - duty $0f - note a2 $1e - duty $0c - note a2 $14 - duty $0e - note e4 $28 - note g4 $46 - duty $17 - note g4 $0a - duty $0e - note e4 $28 - note g4 $28 - note a4 $28 - note b4 $28 - note d5 $28 - note f5 $28 - note fs5 $5a - duty $17 - note fs5 $0a - duty $0e - note e3 $05 - duty $17 - note e3 $05 - duty $0e - note e3 $05 - duty $17 - note e3 $05 - duty $0e - note fs3 $78 - duty $17 - note fs3 $1e - duty $0f - note fs3 $1e - duty $0c - note fs3 $1e - duty $0c - note fs3 $1e - rest $78 - goto musicf77c0 - cmdff - -musIntro1Channel6: - cmdf2 - vol $2 - note $2e $70 - note $2e $69 - vol $3 - note $2a $02 - vol $2 - note $2a $02 - vol $2 - note $2a $03 - vol $2 - note $2e $70 - note $2e $69 - vol $3 - note $2a $02 - vol $2 - note $2a $02 - vol $2 - note $2a $03 - vol $2 - note $2e $70 - vol $2 - note $2e $70 - note $2e $70 - note $2e $38 - vol $2 - note $2e $02 - vol $2 - note $2e $02 - vol $2 - note $2e $03 - vol $3 - note $2e $02 - vol $3 - note $2e $02 - vol $3 - note $2e $03 - vol $3 - note $2e $02 - vol $3 - note $2e $02 - vol $3 - note $2e $03 - vol $4 - note $2e $02 - vol $4 - note $2e $02 - vol $4 - note $2e $03 - vol $4 - note $2e $02 - vol $4 - note $2e $02 - vol $4 - note $2e $03 - vol $4 - note $2e $02 - vol $4 - note $2e $02 - vol $4 - note $2e $03 - vol $4 - note $2e $02 - vol $4 - note $2e $02 - vol $4 - note $2e $03 - vol $4 - note $2e $02 - vol $4 - note $2e $02 - vol $4 - note $2e $03 - vol $2 - note $2e $1c - vol $4 - note $26 $1c - note $26 $0e - note $26 $0e - vol $4 - note $26 $0e - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $2a - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $1c - vol $4 - note $26 $0e - note $26 $1c - vol $4 - note $26 $0e - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $0e - note $26 $0e - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $2 - note $26 $02 - vol $3 - note $26 $02 - vol $4 - note $26 $03 - vol $4 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $03 - vol $2 - note $2e $0e - vol $4 - note $26 $07 - note $26 $07 - vol $2 - note $2e $1c - vol $4 - note $26 $0e - note $26 $07 - note $26 $07 - vol $2 - note $2e $0e - vol $4 - note $26 $1c - note $26 $1c - note $26 $07 - vol $3 - note $2a $02 - vol $2 - note $2a $02 - vol $3 - note $2a $03 - vol $4 - note $26 $1c - vol $2 - note $2e $0e - vol $4 - note $26 $1c - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $2 - note $2e $1c - vol $4 - note $26 $1c - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $02 - vol $4 - note $26 $02 - vol $3 - note $26 $03 - vol $3 - note $26 $02 - vol $2 - note $26 $02 - vol $2 - note $26 $03 - vol $2 - note $2e $1c - note $2a $0e - note $2e $15 - note $2a $07 - note $2a $0e - note $2e $1c - note $2a $07 - vol $2 - note $2a $0e - vol $2 - note $2a $07 - note $2a $0e - vol $2 - note $2a $0e - vol $2 - note $2e $1c - note $2e $2a - rest $02 - note $2a $05 - note $2a $04 - note $2a $03 - note $2e $46 - rest $03 - note $2a $04 - note $2a $03 - note $2a $04 - vol $2 - note $2e $1c - cmdff diff --git a/audio/common/mus/intro2.s b/audio/common/mus/intro2.s deleted file mode 100644 index 67b615543..000000000 --- a/audio/common/mus/intro2.s +++ /dev/null @@ -1,630 +0,0 @@ -musIntro2Start: - -musIntro2Channel1: - vol $0 - note gs3 $10 - vibrato $e1 - env $0 $00 - duty $01 - vol $6 - note as4 $04 - rest $04 - vol $4 - note as4 $04 - rest $04 - vol $6 - note f4 $05 - note as4 $05 - note f5 $06 - note as5 $30 - vibrato $01 - env $0 $00 - vol $4 - note as5 $10 - vibrato $e1 - env $0 $00 - duty $02 - vol $6 - note d5 $0a - note as4 $0b - note f4 $0b - note cs4 $04 - rest $04 - vol $4 - note cs4 $04 - rest $04 - vol $6 - note as3 $05 - note cs4 $05 - note fs4 $06 - note as4 $18 - vibrato $01 - env $0 $00 - vol $4 - note as4 $08 - vibrato $e1 - env $0 $00 - vol $6 - note ds4 $04 - rest $04 - vol $4 - note ds4 $04 - rest $04 - vol $6 - note c4 $05 - note ds4 $05 - note gs4 $06 - note c5 $18 - vibrato $01 - env $0 $00 - vol $4 - note c5 $08 - vibrato $e1 - env $0 $00 - vol $6 - note as4 $08 - rest $04 - vol $4 - note as4 $08 - rest $04 - vol $6 - note f4 $08 - note d4 $30 - vibrato $01 - env $0 $00 - vol $4 - note d4 $10 - vibrato $e1 - env $0 $00 - vol $6 - note as4 $08 - note a4 $08 - note as4 $08 - note c5 $08 - vol $6 - note cs5 $08 - note as4 $08 - note c5 $08 - note cs5 $08 - note ds5 $20 - vibrato $01 - env $0 $00 - vol $4 - note ds5 $08 - vibrato $e1 - env $0 $00 - vol $6 - note c5 $08 - note cs5 $08 - note ds5 $08 - note f5 $08 - note cs5 $08 - note ds5 $08 - note f5 $08 - note g5 $24 - vibrato $01 - env $0 $00 - vol $4 - note g5 $09 - vibrato $e1 - env $0 $00 - vol $6 - note ds5 $09 - note f5 $09 - note g5 $09 - note a5 $42 - vibrato $01 - env $0 $00 - vol $4 - note a5 $16 - vol $2 - note a5 $16 - cmdff - -musIntro2Channel0: - vol $0 - note gs3 $10 - vibrato $e1 - env $0 $00 - duty $01 - vol $6 - note d4 $04 - rest $04 - vol $4 - note d4 $04 - rest $04 - vol $6 - note f3 $05 - note as3 $05 - note d4 $06 - note f4 $10 - note gs3 $05 - note as3 $05 - note ds4 $06 - note f4 $18 - note e4 $04 - note ds4 $04 - note d4 $20 - duty $02 - note fs3 $18 - vol $4 - note fs3 $08 - vol $6 - note fs3 $05 - note cs3 $05 - note fs3 $06 - note as3 $05 - note fs3 $05 - note as3 $06 - note gs3 $18 - vol $4 - note gs3 $08 - vol $6 - note gs3 $05 - note ds3 $05 - note gs3 $06 - note c4 $05 - note gs3 $05 - note c4 $06 - note f3 $08 - rest $04 - vol $4 - note f3 $04 - vol $6 - note as2 $08 - note f3 $08 - note as3 $18 - vol $4 - note as3 $08 - vol $5 - note f5 $04 - rest $04 - note as4 $04 - vol $3 - note f5 $04 - vol $5 - note d5 $04 - vol $3 - note as4 $04 - vol $5 - note f4 $04 - vol $3 - note d5 $04 - vol $6 - note f4 $08 - note as3 $08 - note cs4 $08 - note f4 $08 - vol $6 - note fs4 $20 - vol $4 - note fs4 $08 - vol $6 - note ds4 $08 - note f4 $08 - note fs4 $08 - note gs4 $08 - note ds4 $08 - note f4 $08 - note fs4 $08 - note gs4 $08 - note f4 $08 - note fs4 $08 - note gs4 $08 - note as4 $1b - vol $4 - note as4 $09 - vol $6 - note as4 $09 - note g4 $09 - note a4 $09 - note as4 $09 - note c5 $42 - vibrato $01 - env $0 $00 - vol $4 - note c5 $16 - vol $2 - note c5 $16 - cmdff - -musIntro2Channel4: - rest $10 - duty $0e - note as2 $20 - vol $4 - note as2 $08 - rest $08 - duty $0e - note f2 $04 - duty $0f - note f2 $04 - duty $0e - note f2 $04 - duty $0f - note f2 $04 - duty $0e - note as2 $08 - vol $4 - note as2 $08 - duty $0e - note f2 $08 - vol $4 - note f2 $08 - duty $0e - note as2 $08 - vol $4 - note as2 $08 - duty $0e - note gs2 $10 - note fs2 $10 - note cs3 $10 - note fs3 $08 - note cs3 $08 - note fs2 $04 - duty $0f - note fs2 $04 - duty $0e - note fs2 $04 - duty $0f - note fs2 $04 - duty $0e - note gs2 $10 - note ds3 $10 - note gs3 $08 - note ds3 $08 - note gs2 $04 - duty $0f - note gs2 $04 - duty $0e - note gs2 $04 - duty $0f - note gs2 $04 - duty $0e - note as2 $20 - vol $4 - note as2 $08 - rest $08 - duty $0e - note f3 $05 - note d3 $05 - note as2 $06 - note f2 $10 - note d2 $05 - note as1 $05 - note d2 $06 - note d3 $10 - note f2 $04 - duty $0f - note f2 $04 - duty $0e - note f2 $08 - note ds3 $20 - note ds2 $10 - note ds3 $04 - duty $0f - note ds3 $04 - duty $0e - note ds3 $04 - duty $0f - note ds3 $04 - duty $0e - note ds3 $20 - note ds2 $10 - note ds3 $08 - duty $0f - note ds3 $08 - duty $0e - note f3 $12 - note f2 $04 - duty $0f - note f2 $05 - rest $09 - duty $0e - note f3 $24 - note g3 $2c - note a3 $2c - duty $0f - note a3 $16 - cmdff - -musIntro2Channel6: - vol $5 - note $26 $05 - vol $4 - note $26 $05 - note $26 $06 - vol $6 - note $26 $30 - vol $5 - note $26 $05 - vol $4 - note $26 $05 - note $26 $06 - vol $5 - note $26 $02 - vol $3 - note $26 $02 - vol $2 - note $26 $04 - vol $2 - note $26 $02 - vol $2 - note $26 $02 - vol $2 - note $26 $04 - vol $2 - note $26 $02 - vol $3 - note $26 $02 - vol $3 - note $26 $04 - vol $3 - note $26 $02 - vol $3 - note $26 $02 - vol $3 - note $26 $04 - vol $4 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $5 - note $26 $02 - vol $5 - note $26 $02 - vol $5 - note $26 $04 - vol $5 - note $26 $02 - vol $5 - note $26 $02 - vol $6 - note $26 $04 - vol $6 - note $26 $30 - vol $5 - note $26 $05 - vol $4 - note $26 $05 - note $26 $06 - vol $5 - note $26 $02 - vol $3 - note $26 $02 - vol $2 - note $26 $04 - vol $2 - note $26 $02 - vol $2 - note $26 $02 - vol $2 - note $26 $04 - vol $2 - note $26 $02 - vol $3 - note $26 $02 - vol $3 - note $26 $04 - vol $3 - note $26 $02 - vol $3 - note $26 $02 - vol $3 - note $26 $04 - vol $4 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $5 - note $26 $02 - vol $5 - note $26 $02 - vol $5 - note $26 $04 - vol $5 - note $26 $02 - vol $5 - note $26 $02 - vol $6 - note $26 $04 - vol $6 - note $26 $30 - vol $5 - note $26 $05 - vol $4 - note $26 $05 - note $26 $06 - vol $5 - note $26 $02 - vol $3 - note $26 $02 - vol $2 - note $26 $04 - vol $2 - note $26 $02 - vol $2 - note $26 $02 - vol $2 - note $26 $04 - vol $2 - note $26 $02 - vol $3 - note $26 $02 - vol $3 - note $26 $04 - vol $3 - note $26 $02 - vol $3 - note $26 $02 - vol $3 - note $26 $04 - vol $4 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $5 - note $26 $02 - vol $5 - note $26 $02 - vol $5 - note $26 $04 - vol $5 - note $26 $02 - vol $5 - note $26 $02 - vol $6 - note $26 $04 - vol $5 - note $26 $02 - vol $3 - note $26 $02 - vol $2 - note $26 $04 - vol $1 - note $26 $02 - vol $0 - note $26 $02 - vol $1 - note $26 $04 - vol $1 - note $26 $02 - vol $1 - note $26 $02 - vol $1 - note $26 $04 - vol $1 - note $26 $02 - vol $2 - note $26 $02 - vol $2 - note $26 $04 - vol $2 - note $26 $02 - vol $2 - note $26 $02 - vol $2 - note $26 $04 - vol $3 - note $26 $02 - vol $3 - note $26 $02 - vol $3 - note $26 $04 - vol $5 - note $26 $08 - note $26 $08 - note $26 $02 - vol $3 - note $26 $02 - vol $2 - note $26 $04 - vol $1 - note $26 $02 - vol $1 - note $26 $02 - vol $1 - note $26 $04 - vol $1 - note $26 $02 - vol $1 - note $26 $02 - vol $1 - note $26 $04 - vol $2 - note $26 $02 - vol $2 - note $26 $02 - vol $2 - note $26 $04 - vol $2 - note $26 $02 - vol $3 - note $26 $02 - vol $3 - note $26 $04 - vol $3 - note $26 $02 - vol $3 - note $26 $02 - vol $3 - note $26 $04 - vol $5 - note $26 $08 - note $26 $08 - note $26 $24 - note $26 $12 - note $26 $09 - note $26 $09 - note $26 $03 - vol $3 - note $26 $03 - vol $2 - note $26 $05 - vol $2 - note $26 $03 - vol $2 - note $26 $03 - vol $2 - note $26 $05 - vol $2 - note $26 $03 - vol $3 - note $26 $03 - vol $3 - note $26 $05 - vol $3 - note $26 $03 - vol $3 - note $26 $03 - vol $3 - note $26 $05 - vol $5 - note $26 $03 - vol $3 - note $26 $03 - vol $2 - note $26 $05 - vol $2 - note $26 $03 - vol $2 - note $26 $03 - vol $3 - note $26 $05 - vol $3 - note $26 $03 - vol $3 - note $26 $03 - vol $3 - note $26 $05 - vol $3 - note $26 $03 - vol $4 - note $26 $03 - vol $4 - note $26 $1b - cmdff diff --git a/audio/common/mus/ladxSideview.s b/audio/common/mus/ladxSideview.s deleted file mode 100644 index 1f467dd46..000000000 --- a/audio/common/mus/ladxSideview.s +++ /dev/null @@ -1,70 +0,0 @@ -musLadxSideviewStart: - -musLadxSideviewChannel1: - vibrato $00 - env $0 $00 -.ifdef ROM_SEASONS - cmdf2 -.endif - duty $02 -musicf8204: - vol $c - note c2 $04 - vol $5 - note c2 $08 - vol $2 - note c2 $04 - vol $c - note fs2 $04 - vol $5 - note fs2 $08 - vol $2 - note fs2 $04 - vol $c - note f2 $04 - vol $5 - note f2 $08 - vol $2 - note f2 $04 - rest $48 - vol $c - note c2 $02 - vol $5 - note c2 $04 - vol $2 - note c2 $02 - vol $c - note c2 $04 - vol $5 - note c2 $08 - vol $2 - note c2 $04 - vol $c - note fs2 $04 - vol $5 - note fs2 $08 - vol $2 - note fs2 $04 - vol $c - note f2 $04 - vol $5 - note f2 $04 - vol $c - note b2 $04 - vol $5 - note b2 $08 - vol $2 - note b2 $04 - rest $f8 - goto musicf8204 - cmdff - -.ifdef ROM_SEASONS -.ifdef BUILD_VANILLA - .db $ff $ff $ff -.endif -.endif - -.define musLadxSideviewChannel0 MUSIC_CHANNEL_FALLBACK EXPORT -.define musLadxSideviewChannel4 MUSIC_CHANNEL_FALLBACK EXPORT -.define musLadxSideviewChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/mapleGame.s b/audio/common/mus/mapleGame.s deleted file mode 100644 index ea222c1c9..000000000 --- a/audio/common/mus/mapleGame.s +++ /dev/null @@ -1,1555 +0,0 @@ -musMapleGameStart: - -musMapleGameChannel1: - duty $01 -musice628f: -; Measure 1 - vol $6 - note g5 $0f - note e5 $05 - note c5 $05 - rest $02 - vol $3 - note c5 $03 - vol $6 - note c5 $0f - vol $3 - note c5 $05 - vol $6 - note g5 $0a - note e5 $0a - note c5 $0a -; Measure 2 - note fs5 $0f - note ds5 $05 - note b4 $05 - rest $02 - vol $3 - note b4 $03 - vol $6 - note b4 $0f - vol $3 - note b4 $05 - vol $6 - note fs5 $0a - note ds5 $0a - note b4 $05 - rest $02 - vol $3 - note b4 $03 -; Measure 3 - vol $6 - note g5 $0f - note e5 $05 - note c5 $05 - rest $02 - vol $3 - note c5 $03 - vol $6 - note c5 $0a - vol $3 - note c5 $0a - vol $6 - note g5 $0a - note e5 $0a - note c5 $05 - rest $02 - vol $3 - note c5 $03 -; Measure 4 - vol $6 - note b4 $05 - note c5 $05 - note cs5 $05 - rest $02 - vol $3 - note cs5 $03 - vol $6 - note cs5 $05 - note ds5 $05 - note e5 $05 - rest $02 - vol $3 - note e5 $03 - vol $6 - note ds5 $05 - note e5 $05 - note f5 $05 - rest $02 - vol $3 - note f5 $03 - vol $6 - note e5 $05 - note f5 $05 - note fs5 $05 - rest $02 - vol $3 - note fs5 $03 -; Measure 5 - vol $6 - note g5 $0f - note e5 $05 - note c5 $05 - rest $02 - vol $3 - note c5 $03 - vol $6 - note c5 $0a - vol $3 - note c5 $0a - vol $6 - note g5 $0a - note e5 $0a - note c5 $05 - rest $02 - vol $3 - note c5 $03 -; Measure 6 - vol $6 - note fs5 $0f - note ds5 $05 - note b4 $05 - rest $02 - vol $3 - note b4 $03 - vol $6 - note b4 $0f - vol $3 - note b4 $05 - vol $6 - note fs5 $0a - note ds5 $0a - note b4 $05 - rest $02 - vol $3 - note b4 $03 -; Measure 7 - vol $6 - note g5 $0a - note e5 $05 - rest $02 - vol $3 - note e5 $05 - rest $12 - vol $6 - note a5 $0a - note fs5 $05 - rest $02 - vol $3 - note fs5 $05 - rest $12 -; Measure 8 - vol $6 - note as5 $05 - note g5 $05 - note b5 $05 - note gs5 $05 - note c6 $05 - note a5 $05 - note cs6 $05 - note as5 $05 - note d6 $05 - note b5 $05 - note ds6 $05 - note c6 $05 - note e6 $05 - note cs6 $05 - note f6 $05 - note d6 $05 -; Measure 9 - note a5 $0f - note fs5 $05 - note d5 $05 - rest $02 - vol $3 - note d5 $03 - vol $6 - note d5 $0f - vol $3 - note d5 $05 - vol $6 - note d5 $0a - note fs5 $0a - note a5 $0a -; Measure 10 - note gs5 $0f - note f5 $05 - note cs5 $05 - rest $02 - vol $3 - note cs5 $03 - vol $6 - note cs5 $0a - vol $3 - note cs5 $0a - vol $6 - note cs5 $0a - note f5 $0a - note gs5 $0a -; Measure 11 - note a5 $0f - note fs5 $05 - note d5 $05 - rest $02 - vol $3 - note d5 $03 - vol $6 - note d5 $14 - note fs5 $0a - note a5 $0a - note fs5 $05 - rest $02 - vol $3 - note fs5 $03 -; Measure 12 - vol $6 - note gs5 $05 - note f5 $05 - note cs5 $05 - rest $02 - vol $3 - note cs5 $03 - vol $6 - note a5 $05 - note fs5 $05 - note d5 $05 - rest $02 - vol $3 - note d5 $03 - - vol $6 - note as5 $05 - note g5 $05 - note ds5 $05 - rest $02 - vol $3 - note ds5 $03 - vol $6 - note b5 $05 - note gs5 $05 - note e5 $05 - rest $02 - vol $3 - note e5 $03 - vol $6 -; Measure 13 - note a5 $0f - note fs5 $05 - note d5 $05 - rest $02 - vol $3 - note d5 $03 - vol $6 - note d6 $14 - note cs6 $05 - note d6 $05 - note e6 $05 - rest $02 - vol $3 - note e6 $03 - vol $6 - note d6 $05 - rest $02 - vol $3 - note d6 $03 -; Measure 14 - vol $6 - note cs6 $0f - note gs5 $05 - note f5 $05 - rest $02 - vol $3 - note f5 $03 - vol $6 - note cs5 $16 - rest $03 - note cs6 $02 - vol $3 - note cs6 $03 - vol $6 - note cs6 $05 - note c6 $05 - note cs6 $05 - note d6 $05 -; Measure 15 - note ds6 $05 - rest $02 - vol $3 - note ds6 $03 - - vol $6 - note ds6 $05 - rest $02 - vol $3 - note ds6 $05 - rest $12 - - vol $6 - note e6 $05 - rest $02 - vol $3 - note e6 $03 - - vol $6 - note e6 $05 - rest $02 - vol $3 - note e6 $05 - rest $12 -; Measure 16 - vol $6 - note gs6 $05 - rest $02 - vol $3 - note gs6 $03 - vol $6 - note g6 $05 - rest $02 - vol $3 - note g6 $03 - vol $6 - note fs6 $05 - rest $02 - vol $3 - note fs6 $03 - vol $6 - note f6 $05 - rest $02 - vol $3 - note f6 $03 - vol $6 - - note e6 $05 - rest $02 - vol $3 - note e6 $03 - vol $6 - note ds6 $05 - rest $02 - vol $3 - note ds6 $03 - vol $6 - note d6 $05 - rest $02 - vol $3 - note d6 $03 - vol $6 - note cs6 $05 - rest $02 - vol $3 - note cs6 $03 - goto musice628f - cmdff - -musMapleGameChannel0: - duty $01 -musice64ab: -; Measure 1 - vol $6 - note e4 $05 - rest $05 - note e4 $05 - rest $05 - note e4 $05 - rest $05 - note e4 $0f - rest $05 - - note e4 $05 - rest $05 - note e4 $05 - rest $05 - note e4 $05 - rest $05 -; Measure 2 - note ds4 $05 - rest $05 - note ds4 $05 - rest $05 - note ds4 $05 - rest $05 - note ds4 $0f - rest $05 - - note ds4 $05 - rest $05 - note ds4 $05 - rest $05 - note ds4 $05 - rest $05 -; Measure 3 - note e4 $05 - rest $05 - note e4 $05 - rest $05 - note e4 $05 - rest $05 - note e4 $0f - rest $05 - - note e4 $05 - rest $05 - note e4 $05 - rest $05 - note e4 $05 - rest $05 -; Measure 4 - note ds4 $05 - rest $05 - note g4 $05 - vol $3 - note ds4 $05 - - vol $6 - note fs4 $05 - vol $3 - note g4 $05 - vol $6 - note f4 $05 - vol $3 - note fs4 $05 - - vol $6 - note e4 $05 - vol $3 - note f4 $05 - vol $6 - note ds4 $05 - vol $3 - note e4 $05 - - vol $6 - note d4 $05 - vol $3 - note ds4 $05 - vol $6 - note cs4 $05 - vol $3 - note d4 $05 -; Measure 5 - vol $6 - note e4 $05 - rest $05 - note e4 $05 - rest $05 - note e4 $05 - rest $05 - note e4 $0f - rest $05 - - note e4 $05 - rest $05 - note e4 $05 - rest $05 - note e4 $05 - rest $05 -; Measure 6 - note ds4 $05 - rest $05 - note ds4 $05 - rest $05 - note ds4 $05 - rest $05 - note ds4 $0f - rest $05 - - note ds4 $05 - rest $05 - note ds4 $05 - rest $05 - note ds4 $05 - rest $05 -; Measure 7 - note e4 $05 - rest $05 - note e4 $05 - rest $05 - - vol $3 - note e4 $05 - rest $05 - vol $1 - note e4 $05 - rest $05 - vol $6 - note ds4 $05 - rest $05 - note ds4 $05 - rest $05 - vol $3 - note ds4 $05 - rest $05 - vol $1 - note ds4 $05 - rest $05 -; Measure 8 - vol $6 - note e4 $05 - rest $05 - note e4 $05 - vol $3 - note e4 $05 - - vol $6 - note f4 $05 - vol $3 - note e4 $05 - vol $6 - note f4 $05 - vol $3 - note f4 $05 - - vol $6 - note fs4 $05 - vol $3 - note f4 $05 - vol $6 - note fs4 $05 - vol $3 - note fs4 $05 - - vol $6 - note g4 $05 - vol $3 - note fs4 $05 - vol $6 - note g4 $05 - vol $3 - note g4 $05 -; Measure 9 - vol $6 - note fs4 $05 - rest $05 - note fs4 $05 - rest $05 - note fs4 $05 - rest $05 - note fs4 $0f - rest $05 - - note fs4 $05 - rest $05 - note fs4 $05 - rest $05 - note fs4 $05 - rest $05 -; Measure 10 - note f4 $05 - rest $05 - note f4 $05 - rest $05 - note f4 $05 - rest $05 - note f4 $0f - rest $05 - - note f4 $05 - rest $05 - note f4 $05 - rest $05 - note f4 $05 - rest $05 -; Measure 11 - note fs4 $05 - rest $05 - note fs4 $05 - rest $05 - note fs4 $05 - rest $05 - note fs4 $0f - rest $05 - - note fs4 $05 - rest $05 - note fs4 $05 - rest $05 - note fs4 $05 - rest $05 -; Measure 12 - note f4 $05 - rest $05 - note a4 $05 - vol $3 - note f4 $05 - vol $6 - - note gs4 $05 - vol $3 - note a4 $05 - vol $6 - note g4 $05 - vol $3 - note gs4 $05 - - vol $6 - note fs4 $05 - vol $3 - note g4 $05 - vol $6 - note f4 $05 - vol $3 - note fs4 $05 - - vol $6 - note e4 $05 - vol $3 - note f4 $05 - vol $6 - note ds4 $05 - vol $3 - note e4 $05 -; Measure 13 - vol $6 - note fs4 $05 - rest $05 - note fs4 $05 - rest $05 - note fs4 $05 - rest $05 - note fs4 $0f - rest $05 - - note fs4 $05 - rest $05 - note fs4 $05 - rest $05 - note fs4 $05 - rest $05 -; Measure 14 - note f4 $05 - rest $05 - note f4 $05 - rest $05 - note f4 $05 - rest $05 - note f4 $0f - rest $05 - - note f4 $05 - rest $05 - note f4 $05 - rest $05 - note f4 $05 - rest $05 -; Measure 15 - note fs4 $05 - rest $05 - note fs4 $05 - rest $05 - - vol $3 - note fs4 $05 - rest $05 - vol $6 - note fs4 $05 - rest $05 - - note g4 $05 - rest $05 - note g4 $05 - rest $05 - - vol $3 - note g4 $05 - rest $05 - vol $6 - note g4 $05 - note e4 $05 -; Measure 16 - note f4 $05 - vol $3 - note f4 $05 - vol $6 - note f4 $05 - vol $3 - note f4 $05 - vol $6 - note a3 $05 - note gs3 $05 - note g3 $05 - note fs3 $05 - note f3 $05 - note e3 $05 - note ds3 $05 - note d3 $05 - note cs3 $05 - note c3 $05 - note b2 $05 - note as2 $05 - goto musice64ab - cmdff - -musMapleGameChannel4: -musice66c0: -; Measure 1 - duty $0e - note cs3 $05 - duty $0f - note cs3 $05 - duty $0e - note g2 $05 - duty $0f - note g2 $05 - - duty $0e - note cs3 $05 - duty $0f - note cs3 $05 - duty $0e - note g2 $05 - duty $0f - note g2 $05 - - duty $0e - note cs3 $05 - duty $0f - note cs3 $05 - duty $0e - note g2 $05 - duty $0f - note g2 $05 - - duty $0e - note cs3 $05 - duty $0f - note cs3 $05 - duty $0e - note g2 $05 - duty $0f - note g2 $05 -; Measure 2 - duty $0e - note c3 $05 - duty $0f - note c3 $05 - duty $0e - note fs2 $05 - duty $0f - note fs2 $05 - - duty $0e - note c3 $05 - duty $0f - note c3 $05 - duty $0e - note fs2 $05 - duty $0f - note fs2 $05 - - duty $0e - note c3 $05 - duty $0f - note c3 $05 - duty $0e - note fs2 $05 - duty $0f - note fs2 $05 - - duty $0e - note c3 $05 - duty $0f - note c3 $05 - duty $0e - note fs2 $05 - duty $0f - note fs2 $05 -; Measure 3 - duty $0e - note cs3 $05 - duty $0f - note cs3 $05 - duty $0e - note g2 $05 - duty $0f - note g2 $05 - - duty $0e - note cs3 $05 - duty $0f - note cs3 $05 - duty $0e - note g2 $05 - duty $0f - note g2 $05 - - duty $0e - note cs3 $05 - duty $0f - note cs3 $05 - duty $0e - note g2 $05 - duty $0f - note g2 $05 - - duty $0e - note cs3 $05 - duty $0f - note cs3 $05 - duty $0e - note g2 $05 - duty $0f - note g2 $05 -; Measure 4 - duty $0e - note c3 $05 - duty $0f - note c3 $05 - duty $0e - note ds3 $05 - duty $0f - note ds3 $05 - - duty $0e - note d3 $05 - duty $0f - note d3 $05 - duty $0e - note cs3 $05 - duty $0f - note cs3 $05 - - duty $0e - note c3 $05 - duty $0f - note c3 $05 - duty $0e - note b2 $05 - duty $0f - note b2 $05 - - duty $0e - note a2 $05 - note gs2 $05 - note g2 $05 - note fs2 $05 -; Measure 5 - duty $0e - note c3 $05 - duty $0f - note c3 $05 - duty $0e - note g2 $05 - duty $0f - note g2 $05 - - duty $0e - note c3 $05 - duty $0f - note c3 $05 - duty $0e - note g2 $05 - duty $0f - note g2 $05 - - duty $0e - note cs3 $05 - duty $0f - note cs3 $05 - duty $0e - note g2 $05 - duty $0f - note g2 $05 - - duty $0e - note cs3 $05 - duty $0f - note cs3 $05 - duty $0e - note g2 $05 - duty $0f - note g2 $05 -; Measure 6 - duty $0e - note c3 $05 - duty $0f - note c3 $05 - duty $0e - note fs2 $05 - duty $0f - note fs2 $05 - - duty $0e - note c3 $05 - duty $0f - note c3 $05 - duty $0e - note fs2 $05 - duty $0f - note fs2 $05 - - duty $0e - note c3 $05 - duty $0f - note c3 $05 - duty $0e - note fs2 $05 - duty $0f - note fs2 $05 - - duty $0e - note c3 $05 - duty $0f - note c3 $05 - duty $0e - note fs2 $05 - duty $0f - note fs2 $05 -; Measure 7 - duty $0e - note cs3 $05 - duty $0f - note cs3 $05 - duty $0e - note cs3 $05 - duty $0f - note cs3 $05 - - rest $14 - - duty $0e - note c3 $05 - duty $0f - note c3 $05 - duty $0e - note c3 $05 - duty $0f - note c3 $05 - - rest $14 -; Measure 8 - duty $0e - note ds3 $05 - duty $0f - note ds3 $05 - duty $0e - note ds3 $05 - duty $0f - note ds3 $05 - - rest $14 - - duty $0e - note e3 $05 - duty $0f - note e3 $05 - duty $0e - note e3 $05 - duty $0f - note e3 $05 - - rest $14 -; Measure 9 - duty $0e - note ds3 $05 - note d3 $05 - note a2 $05 - duty $0f - note a2 $05 - - duty $0e - note ds3 $05 - duty $0f - note ds3 $05 - duty $0e - note a2 $05 - duty $0f - note a2 $05 - - duty $0e - note ds3 $05 - duty $0f - note ds3 $05 - duty $0e - note a2 $05 - duty $0f - note a2 $05 - - duty $0e - note ds3 $05 - duty $0f - note ds3 $05 - duty $0e - note a2 $05 - duty $0f - note a2 $05 -; Measure 10 - duty $0e - note d3 $05 - note cs3 $05 - note gs2 $05 - duty $0f - note gs2 $05 - - duty $0e - note d3 $05 - duty $0f - note d3 $05 - duty $0e - note gs2 $05 - duty $0f - note gs2 $05 - - duty $0e - note d3 $05 - duty $0f - note d3 $05 - duty $0e - note gs2 $05 - duty $0f - note gs2 $05 - - duty $0e - note d3 $05 - duty $0f - note d3 $05 - duty $0e - note gs2 $05 - duty $0f - note gs2 $05 -; Measure 11 - duty $0e - note ds3 $05 - note d3 $05 - note a2 $05 - duty $0f - note a2 $05 - - duty $0e - note ds3 $05 - duty $0f - note ds3 $05 - duty $0e - note a2 $05 - duty $0f - note a2 $05 - - duty $0e - note ds3 $05 - duty $0f - note ds3 $05 - duty $0e - note a2 $05 - duty $0f - note a2 $05 - - duty $0e - note ds3 $05 - duty $0f - note ds3 $05 - duty $0e - note a2 $05 - duty $0f - note a2 $05 -; Measure 12 - duty $0e - note d3 $05 - duty $0f - note d3 $05 - duty $0e - note f3 $05 - duty $0f - note f3 $05 - - duty $0e - note e3 $05 - duty $0f - note e3 $05 - duty $0e - note ds3 $05 - duty $0f - note ds3 $05 - - duty $0e - note d3 $05 - duty $0f - note d3 $05 - duty $0e - note cs3 $05 - duty $0f - note cs3 $05 - - duty $0e - note c3 $05 - duty $0f - note c3 $05 - duty $0e - note b2 $05 - duty $0f - note b2 $05 -; Measure 13 - duty $0e - note ds3 $05 - note d3 $05 - note a2 $05 - duty $0f - note a2 $05 - - duty $0e - note ds3 $05 - duty $0f - note ds3 $05 - duty $0e - note a2 $05 - duty $0f - note a2 $05 - - duty $0e - note ds3 $05 - duty $0f - note ds3 $05 - duty $0e - note a2 $05 - duty $0f - note a2 $05 - - duty $0e - note ds3 $05 - duty $0f - note ds3 $05 - duty $0e - note a2 $05 - duty $0f - note a2 $05 -; Measure 14 - duty $0e - note d3 $05 - note cs3 $05 - note gs2 $05 - duty $0f - note gs2 $05 - - duty $0e - note d3 $05 - duty $0f - note d3 $05 - duty $0e - note gs2 $05 - duty $0f - note gs2 $05 - - duty $0e - note d3 $05 - duty $0f - note d3 $05 - duty $0e - note gs2 $05 - duty $0f - note gs2 $05 - - duty $0e - note d3 $05 - duty $0f - note d3 $05 - duty $0e - note gs2 $05 - duty $0f - note gs2 $05 -; Measure 15 - duty $0e - note ds3 $05 - duty $0f - note ds3 $05 - duty $0e - note ds3 $05 - duty $0f - note ds3 $05 - - rest $14 - - duty $0e - note e3 $05 - duty $0f - note e3 $05 - duty $0e - note e3 $05 - duty $0f - note e3 $05 - - rest $0a - duty $0e - note e3 $05 - duty $0f - note e3 $05 -; Measure 16 - duty $0e - note f3 $05 - duty $0f - note f3 $05 - duty $0e - note f3 $05 - duty $0f - note f3 $05 - - duty $0e - note f3 $05 - note e3 $05 - note ds3 $05 - note d3 $05 - note cs3 $05 - note c3 $05 - note b2 $05 - note as2 $05 - note a2 $05 - note gs2 $05 - note g2 $05 - note fs2 $05 - goto musice66c0 - cmdff - -musMapleGameChannel6: -musice6a48: -; Measure 1 - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a -; Measure 2 - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a -; Measure 3 - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a -; Measure 4 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $2 - note $2e $05 - vol $3 - note $2a $05 - - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $2 - note $2e $05 - vol $3 - note $2a $05 - - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $2 - note $2e $05 - vol $3 - note $2a $05 - - vol $4 - note $26 $05 - note $26 $05 - note $26 $05 - note $26 $05 -; Measure 5 - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a -; Measure 6 - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a -; Measure 7 - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a -; Measure 8 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $2 - note $2e $05 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $2 - note $2e $05 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $2 - note $2e $05 - vol $3 - note $2a $05 - vol $4 - note $26 $05 - note $26 $05 - note $26 $05 - note $26 $05 -; Measure 9 - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a -; Measure 10 - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a -; Measure 11 - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a -; Measure 12 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $2 - note $2e $05 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $2 - note $2e $05 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $2 - note $2e $05 - vol $3 - note $2a $05 - vol $4 - note $26 $05 - note $26 $05 - note $26 $05 - note $26 $05 -; Measure 13 - vol $4 - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a -; Measure 14 - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a - vol $3 - note $2a $0a - vol $2 - note $2e $0a -; Measure 15 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $2 - note $2e $05 - vol $3 - note $2a $05 - - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $2 - note $2e $05 - vol $3 - note $2a $05 - - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $2 - note $2e $05 - vol $3 - note $2a $05 - - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $2 - note $2e $05 - vol $3 - note $2a $05 -; Measure 16 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $2 - note $2e $05 - vol $3 - note $2a $05 - - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - vol $3 - note $2a $05 - goto musice6a48 - cmdff diff --git a/audio/common/mus/mapleTheme.s b/audio/common/mus/mapleTheme.s deleted file mode 100644 index e1340ae69..000000000 --- a/audio/common/mus/mapleTheme.s +++ /dev/null @@ -1,570 +0,0 @@ -musMapleThemeStart: - -musMapleThemeChannel1: - vibrato $e1 - env $0 $00 - duty $02 - vol $6 - note fs2 $0e - note g2 $03 - rest $01 - vol $3 - note g2 $04 - rest $01 - vol $1 - note g2 $05 - vol $6 - note fs3 $0e - note g3 $03 - rest $01 - vol $3 - note g3 $04 - rest $01 - vol $1 - note g3 $05 - vol $6 - note fs4 $0e - note g4 $03 - rest $01 - vol $3 - note g4 $04 - rest $01 - vol $1 - note g4 $05 - vol $6 - note fs5 $0e - note g5 $03 - rest $01 - vol $3 - note g5 $04 - rest $01 - vol $1 - note g5 $05 - vol $6 - note fs3 $04 - note g3 $05 - note c4 $05 - note as3 $46 - vibrato $01 - env $0 $00 - vol $3 - note as3 $1c - vol $1 - note as3 $0e - rest $0e - vibrato $e1 - env $0 $00 -musicf69b1: - vol $6 - note c5 $09 - rest $07 - vol $3 - note c5 $09 - rest $03 - vol $6 - note c5 $09 - rest $05 - vol $3 - note c5 $04 - vol $6 - note c5 $0a - note g5 $09 - rest $07 - vol $3 - note g5 $09 - rest $03 - vol $6 - note g5 $12 - rest $05 - note g5 $02 - note a5 $03 - note as5 $12 - note a5 $0a - note g5 $12 - note f5 $0a - note g5 $38 - vibrato $01 - env $0 $00 - vol $3 - note g5 $12 - vibrato $f1 - env $0 $00 - vol $6 - note c6 $05 - vol $3 - note c6 $05 - vol $6 - note c6 $0e - vol $3 - note c6 $04 - vol $6 - note c6 $0a - note g5 $09 - rest $09 - vol $3 - note g5 $0a - vol $6 - note g5 $12 - note a5 $0a - note as5 $12 - note a5 $0a - note g5 $12 - note f5 $0a - note e5 $12 - note f5 $0a - note fs5 $12 - note g5 $0a - note e5 $09 - rest $0e - vol $3 - note e5 $05 - vol $6 - note c5 $09 - rest $0e - vol $3 - note c5 $05 - vol $6 - note as4 $09 - rest $0e - vol $3 - note as4 $05 - rest $12 - vol $6 - note e5 $13 - vol $3 - note e5 $09 - vol $6 - note e5 $0a - note c5 $09 - rest $0e - vol $3 - note c5 $05 - vol $6 - note as4 $09 - rest $0e - vol $3 - note as4 $05 - rest $1c - vol $6 - note e5 $09 - rest $0e - vol $3 - note e5 $05 - vol $6 - note c5 $09 - rest $0e - vol $3 - note c5 $05 - vol $6 - note as4 $09 - rest $0e - vol $3 - note as4 $05 - vol $6 - note g4 $38 - vibrato $01 - env $0 $00 - vol $3 - note g4 $38 - rest $1c - vibrato $f1 - env $0 $00 - vol $6 - note e5 $09 - rest $0e - vol $3 - note e5 $05 - vol $6 - note c5 $09 - rest $0e - vol $3 - note c5 $05 - vol $6 - note as4 $09 - rest $0e - vol $3 - note as4 $05 - rest $12 - vol $6 - note e5 $13 - vol $3 - note e5 $09 - vol $6 - note e5 $0a - note c5 $09 - rest $0e - vol $3 - note c5 $05 - vol $6 - note as4 $09 - rest $0e - vol $3 - note as4 $05 - rest $1c - vol $6 - note e5 $09 - rest $0e - vol $3 - note e5 $05 - vol $6 - note c5 $09 - rest $0e - vol $3 - note c5 $05 - vol $6 - note as5 $12 - note a5 $0a - rest $09 - vol $3 - note a5 $09 - vol $6 - note g5 $54 - vibrato $01 - env $0 $00 - vol $3 - note g5 $1c - vol $1 - note g5 $09 - rest $01 - vibrato $f1 - env $0 $00 - goto musicf69b1 - cmdff - -musMapleThemeChannel0: - vibrato $e1 - env $0 $00 - duty $02 - vol $6 - note cs2 $0e - note c2 $03 - rest $01 - vol $3 - note c2 $04 - rest $01 - vol $1 - note c2 $05 - vol $6 - note cs3 $0e - note c3 $03 - rest $01 - vol $3 - note c3 $04 - rest $01 - vol $1 - note c3 $05 - vol $6 - note cs4 $0e - note c4 $03 - rest $01 - vol $3 - note c4 $04 - rest $01 - vol $1 - note c4 $05 - vol $6 - note cs5 $0e - note c5 $03 - rest $01 - vol $3 - note c5 $04 - rest $01 - vol $1 - note c5 $05 - vol $6 - note fs2 $04 - note g2 $05 - note c3 $05 - note as2 $46 - vibrato $01 - env $0 $00 - vol $3 - note as2 $1c - vol $1 - note as2 $0e - rest $0e - vibrato $f1 - env $0 $00 -musicf6b33: - rest $ff - rest $47 - vol $6 - note fs3 $0a - note g3 $12 - note fs3 $0a - note g3 $12 - note fs3 $0a - note g3 $0e - rest $04 - note f3 $0a - note e3 $12 - note d3 $0a - note c3 $09 - rest $48 - vol $6 - note fs3 $03 - note g3 $07 - rest $04 - vol $3 - note fs3 $03 - note g3 $07 - rest $04 - vol $1 - note fs3 $03 - note g3 $07 - rest $41 - vol $6 - note fs3 $02 - note g3 $07 - note fs3 $03 - note g3 $07 - rest $04 - vol $3 - note fs3 $03 - note g3 $07 - rest $04 - vol $1 - note fs3 $03 - note g3 $07 - rest $72 - vol $6 - note b2 $09 - note ds3 $0a - note g3 $09 - note b3 $09 - note ds4 $0a - note g4 $2a - note f4 $04 - note e4 $05 - note d4 $05 - note c4 $09 - rest $48 - note fs3 $03 - note g3 $07 - rest $04 - vol $3 - note fs3 $03 - note g3 $07 - rest $04 - vol $1 - note fs3 $03 - note g3 $07 - rest $41 - vol $6 - note fs4 $02 - note g4 $07 - note fs4 $03 - note g4 $07 - rest $04 - vol $3 - note fs4 $03 - note g4 $07 - rest $04 - vol $1 - note fs4 $03 - note g4 $07 - rest $d9 - goto musicf6b33 - cmdff - -musMapleThemeChannel4: - rest $ee - duty $0e - note g2 $03 - note f2 $04 - note ds2 $03 - note cs2 $04 -musicf6bd2: - duty $0e - note c2 $07 - duty $0f - note c2 $0e - rest $23 - duty $0e - note g2 $07 - duty $0f - note g2 $0e - rest $23 - duty $0e - note as1 $07 - duty $0f - note as1 $0e - rest $23 - duty $0e - note f2 $07 - duty $0f - note f2 $0e - rest $23 - duty $0e - note c2 $07 - duty $0f - note c2 $0e - rest $23 - duty $0e - note g2 $07 - duty $0f - note g2 $0e - rest $23 - duty $0e - note d2 $07 - duty $0f - note d2 $0e - rest $35 - duty $0e - note g2 $0a - duty $0e - note a2 $09 - duty $0f - note a2 $09 - duty $0e - note b2 $0a - duty $0e - note c2 $1c - duty $0f - note c2 $0e - rest $0e - duty $0e - note g2 $07 - duty $0f - note g2 $0e - rest $23 - duty $0e - note as2 $07 - duty $0f - note as2 $0e - rest $23 - duty $0e - note f2 $07 - duty $0f - note f2 $0e - rest $23 - duty $0e - note c3 $07 - duty $0f - note c3 $0e - rest $23 - duty $0e - note as2 $07 - duty $0f - note as2 $0e - rest $07 - duty $0e - note g2 $0e - note g1 $04 - note b1 $05 - note ds2 $05 - duty $0e - note g2 $38 - note fs2 $02 - duty $0e - note g2 $07 - duty $0f - note g2 $0e - rest $21 - duty $0e - note c3 $07 - duty $0f - note c3 $0e - rest $23 - duty $0e - note g2 $07 - duty $0f - note g2 $0e - rest $23 - duty $0e - note as2 $07 - duty $0f - note as2 $0e - rest $23 - duty $0e - note f2 $07 - duty $0f - note f2 $0e - rest $23 - duty $0e - note c3 $07 - duty $0f - note c3 $0e - rest $07 - duty $0e - note c3 $07 - duty $0f - note c3 $0e - rest $07 - duty $0e - note as2 $07 - duty $0f - note as2 $0e - rest $07 - duty $0e - note g2 $2e - note gs2 $0a - note as2 $12 - note b2 $0a - note cs3 $12 - note ds3 $0a - note f3 $12 - note g3 $0a - goto musicf6bd2 - cmdff - -musMapleThemeChannel6: - rest $fc -musicf6cdc: - vol $2 - note $2e $1c - note $2a $1c - note $2e $1c - note $2a $1c - note $2e $1c - note $2a $1c - note $2e $12 - note $2a $0a - note $2a $12 - note $2a $0a - vol $2 - note $2e $1c - note $2a $1c - note $2e $1c - note $2a $1c - note $2e $1c - note $2a $1c - note $2e $09 - rest $09 - note $2a $0a - note $2a $12 - note $2a $0a - note $2e $1c - note $2a $1c - note $2e $1c - note $2a $1c - vol $2 - note $2e $1c - note $2a $1c - note $2e $1c - note $2a $1c - vol $2 - note $2e $1c - note $2a $1c - note $2a $1c - vol $2 - note $2e $1c - rest $70 - vol $2 - note $2e $1c - note $2a $1c - vol $3 - note $2e $1c - note $2a $1c - note $2e $1c - note $2a $1c - note $2e $1c - vol $3 - note $2a $1c - note $2e $1c - note $2a $1c - note $2a $1c - note $2e $1c - rest $70 - goto musicf6cdc - cmdff diff --git a/audio/common/mus/miniboss.s b/audio/common/mus/miniboss.s deleted file mode 100644 index 6349428d8..000000000 --- a/audio/common/mus/miniboss.s +++ /dev/null @@ -1,1146 +0,0 @@ -musMinibossStart: - -musMinibossChannel1: - duty $02 - vol $7 - note g6 $03 - vol $6 - note fs6 $03 - vol $5 - note f6 $03 - note e6 $03 - note ds6 $03 - note d6 $03 - vol $6 - note cs6 $03 - note c6 $03 - note b5 $03 - note as5 $03 - vol $7 - note a5 $03 - note gs5 $03 - note g5 $03 - vol $8 - note fs5 $03 - note f5 $03 - vol $7 - note e5 $03 - env $0 $02 - vol $c - duty $00 - note b3 $06 - note b3 $06 - note b3 $06 - vol $b - env $0 $01 - note as3 $06 - rest $18 - env $0 $04 - note a3 $12 - env $0 $02 - note gs3 $12 - rest $0c - note b3 $06 - note b3 $06 - note b3 $06 - env $0 $01 - note as3 $06 - rest $18 - env $0 $04 - note a3 $12 - env $0 $02 - note gs3 $12 - rest $0c -musice89a1: - note cs4 $06 - note cs4 $06 - note cs4 $06 - env $0 $01 - vol $a - note c4 $06 - rest $18 - env $0 $04 - note b3 $12 - env $0 $02 - note as3 $12 - rest $0c - note cs4 $06 - note cs4 $06 - note cs4 $06 - vol $b - env $0 $01 - vol $a - note c4 $06 - rest $18 - env $0 $04 - note b3 $12 - env $0 $02 - note as3 $12 - rest $0c - env $0 $00 - duty $01 - vol $5 - note e5 $12 - note ds5 $12 - note e5 $06 - note f5 $06 - note fs5 $06 - note g5 $06 - env $0 $02 - duty $00 - vol $a - note ds4 $06 - note ds4 $06 - note ds4 $06 - vol $b - env $0 $01 - vol $a - note d4 $06 - rest $18 - env $0 $04 - note cs4 $12 - env $0 $02 - note c4 $12 - rest $0c - note ds4 $06 - note ds4 $06 - note ds4 $06 - vol $b - env $0 $01 - vol $a - note d4 $06 - rest $18 - env $0 $04 - note cs4 $12 - env $0 $02 - note c4 $12 - rest $0c - note f4 $06 - note f4 $06 - note f4 $06 - vol $b - env $0 $01 - vol $a - note e4 $06 - rest $18 - env $0 $04 - note ds4 $12 - env $0 $02 - note d4 $12 - rest $0c - note f4 $06 - note f4 $06 - note f4 $06 - vol $b - env $0 $01 - vol $a - note e4 $06 - rest $18 - env $0 $04 - note ds4 $12 - env $0 $02 - note d4 $12 - rest $6c - env $0 $00 - duty $02 - note g6 $03 - vol $6 - note fs6 $03 - vol $5 - note f6 $03 - note e6 $03 - note ds6 $03 - note d6 $03 - note cs6 $03 - vol $6 - note c6 $03 - note b5 $03 - note as5 $03 - vol $7 - note a5 $03 - note gs5 $03 - note g5 $03 - vol $8 - note fs5 $03 - note f5 $03 - vol $7 - note e5 $03 - env $0 $02 - duty $00 - vol $b - note b3 $06 - note b3 $06 - note b3 $06 - env $0 $01 - note as3 $06 - rest $18 - env $0 $04 - note a3 $12 - env $0 $02 - note gs3 $12 - rest $0c - note b3 $06 - note b3 $06 - note b3 $06 - vol $b - env $0 $01 - vol $a - note as3 $06 - rest $18 - env $0 $04 - note a3 $12 - env $0 $02 - note gs3 $12 - rest $0c - goto musice89a1 - cmdff - -musMinibossChannel0: - duty $02 - vol $7 - note d6 $03 - vol $6 - note cs6 $03 - vol $5 - note c6 $03 - note b5 $03 - note as5 $03 - note a5 $03 - vol $6 - note gs5 $03 - note g5 $03 - note fs5 $03 - note f5 $03 - vol $7 - note e5 $03 - note ds5 $03 - note d5 $03 - vol $8 - note cs5 $03 - note c5 $03 - note b4 $03 - env $0 $02 - duty $00 - note e3 $06 - note e3 $06 - note e3 $06 - vol $9 - env $0 $01 - vol $8 - note ds3 $06 - rest $18 - env $0 $04 - note d3 $12 - env $0 $02 - note cs3 $12 - rest $0c - env $0 $02 - note e3 $06 - note e3 $06 - note e3 $06 - vol $9 - env $0 $01 - note ds3 $06 - rest $18 - env $0 $04 - note d3 $12 - env $0 $02 - note cs3 $12 - rest $0c -musice8b04: - note fs3 $06 - note fs3 $06 - note fs3 $06 - vol $9 - env $0 $01 - note f3 $06 - rest $18 - env $0 $04 - note e3 $12 - env $0 $02 - note ds3 $12 - rest $0c - note fs3 $06 - note fs3 $06 - note fs3 $06 - vol $9 - env $0 $01 - vol $8 - note f3 $06 - rest $18 - env $0 $04 - note e3 $12 - env $0 $02 - note ds3 $12 - rest $0c - env $0 $00 - duty $02 - vol $9 - note c3 $12 - note b2 $12 - note c3 $06 - note cs3 $06 - note d3 $06 - note ds3 $06 - env $0 $02 - duty $00 - vol $8 - note gs3 $06 - note gs3 $06 - note gs3 $06 - vol $a - env $0 $01 - vol $9 - note g3 $06 - rest $18 - env $0 $04 - note fs3 $12 - env $0 $02 - note f3 $12 - rest $0c - note gs3 $06 - note gs3 $06 - note gs3 $06 - vol $9 - env $0 $01 - vol $8 - note g3 $06 - rest $18 - env $0 $04 - note fs3 $12 - env $0 $02 - note f3 $12 - rest $0c - note as3 $06 - note as3 $06 - note as3 $06 - vol $9 - env $0 $01 - vol $8 - note a3 $06 - rest $18 - env $0 $04 - note gs3 $12 - env $0 $02 - note g3 $12 - rest $0c - note as3 $06 - note as3 $06 - note as3 $06 - vol $9 - env $0 $01 - vol $8 - note a3 $06 - rest $18 - env $0 $04 - note gs3 $12 - env $0 $02 - note g3 $12 - rest $6c - env $0 $00 - duty $02 - note d6 $03 - vol $6 - note cs6 $03 - vol $5 - note c6 $03 - note b5 $03 - note as5 $03 - note a5 $03 - vol $6 - note gs5 $03 - note g5 $03 - note fs5 $03 - note f5 $03 - vol $7 - note e5 $03 - note ds5 $03 - note d5 $03 - vol $8 - note cs5 $03 - note c5 $03 - vol $7 - note b4 $03 - env $0 $02 - vol $9 - duty $00 - note e3 $06 - note e3 $06 - note e3 $06 - env $0 $01 - vol $8 - note ds3 $06 - rest $18 - env $0 $04 - note d3 $12 - env $0 $02 - note cs3 $12 - rest $0c - note e3 $06 - note e3 $06 - note e3 $06 - vol $9 - env $0 $01 - vol $8 - note ds3 $06 - rest $18 - env $0 $04 - note d3 $12 - env $0 $02 - note cs3 $12 - rest $0c - env $0 $04 - goto musice8b04 - cmdff - -musMinibossChannel4: - duty $12 - rest $30 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 -musice8c51: - duty $12 - note cs2 $06 - note cs3 $06 - note cs2 $06 - note cs3 $06 - note cs2 $06 - note cs3 $06 - note cs2 $06 - note cs3 $06 - note cs2 $06 - note cs3 $06 - note cs2 $06 - note cs3 $06 - note cs2 $06 - note cs3 $06 - note cs2 $06 - note cs3 $06 - note cs2 $06 - note cs3 $06 - note cs2 $06 - note cs3 $06 - note cs2 $06 - note cs3 $06 - note cs2 $06 - note cs3 $06 - note cs2 $06 - note cs3 $06 - note cs2 $06 - note cs3 $06 - note cs2 $06 - note cs3 $06 - note cs2 $06 - note cs3 $06 - duty $01 - note b4 $12 - note as4 $12 - note b4 $06 - note c5 $06 - note cs5 $06 - note d5 $06 - duty $12 - note ds2 $06 - note a1 $06 - note ds2 $06 - note a1 $06 - note ds2 $06 - note a1 $06 - note ds2 $06 - note a1 $06 - note ds2 $06 - note a1 $06 - note ds2 $06 - note a1 $06 - note ds2 $06 - note a1 $06 - note ds2 $06 - note a1 $06 - note ds2 $06 - note a1 $06 - note ds2 $06 - note a1 $06 - note ds2 $06 - note a1 $06 - note ds2 $06 - note a1 $06 - note ds2 $06 - note a1 $06 - note ds2 $06 - note a1 $06 - note ds2 $06 - note a1 $06 - note ds2 $06 - note a1 $06 - note f1 $06 - note f2 $06 - note f1 $06 - note f2 $06 - note f1 $06 - note f2 $06 - note f1 $06 - note f2 $06 - note f1 $06 - note f2 $06 - note f1 $06 - note f2 $06 - note f1 $06 - note f2 $06 - note f1 $06 - note f2 $06 - note f1 $06 - note f2 $06 - note f1 $06 - note f2 $06 - note f1 $06 - note f2 $06 - note f1 $06 - note f2 $06 - note f1 $06 - note f2 $06 - note f1 $06 - note f2 $06 - note f1 $06 - note f2 $06 - note f1 $06 - note f2 $06 - rest $90 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - note b2 $06 - note fs2 $06 - goto musice8c51 - cmdff - -musMinibossChannel6: - rest $30 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $1c $01 - vol $2 - note $27 $03 - rest $02 - vol $9 - note $28 $01 - vol $1 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 -musice8e06: - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $6 - note $28 $01 - vol $1 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $6 - note $28 $01 - vol $1 - note $27 $03 - rest $02 - vol $6 - note $28 $01 - vol $1 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $6 - note $28 $01 - vol $1 - note $27 $03 - rest $02 - vol $6 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $c - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $d - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $9 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $9 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $4 - note $26 $04 - rest $02 - note $26 $09 - rest $03 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $4 - note $26 $04 - rest $02 - note $26 $04 - rest $02 - note $26 $04 - rest $02 - note $26 $04 - rest $02 - vol $7 - note $28 $01 - vol $5 - note $27 $03 - rest $02 - vol $9 - note $28 $01 - vol $5 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $5 - note $27 $03 - rest $02 - vol $d - note $28 $01 - vol $5 - note $27 $03 - rest $32 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $3 - note $52 $04 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $08 - rest $03 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $7 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - vol $8 - note $28 $01 - vol $2 - note $27 $03 - rest $02 - goto musice8e06 - cmdff diff --git a/audio/common/mus/minigame.s b/audio/common/mus/minigame.s deleted file mode 100644 index 4dd26371c..000000000 --- a/audio/common/mus/minigame.s +++ /dev/null @@ -1,444 +0,0 @@ -musMinigameStart: - -musMinigameChannel1: -musicec001: - duty $02 - vol $a - vibrato $00 - env $0 $01 - note as2 $0c - note as3 $0c - rest $0c - note as3 $0c - env $0 $02 - note as2 $0c - env $0 $01 - note as3 $0c - rest $0c - note as3 $0c - note gs2 $0c - env $0 $01 - note gs3 $0c - rest $0c - note gs3 $0c - note gs2 $0c - env $0 $01 - note gs3 $0c - rest $0c - note gs3 $0c - note fs2 $0c - env $0 $01 - note fs3 $0c - rest $0c - note fs3 $0c - note fs2 $0c - env $0 $01 - note fs3 $0c - rest $0c - note fs3 $0c - note cs3 $0c - env $0 $01 - note cs4 $0c - rest $0c - note cs4 $0c - note cs3 $0c - env $0 $01 - note cs4 $0c - rest $0c - note cs4 $0c - note b2 $0c - env $0 $01 - note b3 $0c - rest $0c - note b3 $0c - note b2 $0c - env $0 $01 - note b3 $0c - rest $0c - note b3 $0c - note as2 $0c - env $0 $01 - note as3 $0c - rest $0c - note as3 $0c - note as2 $0c - env $0 $01 - note as3 $0c - rest $0c - note as3 $0c - note c3 $0c - note c4 $0c - rest $0c - note c4 $0c - note c3 $0c - note c4 $0c - note as4 $0c - note c4 $0c - vibrato $00 - env $0 $03 - note f3 $0c - vol $8 - env $0 $00 - note as4 $03 - env $0 $01 - vol $4 - note as4 $03 - vol $8 - env $0 $00 - note as4 $03 - env $0 $01 - vol $4 - note as4 $03 - vol $a - env $0 $00 - note as4 $03 - env $0 $01 - vol $4 - note as4 $03 - env $0 $00 - vol $2 - note as4 $06 - vol $8 - env $0 $00 - note as4 $03 - env $0 $01 - vol $4 - note as4 $03 - vol $a - env $0 $00 - note as4 $03 - env $0 $01 - vol $4 - note as4 $03 - env $0 $00 - vol $8 - note as4 $08 - vol $4 - note as4 $04 - vol $8 - env $0 $00 - note c3 $03 - env $0 $01 - vol $4 - note c3 $03 - vol $8 - env $0 $00 - note c3 $03 - env $0 $01 - vol $4 - note c3 $03 - vol $a - env $0 $00 - note c3 $03 - env $0 $01 - vol $4 - note c3 $03 - env $0 $00 - vol $2 - note c3 $06 - vol $8 - env $0 $00 - note c3 $03 - env $0 $01 - vol $4 - note c3 $03 - vol $a - env $0 $00 - note c3 $03 - env $0 $01 - vol $4 - note c3 $03 - env $0 $00 - vol $8 - note f3 $08 - vol $4 - note f3 $04 - vol $8 - env $0 $00 - note a4 $03 - env $0 $01 - vol $4 - note a4 $03 - vol $8 - env $0 $00 - note a4 $03 - env $0 $01 - vol $4 - note a4 $03 - vol $a - env $0 $00 - note a4 $03 - env $0 $01 - vol $4 - note a4 $03 - env $0 $00 - vol $2 - note a4 $06 - vol $8 - env $0 $00 - note a4 $03 - env $0 $01 - vol $4 - note a4 $03 - vol $a - env $0 $00 - note a4 $03 - env $0 $01 - vol $4 - note a4 $03 - env $0 $00 - vol $8 - note a4 $08 - vol $4 - note a4 $04 - vol $a - env $0 $01 - note f2 $06 - vol $a - note f2 $06 - vol $a - note f2 $06 - vol $a - note fs2 $05 - vol $1 - note fs2 $01 - vol $a - note g2 $05 - vol $1 - note g2 $01 - vol $a - note a2 $05 - vol $1 - note a2 $01 - goto musicec001 - cmdff -musMinigameChannel0: -musicec174: - duty $02 - vol $0 - note gs3 $6c - vibrato $00 - env $0 $00 - vol $6 - note as5 $06 - rest $06 - note as5 $03 - rest $03 - note c6 $03 - rest $03 - note d6 $03 - rest $03 - note ds6 $03 - rest $03 - vibrato $00 - env $0 $07 - note f6 $30 - rest $18 - vibrato $00 - env $0 $00 - note cs6 $03 - rest $03 - note fs6 $03 - rest $03 - note gs6 $03 - rest $03 - note as6 $03 - rest $03 - vibrato $00 - env $0 $07 - note cs7 $30 - rest $24 - vibrato $00 - env $0 $00 - note cs6 $03 - rest $03 - note ds6 $03 - rest $03 - note f6 $06 - rest $06 - note cs6 $06 - rest $06 - vibrato $00 - env $0 $07 - note gs5 $18 - rest $24 - vibrato $00 - env $0 $00 - note ds6 $02 - rest $04 - note f6 $02 - rest $04 - note fs6 $02 - rest $0a - note ds6 $02 - rest $04 - note f6 $02 - rest $04 - vibrato $00 - env $0 $04 - note fs6 $18 - rest $24 - vibrato $00 - env $0 $00 - note cs6 $02 - rest $04 - note ds6 $02 - rest $04 - note f6 $02 - rest $0a - note cs6 $02 - rest $04 - note ds6 $02 - rest $04 - vibrato $00 - env $0 $04 - note f6 $18 - rest $24 - vibrato $00 - env $0 $00 - note c6 $02 - rest $04 - note d6 $02 - rest $04 - note e6 $02 - rest $0a - note e6 $02 - rest $04 - note f6 $02 - rest $04 - note g6 $02 - rest $04 - note a6 $02 - rest $04 - note as6 $02 - rest $04 - note c7 $02 - rest $04 - note a6 $06 - rest $06 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $a - note ds4 $03 - vol $2 - note ds4 $03 - vol $1 - note ds4 $06 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $a - note ds4 $08 - vol $3 - note ds4 $0a - vol $1 - note ds4 $0a - rest $20 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $a - note ds4 $03 - vol $2 - note ds4 $03 - vol $1 - note ds4 $06 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $a - note ds4 $08 - vol $3 - note ds4 $0a - vol $1 - note ds4 $0a - rest $14 - goto musicec174 - cmdff -musMinigameChannel4: -musicec29a: - duty $01 - note as4 $06 - rest $12 - note f4 $1e - rest $0c - note as4 $04 - rest $02 - note as4 $06 - note c5 $03 - rest $03 - note d5 $03 - rest $03 - note ds5 $03 - rest $03 - note f5 $2a - rest $12 - note f5 $09 - rest $03 - note f5 $0c - note fs5 $03 - rest $03 - note gs5 $03 - rest $03 - note as5 $2a - rest $12 - note as5 $09 - rest $03 - note as5 $0c - note gs5 $03 - rest $03 - note fs5 $03 - rest $03 - note gs5 $06 - rest $0c - note fs5 $06 - note f5 $24 - rest $0c - note f5 $18 - note ds5 $0c - rest $06 - note f5 $06 - note fs5 $24 - rest $0c - note f5 $0c - note ds5 $0c - note cs5 $0c - rest $06 - note ds5 $06 - note f5 $24 - rest $0c - note ds5 $0c - note cs5 $0c - note c5 $0c - rest $06 - note d5 $06 - note e5 $24 - rest $0c - note g5 $18 - note f5 $08 - rest $b8 - goto musicec29a - cmdff - -.define musMinigameChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/onoxCastle.s b/audio/common/mus/onoxCastle.s deleted file mode 100644 index 84d69687c..000000000 --- a/audio/common/mus/onoxCastle.s +++ /dev/null @@ -1,697 +0,0 @@ -musOnoxCastleStart: - -musOnoxCastleChannel1: - vibrato $c1 - env $0 $00 - cmdf2 - duty $01 -musicf0453: - vol $0 - note gs3 $24 - vol $6 - note a3 $24 - note d4 $24 - note a4 $24 - note gs4 $48 - note f4 $24 - note d4 $24 - duty $02 - note c5 $09 - note b4 $09 - note c5 $09 - note b4 $09 - rest $6c - vol $4 - note c5 $09 - note b4 $09 - note c5 $09 - note b4 $09 - rest $90 - duty $01 - vol $6 - note d4 $24 - note f4 $24 - note a4 $24 - note cs5 $48 - note d5 $24 - note e5 $24 - vol $7 - note f5 $09 - note e5 $09 - vol $6 - note f5 $09 - note e5 $09 - note gs4 $48 - rest $24 - vol $4 - note f5 $09 - note e5 $09 - note f5 $09 - note e5 $09 - note gs4 $48 - rest $24 - vol $6 - note e5 $09 - note ds5 $09 - note e5 $09 - note ds5 $09 - note g4 $6c - note ds5 $09 - note d5 $09 - note ds5 $09 - note d5 $09 - note fs4 $5a - rest $12 - vol $6 - note c5 $12 - note b4 $09 - rest $04 - vol $3 - note b4 $05 - vol $6 - note e5 $12 - vol $6 - note ds5 $09 - rest $04 - vol $3 - note ds5 $05 - vol $6 - note g5 $12 - vol $6 - note fs5 $09 - rest $04 - vol $3 - note fs5 $05 - vol $6 - note c6 $12 - note b5 $09 - rest $04 - vol $3 - note b5 $05 - vol $6 - note a6 $09 - note gs6 $09 - note g6 $09 - note fs6 $09 - note f6 $09 - rest $04 - vol $3 - note f6 $05 - vol $6 - note f6 $09 - note e6 $09 - note ds6 $09 - note d6 $09 - note cs6 $09 - rest $04 - vol $3 - note cs6 $05 - vol $6 - note cs6 $09 - note c6 $09 - note b5 $09 - note as5 $09 - note d5 $12 - vol $6 - note e5 $12 - note f5 $24 - vibrato $01 - env $0 $00 - vol $3 - note f5 $12 - vibrato $d1 - env $0 $00 - vol $6 - note d5 $12 - note e5 $12 - note f5 $12 - note a5 $48 - note gs5 $36 - vibrato $01 - env $0 $00 - vol $3 - note gs5 $12 - vibrato $d1 - env $0 $00 - vol $6 - note c5 $12 - note d5 $12 - note ds5 $24 - vibrato $01 - env $0 $00 - vol $3 - note ds5 $12 - vibrato $d1 - env $0 $00 - vol $6 - note c5 $12 - note d5 $12 - note ds5 $12 - note g5 $48 - note fs5 $36 - vibrato $01 - env $0 $00 - vol $3 - note fs5 $12 - vibrato $d1 - env $0 $00 - vol $6 - note as4 $12 - note c5 $12 - note cs5 $24 - vibrato $01 - env $0 $00 - vol $3 - note cs5 $12 - vibrato $d1 - env $0 $00 - vol $6 - note as4 $12 - note c5 $12 - note cs5 $12 - rest $04 - vol $3 - note cs5 $09 - rest $09 - vol $1 - note cs5 $09 - rest $05 - vol $6 - note e4 $51 - vibrato $01 - env $0 $00 - vol $3 - note e4 $1b - rest $48 - vibrato $c1 - env $0 $00 - goto musicf0453 - cmdff - -musOnoxCastleChannel0: - vibrato $c1 - env $0 $00 - cmdf2 - duty $01 -musicf059e: - vol $0 - note gs3 $24 - vol $1 - note a3 $12 - vol $3 - note a3 $24 - note d4 $24 - note a4 $24 - note gs4 $48 - note f4 $24 - note d4 $24 - duty $02 - vol $3 - note c5 $09 - note b4 $09 - note c5 $09 - note b4 $09 - rest $6c - vol $2 - note c5 $09 - note b4 $09 - note c5 $09 - note b4 $09 - rest $99 - duty $01 - vol $3 - note d4 $24 - note f4 $24 - note a4 $24 - note cs5 $48 - note d5 $24 - note e5 $24 - rest $03 - vol $3 - note f5 $09 - note e5 $09 - vol $3 - note f5 $09 - note e5 $09 - vol $3 - note gs4 $48 - rest $24 - vol $2 - note f5 $09 - note e5 $09 - note f5 $09 - vol $2 - note e5 $09 - note gs4 $63 - vol $3 - note e5 $09 - note ds5 $09 - note e5 $09 - note ds5 $09 - note g4 $6c - vol $1 - note ds5 $09 - note d5 $09 - note ds5 $09 - note d5 $09 - note fs4 $57 - vol $6 - note a4 $12 - note gs4 $09 - rest $04 - vol $3 - note gs4 $05 - vol $6 - note c5 $12 - note b4 $09 - rest $04 - vol $3 - note b4 $05 - vol $6 - note e5 $12 - note ds5 $09 - rest $04 - vol $3 - note ds5 $05 - vol $6 - note a5 $12 - note gs5 $09 - rest $04 - vol $3 - note gs5 $05 - vol $6 - note fs6 $09 - note f6 $09 - note e6 $09 - note ds6 $09 - note d6 $09 - rest $04 - vol $3 - note d6 $05 - vol $6 - note d6 $09 - note cs6 $09 - note c6 $09 - note b5 $09 - note as5 $09 - rest $04 - vol $3 - note as5 $05 - vol $6 - note as5 $09 - note a5 $09 - note gs5 $09 - note g5 $09 - duty $02 - note d4 $04 - rest $05 - note f4 $04 - vol $3 - note d4 $05 - vol $6 - note e4 $04 - vol $3 - note f4 $05 - vol $6 - note f4 $04 - vol $3 - note e4 $05 - vol $6 - note d4 $04 - vol $3 - note f4 $05 - vol $6 - note f4 $04 - vol $3 - note d4 $05 - vol $6 - note e4 $04 - vol $3 - note f4 $05 - vol $6 - note f4 $04 - vol $3 - note e4 $05 - vol $6 - note d4 $04 - vol $3 - note f4 $05 - vol $6 - note f4 $04 - vol $3 - note d4 $05 - vol $6 - note e4 $04 - vol $3 - note f4 $05 - vol $6 - note f4 $04 - vol $3 - note e4 $05 - vol $6 - note d4 $04 - vol $3 - note f4 $05 - vol $6 - note f4 $04 - vol $3 - note d4 $05 - vol $6 - note e4 $04 - vol $3 - note f4 $05 - vol $6 - note f4 $04 - vol $3 - note e4 $05 - vol $6 - note b3 $04 - vol $3 - note f4 $05 - vol $6 - note d4 $04 - vol $3 - note b3 $05 - vol $6 - note cs4 $04 - vol $3 - note d4 $05 - vol $6 - note d4 $04 - vol $3 - note cs4 $05 - vol $6 - note b3 $04 - vol $3 - note d4 $05 - vol $6 - note d4 $04 - vol $3 - note b3 $05 - vol $6 - note cs4 $04 - vol $3 - note d4 $05 - vol $6 - note d4 $04 - vol $3 - note cs4 $05 - vol $6 - note b3 $04 - vol $3 - note d4 $05 - vol $6 - note d4 $04 - vol $3 - note b3 $05 - vol $6 - note cs4 $04 - vol $3 - note d4 $05 - vol $6 - note d4 $04 - vol $3 - note cs4 $05 - vol $6 - note b3 $04 - vol $3 - note d4 $05 - vol $6 - note d4 $04 - vol $3 - note b3 $05 - vol $6 - note cs4 $04 - vol $3 - note d4 $05 - vol $6 - note d4 $04 - vol $3 - note cs4 $05 - vol $6 - note c4 $04 - vol $3 - note d4 $05 - vol $6 - note ds4 $04 - vol $3 - note c4 $05 - vol $6 - note d4 $04 - vol $3 - note ds4 $05 - vol $6 - note ds4 $04 - vol $3 - note d4 $05 - vol $6 - note c4 $04 - vol $3 - note ds4 $05 - vol $6 - note ds4 $04 - vol $3 - note c4 $05 - vol $6 - note d4 $04 - vol $3 - note ds4 $05 - vol $6 - note ds4 $04 - vol $3 - note d4 $05 - vol $6 - note c4 $04 - vol $3 - note ds4 $05 - vol $6 - note ds4 $04 - vol $3 - note c4 $05 - vol $6 - note d4 $04 - vol $3 - note ds4 $05 - vol $6 - note ds4 $04 - vol $3 - note d4 $05 - vol $6 - note c4 $04 - vol $3 - note ds4 $05 - vol $6 - note ds4 $04 - vol $3 - note c4 $05 - vol $6 - note d4 $04 - vol $3 - note ds4 $05 - vol $6 - note ds4 $04 - vol $3 - note d4 $05 - vol $6 - note a3 $04 - vol $3 - note ds4 $05 - vol $6 - note c4 $04 - vol $3 - note a3 $05 - vol $6 - note b3 $04 - vol $3 - note c4 $05 - vol $6 - note c4 $04 - vol $3 - note b3 $05 - vol $6 - note a3 $04 - vol $3 - note c4 $05 - vol $6 - note c4 $04 - vol $3 - note a3 $05 - vol $6 - note b3 $04 - vol $3 - note c4 $05 - vol $6 - note c4 $04 - vol $3 - note b3 $05 - vol $6 - note a3 $04 - vol $3 - note c4 $05 - vol $6 - note c4 $04 - vol $3 - note a3 $05 - vol $6 - note b3 $04 - vol $3 - note c4 $05 - vol $6 - note c4 $04 - vol $3 - note b3 $05 - vol $6 - note a3 $04 - vol $3 - note c4 $05 - vol $6 - note c4 $04 - vol $3 - note a3 $05 - vol $6 - note b3 $04 - vol $3 - note c4 $05 - vol $6 - note c4 $04 - vol $3 - note b3 $05 - duty $01 - vol $6 - note as3 $12 - note c4 $12 - note cs4 $24 - vibrato $01 - env $0 $00 - vol $3 - note cs4 $12 - vibrato $d1 - env $0 $00 - vol $6 - note as3 $12 - note c4 $12 - note cs4 $12 - rest $04 - vol $3 - note cs4 $09 - rest $05 - vol $1 - note cs4 $09 - rest $09 - vol $6 - note e3 $48 - vibrato $01 - env $0 $00 - vol $3 - note e3 $24 - rest $48 - vibrato $d1 - env $0 $00 - goto musicf059e - cmdff - -musOnoxCastleChannel4: - duty $0e -musicf0818: - note d2 $09 - rest $09 - note d2 $09 - rest $75 - note d2 $09 - rest $09 - note d2 $09 - rest $75 - note d2 $09 - rest $09 - note d2 $09 - rest $75 - note d2 $09 - rest $09 - note d2 $09 - rest $75 - note d2 $09 - rest $09 - note d2 $09 - rest $63 - note d2 $09 - rest $09 - note d2 $09 - rest $09 - note d2 $09 - rest $75 - note d2 $09 - rest $09 - note d2 $09 - rest $75 - note d2 $09 - rest $09 - note d2 $09 - rest $75 - note cs2 $09 - rest $09 - note cs2 $09 - rest $75 - note c2 $09 - rest $09 - note c2 $09 - rest $75 - note b1 $90 - rest $90 - note d2 $09 - rest $09 - note d2 $09 - rest $2d - note d2 $09 - rest $09 - note d2 $09 - rest $2d - note gs2 $09 - rest $09 - note gs2 $09 - rest $2d - note gs2 $09 - rest $09 - note gs2 $09 - rest $2d - note c2 $09 - rest $09 - note c2 $09 - rest $2d - note c2 $09 - rest $09 - note c2 $09 - rest $2d - note fs2 $09 - rest $09 - note fs2 $09 - rest $2d - note fs2 $09 - rest $09 - note fs2 $09 - rest $1b - note ds2 $04 - note d2 $05 - note c2 $04 - note b1 $05 - note as1 $12 - note c2 $12 - note cs2 $2d - rest $09 - note as1 $12 - note c2 $12 - note cs2 $12 - rest $24 - note e1 $09 - note f1 $09 - note e1 $09 - note f1 $09 - note e1 $09 - note f1 $09 - note e1 $09 - note f1 $09 - note e1 $09 - rest $63 - goto musicf0818 - cmdff - -.define musOnoxCastleChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/overworld.s b/audio/common/mus/overworld.s deleted file mode 100644 index eab490d93..000000000 --- a/audio/common/mus/overworld.s +++ /dev/null @@ -1,1594 +0,0 @@ -musOverworldStart: - -musOverworldChannel1: -; Measure 1 - vibrato $00 ;useless? - duty $02 - vol $6 - - env $0 $04 - note g4 $18 - env $0 $02 - note g4 $08 - note d4 $08 - note g4 $08 - - env $0 $04 - note f4 $18 - env $0 $02 - note f4 $08 - note g4 $08 - note a4 $08 -; Measure 2 - env $0 $04 - note as4 $18 - env $0 $02 - note as4 $08 - note g4 $08 - note as4 $08 - - env $0 $04 - note a4 $18 - env $0 $02 - note a4 $08 - note as4 $08 - note c5 $08 -; Measure 3 - vibrato $e1 - env $0 $00 - note d5 $3c - rest $0c - - vibrato $00 - env $0 $02 - note c5 $08 - note c5 $08 - note c5 $08 -; Measure 4 - vibrato $e1 - env $0 $00 - note d5 $3c - rest $0c - - vibrato $00 - env $0 $00 - note c5 $04 - rest $04 - note b4 $04 - rest $04 - note a4 $04 - rest $04 -musiceca67: -; Measure 5 - vibrato $00 ;useless? - env $0 $05 - note g4 $18 - note d4 $18 - - env $0 $04 - rest $12 - note g4 $06 - note g4 $06 - note a4 $06 - note b4 $06 - note c5 $06 -; Measure 6 - env $0 $05 - note d5 $30 - - env $0 $04 - rest $10 - note d5 $08 - note d5 $08 - note ds5 $08 - note f5 $08 -; Measure 7 - env $0 $05 - note g5 $30 - - env $0 $04 - rest $10 - note g5 $08 - note g5 $08 - note f5 $08 - note ds5 $08 -; Measure 8 - vibrato $00 ;useless? - env $0 $00 - note f5 $08 - rest $08 - note ds5 $08 - - vibrato $00 ;useless? - env $0 $05 - note d5 $18 - - env $0 $04 - rest $18 - note d5 $08 - note ds5 $08 - note d5 $08 -; Measure 9 - note c5 $0c - note c5 $06 - note d5 $06 - - env $0 $05 - note ds5 $18 - - env $0 $04 - rest $18 - note d5 $0c - note c5 $0c -; Measure 10 - note as4 $0c - note as4 $06 - note c5 $06 - - env $0 $05 - note d5 $18 - - env $0 $04 - rest $18 - note c5 $0c - note as4 $0c -; Measure 11 - note a4 $0c - note a4 $06 - note b4 $06 - - env $0 $05 - note cs5 $18 - - env $0 $04 - rest $18 - note e5 $18 -; Measure 12 - note d5 $0c - - vibrato $00 ;useless? - env $0 $01 - duty $00 - vol $8 - note d4 $04 - note d4 $04 - note d4 $04 - - vibrato $00 ;useless? - vol $6 - env $0 $02 - note e4 $08 - note e4 $08 - note e4 $08 - - vibrato $00 ;useless? - env $0 $00 - vol $7 - note fs4 $18 - vol $6 - rest $18 -; Measure 13 repeat of M5 - vibrato $00 ;useless? - env $0 $05 - duty $02 - note g4 $18 - note d4 $18 - - env $0 $04 - rest $12 - note g4 $06 - note g4 $06 - note a4 $06 - note b4 $06 - note c5 $06 -; Measure 14 repeat of M6 - env $0 $05 - note d5 $30 - - env $0 $04 - rest $10 - note d5 $08 - note d5 $08 - note ds5 $08 - note f5 $08 -; Measure 15 repeat of M7 - env $0 $05 - note g5 $30 - - env $0 $04 - rest $10 - note g5 $08 - note g5 $08 - note f5 $08 - note ds5 $08 -; Measure 16 very similar to M8 - vibrato $00 ;useless? - env $0 $00 - note f5 $08 - rest $08 - note ds5 $08 - - vibrato $00 ;useless? - env $0 $04 ;$05 in M8 - note d5 $18 - - env $0 $03 ;$04 in M8 - rest $18 - note d5 $08 - note ds5 $08 - note d5 $08 -; Measure 17 repeat of M9 - note c5 $0c - note c5 $06 - note d5 $06 - - env $0 $05 - note ds5 $18 - - env $0 $04 - rest $18 - note d5 $0c - note c5 $0c -; Measure 18 - vol $6 - note as4 $08 - note a4 $08 - note as4 $08 - note c5 $08 - note as4 $08 - note c5 $08 - - vibrato $00 ;useless? - env $0 $00 - note d5 $08 - rest $08 - note d5 $08 - note d5 $08 - note c5 $08 - note as4 $08 -; Measure 19 - vibrato $e1 - env $0 $00 ;useless? - vol $6 ;useless? - note d5 $30 - note d6 $30 -; Measure 20 - vol $5 - note g5 $3c - rest $0c - - vibrato $00 - env $0 $00 ;useless? - vol $6 - duty $01 - note d5 $04 - rest $04 - note ds5 $04 - rest $04 - note f5 $04 - rest $04 -; Measure 21 - vibrato $e1 - env $0 $00 ;useless? - note g5 $12 - rest $06 - note d5 $18 - rest $12 - - vibrato $00 - env $0 $00 ;useless? - note g5 $03 - rest $03 - note g5 $03 - rest $03 - note a5 $03 - rest $03 - note as5 $03 - rest $03 - note c6 $03 - rest $03 -; Measure 22 - note a5 $05 - rest $0b - note f5 $05 - rest $03 - - vibrato $f1 - note c5 $18 - rest $0c - - vibrato $00 - env $0 $00 ;useless? - note c5 $03 - rest $03 - note d5 $03 - rest $03 - note f5 $03 - rest $03 - note ds5 $03 - rest $03 - note d5 $03 - rest $03 - note c5 $03 - rest $03 -; Measure 23 - note d5 $05 - rest $0b - note g4 $04 - rest $04 - - vibrato $e1 - env $0 $00 ;useless? - note g4 $18 - rest $0c - - vibrato $00 - env $0 $00 ;useless? - note g4 $03 - rest $03 - note fs4 $03 - rest $03 - note g4 $03 - rest $03 - note a4 $03 - rest $03 - note as4 $03 - rest $03 - note c5 $03 - rest $03 -; Measure 24 - vibrato $e1 - env $0 $00 ;useless? - note d5 $24 - rest $24 - vibrato $00 - env $0 $00 ;useless? - note d5 $04 - rest $04 - note c5 $04 - rest $04 - note d5 $04 - rest $04 -; Measure 25 - note as5 $05 - rest $0b - note a5 $05 - rest $03 - - note g5 $18 - rest $08 - - note d5 $04 - rest $04 - note d5 $04 - rest $04 - note d5 $04 - rest $04 - note as4 $04 - rest $04 - note g5 $04 - rest $04 -; Measure 26 - note gs5 $05 - rest $0b - note as5 $05 - rest $03 - - note c6 $18 - rest $08 - - note c6 $04 - rest $04 - note d6 $04 - rest $04 - note ds6 $04 - rest $04 - note f6 $04 - rest $04 - note ds6 $04 - rest $04 -; Measure 27 - vibrato $e1 - env $0 $00 ;useless? - note d6 $3c - - vibrato $01 - env $0 $00 ;useless? - vol $3 - note d6 $0c - vol $2 - note d6 $0c - rest $18 -; Measure 28a - vibrato $00 - env $0 $01 - duty $02 ;useless? - vol $6 - note d5 $04 - note d5 $04 - note d5 $04 - vibrato $00 ;useless? - env $0 $02 - note e5 $08 - note e5 $08 - note e5 $08 - env $0 $04 - note fs5 $18 - rest $18 - vibrato $00 ;useless? - env $0 $02 ;useless? (overwritten to $0 $05 before another note) - goto musiceca67 - cmdff - -musOverworldChannel0: -; Measure 1 - vibrato $00 ;useless? - duty $02 - vol $6 - env $0 $04 - note b3 $18 - - env $0 $02 - note b3 $08 - note b3 $08 - note b3 $08 - - env $0 $04 - note a3 $18 - note a3 $08 - note b3 $08 - note c4 $08 -; Measure 2 - env $0 $04 ;useless? - note ds4 $18 - - env $0 $02 - note ds4 $08 - note ds4 $08 - note ds4 $08 - - env $0 $04 - note f4 $18 - - env $0 $02 - note f4 $08 - note f4 $08 - note f4 $08 -; Measure 3 - vibrato $e1 - env $0 $00 - note g4 $2a - - vibrato $01 - env $0 $00 ;useless? - vol $4 - note g4 $0c - vol $2 - note g4 $0c - rest $06 - - vibrato $00 - env $0 $02 - vol $6 - note f4 $08 - note f4 $08 - note f4 $08 -; Measure 4 similar to M3 - vibrato $e1 - env $0 $00 - note g4 $2a - - vibrato $01 - env $0 $00 ;useless? - vol $2 - note g4 $0c - vol $1 - note g4 $0c - - rest $1e ;difference from M3, takes out beat 4 -musicecd1c: - vibrato $00 - env $0 $03 - vol $6 -; Measure 5 - note b3 $18 - - note c4 $08 - note b3 $08 - note a3 $08 - - note b3 $12 - note b3 $06 - - note b3 $06 - note c4 $06 - note d4 $06 - note e4 $06 -; Measure 6 - note f4 $12 - note g4 $06 - - note g4 $06 - note a4 $06 - note b4 $06 - note c5 $06 - - note d5 $18 - - note f4 $08 - note g4 $08 - note a4 $08 -; Measure 7 - note as4 $10 - note ds4 $08 - - note ds4 $06 - note f4 $06 - note g4 $06 - note a4 $06 - - note as4 $06 - rest $0a - note as4 $08 - - note as4 $08 - note a4 $08 - note g4 $08 -; Measure 8 - note as4 $06 - rest $0a - note f4 $08 - - note f4 $08 - note f4 $08 - note ds4 $08 - - note f4 $08 - rest $08 - note f4 $08 - - note f4 $08 - note ds4 $08 - note f4 $08 -; Measure 9 - note ds4 $0c - note ds4 $06 - note d4 $06 - - note ds4 $0c - note ds4 $06 - note f4 $06 - - env $0 $05 - note g4 $18 - - env $0 $03 - note f4 $0c - note ds4 $0c -; Measure 10 ;same structure as M9 - note d4 $0c - note d4 $06 - note c4 $06 - - note d4 $0c - note d4 $06 - note ds4 $06 - - env $0 $05 - note f4 $18 - - env $0 $03 - note ds4 $0c - note d4 $0c -; Measure 11 - note cs4 $18 - - note cs4 $0c - note cs4 $06 - note d4 $06 - - note e4 $0c - note e4 $06 - note f4 $06 - - note g4 $06 - note a4 $06 - note b4 $06 - note c5 $06 -; Measure 12 - vibrato $00 ;useless? - env $0 $05 - duty $01 - note a4 $18 - - vibrato $00 - env $0 $03 - note c4 $08 - note c4 $08 - note c4 $08 - - vol $7 - note d4 $18 - vol $6 - rest $18 -; Measure 13 repeat of M5 - duty $02 - note b3 $18 - - note c4 $08 - note b3 $08 - note a3 $08 - - note b3 $12 - note b3 $06 - - note b3 $06 - note c4 $06 - note d4 $06 - note e4 $06 -; Measure 14 repeat of M6 - note f4 $12 - note g4 $06 - - note g4 $06 - note a4 $06 - note b4 $06 - note c5 $06 - - note d5 $18 - - note f4 $08 - note g4 $08 - note a4 $08 -; Measure 15 repeat of M7 - note as4 $10 - note ds4 $08 - - note ds4 $06 - note f4 $06 - note g4 $06 - note a4 $06 - - note as4 $06 - rest $0a - note as4 $08 - - note as4 $08 - note a4 $08 - note g4 $08 -; Measure 16 repeat of M8 - note as4 $06 - rest $0a - note f4 $08 - - note f4 $08 - note f4 $08 - note ds4 $08 - - note f4 $08 - rest $08 - note f4 $08 - - note f4 $08 - note ds4 $08 - note f4 $08 -; Measure 17 ;repeat of M9 - note ds4 $0c - note ds4 $06 - note d4 $06 - - note ds4 $0c - note ds4 $06 - note f4 $06 - - env $0 $05 - note g4 $18 - - env $0 $03 - note f4 $0c - note ds4 $0c -; Measure 18 - vibrato $e0 - env $2 $00 - vol $4 - note g3 $18 - note fs3 $18 - note f3 $30 -; Measure 19 - vol $5 - note e3 $18 - - vol $5 ;useless - note c3 $18 - note d3 $12 - rest $06 - - vibrato $00 - env $0 $00 - vol $6 - note d3 $04 - vol $1 - note d3 $04 - - vol $6 - note d4 $04 - vol $1 - note d4 $04 - - vol $6 - note c4 $04 - vol $1 - note c4 $04 -; Measure 20 - vol $6 - note as3 $04 - vol $1 - note as3 $04 - - vol $6 - note a3 $04 - vol $1 - note a3 $04 - - vol $6 - note g3 $04 - vol $1 - note g3 $04 - - vol $6 - note a3 $04 - vol $1 - note a3 $04 - rest $10 - - vol $6 - note g3 $04 - vol $1 - note g3 $04 - rest $28 -; Measure 21 - duty $01 - vol $6 - note as4 $10 - rest $08 - - note g4 $18 - - rest $12 - note as4 $03 - rest $03 - - note as4 $03 - rest $03 - note c5 $03 - rest $03 - note d5 $03 - rest $03 - note ds5 $03 - rest $03 -; Measure 22 - note c5 $05 - rest $0b - note as4 $05 - rest $03 - - note a4 $18 - rest $18 - note f4 $14 - rest $04 -; Measure 23 - note g4 $05 - rest $0b - note d4 $05 - rest $03 - - note d4 $14 - rest $04 - note c4 $14 - rest $04 - note e4 $14 - rest $04 -; Measure 24 - note g4 $03 - rest $09 - note g4 $03 - rest $03 - note fs4 $03 - rest $03 - - note g4 $03 - rest $03 - note a4 $03 - rest $03 - note as4 $03 - rest $03 - note c5 $03 - rest $03 - - note d5 $18 - vol $3 - note d5 $0c - rest $0c -; Measure 25 - vol $6 - note d5 $05 - rest $0b - note c5 $05 - rest $03 - - note as4 $18 - vol $3 - note as4 $0c - vol $1 - note as4 $0c - - rest $18 -; Measure 26 - vol $6 - note c5 $05 - rest $0b - note ds5 $05 - rest $03 - - note gs5 $18 - vol $3 - note gs5 $0c - vol $1 - note gs5 $0c - rest $30 -; Measure 27b - vibrato $00 - env $0 $02 - duty $02 - vol $6 - - note g4 $04 - rest $04 - note g4 $04 - rest $04 - note g4 $04 - rest $04 - - env $0 $04 - note g4 $0c - - env $0 $02 - rest $3c -; Measure 28b - note c5 $04 - rest $04 - note c5 $04 - rest $04 - note c5 $04 - rest $04 - - env $0 $04 - note d5 $0c - env $0 $02 - rest $24 - goto musicecd1c - cmdff - -musOverworldChannel4: -; Measure 1 - duty $0e - note g3 $04 - duty $0f - note g3 $03 - rest $11 -.rept 3 - duty $0e - note g3 $04 - duty $0f - note g3 $03 - rest $01 -.endr - duty $0e - note f3 $04 - duty $0f - note f3 $03 - rest $11 -.rept 3 - duty $0e - note f3 $04 - duty $0f - note f3 $03 - rest $01 -.endr -; Measure 2 - duty $0e - note ds3 $04 - duty $0f - note ds3 $03 - rest $11 -.rept 3 - duty $0e - note ds3 $04 - duty $0f - note ds3 $03 - rest $01 -.endr -.rept 4 - duty $0e - note f3 $04 - duty $0f - note f3 $03 - rest $01 -.endr - duty $0e - note ds3 $04 - duty $0f - note ds3 $03 - rest $01 - - duty $0e - note f3 $04 - duty $0f - note f3 $03 - rest $01 -; Measure 3-4 -.rept 2 - duty $0e - note g3 $04 - duty $0f - note g3 $03 - rest $11 - .rept 3 - duty $0e - note g3 $04 - duty $0f - note g3 $03 - rest $01 - .endr - duty $0e - note g3 $04 - duty $0f - note g3 $03 - rest $11 - .rept 3 - duty $0e - note d3 $04 - duty $0f - note d3 $03 - rest $01 - .endr -.endr -musiced0a3: -; Measure 5 - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $11 -.rept 2 - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $01 -.endr - duty $0e - note f2 $04 - duty $0f - note f2 $03 - rest $01 -.rept 2 - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $11 -.endr -; Measure 6 - duty $0e - note f2 $04 - duty $0f - note f2 $03 - rest $11 -.rept 2 - duty $0e - note f2 $04 - duty $0f - note f2 $03 - rest $01 -.endr - duty $0e - note ds2 $04 - duty $0f - note ds2 $03 - rest $01 -.rept 2 - duty $0e - note f2 $04 - duty $0f - note f2 $03 - rest $11 -.endr -; Measure 7 - duty $0e - note ds2 $04 - duty $0f - note ds2 $03 - rest $11 -.rept 2 - duty $0e - note ds2 $04 - duty $0f - note ds2 $03 - rest $01 -.endr - duty $0e - note d2 $04 - duty $0f - note d2 $03 - rest $01 -.rept 2 - duty $0e - note ds2 $04 - duty $0f - note ds2 $03 - rest $11 -.endr -; Measure 8 - duty $0e - note as2 $04 - duty $0f - note as2 $03 - rest $11 -.rept 2 - duty $0e - note as2 $04 - duty $0f - note as2 $03 - rest $01 -.endr - duty $0e - note gs2 $04 - duty $0f - note gs2 $03 - rest $01 -.rept 2 - duty $0e - note as2 $04 - duty $0f - note as2 $03 - rest $11 -.endr -; Measure 9 - duty $0e - note gs2 $04 - duty $0f - note gs2 $03 - rest $11 -.rept 2 - duty $0e - note gs2 $04 - duty $0f - note gs2 $03 - rest $01 -.endr - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $01 - - duty $0e - note gs2 $04 - duty $0f - note gs2 $03 - rest $11 -.rept 3 - duty $0e - note gs2 $04 - duty $0f - note gs2 $03 - rest $01 -.endr -; Measure 10 - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $11 -.rept 2 - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $01 -.endr - duty $0e - note f2 $04 - duty $0f - note f2 $03 - rest $01 - - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $11 -.rept 3 - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $01 -.endr -; Measure 11 -.rept 2 - duty $0e - note a2 $04 - duty $0f - note a2 $03 - rest $11 - .rept 3 - duty $0e - note a2 $04 - duty $0f - note a2 $03 - rest $01 - .endr -.endr -; Measure 12 - duty $0e - note d3 $04 - duty $0f - note d3 $03 - rest $11 -.rept 3 - duty $0e - note g3 $04 - duty $0f - note g3 $03 - rest $01 -.endr - duty $0e - note a3 $18 - - duty $0e - note e3 $04 - duty $0f - note e3 $04 - rest $04 - - duty $0e - note fs3 $04 - duty $0f - note fs3 $04 - rest $04 -; Measure 13 - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $11 -.rept 2 - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $01 -.endr - duty $0e - note f2 $04 - duty $0f - note f2 $03 - rest $01 -.rept 2 - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $11 -.endr -; Measure 14 - duty $0e - note f2 $04 - duty $0f - note f2 $03 - rest $11 -.rept 2 - duty $0e - note f2 $04 - duty $0f - note f2 $03 - rest $01 -.endr - duty $0e - note ds2 $04 - duty $0f - note ds2 $03 - rest $01 -.rept 2 - duty $0e - note f2 $04 - duty $0f - note f2 $03 - rest $11 -.endr -; Measure 15 - duty $0e - note ds2 $04 - duty $0f - note ds2 $03 - rest $11 -.rept 2 - duty $0e - note ds2 $04 - duty $0f - note ds2 $03 - rest $01 -.endr - duty $0e - note d2 $04 - duty $0f - note d2 $03 - rest $01 -.rept 2 - duty $0e - note ds2 $04 - duty $0f - note ds2 $03 - rest $11 -.endr -; Measure 16 - duty $0e - note as2 $04 - duty $0f - note as2 $03 - rest $11 -.rept 2 - duty $0e - note as2 $04 - duty $0f - note as2 $03 - rest $01 -.endr - duty $0e - note gs2 $04 - duty $0f - note gs2 $03 - rest $01 -.rept 2 - duty $0e - note as2 $04 - duty $0f - note as2 $03 - rest $11 -.endr -; Measure 17 - duty $0e - note gs2 $04 - duty $0f - note gs2 $03 - rest $11 -.rept 2 - duty $0e - note gs3 $04 - duty $0f - note gs3 $03 - rest $01 -.endr - duty $0e - note g3 $04 - duty $0f - note g3 $03 - rest $01 - - duty $0e - note gs3 $04 - duty $0f - note gs3 $03 - rest $11 -.rept 3 - duty $0e - note gs3 $04 - duty $0f - note gs3 $03 - rest $01 -.endr -; Measure 18 - duty $14 - vol $8 ;useless - note d4 $08 - note cs4 $08 - note d4 $08 - note fs4 $08 - note g4 $08 - note a4 $08 - note as4 $08 - rest $08 - note as4 $08 - note as4 $08 - note a4 $08 - note g4 $08 -; Measure 19 - duty $15 - note d5 $0c - rest $04 - note as4 $0c - rest $04 - note g4 $10 - note fs4 $10 - duty $14 - rest $08 - note fs4 $08 - note e4 $08 - vol $9 ;useless - note fs4 $08 -; Measure 20 - note g4 $08 - note a4 $08 - note as4 $08 - note c5 $08 - note as4 $08 - note a4 $08 - note as4 $18 - rest $18 -; Measure 21 - duty $0e - note ds2 $04 - duty $0f - note ds2 $03 - rest $11 - - duty $0e - note ds3 $04 - duty $0f - note ds3 $03 - rest $01 - - duty $0e - note g3 $04 - duty $0f - note g3 $03 - rest $01 - - duty $0e - note as3 $04 - duty $0f - note as3 $03 - rest $01 - - duty $0e - note ds4 $04 - duty $0f - note ds4 $03 - rest $11 -.rept 3 - duty $0e - note ds2 $04 - duty $0f - note ds2 $03 - rest $01 -.endr -; Measure 22 - duty $0e - note d2 $04 - duty $0f - note d2 $03 - rest $11 - - duty $0e - note d3 $04 - duty $0f - note d3 $03 - rest $01 - - duty $0e - note f3 $04 - duty $0f - note f3 $03 - rest $01 - - duty $0e - note a3 $04 - duty $0f - note a3 $03 - rest $01 - - duty $0e - note d4 $04 - duty $0f - note d4 $03 - rest $11 -.rept 3 - duty $0e - note d3 $04 - duty $0f - note d3 $03 - rest $01 -.endr -; Measure 23-24b -.rept 3 - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $11 - .rept 3 - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $01 - .endr -.endr -; Measure 24c - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $09 - - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $09 - - duty $0e - note f2 $04 - duty $0f - note f2 $03 - rest $09 -; Measure 25 - duty $0e - note ds2 $04 - duty $0f - note ds2 $03 - rest $11 - - duty $0e - note ds2 $04 - duty $0f - note ds2 $03 - rest $01 - - duty $0e - note g2 $04 - duty $0f - note g2 $03 - rest $01 - - duty $0e - note as2 $04 - duty $0f - note as2 $03 - rest $01 - - duty $0e - note ds3 $04 - duty $0f - note ds3 $03 - rest $11 -.rept 3 - duty $0e - note ds2 $04 - duty $0f - note ds2 $03 - rest $01 -.endr -; Measure 26 - duty $0e - note gs2 $04 - duty $0f - note gs2 $03 - rest $11 - - duty $0e - note gs2 $04 - duty $0f - note gs2 $03 - rest $01 - - duty $0e - note c3 $04 - duty $0f - note c3 $03 - rest $01 - - duty $0e - note ds3 $04 - duty $0f - note ds3 $03 - rest $01 - - duty $0e - note gs3 $04 - duty $0f - note gs3 $03 - rest $11 -.rept 3 - duty $0e - note gs2 $04 - duty $0f - note gs2 $03 - rest $01 -.endr -; Measure 27 - duty $0e - note d2 $04 - duty $0f - note d2 $03 - rest $11 -.rept 3 - duty $0e - note c4 $04 - duty $0f - note c4 $03 - rest $01 -.endr - duty $0e - note c4 $04 - duty $0f - note c4 $03 - rest $11 -.rept 3 - duty $0e - note d2 $04 - duty $0f - note d2 $03 - rest $01 -.endr -; Measure 28 - duty $0e - note d2 $04 - duty $0f - note d2 $03 - rest $11 -.rept 3 - duty $0e - note g4 $04 - duty $0f - note g4 $03 - rest $01 -.endr - duty $0e - note a4 $04 - duty $0f - note a4 $03 - rest $01 - - duty $0e - note ds3 $04 - duty $0f - note ds3 $03 - rest $01 - - duty $0e - note d3 $04 - duty $0f - note d3 $03 - rest $01 - - duty $0e - note c3 $04 - duty $0f - note c3 $03 - rest $01 - - duty $0e - note as2 $04 - duty $0f - note as2 $03 - rest $01 - - duty $0e - note a2 $04 - duty $0f - note a2 $03 - rest $01 - - goto musiced0a3 - cmdff - -.ifdef ROM_SEASONS -.ifdef BUILD_VANILLA - .db $ff $ff $ff -.endif -.endif - -.define musOverworldChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/pirates.s b/audio/common/mus/pirates.s deleted file mode 100644 index 442e0ac09..000000000 --- a/audio/common/mus/pirates.s +++ /dev/null @@ -1,1063 +0,0 @@ -musPiratesStart: - -musPiratesChannel1: - vibrato $e1 - env $0 $00 - duty $02 -musicf4e9d: - vol $6 - note a2 $0e - note gs2 $08 - note a2 $0e - note b2 $08 - note c3 $0e - note b2 $08 - note c3 $0e - note d3 $08 - note ds3 $0e - note e3 $08 - note ds3 $0e - note e3 $08 - rest $2c - note a4 $0e - note gs4 $08 - note a4 $0e - note gs4 $08 - note g4 $0e - note fs4 $08 - note g4 $0e - note fs4 $08 - note f4 $0e - note e4 $08 - note f4 $0e - note e4 $08 - rest $2c - note e5 $0e - note ds5 $08 - note e5 $0e - note ds5 $08 - note d5 $0e - note cs5 $08 - note d5 $0e - note cs5 $08 - note c5 $0e - note b4 $08 - note c5 $0e - note b4 $08 - note as4 $0e - note a4 $08 - note as4 $0e - vol $6 - note a4 $08 - note gs4 $2c - note f4 $16 - note gs4 $0e - note f4 $08 - note e4 $07 - rest $1d - note d4 $08 - note c4 $07 - rest $0f - note b3 $07 - rest $0f - vol $6 - note e4 $0e - note ds4 $08 - note e4 $0e - note ds4 $08 - note e4 $07 - rest $04 - vol $3 - note e4 $07 - rest $04 - vol $6 - note a4 $07 - rest $04 - vol $3 - note a4 $07 - rest $04 - vol $6 - note ds4 $0e - note d4 $08 - note ds4 $0e - note d4 $08 - rest $03 - vol $3 - note d4 $08 - rest $03 - vol $1 - note d4 $08 - rest $16 - vol $6 - note e4 $0e - note ds4 $08 - note e4 $0e - note ds4 $08 - note e4 $07 - rest $04 - vol $3 - note e4 $07 - rest $04 - vol $6 - note a4 $07 - rest $04 - vol $3 - note a4 $07 - rest $04 - vol $6 - note c5 $0e - note gs4 $08 - note c5 $0e - note gs4 $08 - rest $03 - vol $3 - note gs4 $08 - rest $03 - vol $1 - note gs4 $08 - rest $16 - vol $6 - note a4 $0e - note gs4 $08 - note a4 $0e - note gs4 $08 - note a4 $07 - rest $04 - vol $3 - note a4 $07 - rest $04 - vol $6 - note c5 $07 - rest $04 - vol $3 - note c5 $07 - rest $04 - vol $6 - note gs4 $0e - note g4 $08 - note gs4 $0e - note g4 $08 - rest $03 - vol $3 - note g4 $08 - rest $03 - vol $1 - note g4 $08 - rest $16 - vol $6 - note a4 $0e - note gs4 $08 - note a4 $0e - note gs4 $08 - note a4 $07 - rest $04 - vol $3 - note a4 $07 - rest $04 - vol $6 - note e5 $07 - rest $04 - vol $3 - note e5 $07 - rest $04 - vol $6 - note ds5 $0e - note e5 $08 - note f5 $0e - note e5 $08 - rest $03 - vol $3 - note e5 $08 - rest $03 - vol $1 - note e5 $08 - rest $24 - vol $6 - note a4 $08 - note e4 $0e - rest $03 - vol $3 - note e4 $05 - vol $6 - note e4 $0e - note ds4 $08 - rest $03 - vol $3 - note ds4 $08 - rest $03 - vol $6 - note d4 $08 - note c4 $07 - rest $04 - vol $3 - note c4 $07 - rest $04 - vol $6 - note c4 $0e - note b3 $08 - rest $03 - vol $3 - note b3 $08 - rest $03 - vol $6 - note e4 $08 - note ds4 $0e - note e4 $08 - note a4 $07 - rest $04 - vol $3 - note a4 $03 - vol $6 - note e5 $08 - note ds5 $0e - rest $03 - vol $3 - note ds5 $05 - vol $6 - note ds5 $0e - note d5 $08 - rest $03 - vol $3 - note d5 $08 - rest $03 - vol $6 - note d5 $08 - note c5 $07 - rest $04 - vol $3 - note c5 $07 - rest $04 - vol $6 - note c5 $0e - note b4 $08 - rest $03 - vol $3 - note b4 $08 - rest $03 - vol $6 - note e4 $03 - rest $05 - note e4 $07 - rest $04 - vol $3 - note e4 $03 - vol $6 - note e4 $08 - note f4 $16 - note e4 $07 - rest $04 - vol $3 - note e4 $07 - rest $04 - vol $6 - note g4 $16 - note e4 $07 - rest $04 - vol $3 - note e4 $07 - rest $04 - vol $6 - note f4 $16 - note e4 $07 - rest $04 - vol $3 - note e4 $07 - rest $04 - vol $6 - note g4 $16 - note e4 $07 - rest $04 - vol $3 - note e4 $07 - rest $5c - vol $6 - note e4 $07 - note gs4 $07 - note as4 $08 - note gs4 $07 - note as4 $07 - note d5 $08 - note as4 $07 - note d5 $07 - note e5 $08 - note d5 $07 - note e5 $07 - note as5 $08 - goto musicf4e9d - cmdff - -musPiratesChannel0: - vibrato $e1 - env $0 $00 - duty $02 -musicf5098: - vol $1 - note a2 $0b - vol $3 - note a2 $0e - note gs2 $08 - note a2 $0e - note b2 $08 - note c3 $0e - note b2 $08 - note c3 $0e - note d3 $08 - note ds3 $0e - note e3 $08 - note ds3 $0e - note e3 $08 - rest $2c - note a4 $0e - note gs4 $08 - note a4 $0e - note gs4 $08 - note g4 $0e - note fs4 $08 - note g4 $0e - note fs4 $08 - note f4 $0e - note e4 $08 - note f4 $0e - note e4 $08 - rest $21 - vol $6 - note a4 $2c - note gs4 $2c - note g4 $2c - note fs4 $2c - note f4 $2c - note d4 $2c - note b3 $07 - rest $07 - vol $3 - note b3 $08 - rest $07 - vol $1 - note b3 $07 - rest $08 - vol $6 - note gs3 $07 - rest $07 - vol $3 - note gs3 $08 - rest $07 - vol $1 - note gs3 $07 - rest $13 - vol $3 - note e4 $0e - note ds4 $08 - note e4 $0e - note ds4 $08 - note e4 $07 - rest $04 - vol $1 - note e4 $07 - rest $04 - vol $3 - note a4 $07 - rest $04 - vol $1 - note a4 $07 - rest $04 - vol $3 - note ds4 $0e - note d4 $08 - note ds4 $0e - note d4 $08 - rest $03 - vol $1 - note d4 $08 - rest $03 - vol $0 - note d4 $08 - rest $16 - vol $3 - note e4 $0e - note ds4 $08 - note e4 $0e - note ds4 $08 - note e4 $07 - rest $04 - vol $1 - note e4 $07 - rest $04 - vol $3 - note a4 $07 - rest $04 - vol $1 - note a4 $07 - rest $04 - vol $3 - note c5 $0e - note gs4 $08 - note c5 $0e - note gs4 $08 - rest $03 - vol $1 - note gs4 $08 - rest $03 - vol $0 - note gs4 $08 - rest $16 - vol $3 - note a4 $0e - note gs4 $08 - note a4 $0e - note gs4 $08 - note a4 $07 - rest $04 - vol $1 - note a4 $07 - rest $04 - vol $3 - note c5 $07 - rest $04 - vol $1 - note c5 $07 - rest $04 - vol $3 - note gs4 $0e - note g4 $08 - note gs4 $0e - note g4 $08 - rest $03 - vol $1 - note g4 $08 - rest $03 - vol $0 - note g4 $08 - rest $16 - vol $3 - note a4 $0e - note gs4 $08 - note a4 $0e - note gs4 $08 - note a4 $07 - rest $04 - vol $1 - note a4 $07 - rest $04 - vol $3 - note e5 $07 - rest $04 - vol $1 - note e5 $07 - rest $04 - vol $3 - note ds5 $0e - note e5 $08 - note f5 $0e - note e5 $08 - rest $03 - vol $1 - note e5 $08 - rest $03 - vol $0 - note e5 $08 - rest $24 - vol $3 - note a4 $08 - note e4 $0e - rest $03 - vol $1 - note e4 $05 - vol $3 - note e4 $0e - note ds4 $08 - rest $03 - vol $1 - note ds4 $08 - rest $03 - vol $3 - note d4 $08 - note c4 $07 - rest $04 - vol $1 - note c4 $07 - rest $04 - vol $3 - note c4 $0e - note b3 $08 - rest $03 - vol $1 - note b3 $08 - rest $03 - vol $3 - note e4 $08 - note ds4 $0b - vol $6 - note c5 $07 - rest $04 - vol $3 - note c5 $03 - vol $6 - note c5 $08 - note b4 $0e - rest $03 - vol $3 - note b4 $05 - vol $6 - note b4 $0e - note as4 $08 - rest $03 - vol $3 - note as4 $08 - rest $03 - vol $6 - note as4 $08 - note gs4 $07 - rest $04 - vol $3 - note gs4 $07 - rest $04 - vol $6 - note gs4 $0e - note e4 $08 - rest $03 - vol $3 - note e4 $08 - rest $03 - vol $6 - note c4 $03 - rest $05 - note c4 $07 - rest $04 - vol $3 - note c4 $03 - vol $6 - note c4 $08 - vol $6 - note cs4 $16 - note c4 $07 - rest $04 - vol $3 - note c4 $07 - rest $04 - vol $6 - note ds4 $16 - note c4 $07 - rest $04 - vol $3 - note c4 $07 - rest $04 - vol $6 - note cs4 $16 - note c4 $07 - rest $04 - vol $3 - note c4 $07 - rest $04 - vol $6 - note ds4 $16 - note c4 $07 - rest $04 - vol $3 - note c4 $07 - rest $67 - note e4 $07 - note gs4 $07 - note as4 $08 - note gs4 $07 - note as4 $07 - note d5 $08 - note as4 $07 - note d5 $07 - note e5 $08 - note d5 $07 - note e5 $04 - goto musicf5098 - cmdff - -musPiratesChannel4: -musicf5280: - duty $0e - note a1 $07 - rest $25 - note f2 $07 - rest $25 - note ds2 $24 - note e2 $08 - duty $0f - note e2 $08 - rest $06 - duty $0e - note e2 $08 - note fs2 $0e - note gs2 $08 - duty $0e - note a2 $07 - duty $0f - note a2 $07 - rest $1e - duty $0e - note e2 $07 - duty $0f - note e2 $07 - rest $1e - duty $0e - note b1 $24 - note e2 $08 - duty $0f - note e2 $08 - rest $06 - duty $0e - note e3 $08 - note ds3 $0e - note d3 $08 - note c3 $0e - note b2 $08 - note c3 $0e - note b2 $08 - note as2 $0e - note a2 $08 - note as2 $0e - note a2 $08 - note gs2 $0e - note g2 $08 - note gs2 $0e - note g2 $08 - note fs2 $0e - note f2 $08 - note fs2 $0e - note f2 $08 - note e2 $2c - note f2 $2c - note fs2 $2c - note gs2 $2c - duty $0e - note a2 $07 - duty $0f - note a2 $07 - rest $1e - duty $0e - note e2 $07 - duty $0f - note e2 $07 - rest $1e - duty $0e - note ds2 $24 - note e2 $08 - duty $0f - note e2 $08 - rest $06 - duty $0e - note e2 $16 - note fs2 $03 - note gs2 $05 - duty $0e - note a2 $07 - duty $0f - note a2 $07 - rest $1e - duty $0e - note e2 $07 - duty $0f - note e2 $07 - rest $1e - duty $0e - note ds2 $0e - note e2 $08 - note ds2 $0e - note e2 $08 - duty $0f - note e2 $08 - rest $06 - duty $0e - note e2 $16 - note fs2 $03 - note gs2 $05 - duty $0e - note a2 $07 - duty $0f - note a2 $07 - rest $1e - duty $0e - note e2 $07 - duty $0f - note e2 $07 - rest $1e - duty $0e - note d2 $24 - note ds2 $08 - duty $0f - note ds2 $08 - rest $06 - duty $0e - note e2 $16 - note fs2 $03 - note gs2 $05 - duty $0e - note a2 $07 - duty $0f - note a2 $07 - rest $1e - duty $0e - note e2 $07 - duty $0f - note e2 $07 - rest $1e - duty $0e - note ds2 $0e - note e2 $08 - note f2 $0e - note e2 $08 - duty $0f - note e2 $08 - rest $0e - duty $0e - note e2 $16 - duty $0e - note a2 $07 - duty $0f - note a2 $07 - rest $1e - duty $0e - note e2 $07 - duty $0f - note e2 $07 - rest $1e - duty $0e - note d2 $24 - note e2 $08 - duty $0f - note e2 $08 - rest $24 - duty $0e - note a2 $07 - duty $0f - note a2 $07 - rest $1e - duty $0e - note e2 $07 - duty $0f - note e2 $07 - rest $1e - duty $0e - note d2 $07 - duty $0f - note d2 $07 - rest $08 - duty $0e - note d2 $0e - note e2 $08 - duty $0f - note e2 $08 - rest $24 - duty $0e - note a2 $07 - duty $0f - note a2 $07 - rest $a2 - duty $0e - note ds2 $0e - note e2 $08 - note ds2 $0e - note e2 $08 - note c3 $0e - note b2 $08 - duty $0f - note b2 $08 - rest $06 - duty $0e - note as2 $60 - goto musicf5280 - cmdff - -musPiratesChannel6: - -.ifdef ROM_SEASONS -musicf5403: - rest $ff - rest $ff - rest $28 - vol $4 - vol $3 - note $2a $2c - vol $3 - note $2a $2c - vol $3 - note $2a $24 - vol $3 - note $2a $08 - vol $2 - note $2e $16 - vol $3 - note $2a $42 - vol $3 - note $2a $2c - vol $2 - note $2e $0e - vol $3 - note $2a $16 - vol $3 - note $2a $08 - vol $2 - note $2e $16 - vol $0 - vol $3 - note $2a $16 - vol $4 - vol $3 - note $2a $2c - vol $3 - note $2a $2c - vol $2 - note $2e $0e - vol $3 - note $2a $16 - vol $3 - vol $3 - note $2a $08 - vol $4 - vol $2 - note $2e $16 - rest $16 - vol $4 - vol $3 - note $2a $2c - vol $3 - note $2a $2c - vol $2 - note $2e $0e - vol $3 - note $2a $16 - vol $3 - vol $3 - note $2a $08 - vol $4 - vol $2 - note $2e $16 - rest $16 - vol $4 - vol $3 - note $2a $2c - vol $3 - note $2a $2c - vol $2 - note $2e $0e - vol $3 - note $2a $16 - vol $3 - vol $3 - note $2a $08 - vol $4 - vol $2 - note $2e $16 - rest $16 - vol $4 - vol $3 - note $2a $2c - vol $3 - note $2a $2c - vol $2 - note $2e $0e - vol $3 - note $2a $16 - vol $3 - vol $3 - note $2a $08 - vol $4 - vol $2 - note $2e $16 - rest $16 - vol $4 - vol $3 - note $2a $2c - vol $3 - note $2a $2c - vol $2 - note $2e $0e - vol $3 - note $2a $16 - vol $3 - vol $3 - note $2a $08 - vol $4 - vol $2 - note $2e $16 - vol $2 - note $2e $16 - vol $3 - note $2a $0e - vol $3 - note $2a $08 - vol $2 - note $2e $16 - vol $3 - note $2a $0e - vol $3 - note $2a $08 - vol $2 - note $2e $16 - vol $3 - note $2a $0e - vol $3 - note $2a $08 - vol $2 - note $2e $16 - vol $3 - note $2a $0e - vol $3 - note $2a $08 - vol $2 - note $2e $0e - vol $3 - note $2a $08 - vol $3 - note $2a $0e - vol $3 - note $2a $08 - vol $3 - note $2a $0e - vol $3 - note $2a $16 - vol $3 - note $2a $16 - vol $3 - note $2a $08 - vol $3 - note $2a $07 - vol $3 - note $2a $07 - vol $3 - note $2a $08 - vol $3 - note $2a $07 - vol $3 - note $2a $07 - vol $3 - note $2a $08 - vol $3 - note $2a $07 - vol $3 - note $2a $07 - vol $3 - note $2a $08 - goto musicf5403 - cmdff - -.else ; ROM_AGES - -musicf5400: - rest $ff - rest $ff - rest $28 - vol $3 - note $2a $2c - note $2a $2c - note $2a $24 - note $2a $08 - vol $2 - note $2e $16 - vol $3 - note $2a $42 - note $2a $2c - vol $2 - note $2e $0e - vol $3 - note $2a $16 - note $2a $08 - vol $2 - note $2e $16 - vol $3 - note $2a $16 - vol $4 - vol $3 - note $2a $2c - note $2a $2c - vol $2 - note $2e $0e - vol $3 - note $2a $16 - vol $3 - note $2a $08 - vol $2 - note $2e $16 - rest $16 - vol $3 - note $2a $2c - note $2a $2c - vol $2 - note $2e $0e - vol $3 - note $2a $16 - note $2a $08 - vol $2 - note $2e $16 - rest $16 - vol $3 - note $2a $2c - vol $3 - note $2a $2c - vol $2 - note $2e $0e - vol $3 - note $2a $16 - note $2a $08 - vol $2 - note $2e $16 - rest $16 - vol $3 - note $2a $2c - note $2a $2c - vol $2 - note $2e $0e - vol $3 - note $2a $16 - note $2a $08 - vol $2 - note $2e $16 - rest $16 - vol $3 - note $2a $2c - vol $3 - note $2a $2c - vol $2 - note $2e $0e - vol $3 - note $2a $16 - note $2a $08 - vol $2 - note $2e $16 - note $2e $16 - vol $3 - note $2a $0e - note $2a $08 - vol $2 - note $2e $16 - vol $3 - note $2a $0e - note $2a $08 - vol $2 - note $2e $16 - vol $3 - note $2a $0e - note $2a $08 - vol $2 - note $2e $16 - vol $3 - note $2a $0e - note $2a $08 - vol $2 - note $2e $0e - vol $3 - note $2a $08 - note $2a $0e - note $2a $08 - note $2a $0e - note $2a $16 - note $2a $16 - note $2a $08 - note $2a $07 - note $2a $07 - note $2a $08 - note $2a $07 - note $2a $07 - note $2a $08 - note $2a $07 - note $2a $07 - note $2a $08 - goto musicf5400 - cmdff -.endif diff --git a/audio/common/mus/preCredits.s b/audio/common/mus/preCredits.s deleted file mode 100644 index b95083f20..000000000 --- a/audio/common/mus/preCredits.s +++ /dev/null @@ -1,1661 +0,0 @@ -musPrecreditsStart: - -musPrecreditsChannel1: - vol $0 - note gs3 $07 - vibrato $e1 - env $0 $00 - cmdf2 - duty $02 -musicea200: - vol $6 - note g4 $0e - rest $03 - vol $3 - note g4 $0b - vol $6 - note d4 $15 - note g4 $07 - note c5 $0e - note b4 $0e - note a4 $0e - note g4 $0e - note a4 $1c - note d4 $0e - rest $03 - vol $3 - note d4 $04 - vol $6 - note c4 $07 - note d4 $2a - vibrato $01 - env $0 $00 - vol $3 - note d4 $0e - vibrato $e1 - env $0 $00 - vol $6 - note e4 $0e - rest $03 - vol $3 - note e4 $0b - vol $6 - note e4 $09 - note c4 $09 - note e4 $0a - note fs4 $0e - rest $03 - vol $3 - note fs4 $0b - vol $6 - note fs4 $09 - vol $6 - note e4 $09 - note fs4 $0a - note g4 $0e - rest $03 - vol $3 - note g4 $0b - vol $6 - note g4 $09 - note fs4 $09 - note g4 $0a - note b4 $0e - rest $07 - vol $3 - note b4 $07 - vol $6 - note a4 $0e - rest $07 - vol $3 - note a4 $07 - vol $6 - note d5 $0e - rest $03 - vol $3 - note d5 $0b - vol $6 - note d5 $0e - rest $03 - vol $3 - note d5 $04 - vol $6 - note d5 $07 - note c5 $0e - note b4 $0e - note a4 $0e - note g4 $0e - note b4 $1c - note a4 $15 - note g4 $07 - note a4 $2a - vibrato $01 - env $0 $00 - vol $3 - note a4 $0e - vibrato $e1 - env $0 $00 - vol $6 - note g4 $0e - rest $07 - vol $3 - note g4 $07 - vol $6 - note g4 $09 - note ds4 $09 - note g4 $0a - note a4 $0e - rest $07 - vol $3 - note a4 $07 - vol $6 - note a4 $09 - note f4 $09 - note a4 $0a - note as4 $0e - rest $07 - vol $3 - note as4 $07 - vol $6 - note as4 $09 - note g4 $09 - note as4 $0a - note a4 $0e - note as4 $0e - note c5 $0e - note cs5 $0e - duty $01 - note d5 $0e - rest $07 - vol $3 - note d5 $07 - vol $6 - note d5 $0e - rest $03 - vol $3 - note d5 $04 - vol $6 - note d5 $07 - note ds5 $0e - note d5 $0e - note c5 $0e - note as4 $07 - rest $03 - vol $3 - note as4 $04 - vol $6 - note as4 $1c - note a4 $0e - rest $03 - vol $3 - note a4 $04 - vol $6 - note g4 $07 - note f4 $1c - vol $3 - note f4 $1c - vol $6 - note as4 $0e - rest $07 - vol $3 - note as4 $07 - vol $6 - note as4 $0e - rest $03 - vol $3 - note as4 $04 - vol $6 - note as4 $07 - note c5 $0e - note as4 $0e - note c5 $0e - note as4 $0e - note c5 $07 - rest $03 - vol $3 - note c5 $07 - rest $04 - vol $6 - note d5 $03 - rest $04 - note d5 $38 - vibrato $01 - env $0 $00 - vol $3 - note d5 $1c - vibrato $e1 - env $0 $00 - vol $6 - note e5 $07 - rest $03 - vol $3 - note e5 $07 - rest $04 - vol $1 - note e5 $07 - vol $6 - note e5 $07 - rest $03 - vol $3 - note e5 $07 - rest $04 - vol $6 - note e5 $04 - rest $03 - note e5 $07 - rest $03 - vol $3 - note e5 $07 - rest $04 - vol $1 - note e5 $07 - vol $6 - note a4 $04 - note b4 $05 - note cs5 $05 - note d5 $04 - note ds5 $05 - note e5 $05 - note fs5 $07 - rest $03 - vol $3 - note fs5 $07 - rest $04 - vol $1 - note fs5 $07 - vol $6 - note fs5 $07 - rest $03 - vol $3 - note fs5 $07 - rest $04 - vol $6 - note fs5 $04 - rest $03 - note fs5 $07 - rest $03 - vol $3 - note fs5 $07 - rest $04 - vol $1 - note fs5 $07 - rest $1c - vol $6 - note g5 $0e - rest $03 - vol $3 - note g5 $0b - vol $6 - note g5 $09 - note ds5 $09 - note g5 $0a - note a5 $0e - rest $03 - vol $3 - note a5 $0b - vol $6 - note a5 $09 - note f5 $09 - note a5 $0a - note as5 $0e - rest $03 - vol $3 - note as5 $0b - vol $6 - note as5 $09 - note g5 $09 - note as5 $0a - note c6 $0e - rest $03 - vol $3 - note c6 $0b - vol $6 - note c6 $09 - note a5 $09 - note c6 $0a - note d6 $07 - rest $03 - vol $3 - note d6 $07 - rest $04 - vol $1 - note d6 $07 - vol $6 - note d6 $07 - rest $03 - vol $3 - note d6 $07 - rest $04 - vol $6 - note d6 $03 - rest $04 - note d6 $38 - vibrato $01 - env $0 $00 - vol $3 - note d6 $1c - rest $54 - vibrato $e1 - env $0 $00 - vol $6 - note d6 $07 - rest $03 - vol $3 - note d6 $07 - rest $04 - vol $1 - note d6 $07 - vol $6 - note d6 $07 - rest $03 - vol $3 - note d6 $07 - rest $04 - vol $6 - note d6 $03 - rest $04 - note d6 $38 - vibrato $01 - env $0 $00 - vol $3 - note d6 $1c - rest $54 - vibrato $e1 - env $0 $00 - duty $02 - goto musicea200 - cmdff - -musPrecreditsChannel0: - vol $0 - note gs3 $07 - vibrato $e1 - env $0 $00 - cmdf2 - duty $02 -musicea42f: - rest $1c - vol $6 - note b2 $1c - note d3 $1c - note g3 $1c - note f3 $31 - note e3 $07 - note d3 $1c - vol $3 - note d3 $0e - vol $6 - note a3 $07 - note gs3 $07 - note g3 $0e - vol $3 - note g3 $0e - vol $6 - note g3 $09 - note e3 $09 - note g3 $0a - note a3 $0e - vol $3 - note a3 $0e - vol $6 - note a3 $09 - note fs3 $09 - note a3 $0a - note b3 $0e - vol $3 - note b3 $0e - vol $6 - note b3 $09 - note a3 $09 - note b3 $0a - note d4 $0e - vol $3 - note d4 $0e - vol $6 - note d4 $07 - note c4 $07 - note b3 $07 - note a3 $07 - note b3 $0e - rest $03 - vol $3 - note b3 $0b - vol $6 - note b3 $0e - rest $03 - vol $3 - note b3 $04 - vol $6 - note b3 $07 - note a3 $0e - note g3 $04 - note a3 $05 - note g3 $05 - note fs3 $0e - note e3 $0e - note d3 $07 - rest $03 - vol $3 - note d3 $07 - rest $04 - vol $1 - note d3 $07 - vol $6 - note fs3 $15 - note e3 $07 - note fs3 $07 - rest $03 - vol $3 - note fs3 $04 - vol $6 - note a3 $0e - note b3 $0e - note c4 $0e - note d4 $38 - note ds4 $38 - note f4 $38 - note ds4 $0e - note d4 $0e - note ds4 $0e - note e4 $0e - note f4 $07 - rest $03 - vol $3 - note f4 $04 - vol $6 - note as3 $07 - note f3 $07 - note as3 $07 - rest $03 - vol $3 - note as3 $04 - vol $6 - note as3 $07 - note a3 $07 - vol $6 - note as3 $07 - rest $03 - vol $3 - note as3 $04 - vol $6 - note as3 $07 - note a3 $07 - note as3 $07 - note c4 $07 - note d4 $07 - note as3 $07 - note f3 $07 - rest $03 - vol $3 - note f3 $04 - vol $6 - note f3 $07 - note e3 $07 - note f3 $07 - rest $03 - vol $3 - note f3 $04 - vol $6 - note f3 $07 - note g3 $07 - note a3 $07 - rest $03 - vol $3 - note a3 $04 - vol $6 - note a3 $07 - note as3 $07 - note c4 $07 - note a3 $07 - note as3 $07 - note c4 $07 - note d4 $0e - rest $03 - vol $3 - note d4 $0b - vol $6 - note g3 $0e - rest $03 - vol $3 - note g3 $04 - vol $6 - note g3 $07 - note a3 $0e - rest $03 - vol $3 - note a3 $0b - vol $6 - note a3 $07 - note g3 $07 - note f3 $07 - note c4 $07 - note d4 $07 - rest $03 - vol $3 - note d4 $04 - vol $6 - note as3 $07 - note a3 $07 - note as3 $07 - rest $03 - vol $3 - note as3 $04 - vol $6 - note as3 $07 - note a3 $07 - note as3 $07 - rest $03 - vol $3 - note as3 $04 - vol $6 - note as3 $07 - note a3 $07 - note as3 $07 - note c4 $07 - note d4 $07 - note as3 $07 - note cs4 $07 - rest $03 - vol $3 - note cs4 $07 - rest $04 - vol $1 - note cs4 $07 - vol $6 - note cs4 $07 - rest $03 - vol $3 - note cs4 $07 - rest $04 - vol $6 - note cs4 $04 - rest $03 - note cs4 $07 - rest $03 - vol $3 - note cs4 $07 - rest $04 - vol $1 - note cs4 $07 - vol $6 - note a4 $04 - note gs4 $05 - note g4 $05 - note fs4 $04 - note f4 $05 - note e4 $05 - note d4 $07 - rest $03 - vol $3 - note d4 $07 - rest $04 - vol $1 - note d4 $07 - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $07 - rest $04 - vol $6 - note d4 $04 - rest $03 - note d4 $07 - rest $03 - vol $3 - note d4 $04 - vol $6 - note d4 $07 - note e4 $07 - note fs4 $07 - note d4 $07 - note e4 $07 - note fs4 $07 - note ds4 $0e - rest $03 - vol $3 - note ds4 $0b - vol $6 - note ds4 $09 - note as3 $09 - note ds4 $0a - note f4 $0e - rest $03 - vol $3 - note f4 $0b - vol $6 - note f4 $09 - note c4 $09 - note f4 $0a - note g4 $0e - rest $03 - vol $3 - note g4 $0b - vol $6 - note g4 $09 - note ds4 $09 - note g4 $0a - note a4 $0e - note as4 $0e - note c5 $0e - note cs5 $0e - note d5 $07 - rest $03 - vol $3 - note d5 $07 - rest $04 - vol $1 - note d5 $07 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $07 - rest $04 - vol $6 - note fs4 $03 - rest $04 - note fs4 $31 - rest $07 - vol $6 - note d4 $0e - note a3 $07 - note g3 $07 - note d3 $07 - note g3 $07 - note a3 $07 - note c4 $07 - note d4 $0e - note a3 $07 - note g3 $07 - note d3 $07 - note g3 $07 - note a3 $07 - note c4 $07 - note fs4 $07 - rest $03 - vol $3 - note fs4 $07 - rest $04 - vol $1 - note fs4 $07 - vol $6 - note g4 $09 - note fs4 $09 - note g4 $0a - note a4 $31 - rest $07 - vol $6 - note d4 $0e - note a3 $07 - note g3 $07 - note d3 $07 - note g3 $07 - note a3 $07 - note c4 $07 - note d4 $07 - note c4 $07 - note b3 $07 - note a3 $07 - note g3 $07 - note fs3 $07 - note e3 $07 - note d3 $07 - goto musicea42f - cmdff - -musPrecreditsChannel4: - rest $07 - cmdf2 -musicea678: - duty $0e - note g2 $07 - duty $0f - note g2 $07 - duty $0e - note g2 $07 - duty $0f - note g2 $0e - rest $4d - duty $0e - note d2 $07 - duty $0f - note d2 $07 - duty $0e - note d2 $07 - duty $0f - note d2 $0e - rest $4d - duty $0e - note c2 $1c - duty $0f - note c2 $0e - duty $0e - note c2 $07 - duty $0f - note c2 $07 - duty $0e - note d2 $1c - duty $0f - note d2 $0e - duty $0e - note d2 $07 - duty $0f - note d2 $07 - duty $0e - note c2 $23 - duty $0f - note c2 $07 - duty $0e - note c2 $07 - duty $0f - note c2 $07 - duty $0e - note d2 $07 - duty $0f - note d2 $0e - rest $07 - duty $0e - note d2 $07 - note e2 $07 - note fs2 $07 - note d2 $07 - duty $0e - note g2 $07 - duty $0f - note g2 $07 - duty $0e - note g2 $07 - duty $0f - note g2 $0e - rest $3f - duty $0e - note g2 $0e - duty $0e - note d2 $07 - duty $0f - note d2 $07 - duty $0e - note d2 $07 - duty $0f - note d2 $0e - rest $31 - duty $0e - note d2 $07 - duty $0f - note d2 $07 - duty $0e - note d2 $07 - note cs2 $07 - duty $0e - note ds2 $23 - duty $0f - note ds2 $07 - duty $0e - note ds2 $0e - duty $0e - note f2 $23 - duty $0f - note f2 $07 - duty $0e - note f2 $07 - duty $0f - note f2 $07 - duty $0e - note ds2 $23 - duty $0f - note ds2 $07 - duty $0e - note ds2 $0e - duty $0e - note f2 $15 - duty $0f - note f2 $07 - duty $0e - note f2 $1c - duty $0e - note as2 $12 - duty $0f - note as2 $0a - duty $0e - note f2 $12 - duty $0f - note f2 $0a - duty $0e - note as2 $0e - duty $0f - note as2 $0e - duty $0e - note f2 $0e - duty $0f - note f2 $0e - duty $0e - note f2 $0e - duty $0f - note f2 $0e - duty $0e - note g2 $0e - duty $0f - note g2 $0e - duty $0e - note a2 $0e - duty $0f - note a2 $0e - duty $0e - note f2 $1c - duty $0e - note g2 $07 - duty $0f - note g2 $07 - duty $0e - note g2 $07 - duty $0f - note g2 $0e - rest $15 - duty $0e - note f2 $07 - duty $0f - note f2 $07 - duty $0e - note f2 $07 - duty $0f - note f2 $0e - rest $15 - duty $0e - note as2 $0e - duty $0f - note as2 $0e - duty $0e - note f2 $0e - duty $0f - note f2 $0e - duty $0e - note d2 $0e - duty $0f - note d2 $0e - duty $0e - note as1 $0e - duty $0f - note as1 $0e - duty $0e - note a2 $15 - duty $0f - note a2 $07 - duty $0e - note a2 $0e - duty $0f - note a2 $07 - duty $0e - note a2 $03 - duty $0f - note a2 $04 - duty $0e - note a2 $1c - duty $0f - note a2 $0e - rest $0e - duty $0e - note d2 $0e - duty $0f - note d2 $0e - duty $0e - note d2 $0e - duty $0f - note d2 $07 - duty $0e - note d2 $03 - duty $0f - note d2 $04 - duty $0e - note d2 $1c - duty $0f - note d2 $0e - rest $0e - duty $0e - note ds2 $0e - duty $0f - note ds2 $0e - duty $0e - note ds2 $0e - duty $0f - note ds2 $0e - duty $0e - note f2 $0e - duty $0f - note f2 $0e - duty $0e - note f2 $0e - duty $0f - note f2 $0e - duty $0e - note g2 $0e - duty $0f - note g2 $0e - duty $0e - note g2 $0e - duty $0f - note g2 $0e - duty $0e - note a2 $0e - duty $0f - note a2 $0e - duty $0e - note a2 $0e - duty $0f - note a2 $0e - duty $0e - note d2 $0e - duty $0f - note d2 $0e - duty $0e - note d2 $0a - duty $0f - note d2 $0b - duty $0e - note d2 $03 - duty $0f - note d2 $04 - duty $0e - note d2 $38 - duty $0f - note d2 $24 - rest $4c - duty $0e - note d2 $0e - duty $0f - note d2 $0e - duty $0e - note d2 $0a - duty $0f - note d2 $0b - duty $0e - note d2 $03 - duty $0f - note d2 $04 - duty $0e - note d2 $38 - duty $0f - note d2 $24 - rest $4c - goto musicea678 - cmdff - -musPrecreditsChannel6: - cmdf2 - vol $3 - note $26 $02 - vol $2 - note $26 $02 - vol $2 - note $26 $03 -musicea8a0: - vol $4 - note $26 $0e - note $26 $2a - note $26 $1c - vol $5 - note $26 $03 - vol $4 - note $26 $04 - vol $3 - note $26 $03 - vol $2 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $0e - note $26 $23 - vol $3 - note $26 $02 - vol $3 - note $26 $02 - vol $4 - note $26 $03 - vol $4 - note $26 $0e - vol $5 - note $26 $1c - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $5 - note $26 $0e - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $5 - note $26 $0e - vol $3 - note $26 $0e - vol $5 - note $26 $0e - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $5 - note $26 $03 - vol $4 - note $26 $04 - vol $3 - note $26 $03 - vol $2 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $0e - note $26 $23 - vol $3 - note $26 $02 - vol $3 - note $26 $02 - vol $4 - note $26 $03 - vol $4 - note $26 $0e - note $26 $0e - note $26 $03 - vol $4 - note $26 $04 - vol $3 - note $26 $03 - vol $2 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $0e - note $26 $23 - vol $4 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $03 - vol $5 - note $26 $0e - note $26 $1c - vol $4 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $0e - note $26 $23 - vol $3 - note $26 $02 - vol $3 - note $26 $02 - vol $4 - note $26 $03 - vol $4 - note $26 $0e - vol $4 - note $26 $1c - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $4 - note $26 $04 - vol $4 - note $26 $0e - note $26 $23 - vol $3 - note $26 $02 - vol $3 - note $26 $02 - vol $4 - note $26 $03 - vol $4 - note $26 $1c - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $3 - note $26 $03 - vol $2 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $0e - vol $3 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $4 - note $26 $0e - vol $4 - note $26 $04 - vol $4 - note $26 $05 - vol $4 - note $26 $05 - vol $5 - note $26 $0e - note $26 $07 - note $26 $07 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $3 - note $26 $03 - vol $2 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $2 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $3 - note $26 $03 - vol $2 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $0e - vol $3 - note $26 $07 - vol $2 - note $26 $07 - vol $3 - note $26 $07 - vol $2 - note $26 $07 - vol $3 - note $26 $07 - vol $2 - note $26 $07 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $3 - note $26 $03 - vol $2 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $0e - vol $3 - note $26 $03 - vol $2 - note $26 $04 - vol $2 - note $26 $03 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $3 - note $26 $03 - vol $2 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $0e - vol $3 - note $26 $07 - vol $2 - note $26 $07 - vol $3 - note $26 $07 - vol $2 - note $26 $07 - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $3 - note $26 $03 - vol $2 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $0e - vol $3 - note $26 $03 - vol $2 - note $26 $04 - vol $2 - note $26 $03 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - vol $4 - note $26 $03 - vol $4 - note $26 $04 - vol $3 - note $26 $03 - vol $2 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - goto musicea8a0 - cmdff diff --git a/audio/common/mus/roomOfRites.s b/audio/common/mus/roomOfRites.s deleted file mode 100644 index 108b07445..000000000 --- a/audio/common/mus/roomOfRites.s +++ /dev/null @@ -1,963 +0,0 @@ -musRoomOfRitesStart: - -musRoomOfRitesChannel1: - vibrato $e1 - env $0 $00 - duty $02 - vol $8 - note b2 $03 - vol $8 - note e3 $04 - note f3 $03 - note b3 $04 - note b3 $03 - vol $7 - note e4 $04 - note f4 $03 - note b4 $04 - vol $8 - note b4 $03 - vol $8 - note e5 $04 - note f5 $03 - note b5 $04 - note b5 $03 - vol $7 - note e6 $04 - note f6 $03 - note b6 $2c - rest $02 - vol $5 - note b6 $02 - rest $02 - vol $4 - note b6 $03 - rest $02 - vol $4 - note b6 $02 - rest $03 -musicf5d7e: - vol $7 - note f4 $0e - note gs4 $0e - note c5 $07 - rest $03 - vol $3 - note c5 $04 - vol $7 - note b4 $2a - note gs4 $0e - note f4 $0e - note ds5 $07 - rest $03 - vol $3 - note ds5 $04 - vol $7 - note d5 $46 - vibrato $01 - env $0 $00 - vol $3 - note d5 $0e - vibrato $e1 - env $0 $00 - vol $7 - note cs5 $0e - note c5 $0e - note b4 $0e - note as4 $0e - note gs4 $0e - note g4 $1c - vibrato $01 - env $0 $00 - vol $3 - note g4 $0e - vibrato $e1 - env $0 $00 - vol $8 - note f4 $0e - vol $8 - note g4 $04 - note gs4 $05 - note g4 $4b - vibrato $01 - env $0 $00 - vol $4 - note g4 $0e - vibrato $e1 - env $0 $00 - vol $8 - note f4 $0e - note g4 $0e - note f4 $0e - note b3 $54 - vibrato $01 - env $0 $00 - vol $4 - note b3 $0e - vibrato $e1 - env $0 $00 - vol $8 - note c4 $0e - note d4 $0e - note e4 $0e - note f4 $0e - note g4 $0e - note gs4 $0e - note as4 $0e - vol $8 - note b4 $04 - note c5 $05 - note b4 $2f - vibrato $01 - env $0 $00 - vol $4 - note b4 $0e - vibrato $e1 - env $0 $00 - vol $8 - note gs4 $0e - note g4 $0e - note f4 $0e - note e4 $07 - rest $03 - vol $4 - note e4 $04 - vol $8 - note g4 $46 - vibrato $01 - env $0 $00 - vol $4 - note g4 $1c - vibrato $e1 - env $0 $00 - vol $8 - note f4 $0e - note c4 $07 - note f4 $07 - note c4 $07 - note f4 $07 - note c4 $07 - rest $07 - vol $5 - note f4 $0e - note c4 $07 - note f4 $07 - note c4 $07 - note f4 $07 - note c4 $07 - rest $07 - vol $8 - note e4 $0e - note b3 $07 - note e4 $07 - note b3 $07 - note e4 $07 - note b3 $07 - rest $07 - vol $5 - note e4 $0e - note b3 $07 - note e4 $07 - note b3 $07 - note e4 $07 - note b3 $07 - rest $07 - vol $8 - note f4 $0e - note c4 $07 - note f4 $07 - note c4 $07 - note f4 $07 - vol $8 - note b4 $03 - vol $8 - note c5 $27 - vibrato $01 - env $0 $00 - vol $4 - note c5 $0e - vibrato $e1 - env $0 $00 - vol $8 - note as4 $07 - note c5 $07 - note cs5 $0e - note c5 $0e - note as4 $0e - note gs4 $0e - note fs4 $0e - vol $4 - note fs4 $0e - vol $8 - note cs5 $0e - vol $4 - note cs5 $0e - vol $8 - note c5 $0e - note f4 $07 - note c5 $07 - note f4 $07 - note c5 $07 - note f4 $07 - rest $07 - vol $5 - note c5 $0e - note f4 $07 - note c5 $07 - note f4 $07 - note c5 $07 - note f4 $07 - rest $07 - vol $8 - note b4 $0e - note e4 $07 - note b4 $07 - note e4 $07 - note b4 $07 - note e4 $07 - rest $07 - vol $5 - note b4 $0e - note e4 $07 - note b4 $07 - note e4 $07 - note b4 $07 - note e4 $07 - rest $07 - vol $8 - note a4 $0e - note d4 $07 - note f4 $07 - note d4 $07 - note f4 $07 - note d4 $0e - vol $4 - note d4 $0e - rest $1c - vol $8 - note f5 $0e - note fs5 $07 - rest $07 - vol $4 - note f5 $0e - note fs5 $07 - rest $07 - vol $2 - note f5 $0e - note fs5 $07 - rest $07 - vol $1 - note f5 $0e - note fs5 $07 - rest $85 - goto musicf5d7e - cmdff - -musRoomOfRitesChannel0: - vol $0 - note gs3 $09 - vibrato $e1 - env $0 $00 - duty $02 - vol $4 - note b2 $03 - note e3 $04 - note f3 $03 - note b3 $04 - note b3 $03 - note e4 $04 - note f4 $03 - note b4 $04 - note b4 $03 - note e5 $04 - note f5 $03 - note b5 $04 - note b5 $03 - note e6 $04 - note f6 $03 - note b6 $04 - rest $2f -musicf5f2e: - vol $8 - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note c3 $0e - note cs3 $0e - note d3 $0e - note ds3 $0e - note d3 $0e - note ds3 $0e - note d3 $0e - note ds3 $0e - note cs3 $0e - note d3 $0e - note g2 $0e - note gs2 $0e - note g2 $0e - note gs2 $0e - note gs2 $0e - note a2 $0e - note a2 $0e - note as2 $0e - vol $8 - note gs3 $2a - vol $4 - note gs3 $0e - vol $8 - note gs3 $07 - rest $03 - vol $4 - note gs3 $04 - vol $8 - note gs3 $0e - note c4 $0e - note gs3 $0e - note g3 $2a - vol $4 - note g3 $0e - vol $8 - note g3 $07 - rest $03 - vol $4 - note g3 $04 - vol $8 - note g3 $0e - note as3 $0e - note g3 $0e - note gs3 $2a - vol $4 - note gs3 $0e - vol $8 - note gs3 $07 - rest $03 - vol $4 - note gs3 $04 - vol $8 - note gs3 $0e - note c4 $0e - note gs3 $0e - note as3 $1c - note b3 $1c - note c4 $1c - note d4 $0e - note e4 $0e - note f4 $07 - rest $03 - vol $4 - note f4 $07 - rest $04 - vol $2 - note f4 $07 - vol $8 - note gs3 $1c - vol $4 - note gs3 $0e - vol $8 - note c4 $0e - note f4 $0e - note gs4 $0e - note g4 $07 - rest $03 - vol $4 - note g4 $07 - rest $04 - vol $2 - note g4 $07 - vol $8 - note g3 $1c - vol $4 - note g3 $0e - vol $8 - note b3 $0e - note e4 $0e - note g4 $0e - note f3 $2a - vol $4 - note f3 $0e - vol $8 - note a3 $0e - note d4 $0e - note f4 $0e - note a4 $0e - note as4 $07 - rest $03 - vol $4 - note as4 $07 - rest $04 - vol $2 - note as4 $07 - rest $03 - vol $1 - note as4 $07 - rest $20 - vol $8 - note cs4 $0e - note c4 $0e - note b3 $0e - vol $4 - note b3 $0e - vol $8 - note b3 $0e - note as3 $0e - note a3 $0e - vol $4 - note a3 $0e - vol $8 - note a3 $0e - note gs3 $0e - note g3 $0e - goto musicf5f2e - cmdff - -musRoomOfRitesChannel4: - duty $0e - note b1 $70 -musicf606c: - duty $01 - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note f2 $0e - note fs2 $0e - note g2 $0e - note gs2 $0e - note g2 $0e - note gs2 $0e - note g2 $0e - note gs2 $0e - note fs2 $0e - note g2 $0e - note c2 $0e - note cs2 $0e - note c2 $0e - note cs2 $0e - note d2 $0e - note ds2 $0e - note e2 $0e - note f2 $0e - duty $0e - note f2 $07 - duty $0f - note f2 $07 - duty $0e - note f2 $15 - duty $0f - note f2 $07 - duty $0e - note f2 $07 - duty $0f - note f2 $07 - duty $0e - note f2 $07 - duty $0f - note f2 $07 - duty $0e - note f2 $15 - duty $0f - note f2 $07 - duty $0e - note f2 $07 - duty $0f - note f2 $07 - duty $0e - note e2 $07 - duty $0f - note e2 $07 - duty $0e - note e2 $15 - duty $0f - note e2 $07 - duty $0e - note e2 $07 - duty $0f - note e2 $07 - duty $0e - note e2 $07 - duty $0f - note e2 $07 - duty $0e - note e2 $15 - duty $0f - note e2 $07 - duty $0e - note e2 $07 - duty $0f - note e2 $07 - duty $0e - note f2 $07 - duty $0f - note f2 $07 - duty $0e - note f2 $15 - duty $0f - note f2 $07 - duty $0e - note f2 $07 - duty $0f - note f2 $07 - duty $0e - note f2 $07 - duty $0f - note f2 $07 - duty $0e - note f2 $15 - duty $0f - note f2 $07 - duty $0e - note f2 $07 - duty $0f - note f2 $07 - duty $0e - note g2 $07 - duty $0f - note g2 $07 - duty $0e - note g2 $15 - duty $0f - note g2 $07 - duty $0e - note g2 $07 - duty $0f - note g2 $07 - duty $0e - note c3 $07 - duty $0f - note c3 $07 - duty $0e - note c3 $15 - duty $0f - note c3 $07 - duty $0e - note c3 $07 - duty $0f - note c3 $07 - duty $0e - note f2 $07 - duty $0f - note f2 $07 - duty $0e - note f2 $15 - duty $0f - note f2 $07 - duty $0e - note f2 $07 - duty $0f - note f2 $07 - duty $0e - note f2 $07 - duty $0f - note f2 $07 - duty $0e - note f2 $15 - duty $0f - note f2 $07 - duty $0e - note f2 $07 - duty $0f - note f2 $07 - duty $0e - note e2 $07 - duty $0f - note e2 $07 - duty $0e - note e2 $15 - duty $0f - note e2 $07 - duty $0e - note e2 $07 - duty $0f - note e2 $07 - duty $0e - note e2 $07 - duty $0f - note e2 $07 - duty $0e - note e2 $15 - duty $0f - note e2 $07 - duty $0e - note e2 $07 - duty $0f - note e2 $07 - duty $0e - note d2 $07 - duty $0f - note d2 $07 - duty $0e - note d2 $07 - duty $0f - note d2 $15 - duty $0e - note d2 $07 - duty $0f - note d2 $07 - duty $0e - note d2 $07 - duty $0f - note d2 $07 - duty $0e - note d2 $15 - duty $0f - note d2 $07 - duty $0e - note d2 $07 - duty $0f - note d2 $07 - duty $0e - note c3 $07 - duty $0f - note c3 $0e - rest $07 - duty $0e - note c2 $54 - duty $0f - note c2 $0c - rest $64 - goto musicf606c - cmdff - -musRoomOfRitesChannel6: - rest $70 -musicf6258: - vol $5 - note $26 $2a - note $26 $07 - note $26 $07 - note $26 $1c - note $26 $15 - note $26 $02 - note $26 $02 - note $26 $03 - note $26 $0e - note $26 $1c - note $26 $07 - note $26 $07 - note $26 $1c - note $26 $15 - note $26 $02 - note $26 $02 - note $26 $03 - note $26 $2a - note $26 $07 - note $26 $07 - note $26 $1c - note $26 $15 - note $26 $02 - note $26 $02 - note $26 $03 - note $26 $0e - note $26 $1c - note $26 $07 - note $26 $07 - note $26 $1c - note $26 $15 - note $26 $02 - note $26 $02 - note $26 $03 - note $26 $2a - note $26 $07 - note $26 $07 - note $26 $1c - note $26 $15 - note $26 $02 - note $26 $02 - note $26 $03 - note $26 $0e - note $26 $1c - note $26 $07 - note $26 $07 - note $26 $1c - note $26 $15 - note $26 $02 - note $26 $02 - note $26 $03 - note $26 $2a - note $26 $07 - note $26 $07 - note $26 $1c - note $26 $15 - note $26 $02 - note $26 $02 - note $26 $03 - note $26 $0e - note $26 $1c - note $26 $07 - note $26 $07 - note $26 $0e - note $26 $0e - note $26 $07 - note $26 $07 - note $26 $07 - note $26 $07 - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $0e - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $0e - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $0e - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $0e - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $0e - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $0e - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $0e - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $5 - note $26 $0e - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - vol $3 - note $2e $46 - vol $5 - note $26 $0e - vol $4 - note $26 $2a - vol $5 - note $26 $0e - vol $4 - note $26 $2a - vol $5 - note $26 $04 - vol $4 - note $26 $05 - vol $3 - note $26 $05 - goto musicf6258 - cmdff diff --git a/audio/common/mus/rosaDate.s b/audio/common/mus/rosaDate.s deleted file mode 100644 index 10aff8e1b..000000000 --- a/audio/common/mus/rosaDate.s +++ /dev/null @@ -1,530 +0,0 @@ -musRosaDateStart: - -musRosaDateChannel1: - vibrato $e1 - env $0 $00 - duty $01 -musicf5995: - vol $6 - note b4 $2a - note gs4 $0e - note e4 $0e - note b3 $0e - note c4 $2a - note e4 $0e - note g4 $0e - note c5 $0e - note b4 $0a - rest $04 - duty $02 - note b5 $03 - note as5 $04 - note b5 $03 - note as5 $04 - note b5 $03 - rest $04 - vol $3 - note b5 $03 - rest $04 - vol $6 - note b6 $03 - note as6 $04 - note b6 $03 - note as6 $04 - note b6 $03 - rest $04 - vol $3 - note b6 $03 - rest $04 - duty $01 - vol $6 - note b3 $0e - note c4 $0b - rest $03 - duty $02 - note c5 $03 - note b4 $04 - note c5 $03 - note b4 $04 - note c5 $03 - rest $04 - vol $3 - note c5 $03 - rest $04 - vol $6 - note c6 $03 - note b5 $04 - note c6 $03 - note b5 $04 - note c6 $03 - rest $04 - vol $3 - note c6 $03 - rest $12 - duty $01 - vol $6 - note b4 $2a - note gs4 $0e - note e4 $0e - note gs4 $0e - note a4 $07 - note gs4 $07 - note a4 $07 - note gs4 $07 - note a4 $0e - note b4 $0e - note c5 $0e - note a4 $0e - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note e5 $07 - note ds5 $07 - note e5 $07 - rest $03 - vol $3 - note e5 $04 - vol $6 - note gs4 $07 - rest $03 - vol $3 - note gs4 $04 - vol $6 - note a4 $07 - rest $03 - vol $3 - note a4 $04 - vol $6 - note as4 $07 - rest $03 - vol $3 - note as4 $04 - vol $6 - note b4 $07 - note a4 $07 - note gs4 $07 - note fs4 $07 - note e4 $23 - vibrato $01 - env $0 $00 - vol $3 - note e4 $15 - vibrato $e1 - env $0 $00 - vol $6 - note g4 $38 - note e4 $1c - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - duty $02 - vol $6 - note b5 $07 - note as5 $07 - note b5 $07 - rest $03 - vol $3 - note b5 $04 - vol $6 - note b6 $07 - note as6 $07 - note b6 $07 - rest $03 - vol $3 - note b6 $07 - rest $0b - duty $01 - vol $6 - note g4 $2a - note e4 $0e - note c4 $0e - note g4 $07 - vol $3 - note g4 $07 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - duty $02 - vol $6 - note b4 $03 - note as4 $04 - note b4 $03 - note as4 $04 - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note b5 $03 - note as5 $04 - note b5 $03 - note as5 $04 - note b5 $07 - rest $03 - vol $3 - note b5 $07 - rest $0b - duty $01 - vol $6 - note ds5 $07 - rest $03 - vol $3 - note ds5 $07 - vol $6 - note cs5 $04 - note ds5 $03 - note cs5 $04 - note b4 $07 - rest $03 - vol $3 - note b4 $07 - rest $19 - vol $6 - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note d5 $07 - rest $03 - vol $3 - note d5 $07 - vol $6 - note c5 $04 - note d5 $03 - note c5 $04 - note b4 $07 - rest $03 - vol $3 - note b4 $07 - rest $19 - vol $6 - note b4 $07 - rest $03 - vol $3 - note b4 $04 - duty $02 - vol $6 - note e5 $07 - rest $03 - vol $3 - note e5 $04 - vol $6 - note ds5 $03 - note e5 $04 - note ds5 $03 - note e5 $04 - note as4 $03 - note b4 $04 - note as4 $03 - note b4 $04 - rest $03 - vol $3 - note b4 $04 - rest $07 - vol $6 - note fs4 $03 - note g4 $04 - note fs4 $03 - note g4 $04 - rest $03 - vol $3 - note g4 $04 - rest $07 - vol $6 - note ds4 $03 - note e4 $04 - note ds4 $03 - note e4 $04 - rest $03 - vol $3 - note e4 $04 - rest $07 - duty $01 - vol $6 - note b3 $0e - note cs4 $0e - note d4 $0e - note ds4 $0e - goto musicf5995 - cmdff - -musRosaDateChannel0: - vibrato $e1 - env $0 $00 - duty $02 -musicf5b54: - cmdfd $ff - vol $0 - note gs3 $bd - vol $3 - note b5 $03 - note as5 $04 - vol $3 - note b5 $03 - note as5 $04 - vol $3 - note b5 $03 - rest $04 - vol $1 - note b5 $03 - rest $04 - vol $3 - note b6 $03 - note as6 $04 - note b6 $03 - note as6 $04 - vol $3 - note b6 $03 - rest $04 - vol $1 - note b6 $03 - rest $20 - vol $3 - note c5 $03 - note b4 $04 - note c5 $03 - note b4 $04 - note c5 $03 - rest $04 - vol $1 - note c5 $03 - rest $04 - vol $3 - note c6 $03 - note b5 $04 - vol $3 - note c6 $03 - note b5 $04 - note c6 $03 - rest $04 - vol $1 - note c6 $03 - rest $ff - rest $c5 - vol $3 - note b5 $07 - note as5 $07 - note b5 $07 - rest $03 - vol $1 - note b5 $04 - vol $3 - note b6 $07 - note as6 $07 - note b6 $07 - rest $03 - vol $1 - note b6 $07 - rest $58 - vol $3 - note fs4 $07 - rest $03 - vol $1 - note fs4 $07 - rest $04 - vol $3 - note b4 $03 - note as4 $04 - note b4 $03 - note as4 $04 - note b4 $07 - rest $03 - vol $1 - note b4 $04 - vol $3 - note b5 $03 - note as5 $04 - note b5 $03 - note as5 $04 - note b5 $07 - rest $03 - vol $1 - note b5 $07 - rest $2e - cmdfd $00 - vol $6 - note cs6 $04 - note ds6 $05 - note cs6 $05 - note b5 $07 - rest $03 - vol $3 - note b5 $07 - rest $04 - vol $1 - note b5 $07 - rest $2a - vol $6 - note c6 $04 - note d6 $05 - note c6 $05 - note b5 $07 - rest $03 - vol $3 - note b5 $07 - rest $04 - vol $1 - note b5 $07 - rest $15 - vol $3 - note ds5 $03 - note e5 $04 - note ds5 $03 - note e5 $04 - note as4 $03 - note b4 $04 - note as4 $03 - note b4 $04 - rest $03 - vol $1 - note b4 $04 - rest $07 - vol $3 - note fs4 $03 - note g4 $04 - note fs4 $03 - note g4 $04 - rest $03 - vol $1 - note g4 $04 - rest $07 - vol $3 - note ds4 $03 - note e4 $04 - note ds4 $03 - note e4 $04 - rest $03 - vol $1 - note e4 $04 - rest $38 - goto musicf5b54 - cmdff - -musRosaDateChannel4: -musicf5c55: - duty $0e - note e3 $1c - duty $0e - note b3 $07 - duty $0f - note b3 $07 - rest $0e - duty $0e - note b3 $07 - duty $0f - note b3 $07 - rest $0e - duty $0e - note f3 $1c - duty $0e - note a3 $07 - duty $0f - note a3 $07 - rest $0e - duty $0e - note a3 $07 - duty $0f - note a3 $07 - rest $0e - duty $0e - note e3 $1c - duty $0f - note e3 $0e - rest $2a - duty $0e - note b2 $1c - duty $0f - note b2 $0e - rest $2a - duty $0e - note e3 $1c - duty $0e - note b3 $07 - duty $0f - note b3 $07 - rest $0e - duty $0e - note b3 $07 - duty $0f - note b3 $07 - rest $0e - duty $0e - note f3 $1c - note a3 $07 - duty $0f - note a3 $07 - rest $0e - duty $0e - note a3 $07 - duty $0f - note a3 $07 - rest $0e - duty $0e - note b2 $15 - duty $0f - note b2 $0a - rest $35 - duty $0e - note b2 $0e - note cs3 $07 - note ds3 $07 - note e3 $0e - note b2 $0e - note gs2 $0e - note e2 $0e - duty $0f - note e2 $07 - rest $15 - duty $0e - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $0e - note c3 $07 - duty $0f - note c3 $07 - rest $0e - duty $0e - note b2 $07 - duty $0f - note b2 $07 - rest $46 - duty $0e - note c3 $1c - note e3 $1c - note g3 $1c - note b2 $0e - duty $0f - note b2 $07 - rest $3f - duty $0e - note fs3 $38 - note b2 $07 - duty $0f - note b2 $07 - rest $0e - duty $0e - note f3 $38 - duty $0e - note b2 $07 - duty $0f - note b2 $07 - rest $0e - duty $0e - note e3 $07 - duty $0f - note e3 $07 - rest $46 - duty $0e - note b2 $54 - goto musicf5c55 - cmdff - -.define musRosaDateChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/sadness.s b/audio/common/mus/sadness.s deleted file mode 100644 index c099e9f2b..000000000 --- a/audio/common/mus/sadness.s +++ /dev/null @@ -1,326 +0,0 @@ -musSadnessStart: - -musSadnessChannel1: - vibrato $e1 - env $0 $00 - cmdf2 - duty $01 -musicf08e7: - vol $0 - note gs3 $24 - vol $6 - note f4 $24 - note c5 $24 - note f4 $24 - note ds4 $24 - note as4 $12 - vol $3 - note as4 $12 - vol $6 - note as4 $36 - vol $3 - note as4 $12 - vol $1 - note as4 $12 - rest $12 - vol $6 - note f4 $24 - note c5 $24 - note f5 $24 - note ds5 $24 - note g4 $24 - note gs4 $0d - rest $05 - vol $4 - note gs4 $04 - rest $05 - vol $2 - note gs4 $04 - rest $05 - vol $6 - note ds5 $12 - vol $3 - note ds5 $12 - vol $6 - note ds5 $48 - note cs5 $24 - note ds5 $12 - note cs5 $12 - note c5 $24 - note as4 $24 - note gs4 $12 - vol $3 - note gs4 $12 - vol $6 - note c5 $12 - vol $3 - note c5 $12 - vol $6 - note c5 $24 - note as4 $1b - vol $3 - note as4 $09 - vol $6 - note g5 $24 - note f5 $24 - note e5 $5a - vibrato $01 - env $0 $00 - vol $3 - note e5 $24 - vol $1 - note e5 $24 - vol $0 - note e5 $12 - vibrato $e1 - env $0 $00 - vol $6 - note f5 $24 - note c5 $24 - note gs4 $24 - note as4 $24 - note ds5 $09 - rest $04 - vol $3 - note ds5 $09 - rest $05 - vol $1 - note ds5 $09 - vol $6 - note ds5 $48 - vibrato $01 - env $0 $00 - vol $3 - note ds5 $24 - vibrato $e1 - env $0 $00 - vol $6 - note as5 $12 - note gs5 $12 - note g5 $12 - vol $6 - note f5 $12 - note ds5 $12 - note cs5 $12 - note c5 $24 - vol $6 - note f5 $09 - rest $04 - vol $4 - note f5 $05 - rest $04 - vol $2 - note f5 $05 - rest $09 - vol $6 - note f5 $09 - rest $04 - vol $4 - note f5 $05 - rest $04 - vol $2 - note f5 $05 - rest $09 - vol $6 - note f4 $12 - vol $3 - note f4 $12 - vol $6 - note ds5 $48 - vol $7 - note cs5 $48 - vibrato $01 - env $0 $00 - vol $3 - note cs5 $24 - vol $1 - note cs5 $24 - rest $12 - vibrato $e1 - env $0 $00 - vol $6 - note cs5 $12 - note ds5 $12 - vol $6 - note cs5 $12 - note c5 $48 - note as4 $48 - vibrato $01 - env $0 $00 - vol $3 - note as4 $24 - vol $1 - note as4 $24 - rest $48 - vibrato $e1 - env $0 $00 - goto musicf08e7 - cmdff - -musSadnessChannel0: - vibrato $e1 - env $0 $00 - cmdf2 - duty $01 -musicf09ee: - vol $6 - note as2 $24 - note cs3 $24 - note gs3 $24 - note cs3 $24 - note c3 $24 - note g3 $24 - note as3 $24 - note c3 $24 - vol $3 - note c3 $12 - rest $12 - vol $6 - note cs3 $24 - note gs3 $24 - note cs3 $24 - note c3 $24 - note g3 $24 - note f3 $24 - vol $3 - note f3 $12 - rest $12 - vol $6 - note as2 $12 - note c3 $12 - note cs3 $12 - note gs3 $12 - note g3 $24 - note ds3 $24 - note gs3 $24 - note g3 $24 - note f3 $24 - note ds3 $24 - note cs3 $7e - vol $3 - note cs3 $12 - vol $6 - note c3 $12 - note cs3 $12 - note c3 $12 - note cs3 $12 - note c3 $24 - vol $6 - note c4 $09 - rest $04 - vol $3 - note c4 $09 - rest $05 - vol $1 - note c4 $09 - vol $6 - note cs3 $24 - vol $6 - note gs3 $24 - note c4 $24 - note cs3 $24 - note c3 $24 - note g3 $24 - note as3 $24 - note c3 $24 - note cs3 $24 - note gs3 $24 - note c4 $24 - note cs3 $24 - note c3 $24 - note as3 $24 - note gs3 $24 - vol $3 - note gs3 $12 - rest $12 - vol $6 - note as2 $24 - note c3 $24 - note cs3 $24 - note ds3 $24 - note f3 $24 - note g3 $24 - note gs3 $24 - note as3 $24 - note ds3 $24 - note f3 $24 - note g3 $24 - note gs3 $24 - note as3 $24 - note c4 $24 - note cs4 $24 - note ds4 $24 - goto musicf09ee - cmdff - -musSadnessChannel4: - cmdf2 - duty $08 -musicf0a95: - rest $31 - note f4 $24 - note c5 $24 - note f4 $24 - note ds4 $24 - note as4 $12 - rest $12 - note as4 $36 - rest $36 - note f4 $24 - note c5 $24 - note f5 $24 - note ds5 $24 - note g4 $24 - note gs4 $0e - rest $16 - note ds5 $12 - rest $12 - note ds5 $48 - note cs5 $24 - note ds5 $12 - note cs5 $12 - note c5 $24 - note as4 $24 - note gs4 $24 - note c5 $12 - rest $12 - note c5 $24 - note as4 $24 - note g5 $24 - note f5 $24 - note e5 $5a - rest $5a - note f5 $24 - note c5 $24 - note gs4 $24 - note as4 $24 - note ds5 $09 - rest $1b - note ds5 $48 - note ds5 $24 - note as5 $12 - note gs5 $12 - note g5 $12 - note f5 $12 - note ds5 $12 - note cs5 $12 - note c5 $24 - note f5 $09 - rest $1b - note f5 $09 - rest $1b - note f4 $24 - note ds5 $48 - note cs5 $48 - rest $5a - note cs5 $12 - note ds5 $12 - vol $3 - note cs5 $12 - note c5 $48 - note as4 $48 - rest $83 - goto musicf0a95 - cmdff - -.define musSadnessChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/syrup.s b/audio/common/mus/syrup.s deleted file mode 100644 index 33d2f996d..000000000 --- a/audio/common/mus/syrup.s +++ /dev/null @@ -1,241 +0,0 @@ -musSyrupStart: - -musSyrupChannel1: -musicf8251: - vibrato $00 - env $0 $05 -.ifdef ROM_SEASONS - cmdf2 -.endif - duty $00 - vol $8 - note g6 $1e - note d6 $0a - note b5 $14 - note g5 $14 - note gs5 $28 - note ds6 $0a - note c6 $0a - note gs5 $0a - note ds5 $0a - note d5 $14 - note d6 $0a - note b5 $0a - note g5 $14 - note d5 $14 - note f5 $14 - note ds5 $0a - note f5 $0a - note d5 $28 - vol $3 - vibrato $00 - env $0 $03 - note cs5 $05 - rest $0f - note d5 $05 - rest $0f - note ds6 $05 - rest $0f - note d6 $05 - rest $0f - note cs6 $05 - rest $0f - note d6 $05 - rest $0f - note c6 $05 - rest $0f - note cs6 $05 - rest $0f - note b5 $05 - rest $0f - note c6 $05 - rest $0f - note as5 $05 - rest $0f - note b5 $05 - rest $0f - note a5 $05 - rest $05 - note as5 $05 - rest $05 - note gs5 $05 - rest $05 - note a5 $05 - rest $55 - vol $3 - note as7 $01 - note as5 $01 - cmdf8 $81 - note cs5 $03 - cmdf8 $00 - vol $0 - rest $05 - vol $3 - note as7 $01 - note as5 $01 - cmdf8 $81 - note cs5 $03 - cmdf8 $00 - vol $0 - rest $05 - goto musicf8251 - cmdff - -musSyrupChannel0: -musicf82e1: - vibrato $00 - env $0 $02 -.ifdef ROM_SEASONS - cmdf2 -.endif - duty $02 - vol $6 - note g3 $0a - vol $3 - note g3 $0a - vol $6 - note cs4 $0a - vol $3 - note cs4 $0a - vol $6 - note as4 $0a - vol $3 - note as4 $0a - vol $6 - note cs4 $0a - vol $3 - note cs4 $0a - vol $6 - note d3 $0a - vol $3 - note d3 $0a - vol $6 - note c4 $0a - vol $3 - note c4 $0a - vol $6 - note a4 $0a - vol $3 - note a4 $0a - vol $6 - note c4 $0a - vol $3 - note c4 $0a - vol $6 - note g3 $0a - vol $3 - note g3 $0a - vol $6 - note cs4 $0a - vol $3 - note cs4 $0a - vol $6 - note as4 $0a - vol $3 - note as4 $0a - vol $6 - note cs4 $0a - vol $3 - note cs4 $0a - vol $6 - note d3 $0a - vol $3 - note d3 $0a - vol $6 - note c4 $0a - vol $3 - note c4 $0a - vol $6 - note a4 $0a - vol $3 - note a4 $0a - vol $6 - note c4 $0a - vol $3 - note c4 $0a - vol $3 - rest $28 - note d6 $05 - rest $0f - note cs6 $05 - rest $0f - env $0 $03 - note c6 $05 - rest $0f - note cs6 $05 - rest $0f - note b5 $05 - rest $0f - note c6 $05 - rest $0f - note as5 $05 - rest $0f - note b5 $05 - rest $0f - note a5 $05 - rest $0f - note as5 $05 - rest $0f - note gs5 $05 - rest $0f - note g5 $05 - rest $73 - goto musicf82e1 - cmdff - -musSyrupChannel4: -.ifdef ROM_SEASONS - cmdf2 -.endif -musicf8380: - duty $17 - rest $28 - note fs4 $05 - rest $05 - duty $0c - note fs4 $03 - rest $07 - duty $17 - duty $0f - note g7 $09 - rest $01 - note g7 $0a - duty $17 - rest $28 - note f4 $05 - rest $05 - duty $0c - note f4 $03 - rest $07 - duty $0f - note g7 $09 - rest $01 - note g7 $0a - duty $17 - rest $28 - note fs4 $05 - rest $05 - duty $0c - note fs4 $03 - rest $07 - duty $0f - note g7 $09 - rest $01 - note g7 $0a - duty $17 - rest $28 - note f4 $05 - rest $05 - duty $0c - note f4 $03 - rest $07 - duty $0f - note g7 $09 - rest $01 - note g7 $0a - rest $fa - rest $82 - goto musicf8380 - cmdff - -.define musSyrupChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/titlescreen.s b/audio/common/mus/titlescreen.s deleted file mode 100644 index edeecd26e..000000000 --- a/audio/common/mus/titlescreen.s +++ /dev/null @@ -1,754 +0,0 @@ -musNoneStart: -musNoneChannel1: -musTitlescreenStart: -musTitlescreenChannel1: - duty $02 - vol $8 - note as4 $18 - vol $2 - note as4 $14 - rest $10 - env $0 $02 - vol $8 - note as4 $09 - env $0 $03 - vol $4 - note as4 $03 - env $0 $02 - vol $8 - note as4 $09 - env $0 $03 - vol $4 - note as4 $03 - env $0 $00 - vol $8 - note as4 $03 - vol $2 - note as4 $03 - vol $8 - note as4 $02 - vol $2 - note as4 $04 - vol $8 - env $0 $02 - note as4 $09 - env $0 $03 - vol $4 - note as4 $09 - env $0 $00 - vol $8 - env $0 $01 - note gs4 $06 - env $0 $00 - note as4 $12 - vol $2 - note as4 $09 - vol $1 - note as4 $09 - vol $8 - env $0 $02 - note as4 $09 - env $0 $03 - vol $4 - note as4 $03 - env $0 $00 - vol $8 - env $0 $02 - note as4 $09 - env $0 $03 - vol $4 - note as4 $03 - env $0 $00 - vol $8 - note as4 $03 - vol $2 - note as4 $03 - vol $8 - note as4 $03 - vol $2 - note as4 $03 - vol $8 - env $0 $02 - note as4 $09 - vol $4 - env $0 $03 - note as4 $09 - env $0 $00 - vol $8 - env $0 $01 - note gs4 $06 - env $0 $00 - note as4 $12 - vol $2 - note as4 $09 - vol $1 - note as4 $09 - vol $8 - env $0 $02 - note as4 $09 - env $0 $03 - vol $4 - note as4 $03 - env $0 $00 - vol $8 - env $0 $02 - note as4 $09 - env $0 $03 - vol $4 - note as4 $03 - env $0 $00 - vol $8 - note as4 $03 - vol $2 - note as4 $03 - vol $8 - note as4 $03 - vol $2 - note as4 $03 - vol $a - env $0 $01 - note as4 $09 - env $0 $03 - vol $3 - note as4 $03 - vol $8 - env $0 $01 - note f4 $06 - note f4 $06 - vol $a - env $0 $01 - note f4 $08 - env $0 $03 - vol $3 - note f4 $04 - vol $8 - env $0 $01 - note f4 $06 - note f4 $06 - vol $a - env $0 $01 - note f4 $08 - env $0 $03 - vol $3 - note f4 $04 - vol $8 - env $0 $01 - note f4 $06 - note f4 $06 - vol $8 - env $0 $02 - note f4 $08 - env $0 $03 - vol $3 - note f4 $04 - vol $8 - env $0 $01 - note f4 $09 - env $0 $00 - vol $4 - note f4 $03 -musice8526: - vol $a - env $0 $01 - note as2 $0c - note as3 $18 - note as3 $0c - env $0 $02 - note as2 $0c - env $0 $01 - note as3 $18 - note as3 $0c - note gs2 $0c - env $0 $01 - note gs3 $18 - note gs3 $0c - note gs2 $0c - env $0 $01 - note gs3 $18 - note gs3 $0c - note fs2 $0c - env $0 $01 - note fs3 $18 - note fs3 $0c - note fs2 $0c - env $0 $01 - note fs3 $18 - note fs3 $0c - note cs3 $0c - env $0 $01 - note cs4 $18 - note cs4 $0c - note cs3 $0c - env $0 $01 - note cs4 $18 - note cs4 $0c - note b2 $0c - env $0 $01 - note b3 $18 - note b3 $0c - note b2 $0c - env $0 $01 - note b3 $18 - note b3 $0c - note as2 $0c - env $0 $01 - note as3 $18 - note as3 $0c - note as2 $0c - env $0 $01 - note as3 $18 - note as3 $0c - note c3 $0c - note c4 $18 - note c4 $0c - note c3 $0c - note c4 $0c - note as4 $0c - note c4 $0c - vibrato $00 - env $0 $03 - note f3 $0c - vol $8 - env $0 $00 - note as4 $03 - env $0 $01 - vol $4 - note as4 $03 - vol $8 - env $0 $00 - note as4 $03 - env $0 $01 - vol $4 - note as4 $03 - vol $a - env $0 $00 - note as4 $03 - env $0 $01 - vol $4 - note as4 $03 - env $0 $00 - vol $2 - note as4 $06 - vol $8 - note as4 $03 - env $0 $01 - vol $4 - note as4 $03 - vol $a - env $0 $00 - note as4 $03 - env $0 $01 - vol $4 - note as4 $03 - env $0 $00 - vol $8 - note as4 $08 - vol $4 - note as4 $04 - vol $8 - note c3 $03 - env $0 $01 - vol $4 - note c3 $03 - vol $8 - env $0 $00 - note c3 $03 - env $0 $01 - vol $4 - note c3 $03 - vol $a - env $0 $00 - note c3 $03 - env $0 $01 - vol $4 - note c3 $03 - env $0 $00 - vol $2 - note c3 $06 - vol $8 - note c3 $03 - env $0 $01 - vol $4 - note c3 $03 - vol $a - env $0 $00 - note c3 $03 - env $0 $01 - vol $4 - note c3 $03 - env $0 $00 - vol $8 - note f3 $08 - vol $4 - note f3 $04 - vol $8 - note a4 $03 - env $0 $01 - vol $4 - note a4 $03 - vol $8 - env $0 $00 - note a4 $03 - env $0 $01 - vol $4 - note a4 $03 - vol $a - env $0 $00 - note a4 $03 - env $0 $01 - vol $4 - note a4 $03 - env $0 $00 - vol $2 - note a4 $06 - vol $8 - note a4 $03 - env $0 $01 - vol $4 - note a4 $03 - vol $a - env $0 $00 - note a4 $03 - env $0 $01 - vol $4 - note a4 $03 - env $0 $00 - vol $8 - note a4 $08 - vol $4 - note a4 $04 - vol $a - env $0 $01 - note f2 $06 - vol $a - note f2 $06 - vol $a - note f2 $06 - vol $a - note fs2 $05 - vol $1 - note fs2 $01 - vol $a - note g2 $05 - vol $1 - note g2 $01 - vol $a - note a2 $05 - vol $1 - note a2 $01 - goto musice8526 - cmdff - -musNoneChannel0: -musTitlescreenChannel0: - duty $02 - vol $8 - note d4 $18 - vol $2 - note d4 $14 - rest $10 - vol $8 - env $0 $02 - note d4 $09 - env $0 $04 - vol $3 - note d4 $03 - vol $8 - env $0 $02 - note d4 $09 - env $0 $04 - vol $3 - note d4 $03 - vol $8 - note d4 $03 - vol $2 - note d4 $03 - vol $8 - note d4 $03 - vol $2 - note d4 $03 - vol $8 - env $0 $02 - note c4 $09 - env $0 $04 - vol $3 - note c4 $09 - env $0 $00 - vol $8 - note c4 $04 - vol $2 - note c4 $02 - vol $7 - note c4 $12 - vol $3 - note c4 $09 - vol $1 - note c4 $09 - vol $8 - vol $8 - env $0 $02 - note c4 $09 - env $0 $04 - vol $3 - note c4 $03 - vol $8 - env $0 $02 - note c4 $09 - env $0 $04 - vol $3 - note c4 $03 - vol $8 - env $0 $01 - note c4 $06 - env $0 $01 - note c4 $06 - vol $8 - env $0 $02 - note cs4 $09 - env $0 $03 - vol $4 - note cs4 $09 - vol $8 - env $0 $00 - note cs4 $03 - vol $2 - note cs4 $03 - vol $7 - note cs4 $12 - vol $3 - note cs4 $09 - vol $1 - note cs4 $09 - vol $8 - env $0 $02 - note cs4 $09 - env $0 $04 - vol $3 - note cs4 $03 - vol $8 - env $0 $02 - note cs4 $09 - env $0 $04 - vol $3 - note cs4 $03 - env $0 $00 - vol $8 - note cs4 $03 - vol $2 - note cs4 $03 - vol $8 - note cs4 $03 - vol $2 - note cs4 $03 - vol $a - env $0 $01 - note cs4 $09 - env $0 $03 - vol $3 - note cs4 $03 - env $0 $00 - vol $8 - env $0 $01 - note a3 $06 - env $0 $01 - note a3 $06 - vol $a - env $0 $01 - note a3 $08 - env $0 $03 - vol $3 - note a3 $04 - vol $8 - env $0 $01 - note a3 $06 - env $0 $01 - note a3 $06 - vol $a - env $0 $01 - note a3 $08 - env $0 $03 - vol $3 - note a3 $04 - vol $8 - env $0 $01 - note a3 $06 - env $0 $01 - note a3 $06 - vibrato $00 - vol $8 - env $0 $02 - note a3 $09 - env $0 $03 - vol $3 - note a3 $03 - vol $8 - env $0 $02 - note a3 $09 - env $0 $03 - vol $3 - note a3 $03 -musice8762: - vol $0 - note gs3 $6c - env $0 $00 - vol $6 - note as5 $06 - rest $06 - note as5 $03 - rest $03 - note c6 $03 - rest $03 - note d6 $03 - rest $03 - note ds6 $03 - rest $03 - env $0 $07 - note f6 $48 - env $0 $00 - note cs6 $03 - rest $03 - note fs6 $03 - rest $03 - note gs6 $03 - rest $03 - note as6 $03 - rest $03 - env $0 $07 - note cs7 $54 - env $0 $00 - note cs6 $03 - rest $03 - note ds6 $03 - rest $03 - note f6 $06 - rest $06 - note cs6 $06 - rest $06 - env $0 $07 - note gs5 $3c - env $0 $00 - note ds6 $02 - rest $04 - note f6 $02 - rest $04 - note fs6 $02 - rest $0a - note ds6 $02 - rest $04 - note f6 $02 - rest $04 - env $0 $04 - note fs6 $3c - env $0 $00 - note cs6 $02 - rest $04 - note ds6 $02 - rest $04 - note f6 $02 - rest $0a - note cs6 $02 - rest $04 - note ds6 $02 - rest $04 - env $0 $04 - note f6 $3c - env $0 $00 - note c6 $02 - rest $04 - note d6 $02 - rest $04 - note e6 $02 - rest $0a - note e6 $02 - rest $04 - note f6 $02 - rest $04 - note g6 $02 - rest $04 - note a6 $02 - rest $04 - note as6 $02 - rest $04 - note c7 $02 - rest $04 - note a6 $06 - rest $06 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $a - note ds4 $03 - vol $2 - note ds4 $03 - vol $1 - note ds4 $06 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $a - note ds4 $08 - vol $3 - note ds4 $0a - vol $1 - note ds4 $0a - rest $20 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $a - note ds4 $03 - vol $2 - note ds4 $03 - vol $1 - note ds4 $06 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $8 - note ds4 $03 - vol $2 - note ds4 $03 - vol $a - note ds4 $08 - vol $3 - note ds4 $0a - vol $1 - note ds4 $0a - rest $14 - goto musice8762 - cmdff - -musNoneChannel4: -musTitlescreenChannel4: - rest $24 - duty $0e - note as2 $05 - duty $0f - note as2 $01 - duty $0e - note as2 $05 - duty $0f - note as2 $01 - duty $0e - note as2 $0c - duty $0f - note as2 $12 - rest $36 - duty $0e - note gs2 $05 - duty $0f - note gs2 $01 - duty $0e - note gs2 $05 - duty $0f - note gs2 $01 - duty $0e - note gs2 $0c - duty $0f - note gs2 $12 - rest $36 - duty $0e - note fs2 $05 - duty $0f - note fs2 $01 - duty $0e - note fs2 $05 - duty $0f - note fs2 $01 - duty $0e - note fs2 $0c - duty $0f - note fs2 $12 - rest $5a - duty $0e - note f2 $0c - duty $0e - note g2 $05 - duty $0f - note g2 $01 - duty $0e - note a2 $05 - duty $0f - note a2 $01 -musice88ca: - duty $01 - note as4 $06 - rest $12 - note f4 $1e - rest $0c - note as4 $04 - rest $02 - note as4 $06 - note c5 $03 - rest $03 - note d5 $03 - rest $03 - note ds5 $03 - rest $03 - note f5 $2a - rest $12 - note f5 $09 - rest $03 - note f5 $0c - note fs5 $03 - rest $03 - note gs5 $03 - rest $03 - note as5 $2a - rest $12 - note as5 $09 - rest $03 - note as5 $0c - note gs5 $03 - rest $03 - note fs5 $03 - rest $03 - note gs5 $06 - rest $0c - note fs5 $06 - note f5 $24 - rest $0c - note f5 $18 - note ds5 $0c - rest $06 - note f5 $06 - note fs5 $24 - rest $0c - note f5 $0c - note ds5 $0c - note cs5 $0c - rest $06 - note ds5 $06 - note f5 $24 - rest $0c - note ds5 $0c - note cs5 $0c - note c5 $0c - rest $06 - note d5 $06 - note e5 $24 - rest $0c - note g5 $18 - note f5 $08 - rest $b8 - goto musice88ca - cmdff - -.define musNoneChannel6 MUSIC_CHANNEL_FALLBACK EXPORT -.define musTitlescreenChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/mus/triumphant.s b/audio/common/mus/triumphant.s deleted file mode 100644 index d048c2b2e..000000000 --- a/audio/common/mus/triumphant.s +++ /dev/null @@ -1,1190 +0,0 @@ -musTriumphantStart: - -musTriumphantChannel1: - vibrato $00 - env $0 $00 - duty $02 -musicf4007: - vol $0 - note gs3 $20 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $04 - rest $02 - vol $1 - note e4 $04 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $04 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $04 - vol $6 - note g4 $04 - rest $04 - vol $3 - note g4 $04 - rest $04 - vol $6 - note g4 $04 - rest $04 - vol $3 - note g4 $04 - rest $04 - vol $6 - note fs4 $04 - rest $04 - vol $3 - note fs4 $04 - rest $04 - vol $1 - note fs4 $04 - rest $1c - vol $6 - note g4 $04 - rest $02 - vol $3 - note g4 $02 - vol $6 - note g4 $04 - rest $02 - vol $3 - note g4 $02 - vol $6 - note g4 $04 - rest $02 - vol $3 - note g4 $02 - vol $6 - note g4 $04 - rest $02 - vol $3 - note g4 $02 - vol $6 - note g4 $04 - rest $02 - vol $3 - note g4 $04 - rest $06 - vol $6 - note fs4 $04 - rest $04 - vol $3 - note fs4 $04 - rest $04 - vol $6 - note fs4 $04 - rest $04 - vol $3 - note fs4 $04 - rest $04 - vol $6 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $04 - vol $6 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $04 - vol $6 - note fs4 $04 - rest $04 - vol $3 - note fs4 $04 - rest $04 - vol $1 - note fs4 $04 - rest $1c - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $04 - rest $06 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $04 - vol $6 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $04 - vol $6 - note fs4 $04 - rest $04 - vol $3 - note fs4 $04 - rest $04 - vol $6 - note g4 $04 - rest $04 - vol $3 - note g4 $04 - rest $04 - vol $6 - note fs4 $04 - rest $04 - vol $3 - note fs4 $04 - rest $04 - vol $6 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $04 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $04 - vol $6 - note e4 $18 - vol $3 - note e4 $08 - vol $6 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $04 - vol $6 - note g4 $18 - vol $3 - note g4 $08 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $04 - vol $6 - note e4 $14 - vol $3 - note e4 $0c - rest $20 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $04 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $04 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $04 - vol $6 - note g4 $04 - rest $04 - vol $3 - note g4 $04 - rest $04 - vol $6 - note g4 $04 - rest $04 - vol $3 - note g4 $04 - rest $04 - vol $6 - note fs4 $04 - rest $04 - vol $3 - note fs4 $04 - rest $24 - vol $6 - note b4 $04 - rest $02 - vol $3 - note b4 $02 - vol $6 - note b4 $04 - rest $02 - vol $3 - note b4 $02 - vol $6 - note b4 $04 - rest $02 - vol $3 - note b4 $02 - vol $6 - note b4 $04 - rest $02 - vol $3 - note b4 $02 - vol $6 - note b4 $04 - rest $02 - vol $3 - note b4 $04 - rest $06 - vol $6 - note a4 $05 - rest $03 - vol $3 - note a4 $05 - rest $03 - vol $6 - note b4 $05 - rest $03 - vol $3 - note b4 $05 - rest $03 - vol $6 - note c5 $05 - rest $03 - vol $3 - note c5 $05 - rest $03 - vol $6 - note d5 $05 - rest $03 - vol $3 - note d5 $05 - rest $03 - vol $6 - note c5 $05 - rest $03 - vol $3 - note c5 $05 - rest $23 - vol $6 - note b4 $04 - rest $02 - vol $3 - note b4 $02 - vol $6 - note b4 $04 - rest $02 - vol $3 - note b4 $02 - vol $6 - note b4 $04 - rest $02 - vol $3 - note b4 $02 - vol $6 - note b4 $04 - rest $02 - vol $3 - note b4 $02 - vol $6 - note b4 $04 - rest $02 - vol $3 - note b4 $04 - rest $06 - vol $6 - note c5 $04 - rest $04 - vol $3 - note c5 $04 - rest $04 - vol $6 - note b4 $04 - rest $04 - vol $3 - note b4 $04 - rest $04 - vol $6 - note a4 $04 - rest $04 - vol $3 - note a4 $04 - rest $04 - vol $6 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $04 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $04 - rest $04 - vol $6 - note g4 $08 - note fs4 $08 - note e4 $08 - note d4 $08 - note e4 $30 - vol $3 - note e4 $10 - vol $1 - note e4 $08 - rest $18 - goto musicf4007 - cmdff - -musTriumphantChannel0: - vibrato $00 - env $0 $00 - duty $02 -musicf4298: - vol $0 - note gs3 $20 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $02 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $02 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $02 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $02 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $04 - rest $06 - vol $6 - note b3 $04 - rest $04 - vol $3 - note b3 $04 - rest $04 - vol $6 - note b3 $04 - rest $04 - vol $3 - note b3 $04 - rest $04 - vol $6 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $04 - vol $6 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $04 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $24 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $04 - rest $06 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $04 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $04 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $04 - rest $04 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $04 - rest $04 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $24 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $02 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $02 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $02 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $02 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $04 - rest $06 - vol $6 - note b3 $04 - rest $04 - vol $3 - note b3 $04 - rest $04 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $04 - rest $04 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $04 - vol $6 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $04 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $04 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $04 - rest $04 - vol $6 - note b3 $04 - rest $04 - vol $3 - note b3 $04 - rest $04 - vol $6 - note c4 $14 - vol $3 - note c4 $0c - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $04 - rest $04 - vol $6 - note d4 $18 - vol $3 - note d4 $08 - vol $6 - note b3 $04 - rest $04 - vol $3 - note b3 $04 - rest $04 - vol $6 - note c4 $14 - vol $3 - note c4 $0c - rest $20 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $02 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $02 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $02 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $02 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $04 - rest $06 - vol $6 - note b3 $04 - rest $04 - vol $3 - note b3 $04 - rest $04 - vol $6 - note b3 $04 - rest $04 - vol $3 - note b3 $04 - rest $04 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $04 - rest $04 - vol $6 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $04 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $24 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $02 - vol $6 - note e4 $04 - rest $02 - vol $3 - note e4 $04 - rest $06 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $04 - vol $6 - note d4 $04 - rest $04 - vol $3 - note d4 $04 - rest $04 - vol $6 - note f4 $04 - rest $04 - vol $3 - note f4 $04 - rest $04 - vol $6 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $04 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $04 - rest $24 - vol $6 - note g4 $04 - rest $02 - vol $3 - note g4 $02 - vol $6 - note g4 $04 - rest $02 - vol $3 - note g4 $02 - vol $6 - note g4 $04 - rest $02 - vol $3 - note g4 $02 - vol $6 - note g4 $04 - rest $02 - vol $3 - note g4 $02 - vol $6 - note g4 $04 - rest $02 - vol $3 - note g4 $04 - rest $06 - vol $6 - note a4 $04 - rest $04 - vol $3 - note a4 $04 - rest $04 - vol $6 - note g4 $04 - rest $04 - vol $3 - note g4 $04 - rest $04 - vol $6 - note e4 $04 - rest $04 - vol $3 - note e4 $04 - rest $04 - vol $6 - note c4 $04 - rest $04 - vol $3 - note c4 $04 - rest $04 - vol $6 - note a3 $04 - rest $04 - vol $3 - note a3 $04 - rest $84 - goto musicf4298 - cmdff - -musTriumphantChannel4: -musicf4503: - duty $0e - note a2 $20 - note a3 $04 - rest $04 - note a3 $04 - rest $04 - note a3 $04 - rest $04 - note a3 $04 - rest $04 - note a3 $04 - rest $3c - note b2 $20 - note c3 $20 - note c4 $04 - rest $04 - note c4 $04 - rest $04 - note c4 $04 - rest $04 - note c4 $04 - rest $04 - note c4 $04 - rest $0c - note b3 $04 - rest $0c - note b3 $04 - rest $0c - note a3 $04 - rest $0c - note a3 $04 - rest $0c - note b3 $04 - rest $0c - note a2 $20 - note a3 $04 - rest $04 - note a3 $04 - rest $04 - note a3 $04 - rest $04 - note a3 $04 - rest $04 - note a3 $04 - rest $1c - note b2 $3c - rest $04 - note b2 $20 - note a2 $12 - rest $0e - note a2 $08 - rest $08 - note b2 $1c - rest $04 - note g2 $04 - rest $0c - note a2 $14 - rest $0c - note a2 $20 - note a3 $04 - rest $04 - note a3 $04 - rest $04 - note a3 $04 - rest $04 - note a3 $04 - rest $04 - note a3 $04 - rest $1c - note b2 $14 - rest $0c - note e3 $05 - rest $0b - note d3 $05 - rest $0b - note c3 $20 - note c4 $04 - rest $04 - note c4 $04 - rest $04 - note c4 $04 - rest $04 - note c4 $04 - rest $04 - note c4 $04 - rest $1c - note b2 $20 - note e2 $0d - rest $03 - note g2 $0d - rest $03 - note a2 $20 - note c4 $04 - rest $04 - note c4 $04 - rest $04 - note c4 $04 - rest $04 - note c4 $04 - rest $04 - duty $0e - note c4 $04 - duty $0f - note c4 $0c - duty $0e - note e3 $04 - duty $0f - note e3 $0c - duty $0e - note e3 $04 - duty $0f - note e3 $0c - duty $0e - note c3 $04 - duty $0f - note c3 $0c - duty $0e - note c3 $04 - duty $0f - note c3 $0c - duty $0e - note a2 $04 - duty $0f - note a2 $0c - duty $0e - note d3 $20 - note a2 $08 - rest $08 - note fs2 $20 - note a2 $08 - rest $08 - note d2 $20 - goto musicf4503 - cmdff - -musTriumphantChannel6: -musicf460f: - vol $5 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $08 - note $26 $04 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - note $26 $02 - vol $3 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - vol $5 - note $26 $02 - note $26 $04 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $08 - note $26 $04 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - note $26 $02 - vol $3 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - vol $5 - note $26 $02 - note $26 $04 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $08 - note $26 $04 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - note $26 $02 - vol $3 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - vol $5 - note $26 $02 - note $26 $04 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $08 - note $26 $04 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - note $26 $02 - vol $3 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - vol $5 - note $26 $02 - note $26 $04 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $08 - note $26 $04 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - note $26 $02 - vol $3 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - vol $5 - note $26 $02 - note $26 $04 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $08 - note $26 $04 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - note $26 $02 - vol $3 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - vol $5 - note $26 $02 - note $26 $04 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $08 - note $26 $04 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - note $26 $02 - vol $3 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - vol $5 - note $26 $02 - note $26 $04 - note $26 $10 - note $26 $10 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $08 - note $26 $10 - note $26 $08 - note $26 $04 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - note $26 $02 - vol $3 - note $26 $04 - note $26 $02 - vol $4 - note $26 $02 - vol $4 - note $26 $04 - vol $4 - note $26 $02 - vol $5 - note $26 $02 - note $26 $04 - goto musicf460f - cmdff diff --git a/audio/common/mus/twinrova.s b/audio/common/mus/twinrova.s deleted file mode 100644 index 1422fd0f4..000000000 --- a/audio/common/mus/twinrova.s +++ /dev/null @@ -1,1604 +0,0 @@ -musTwinrovaStart: - -musTwinrovaChannel1: - vibrato $e1 - env $0 $00 - cmdf2 - duty $02 -musiceacd8: - vol $6 - note b3 $12 - note as3 $06 - rest $03 - vol $3 - note as3 $06 - rest $03 - vol $1 - note as3 $06 - rest $06 - vol $6 - note d4 $12 - note cs4 $06 - rest $03 - vol $3 - note cs4 $06 - rest $03 - vol $1 - note cs4 $06 - rest $06 - vol $6 - note b3 $12 - note as3 $06 - rest $03 - vol $3 - note as3 $06 - rest $03 - vol $1 - note as3 $06 - rest $06 - vol $6 - note d4 $06 - rest $03 - vol $3 - note d4 $03 - vol $6 - note d4 $06 - note cs4 $06 - rest $03 - vol $3 - note cs4 $06 - rest $03 - vol $1 - note cs4 $06 - rest $06 - vol $6 - note b3 $12 - note as3 $06 - rest $03 - vol $3 - note as3 $06 - rest $03 - vol $1 - note as3 $06 - rest $06 - vol $6 - note d4 $12 - note cs4 $06 - rest $03 - vol $3 - note cs4 $06 - rest $03 - vol $1 - note cs4 $06 - rest $06 - vol $6 - note b3 $12 - note as3 $06 - rest $03 - vol $3 - note as3 $06 - rest $03 - vol $1 - note as3 $06 - rest $06 - vol $6 - note d4 $06 - rest $03 - vol $3 - note d4 $03 - vol $6 - note d4 $06 - note cs4 $06 - rest $03 - vol $3 - note cs4 $06 - vol $6 - note cs4 $03 - note d4 $03 - note ds4 $03 - note e4 $03 - note f4 $03 - note fs4 $12 - note e4 $06 - rest $03 - vol $3 - note e4 $06 - rest $03 - vol $1 - note e4 $06 - rest $06 - vol $6 - note g4 $12 - note fs4 $06 - rest $03 - vol $3 - note fs4 $06 - rest $03 - vol $1 - note fs4 $06 - rest $06 - vol $6 - note fs4 $12 - note e4 $06 - rest $03 - vol $3 - note e4 $06 - rest $03 - vol $1 - note e4 $06 - rest $06 - vol $6 - note g4 $0c - note a4 $06 - note fs4 $06 - rest $03 - vol $3 - note fs4 $06 - rest $03 - vol $1 - note fs4 $06 - rest $06 - vol $6 - note fs4 $12 - vol $6 - note e4 $06 - rest $03 - vol $3 - note e4 $06 - rest $03 - vol $1 - note e4 $06 - rest $06 - vol $6 - note g4 $12 - note fs4 $06 - rest $03 - vol $3 - note fs4 $06 - rest $03 - vol $1 - note fs4 $06 - rest $06 - vol $6 - note fs4 $12 - note e4 $06 - rest $03 - vol $3 - note e4 $06 - rest $03 - vol $1 - note e4 $06 - rest $06 - vol $6 - note g4 $06 - note a4 $06 - note fs4 $06 - note g4 $06 - note e4 $06 - note fs4 $06 - note ds4 $06 - note e4 $06 - note fs4 $06 - note g4 $06 - note gs4 $06 - note a4 $06 - rest $03 - vol $3 - note a4 $06 - rest $03 - vol $1 - note a4 $06 - rest $06 - vol $6 - note a4 $06 - note as4 $06 - note b4 $06 - note c5 $06 - rest $03 - vol $3 - note c5 $06 - rest $03 - vol $1 - note c5 $06 - rest $06 - vol $6 - note c5 $06 - note cs5 $06 - note d5 $06 - note ds5 $06 - rest $03 - vol $3 - note ds5 $06 - rest $03 - vol $1 - note ds5 $06 - rest $06 - vol $6 - note ds5 $06 - note e5 $06 - note f5 $06 - note fs5 $06 - rest $03 - vol $3 - note fs5 $06 - rest $03 - vol $1 - note fs5 $06 - rest $06 - vol $6 - note fs5 $06 - rest $03 - vol $3 - note fs5 $03 - vol $6 - note gs5 $03 - note a5 $03 - note as5 $03 - note b5 $03 - note c6 $3c - rest $06 - note a5 $06 - note c6 $06 - note fs5 $06 - note a5 $06 - note ds5 $06 - note fs5 $06 - note c5 $06 - note ds5 $06 - note a4 $06 - note c5 $06 - note fs4 $06 - note a4 $06 - note ds4 $06 - note fs4 $06 - note c4 $06 - note ds4 $06 - note a3 $06 - goto musiceacd8 - cmdff - -musTwinrovaChannel0: - vibrato $e1 - env $0 $00 - cmdf2 - duty $02 -musiceae93: - vol $6 - note g3 $12 - note fs3 $06 - rest $03 - vol $3 - note fs3 $06 - rest $03 - vol $1 - note fs3 $06 - rest $06 - vol $6 - note b3 $12 - note as3 $06 - rest $03 - vol $3 - note as3 $06 - rest $03 - vol $1 - note as3 $06 - rest $06 - vol $6 - note g3 $12 - note fs3 $06 - rest $03 - vol $3 - note fs3 $06 - rest $03 - vol $1 - note fs3 $06 - rest $06 - vol $6 - note b3 $06 - rest $03 - vol $3 - note b3 $03 - vol $6 - note b3 $06 - note as3 $06 - rest $03 - vol $3 - note as3 $06 - rest $03 - vol $1 - note as3 $06 - rest $06 - vol $6 - note g3 $12 - note fs3 $06 - rest $03 - vol $3 - note fs3 $06 - rest $03 - vol $1 - note fs3 $06 - rest $06 - vol $6 - note b3 $12 - note as3 $06 - rest $03 - vol $3 - note as3 $06 - rest $03 - vol $1 - note as3 $06 - rest $06 - vol $6 - note g3 $12 - note fs3 $06 - rest $03 - vol $3 - note fs3 $06 - rest $03 - vol $1 - note fs3 $06 - rest $06 - vol $6 - note b3 $06 - rest $03 - vol $3 - note b3 $03 - vol $6 - note b3 $06 - note as3 $06 - rest $03 - vol $3 - note as3 $06 - vol $6 - note as3 $03 - note b3 $03 - note c4 $03 - note cs4 $03 - note d4 $03 - note ds4 $12 - note cs4 $06 - rest $03 - vol $3 - note cs4 $06 - rest $03 - vol $1 - note cs4 $06 - rest $06 - vol $6 - note e4 $12 - note ds4 $06 - rest $03 - vol $3 - note ds4 $06 - rest $03 - vol $1 - note ds4 $06 - rest $06 - vol $6 - note ds4 $12 - note cs4 $06 - rest $03 - vol $3 - note cs4 $06 - rest $03 - vol $1 - note cs4 $06 - rest $06 - vol $6 - note e4 $0c - note e4 $06 - note ds4 $06 - rest $03 - vol $3 - note ds4 $06 - rest $03 - vol $1 - note ds4 $06 - rest $06 - vol $6 - note ds4 $12 - note cs4 $06 - rest $03 - vol $3 - note cs4 $06 - rest $03 - vol $1 - note cs4 $06 - rest $06 - vol $6 - note e4 $12 - note ds4 $06 - rest $03 - vol $3 - note ds4 $06 - rest $03 - vol $1 - note ds4 $06 - rest $06 - vol $6 - note ds4 $12 - note cs4 $06 - rest $03 - vol $3 - note cs4 $06 - rest $03 - vol $1 - note cs4 $06 - rest $06 - vol $6 - note e4 $06 - note fs4 $06 - note ds4 $06 - note e4 $06 - note cs4 $06 - note ds4 $06 - note b3 $06 - note cs4 $06 - note ds4 $06 - note e4 $06 - note f4 $06 - note fs4 $06 - rest $03 - vol $3 - note fs4 $06 - rest $03 - vol $1 - note fs4 $06 - rest $06 - vol $6 - note fs4 $06 - note g4 $06 - note gs4 $06 - note a4 $06 - rest $03 - vol $3 - note a4 $06 - rest $03 - vol $1 - note a4 $06 - rest $06 - vol $6 - note a4 $06 - note as4 $06 - note b4 $06 - note c5 $06 - rest $03 - vol $3 - note c5 $06 - rest $03 - vol $1 - note c5 $06 - rest $06 - vol $6 - note c5 $06 - note cs5 $06 - note d5 $06 - note ds5 $06 - rest $03 - vol $3 - note ds5 $06 - rest $03 - vol $1 - note ds5 $06 - rest $06 - vol $6 - note ds5 $06 - rest $03 - vol $3 - note ds5 $03 - vol $6 - note e5 $03 - note fs5 $03 - note g5 $03 - note gs5 $03 - note a5 $3c - vol $3 - note a5 $0c - vol $9 - note a3 $06 - note gs3 $06 - note g3 $06 - note fs3 $06 - note f3 $06 - note e3 $06 - note ds3 $06 - note d3 $06 - note cs3 $06 - note c3 $06 - note b2 $06 - note as2 $06 - note a2 $06 - note gs2 $06 - note g2 $06 - note fs2 $06 - goto musiceae93 - cmdff - -musTwinrovaChannel4: - cmdf2 -musiceb047: - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $05 - duty $0f - note fs2 $01 - duty $12 - note g2 $05 - duty $0f - note g2 $01 - duty $12 - note fs2 $05 - duty $0f - note fs2 $01 - duty $12 - note g2 $05 - duty $0f - note g2 $01 - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $05 - duty $0f - note fs2 $01 - duty $12 - note g2 $05 - duty $0f - note g2 $01 - duty $12 - note fs2 $05 - duty $0f - note fs2 $01 - duty $12 - note g2 $05 - duty $0f - note g2 $01 - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $05 - duty $0f - note fs2 $01 - duty $12 - note g2 $05 - duty $0f - note g2 $01 - duty $12 - note fs2 $05 - duty $0f - note fs2 $01 - duty $12 - note g2 $05 - duty $0f - note g2 $01 - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $04 - duty $0f - note fs2 $02 - duty $12 - note g2 $0a - duty $0f - note g2 $02 - duty $12 - note fs2 $05 - duty $0f - note fs2 $01 - duty $12 - note g2 $05 - duty $0f - note g2 $01 - duty $12 - note gs2 $05 - duty $0f - note gs2 $01 - duty $12 - note a2 $05 - duty $0f - note a2 $01 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $05 - duty $0f - note as2 $01 - duty $12 - note b2 $05 - duty $0f - note b2 $01 - duty $12 - note as2 $05 - duty $0f - note as2 $01 - duty $12 - note b2 $05 - duty $0f - note b2 $01 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $05 - duty $0f - note as2 $01 - duty $12 - note b2 $05 - duty $0f - note b2 $01 - duty $12 - note as2 $05 - duty $0f - note as2 $01 - duty $12 - note b2 $05 - duty $0f - note b2 $01 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $05 - duty $0f - note as2 $01 - duty $12 - note b2 $05 - duty $0f - note b2 $01 - duty $12 - note as2 $05 - duty $0f - note as2 $01 - duty $12 - note b2 $05 - duty $0f - note b2 $01 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $04 - duty $0f - note as2 $02 - duty $12 - note b2 $0a - duty $0f - note b2 $02 - duty $12 - note as2 $05 - duty $0f - note as2 $01 - duty $12 - note b2 $05 - duty $0f - note b2 $01 - duty $12 - note as2 $05 - duty $0f - note as2 $01 - duty $12 - note b2 $05 - duty $0f - note b2 $01 - duty $12 - note b2 $06 - note cs3 $06 - note d3 $06 - note ds3 $06 - duty $0f - note ds3 $0c - duty $0c - note ds3 $0c - duty $12 - note ds3 $06 - note e3 $06 - note f3 $06 - note fs3 $06 - duty $0f - note fs3 $0c - duty $0c - note fs3 $0c - duty $12 - note fs3 $06 - note g3 $06 - note gs3 $06 - note a3 $06 - duty $0f - note a3 $0c - duty $0c - note a3 $0c - duty $12 - note a3 $06 - note as3 $06 - note b3 $06 - note c4 $06 - duty $0f - note c4 $0c - duty $0c - note c4 $0c - duty $12 - note b3 $02 - note as3 $02 - note a3 $02 - note gs3 $02 - note g3 $02 - note fs3 $02 - note f3 $02 - note e3 $02 - note ds3 $02 - note d3 $02 - note cs3 $02 - note c3 $02 - note b2 $3c - rest $6c - goto musiceb047 - cmdff - -musTwinrovaChannel6: - cmdf2 -musiceb3b2: - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - note $24 $06 - note $24 $06 - note $24 $06 - vol $5 - note $24 $06 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - note $26 $06 - note $26 $06 - note $26 $06 - note $26 $06 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - note $2a $06 - note $2a $06 - vol $5 - note $2a $06 - vol $5 - note $2a $06 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $5 - note $24 $06 - note $24 $06 - note $24 $06 - note $24 $06 - vol $7 - note $28 $01 - vol $3 - note $27 $0b - vol $5 - vol $7 - note $28 $01 - vol $3 - note $27 $03 - vol $7 - note $28 $01 - vol $3 - note $27 $03 - vol $7 - note $28 $01 - vol $3 - note $27 $03 - note $2e $18 - note $2a $06 - note $2a $06 - note $2e $06 - note $2a $06 - note $2a $06 - note $2a $06 - note $2e $06 - note $2a $06 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $7 - note $28 $01 - vol $3 - note $27 $05 - vol $8 - note $28 $01 - vol $3 - note $27 $05 - vol $8 - note $28 $01 - vol $3 - note $27 $11 - vol $9 - note $28 $01 - vol $3 - note $27 $05 - vol $9 - note $28 $01 - vol $3 - note $27 $05 - vol $a - note $28 $01 - vol $3 - note $27 $05 - vol $a - note $28 $01 - vol $3 - note $27 $11 - vol $a - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - vol $b - note $28 $01 - vol $3 - note $27 $05 - goto musiceb3b2 - cmdff diff --git a/audio/common/mus/zeldaSaved.s b/audio/common/mus/zeldaSaved.s deleted file mode 100644 index 378729861..000000000 --- a/audio/common/mus/zeldaSaved.s +++ /dev/null @@ -1,473 +0,0 @@ -musZeldaSavedStart: - -musZeldaSavedChannel1: -musicf65f2: - vibrato $f1 - env $0 $00 - duty $02 - vol $6 - note as4 $0b - note c5 $0b - note cs5 $0b - note ds5 $0b - note f5 $2c - note ds5 $16 - note gs5 $16 - note as5 $0b - rest $05 - vol $3 - note as5 $06 - vol $6 - note f5 $0b - note ds5 $0b - note f5 $2c - note ds5 $16 - note gs5 $16 - note c6 $03 - note cs6 $03 - note c6 $10 - note as5 $0b - note gs5 $0b - note f5 $0b - rest $05 - vol $3 - note f5 $06 - vol $6 - note as5 $0b - note gs5 $0b - note f5 $16 - note ds5 $0b - note cs5 $0b - note as4 $0b - rest $05 - vol $3 - note as4 $06 - vol $6 - note f5 $0b - note ds5 $0b - note f5 $2c - vibrato $01 - env $0 $00 - vol $3 - note f5 $16 - vibrato $f1 - env $0 $00 - vol $6 - note as5 $0b - rest $05 - vol $3 - note as5 $06 - vol $6 - note c6 $0b - note cs6 $0b - note ds6 $0b - rest $05 - vol $3 - note ds6 $06 - vol $6 - note ds6 $21 - note c6 $0b - note f6 $0b - note ds6 $03 - note f6 $03 - note ds6 $05 - note cs6 $0b - note c6 $0b - note as5 $2c - vibrato $01 - env $0 $00 - vol $3 - note as5 $0b - vibrato $f1 - env $0 $00 - vol $6 - note c6 $0b - note cs6 $0b - note f6 $0b - note g6 $0b - note gs6 $05 - note g6 $06 - note f6 $0b - note ds6 $0b - note f6 $2c - note ds6 $05 - rest $01 - vol $4 - note ds6 $07 - rest $01 - vol $3 - note ds6 $05 - rest $03 - vol $6 - note cs6 $05 - rest $01 - vol $4 - note cs6 $07 - rest $01 - vol $3 - note cs6 $05 - rest $03 - vol $6 - note c6 $05 - rest $01 - vol $4 - note c6 $07 - rest $01 - vol $3 - note c6 $05 - rest $03 - vol $6 - note as5 $05 - rest $01 - vol $3 - note as5 $07 - rest $01 - vol $3 - note as5 $05 - rest $03 - vol $6 - note as4 $16 - note f5 $16 - note ds5 $16 - note f5 $0b - note fs5 $0b - note gs5 $16 - vibrato $01 - env $0 $00 - vol $3 - note gs5 $16 - vol $1 - note gs5 $0b - rest $0b - vibrato $f1 - env $0 $00 - vol $6 - note as5 $16 - note f6 $0b - rest $05 - vol $3 - note f6 $06 - vol $6 - note ds6 $0b - note cs6 $0b - note c6 $16 - note cs6 $16 - note c6 $16 - note as5 $0b - note gs5 $0b - note f5 $0b - rest $05 - vol $3 - note f5 $06 - vol $6 - note as5 $0b - note gs5 $0b - note f5 $07 - rest $04 - note f5 $0b - note ds5 $0b - note cs5 $0b - note as4 $05 - rest $01 - vol $5 - note as4 $07 - rest $01 - vol $4 - note as4 $05 - rest $03 - vol $6 - note f5 $05 - rest $01 - vol $4 - note f5 $07 - rest $01 - vol $3 - note f5 $05 - rest $03 - vol $6 - note as5 $05 - rest $06 - vol $5 - note as5 $05 - rest $06 - vol $4 - note as5 $05 - rest $27 - vol $6 - note as5 $0b - note c6 $0b - note cs6 $0b - note ds6 $0b - note f6 $0b - rest $05 - vol $3 - note f6 $06 - vol $6 - note ds6 $0b - note cs6 $0b - note c6 $0b - note as5 $0b - note c6 $0b - note as5 $0b - note gs5 $0b - note f5 $0b - rest $05 - vol $3 - note f5 $0b - rest $06 - vol $6 - note as5 $0b - rest $05 - vol $3 - note as5 $06 - vol $6 - note f5 $16 - note ds6 $0b - note cs6 $0b - note c6 $0b - note cs6 $05 - note c6 $06 - note as5 $0b - note gs5 $0b - note as5 $16 - note ds5 $0b - note f5 $0b - note ds5 $16 - note cs5 $07 - note ds5 $07 - note cs5 $08 - note c5 $07 - note cs5 $07 - note c5 $08 - note gs4 $07 - note as4 $07 - note gs4 $08 - note as4 $05 - rest $01 - vol $4 - note as4 $07 - rest $09 - vol $6 - note ds5 $05 - rest $01 - vol $4 - note ds5 $07 - rest $09 - vol $6 - note as5 $05 - rest $01 - vol $4 - note as5 $07 - rest $01 - vol $2 - note as5 $05 - rest $45 - goto musicf65f2 - cmdff -musZeldaSavedChannel0: -musicf67c7: - vibrato $00 - env $0 $04 - duty $02 - vol $6 - note as3 $16 - note f4 $16 - note gs4 $16 - note f4 $16 - note c4 $16 - note f4 $16 - note cs4 $16 - note f4 $16 - note as4 $16 - note f4 $16 - note c4 $16 - note g4 $16 - note as3 $16 - note f4 $16 - note gs4 $16 - note f4 $16 - note gs3 $16 - note gs4 $16 - note fs3 $16 - note f4 $16 - note as4 $16 - note f4 $16 - note fs3 $16 - note f4 $16 - note f3 $16 - note gs4 $16 - note c5 $16 - note gs4 $16 - note f3 $16 - note gs4 $16 - note as3 $16 - note f4 $16 - note gs4 $16 - note cs4 $16 - note ds4 $16 - note cs4 $0b - note c4 $0b - note as3 $0b - note c4 $0b - note cs4 $0b - note f4 $0b - note as4 $16 - note f4 $16 - note g4 $16 - vol $6 - note f4 $0b - note ds4 $0b - vibrato $f1 - env $0 $00 - note fs4 $2c - note f3 $58 - rest $16 - note fs3 $16 - note f3 $4d - rest $0b - note fs3 $2c - note gs3 $2c - note fs3 $2c - note g3 $16 - note gs3 $0b - rest $0b - note gs3 $16 - vol $6 - note as3 $0b - rest $0b - note as3 $16 - note c4 $0b - rest $0b - note cs4 $16 - note as3 $16 - note c4 $16 - note ds4 $16 - note f4 $16 - note c4 $16 - note cs4 $16 - note f4 $16 - note as4 $16 - note f4 $16 - note ds4 $16 - note gs4 $16 - note f4 $16 - note gs4 $16 - note g4 $16 - note ds4 $16 - note f4 $16 - note cs4 $16 - note ds4 $16 - note as3 $16 - note as3 $16 - note c4 $0b - note cs4 $0b - note c4 $16 - note gs3 $16 - goto musicf67c7 - cmdff -musZeldaSavedChannel4: -musicf688a: - duty $0f - rest $0b - note as4 $0b - note c5 $0b - note cs5 $0b - note ds5 $0b - note f5 $2c - note ds5 $16 - note gs5 $16 - note as5 $0b - rest $0b - note f5 $0b - note ds5 $0b - note f5 $2c - note ds5 $16 - note gs5 $16 - note c6 $03 - note cs6 $03 - note c6 $10 - note as5 $0b - note gs5 $0b - note f5 $0b - rest $0b - note as5 $0b - note gs5 $0b - note f5 $16 - note ds5 $0b - note cs5 $0b - note as4 $0b - rest $0b - note f5 $0b - note ds5 $0b - note f5 $2c - rest $16 - note as5 $0b - rest $0b - note c6 $0b - note cs6 $0b - note ds6 $0b - rest $0b - note ds6 $21 - note c6 $0b - note f6 $0b - note ds6 $03 - note f6 $03 - note ds6 $05 - note cs6 $0b - note c6 $0b - note as5 $2c - note as5 $0b - note c6 $0b - note cs6 $0b - note f6 $0b - note g6 $0b - note gs6 $05 - note g6 $06 - note f6 $0b - note ds6 $0b - note f6 $2c - rest $4d - duty $0e - note cs3 $2c - note c3 $16 - note ds3 $16 - note f3 $16 - note c3 $16 - rest $16 - note cs3 $16 - note c3 $16 - note c3 $16 - note f3 $16 - note c3 $16 - note cs3 $2c - note c3 $2c - note as2 $2c - note ds3 $2c - note as2 $2c - note ds3 $16 - duty $0f - note ds3 $0b - rest $0b - duty $0e - note fs3 $2c - note gs3 $58 - duty $0f - note gs3 $16 - duty $0e - note fs3 $16 - note gs3 $26 - duty $0f - note gs3 $06 - duty $0e - note gs3 $2c - note as3 $2c - note gs3 $2c - note fs3 $2c - note ds3 $58 - duty $0f - note ds3 $16 - rest $16 - goto musicf688a - cmdff - -.define musZeldaSavedChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/common/noise.json b/audio/common/noise.json new file mode 100644 index 000000000..c1fe48a95 --- /dev/null +++ b/audio/common/noise.json @@ -0,0 +1,117 @@ +[ + { + "note": 36, + "env": 1, + "nr43": 71, + "name": "snare", + "description": "snare drum, short dash noise" + }, + { + "note": 34, + "env": 0, + "nr43": 71, + "name": "crash", + "description": "crash" + }, + { + "note": 35, + "env": 2, + "nr43": 70, + "name": "tom", + "description": "tom-like drum sound" + }, + { + "note": 38, + "env": 2, + "nr43": 38, + "name": "dashLong", + "description": "long dash noise" + }, + { + "note": 40, + "env": 0, + "nr43": 53, + "name": "waveCrash", + "description": "wave crash" + }, + { + "note": 39, + "env": 2, + "nr43": 20, + "name": "dashLonger", + "description": "longer dash noise" + }, + { + "note": 42, + "env": 1, + "nr43": 20, + "name": "dash", + "description": "dash noise" + }, + { + "note": 46, + "env": 6, + "nr43": 7, + "name": "dashBush", + "description": "long dash noise, like a bush break" + }, + { + "note": 82, + "env": 3, + "nr43": 23, + "name": "dashAlt", + "description": "dash noise" + }, + { + "note": 50, + "env": 2, + "nr43": 55, + "name": "tomDash", + "description": "tom-like, dash sound" + }, + { + "note": 47, + "env": 2, + "nr43": 69, + "name": "crumble", + "description": "crumble noise" + }, + { + "note": 41, + "env": 2, + "nr43": 71, + "name": "dig", + "description": "digging, bumping" + }, + { + "note": 48, + "env": 0, + "nr43": 7, + "name": "crashAlt", + "description": "crash" + }, + { + "note": 37, + "env": 9, + "nr43": 71, + "name": "crashIn", + "description": "fade-in variant of crash ($22)", + "editableOnly": true + }, + { + "note": 44, + "env": 9, + "nr43": 71, + "name": "snareIn", + "description": "fade-in variant of snare ($24)", + "editableOnly": true + }, + { + "note": 43, + "env": 10, + "nr43": 55, + "name": "tomDashIn", + "description": "fade-in variant of tomDash ($32)", + "editableOnly": true + } +] diff --git a/audio/common/noise.s b/audio/common/noise.s deleted file mode 100644 index da359bb7b..000000000 --- a/audio/common/noise.s +++ /dev/null @@ -1,22 +0,0 @@ -; This table defines the types of noises the noise channel can make. -; -; Data format: -; b0: "Note", aka the value passed to the "note" macro, used as a lookup index for this table -; b1: Controls volume envelope, NR42 register (should always leave upper nybble as $0) -; b2: Value written directly to NR43 register (determines most characteristics of the sound) - -noiseFrequencyTable: - .db $24 $01 $47 - .db $22 $00 $47 - .db $23 $02 $46 - .db $26 $02 $26 - .db $28 $00 $35 - .db $27 $02 $14 - .db $2a $01 $14 - .db $2e $06 $07 - .db $52 $03 $17 - .db $32 $02 $37 - .db $2f $02 $45 - .db $29 $02 $47 - .db $30 $00 $07 - .db $ff diff --git a/audio/common/sfx/aquamentusHover.s b/audio/common/sfx/aquamentusHover.s deleted file mode 100644 index c1f4942d9..000000000 --- a/audio/common/sfx/aquamentusHover.s +++ /dev/null @@ -1,47 +0,0 @@ -sndAquamentusHoverStart: - -sndAquamentusHoverChannel2: - duty $01 -musice9a8c: - vol $9 - cmdf8 $64 - note b2 $04 - cmdf8 $00 - vol $b - cmdf8 $64 - note b2 $04 - cmdf8 $00 - vol $e - cmdf8 $64 - note b2 $04 - cmdf8 $00 - vol $9 - cmdf8 $64 - note b2 $04 - cmdf8 $00 - vol $8 - cmdf8 $64 - note b2 $04 - cmdf8 $00 - vol $7 - cmdf8 $64 - note b2 $04 - cmdf8 $00 - vol $6 - cmdf8 $64 - note b2 $04 - cmdf8 $00 - vol $5 - cmdf8 $64 - note b2 $04 - cmdf8 $00 - vol $4 - cmdf8 $64 - note b2 $04 - cmdf8 $00 - vol $3 - cmdf8 $64 - note b2 $04 - cmdf8 $00 - goto musice9a8c - cmdff diff --git a/audio/common/sfx/baseball.s b/audio/common/sfx/baseball.s deleted file mode 100644 index b705f40a7..000000000 --- a/audio/common/sfx/baseball.s +++ /dev/null @@ -1,40 +0,0 @@ -sndBaseballStart: - -sndBaseballChannel2: - cmdf0 $80 - cmdf8 $1e - vol $d - .db $07 $4f $01 - vol $0 - .db $00 $00 $01 - vol $d - .db $07 $4a $01 - vol $0 - .db $00 $00 $01 - vol $d - .db $07 $4c $01 - vol $0 - .db $00 $00 $01 - vol $d - .db $07 $4e $01 - vol $0 - .db $00 $00 $01 - vol $d - .db $07 $49 $01 - vol $0 - .db $00 $00 $01 - vol $d - .db $07 $51 $01 - vol $0 - .db $00 $00 $01 - vol $d - .db $07 $4b $01 - vol $0 - .db $00 $00 $01 - vol $d - .db $07 $4f $01 - vol $0 - .db $00 $00 $01 - vol $d - .db $07 $4f $01 - cmdff diff --git a/audio/common/sfx/beam.s b/audio/common/sfx/beam.s deleted file mode 100644 index 055dc0821..000000000 --- a/audio/common/sfx/beam.s +++ /dev/null @@ -1,45 +0,0 @@ -sndBeamStart: - -sndBeamChannel2: - cmdf0 $3c - vol $9 - .db $06 $0b $02 - vol $9 - .db $06 $0b $02 - vol $8 - .db $06 $0b $02 - vol $8 - .db $06 $0b $02 - vol $7 - .db $06 $0b $02 - vol $7 - .db $06 $0b $02 - vol $6 - .db $06 $0b $02 - vol $5 - .db $06 $0b $02 - vol $5 - .db $06 $0b $02 - vol $4 - .db $06 $0b $02 - vol $3 - .db $06 $0b $02 - vol $2 - .db $06 $0b $02 - vol $2 - .db $06 $0b $02 - cmdff - -sndBeamChannel7: - cmdf0 $b0 - note $37 $02 - cmdf0 $83 - note $35 $03 - note $36 $03 - note $37 $03 - note $35 $03 - note $36 $03 - note $37 $03 - note $35 $03 - note $36 $05 - cmdff diff --git a/audio/common/sfx/beam1.s b/audio/common/sfx/beam1.s deleted file mode 100644 index b741caf22..000000000 --- a/audio/common/sfx/beam1.s +++ /dev/null @@ -1,36 +0,0 @@ -sndBeam1Start: - -sndBeam1Channel7: - cmdf0 $20 - note $36 $02 - cmdf0 $50 - note $44 $02 - cmdf0 $70 - note $36 $02 - cmdf0 $80 - note $44 $02 - cmdf0 $90 - note $36 $02 - cmdf0 $c0 - note $44 $02 - cmdf0 $90 - note $36 $02 - cmdf0 $80 - note $44 $02 - cmdf0 $70 - note $36 $03 - cmdf0 $50 - note $44 $03 - cmdf0 $40 - note $36 $03 - cmdf0 $30 - note $44 $03 - cmdf0 $20 - note $36 $03 - cmdf0 $10 - note $44 $03 - cmdf0 $10 - note $36 $03 - cmdf0 $11 - note $44 $03 - cmdff diff --git a/audio/common/sfx/beam2.s b/audio/common/sfx/beam2.s deleted file mode 100644 index 5aa81ffe4..000000000 --- a/audio/common/sfx/beam2.s +++ /dev/null @@ -1,46 +0,0 @@ -sndBeam2Start: - -sndBeam2Channel7: - cmdf0 $10 - note $24 $01 - cmdf0 $20 - note $24 $01 - cmdf0 $40 - note $24 $01 - cmdf0 $60 - note $24 $01 - cmdf0 $80 - note $24 $01 - cmdf0 $90 - note $25 $02 - cmdf0 $90 - note $25 $02 - cmdf0 $80 - note $26 $02 - cmdf0 $70 - note $26 $02 - cmdf0 $60 - note $27 $02 - cmdf0 $60 - note $27 $02 - cmdf0 $50 - note $34 $02 - cmdf0 $40 - note $34 $02 - cmdf0 $40 - note $35 $02 - cmdf0 $30 - note $35 $02 - cmdf0 $20 - note $36 $02 - cmdf0 $10 - note $36 $02 - cmdf0 $10 - note $36 $02 - cmdff - -.ifdef ROM_SEASONS -.ifdef BUILD_VANILLA - .db $ff $ff -.endif -.endif diff --git a/audio/common/sfx/becomeBaby.s b/audio/common/sfx/becomeBaby.s deleted file mode 100644 index 171bdfc48..000000000 --- a/audio/common/sfx/becomeBaby.s +++ /dev/null @@ -1,13 +0,0 @@ -sndBecomeBabyStart: - -sndBecomeBabyChannel2: - vol $9 - note f7 $08 - note gs7 $08 - note g7 $08 - note gs7 $08 - note f7 $08 - note gs7 $08 - note g7 $08 - note gs7 $08 - cmdff diff --git a/audio/common/sfx/bigExplosion.s b/audio/common/sfx/bigExplosion.s deleted file mode 100644 index 8f108de63..000000000 --- a/audio/common/sfx/bigExplosion.s +++ /dev/null @@ -1,41 +0,0 @@ -sndBigExplosionStart: - -sndBigExplosionChannel7: - cmdf0 $c0 - note $24 $03 - note $25 $01 - note $26 $01 - note $34 $01 - note $36 $01 - note $37 $01 - note $44 $02 - note $45 $02 - note $46 $02 - note $47 $02 - note $54 $02 - note $55 $02 - note $56 $02 - note $57 $02 - note $56 $02 - note $54 $02 - note $46 $02 - note $44 $02 - note $45 $02 - note $46 $02 - note $47 $02 - note $54 $02 - note $55 $02 - note $56 $02 - note $57 $02 - note $64 $02 - note $65 $02 - note $66 $02 - note $67 $02 - note $74 $02 - note $67 $01 - cmdf0 $c7 - note $66 $04 - note $64 $06 - note $66 $06 - note $74 $46 - cmdff diff --git a/audio/common/sfx/bigExplosion2.s b/audio/common/sfx/bigExplosion2.s deleted file mode 100644 index 687424c34..000000000 --- a/audio/common/sfx/bigExplosion2.s +++ /dev/null @@ -1,105 +0,0 @@ -sndBigExplosion2Start: - -sndBigExplosion2Channel7: - cmdf0 $90 - note $24 $02 - cmdf0 $90 - note $25 $02 - cmdf0 $90 - note $26 $02 - cmdf0 $90 - note $27 $02 - cmdf0 $90 - note $34 $02 - cmdf0 $90 - note $35 $02 - cmdf0 $90 - note $36 $02 - cmdf0 $90 - note $35 $02 - cmdf0 $90 - note $34 $02 - cmdf0 $90 - note $27 $02 - cmdf0 $90 - note $34 $02 - cmdf0 $90 - note $35 $02 - cmdf0 $90 - note $36 $02 - cmdf0 $90 - note $37 $02 - cmdf0 $90 - note $44 $02 - cmdf0 $90 - note $45 $02 - cmdf0 $90 - note $44 $02 - cmdf0 $90 - note $37 $02 - cmdf0 $90 - note $36 $02 - cmdf0 $90 - note $37 $02 - cmdf0 $90 - note $44 $02 - cmdf0 $90 - note $45 $02 - cmdf0 $90 - note $46 $02 - cmdf0 $90 - note $47 $02 - cmdf0 $b0 - note $36 $03 - cmdf0 $90 - note $47 $02 - cmdf0 $90 - note $47 $02 - cmdf0 $90 - note $47 $02 - cmdf0 $90 - note $47 $02 - cmdf0 $90 - note $34 $03 - cmdf0 $90 - note $35 $02 - cmdf0 $90 - note $35 $04 - cmdf0 $90 - note $36 $03 - cmdf0 $90 - note $37 $0a - cmdf0 $90 - note $44 $0a - cmdf0 $90 - note $46 $03 - note $47 $03 - note $46 $03 - note $45 $03 - note $46 $03 - note $47 $03 - note $54 $03 - cmdf0 $90 - note $55 $05 - note $47 $05 - note $46 $05 - note $47 $05 - cmdf0 $90 - note $55 $06 - cmdf0 $90 - note $56 $05 - note $55 $05 - note $54 $05 - note $55 $05 - note $56 $05 - cmdf0 $90 - note $57 $05 - cmdf0 $90 - note $64 $05 - note $57 $05 - note $56 $05 - note $57 $05 - note $64 $05 - note $65 $05 - note $66 $14 - cmdff diff --git a/audio/common/sfx/bigSword.s b/audio/common/sfx/bigSword.s deleted file mode 100644 index 5c928672a..000000000 --- a/audio/common/sfx/bigSword.s +++ /dev/null @@ -1,44 +0,0 @@ -sndBigSwordStart: - -sndBigSwordChannel7: - cmdf0 $90 - note $54 $01 - note $47 $01 - note $34 $01 - note $36 $01 - note $35 $01 - note $44 $01 - note $46 $01 - note $54 $01 - note $56 $01 - cmdf0 $70 - note $54 $01 - note $47 $01 - note $34 $01 - note $36 $01 - note $35 $01 - note $44 $01 - note $46 $01 - note $54 $01 - note $56 $01 - cmdf0 $40 - note $54 $01 - note $47 $01 - note $34 $01 - note $36 $01 - note $35 $01 - note $44 $01 - note $46 $01 - note $54 $01 - note $56 $01 - cmdf0 $34 - note $54 $01 - note $47 $01 - note $34 $01 - note $36 $01 - note $35 $01 - note $44 $01 - note $46 $01 - note $54 $01 - note $56 $01 - cmdff diff --git a/audio/common/sfx/blueStalfosCharge.s b/audio/common/sfx/blueStalfosCharge.s deleted file mode 100644 index c52576b36..000000000 --- a/audio/common/sfx/blueStalfosCharge.s +++ /dev/null @@ -1,126 +0,0 @@ -sndBlueStalfosChargeStart: - -sndBlueStalfosChargeChannel2: - duty $00 - cmdf0 $d9 - .db $06 $0b $01 - .db $06 $0d $01 - .db $06 $0f $01 - .db $06 $11 $01 - .db $06 $13 $01 - .db $06 $15 $01 - .db $06 $17 $01 - .db $06 $19 $01 - .db $06 $1b $01 - .db $06 $1d $01 - .db $06 $1f $01 - .db $06 $21 $01 - .db $06 $23 $01 - .db $06 $25 $01 - .db $06 $27 $01 - .db $06 $28 $01 - .db $06 $2a $01 - .db $06 $2c $01 - .db $06 $2e $01 - .db $06 $30 $01 - .db $06 $32 $01 - .db $06 $34 $01 - .db $06 $36 $01 - .db $06 $38 $01 - .db $06 $3a $01 - .db $06 $3c $01 - .db $06 $3e $01 - .db $06 $40 $01 - .db $06 $42 $01 - .db $06 $44 $01 - .db $06 $46 $01 - .db $06 $48 $01 - .db $06 $4a $01 - .db $06 $4c $01 - .db $06 $4e $01 - .db $06 $50 $01 - .db $06 $52 $01 - .db $06 $54 $01 - .db $06 $56 $01 - .db $06 $58 $01 - .db $06 $5a $01 - .db $06 $5c $01 - .db $06 $5e $01 - .db $06 $60 $01 - .db $06 $62 $01 - .db $06 $64 $01 - .db $06 $66 $01 - .db $06 $68 $01 - .db $06 $6a $01 - .db $06 $6c $01 - .db $06 $6e $01 - .db $06 $70 $01 - .db $06 $72 $01 - .db $06 $74 $01 - .db $06 $76 $01 - .db $06 $78 $01 - .db $06 $7a $01 - .db $06 $7c $01 - .db $06 $7e $01 - .db $06 $80 $01 - .db $06 $82 $01 - .db $06 $84 $01 - .db $06 $86 $01 - .db $06 $88 $01 - .db $06 $8a $01 - .db $06 $8c $01 - .db $06 $8e $01 - .db $06 $90 $01 - .db $06 $92 $01 - .db $06 $94 $01 - .db $06 $96 $01 - .db $06 $98 $01 - .db $06 $9a $01 - .db $06 $9c $01 - .db $06 $9e $01 - .db $06 $a0 $01 - .db $06 $a2 $01 - .db $06 $a4 $01 - .db $06 $a6 $01 - .db $06 $a8 $01 - .db $06 $aa $01 - .db $06 $ac $01 - .db $06 $ae $01 - .db $06 $b0 $01 - .db $06 $b2 $01 - .db $06 $b4 $01 - .db $06 $b6 $01 - .db $06 $b8 $01 - .db $06 $ba $01 - .db $06 $bc $01 - .db $06 $be $01 - .db $06 $c0 $01 - .db $06 $c2 $01 - .db $06 $c4 $01 - .db $06 $c6 $01 - .db $06 $c8 $01 - .db $06 $ca $01 - .db $06 $cc $01 - .db $06 $ce $01 - .db $06 $d0 $01 - .db $06 $d2 $01 - .db $06 $d4 $01 - .db $06 $d6 $01 - .db $06 $d8 $01 - .db $06 $da $01 - .db $06 $dc $01 - .db $06 $de $01 - .db $06 $e0 $01 - .db $06 $e2 $01 - .db $06 $e4 $01 - .db $06 $e6 $01 - .db $06 $e8 $01 - .db $06 $ea $01 - .db $06 $ec $01 - .db $06 $ee $01 - .db $06 $f0 $01 - .db $06 $f2 $01 - .db $06 $f4 $01 - .db $06 $f6 $01 - .db $06 $f8 $01 - cmdff diff --git a/audio/common/sfx/bombLand.s b/audio/common/sfx/bombLand.s deleted file mode 100644 index 49d3af212..000000000 --- a/audio/common/sfx/bombLand.s +++ /dev/null @@ -1,12 +0,0 @@ -sndBombLandStart: - -sndBombLandChannel2: - duty $02 - vol $d - cmdf8 $7f - note e2 $05 - cmdf8 $00 - env $0 $00 - cmdf8 $81 - note cs3 $05 - cmdff diff --git a/audio/common/sfx/boomerang.s b/audio/common/sfx/boomerang.s deleted file mode 100644 index 82eb91f1c..000000000 --- a/audio/common/sfx/boomerang.s +++ /dev/null @@ -1,14 +0,0 @@ -sndBoomerangStart: - -sndBoomerangChannel7: - cmdf0 $20 - note $16 $02 - cmdf0 $50 - note $25 $01 - cmdf0 $80 - note $34 $01 - cmdf0 $c0 - note $37 $01 - cmdf0 $f0 - note $44 $01 - cmdff diff --git a/audio/common/sfx/bossDamage.s b/audio/common/sfx/bossDamage.s deleted file mode 100644 index 5e48270b8..000000000 --- a/audio/common/sfx/bossDamage.s +++ /dev/null @@ -1,109 +0,0 @@ -sndBossDamageStart: - -sndBossDamageChannel2: - cmdf0 $3c - vol $f - .db $04 $16 $01 - vol $f - .db $06 $0b $01 - vol $f - .db $04 $84 $01 - vol $f - .db $06 $42 $01 - vol $f - .db $04 $e5 $01 - vol $f - .db $06 $73 $01 - vol $f - .db $05 $3c $01 - vol $f - .db $06 $9e $01 - vol $f - .db $05 $8a $01 - vol $f - .db $06 $c5 $01 - vol $f - .db $05 $ce $01 - vol $f - .db $06 $e7 $01 - vol $f - .db $05 $ac $01 - vol $f - .db $06 $d6 $01 - vol $f - .db $05 $8a $01 - vol $f - .db $06 $c5 $01 - vol $f - .db $05 $64 $01 - vol $f - .db $06 $b2 $01 - vol $f - .db $05 $3c $01 - vol $f - .db $06 $9e $01 - vol $f - .db $05 $12 $01 - vol $f - .db $06 $89 $01 - vol $f - .db $04 $e5 $01 - vol $f - .db $06 $73 $01 - vol $f - .db $04 $b6 $01 - vol $f - .db $06 $5b $01 - vol $f - .db $04 $84 $01 - vol $f - .db $06 $42 $01 - vol $f - .db $04 $4f $01 - vol $f - .db $06 $27 $01 - vol $f - .db $03 $9b $01 - vol $f - .db $05 $ce $01 - vol $6 - .db $05 $ac $01 - vol $6 - .db $06 $d6 $01 - vol $6 - .db $05 $8a $01 - vol $6 - .db $06 $c5 $01 - vol $6 - .db $05 $64 $01 - vol $6 - .db $06 $b2 $01 - vol $6 - .db $05 $3c $01 - vol $6 - .db $06 $9e $01 - vol $6 - .db $05 $12 $01 - vol $6 - .db $06 $89 $01 - vol $6 - .db $04 $e5 $01 - vol $6 - .db $06 $73 $01 - vol $6 - .db $04 $b6 $01 - vol $6 - .db $06 $5b $01 - vol $6 - .db $04 $84 $01 - vol $6 - .db $06 $42 $01 - vol $6 - .db $04 $4f $01 - vol $6 - .db $06 $27 $01 - vol $6 - .db $03 $9b $01 - vol $6 - .db $05 $ce $01 - cmdff diff --git a/audio/common/sfx/bossDead.s b/audio/common/sfx/bossDead.s deleted file mode 100644 index 39b552da2..000000000 --- a/audio/common/sfx/bossDead.s +++ /dev/null @@ -1,273 +0,0 @@ -sndBossDeadStart: - -sndBossDeadChannel2: - duty $00 - vol $f - note c3 $01 - vol $0 - rest $01 - vol $f - note c3 $01 - vol $0 - rest $01 - vol $f - note cs3 $01 - vol $0 - rest $01 - vol $f - note cs3 $01 - vol $0 - rest $01 - vol $f - note d3 $01 - vol $0 - rest $01 - vol $f - note d3 $01 - vol $0 - rest $01 - vol $f - note ds3 $01 - vol $0 - rest $01 - vol $f - note ds3 $01 - vol $0 - rest $01 - vol $f - note e3 $01 - vol $0 - rest $01 - vol $f - note e3 $01 - vol $0 - rest $01 - vol $f - note f3 $01 - vol $0 - rest $01 - vol $f - note f3 $01 - vol $0 - rest $01 - vol $f - note fs3 $01 - vol $0 - rest $01 - vol $f - note fs3 $01 - vol $0 - rest $01 - vol $f - note fs3 $01 - vol $0 - rest $01 - vol $f - note fs3 $01 - vol $0 - rest $01 - vol $f - note g3 $01 - vol $0 - rest $01 - vol $f - note g3 $01 - vol $0 - rest $01 - vol $f - note g3 $01 - vol $0 - rest $01 - vol $f - note c3 $01 - vol $0 - rest $01 - vol $f - note c3 $01 - vol $0 - rest $01 - vol $f - note c3 $01 - vol $0 - rest $01 - vol $f - note c3 $01 - vol $0 - rest $01 - vol $f - note c3 $01 - vol $0 - rest $01 - vol $f - note c3 $01 - vol $0 - rest $01 - vol $f - note c3 $01 - vol $0 - rest $01 - vol $f - note a3 $01 - vol $0 - rest $01 - vol $f - note a3 $01 - vol $0 - rest $01 - vol $f - note gs3 $01 - vol $0 - rest $01 - vol $f - note gs3 $01 - vol $0 - rest $01 - vol $f - note g3 $01 - vol $0 - rest $01 - vol $f - note g3 $01 - vol $0 - rest $01 - vol $f - note g3 $01 - vol $0 - rest $01 - vol $f - note fs3 $01 - vol $0 - rest $01 - vol $f - note fs3 $01 - vol $0 - rest $01 - vol $f - note fs3 $01 - vol $0 - rest $01 - vol $f - note fs3 $01 - vol $0 - rest $01 - vol $f - note fs3 $01 - vol $0 - rest $01 - vol $f - note fs3 $01 - vol $0 - rest $01 - vol $f - note fs3 $01 - vol $0 - rest $01 - vol $f - note fs3 $01 - vol $0 - rest $01 - vol $f - note f3 $01 - vol $0 - rest $01 - vol $f - note f3 $01 - vol $0 - rest $01 - vol $f - note e3 $01 - vol $0 - rest $01 - vol $f - note e3 $01 - vol $0 - rest $01 - vol $f - note ds3 $01 - vol $0 - rest $01 - vol $f - note ds3 $01 - vol $0 - rest $01 - vol $f - note d3 $01 - vol $0 - rest $01 - vol $f - note d3 $01 - vol $0 - rest $01 - vol $f - note cs3 $01 - vol $0 - rest $01 - vol $f - note cs3 $01 - vol $0 - rest $01 - vol $f - note c3 $01 - vol $0 - rest $01 - vol $f - note c3 $01 - vol $0 - rest $01 - vol $f - note b2 $01 - vol $0 - rest $01 - vol $f - note b2 $01 - vol $0 - rest $01 - vol $f - note as2 $01 - vol $0 - rest $01 - vol $f - note as2 $01 - vol $0 - rest $01 - vol $3 - note g3 $01 - vol $0 - rest $01 - vol $3 - note fs3 $01 - vol $0 - rest $01 - vol $3 - note f3 $01 - vol $0 - rest $01 - vol $3 - note e3 $01 - vol $0 - rest $01 - vol $3 - note ds3 $01 - vol $0 - rest $01 - vol $3 - note d3 $01 - vol $0 - rest $01 - vol $3 - note cs3 $01 - vol $0 - rest $01 - vol $3 - note c3 $01 - vol $0 - rest $01 - vol $3 - note b2 $01 - vol $0 - rest $01 - vol $3 - note as2 $01 - vol $0 - rest $01 - cmdff diff --git a/audio/common/sfx/breakRock.s b/audio/common/sfx/breakRock.s deleted file mode 100644 index 2cfa5469c..000000000 --- a/audio/common/sfx/breakRock.s +++ /dev/null @@ -1,26 +0,0 @@ -sndBreakRockStart: - -sndBreakRockChannel7: - cmdf0 $a0 - note $64 $03 - cmdf0 $00 - note $00 $01 - cmdf0 $90 - note $44 $03 - cmdf0 $00 - note $00 $01 - cmdf0 $90 - note $34 $03 - cmdf0 $00 - note $00 $01 - cmdf0 $80 - note $14 $03 - cmdf0 $00 - note $00 $01 - cmdf0 $30 - note $14 $03 - cmdf0 $00 - note $00 $01 - cmdf0 $30 - note $14 $03 - cmdff diff --git a/audio/common/sfx/chargeSword.s b/audio/common/sfx/chargeSword.s deleted file mode 100644 index 7b4a189df..000000000 --- a/audio/common/sfx/chargeSword.s +++ /dev/null @@ -1,42 +0,0 @@ -sndChargeSwordStart: - -sndChargeSwordChannel2: - duty $02 - vol $b - note g4 $02 - note b4 $02 - note as4 $02 - note c5 $02 - vol $a - note b4 $02 - note cs5 $02 - note c5 $02 - note d5 $02 - vol $9 - note cs5 $02 - note ds5 $02 - note d5 $02 - note e5 $02 - vol $8 - note ds5 $02 - note f5 $02 - note e5 $02 - note fs5 $02 - vol $7 - note f5 $02 - note g5 $02 - vol $6 - note fs5 $02 - note gs5 $02 - vol $5 - note g5 $02 - note a5 $02 - vol $4 - note gs5 $02 - vol $3 - note as5 $02 - vol $2 - note c6 $02 - vol $1 - note f6 $02 - cmdff diff --git a/audio/common/sfx/chicken.s b/audio/common/sfx/chicken.s deleted file mode 100644 index 6f81f13e9..000000000 --- a/audio/common/sfx/chicken.s +++ /dev/null @@ -1,31 +0,0 @@ -sndChickenStart: - -sndChickenChannel2: - cmdf0 $80 - vol $9 - .db $07 $2b $01 - .db $07 $10 $01 - .db $07 $2b $01 - .db $07 $10 $03 - vol $0 - .db $00 $00 $01 - vol $9 - .db $07 $4d $01 - .db $07 $2b $01 - .db $07 $4d $01 - .db $07 $2b $01 - vol $0 - .db $00 $00 $08 - vol $9 - .db $07 $10 $01 - .db $06 $f4 $01 - .db $07 $10 $01 - .db $06 $f4 $01 - vol $0 - .db $00 $00 $08 - vol $9 - .db $07 $10 $01 - .db $06 $f4 $01 - .db $07 $10 $01 - .db $06 $f4 $01 - cmdff diff --git a/audio/common/sfx/circling.s b/audio/common/sfx/circling.s deleted file mode 100644 index f93de9ae8..000000000 --- a/audio/common/sfx/circling.s +++ /dev/null @@ -1,275 +0,0 @@ -sndCirclingStart: - -sndCirclingChannel2: - duty $00 - vol $1 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $02 - cmdf8 $00 - env $0 $00 - vol $2 - cmdf8 $02 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $3 - cmdf8 $02 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $4 - cmdf8 $03 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $5 - cmdf8 $03 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $6 - cmdf8 $03 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $7 - cmdf8 $04 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $7 - cmdf8 $04 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $7 - cmdf8 $04 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $6 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $6 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $6 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $5 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $5 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $5 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $4 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $4 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $4 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $3 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $3 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $3 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $2 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $2 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $2 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $1 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $1 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - vol $1 - cmdf8 $05 - note ds7 $02 - cmdf8 $00 - vol $1 - env $0 $01 - cmdf8 $02 - note ds7 $01 - cmdf8 $00 - env $0 $00 - cmdff diff --git a/audio/common/sfx/clink.s b/audio/common/sfx/clink.s deleted file mode 100644 index 9003621f3..000000000 --- a/audio/common/sfx/clink.s +++ /dev/null @@ -1,12 +0,0 @@ -sndClinkStart: - -sndClinkChannel2: - duty $00 - vol $d - note gs7 $01 - vol $0 - rest $03 - vol $b - env $0 $01 - note c8 $0a - cmdff diff --git a/audio/common/sfx/clink2.s b/audio/common/sfx/clink2.s deleted file mode 100644 index 1983586b2..000000000 --- a/audio/common/sfx/clink2.s +++ /dev/null @@ -1,8 +0,0 @@ -sndClink2Start: - -sndClink2Channel2: - duty $00 - vol $9 - env $0 $01 - note as6 $0a - cmdff diff --git a/audio/common/sfx/closeMenu.s b/audio/common/sfx/closeMenu.s deleted file mode 100644 index 04c842106..000000000 --- a/audio/common/sfx/closeMenu.s +++ /dev/null @@ -1,17 +0,0 @@ -sndCloseMenuStart: - -sndCloseMenuChannel2: - duty $02 - vol $d - env $1 $00 - cmdf8 $d3 - note g4 $09 - cmdff - -sndCloseMenuChannel3: - duty $01 - vol $d - env $1 $00 - cmdf8 $e0 - note g4 $09 - cmdff diff --git a/audio/common/sfx/compass.s b/audio/common/sfx/compass.s deleted file mode 100644 index aae01baaf..000000000 --- a/audio/common/sfx/compass.s +++ /dev/null @@ -1,21 +0,0 @@ -sndCompassStart: - -sndCompassChannel2: - duty $02 - vol $9 - note gs5 $06 - vol $3 - note gs5 $06 - vol $9 - note as5 $06 - vol $3 - note as5 $06 - vol $9 - note b5 $06 - vol $3 - note b5 $06 - vol $9 - note fs6 $06 - vol $3 - note fs6 $06 - cmdff diff --git a/audio/common/sfx/cutGrass.s b/audio/common/sfx/cutGrass.s deleted file mode 100644 index b7a1e9a06..000000000 --- a/audio/common/sfx/cutGrass.s +++ /dev/null @@ -1,22 +0,0 @@ -sndCutGrassStart: - -sndCutGrassChannel7: - cmdf0 $60 - note $34 $04 - cmdf0 $00 - note $00 $02 - cmdf0 $50 - note $06 $04 - cmdf0 $00 - note $00 $02 - cmdf0 $40 - note $06 $04 - cmdf0 $00 - note $00 $02 - cmdf0 $30 - note $06 $04 - cmdf0 $00 - note $00 $02 - cmdf0 $20 - note $06 $04 - cmdff diff --git a/audio/common/sfx/damageEnemy.s b/audio/common/sfx/damageEnemy.s deleted file mode 100644 index 7709a663a..000000000 --- a/audio/common/sfx/damageEnemy.s +++ /dev/null @@ -1,14 +0,0 @@ -sndDamageEnemyStart: - -sndDamageEnemyChannel2: - duty $00 - vol $d - cmdf8 $81 - note f4 $04 - cmdf8 $00 - vol $c - note g2 $02 - vol $e - cmdf8 $7f - note g2 $07 - cmdff diff --git a/audio/common/sfx/damageLink.s b/audio/common/sfx/damageLink.s deleted file mode 100644 index b0d4a0fcf..000000000 --- a/audio/common/sfx/damageLink.s +++ /dev/null @@ -1,11 +0,0 @@ -sndDamageLinkStart: - -sndDamageLinkChannel5: - cmdfd $fd - duty $2d - note f2 $01 - cmdf8 $e7 - note c5 $03 - cmdf8 $00 - cmdfd $00 - cmdff diff --git a/audio/common/sfx/dekuScrub.s b/audio/common/sfx/dekuScrub.s deleted file mode 100644 index e5f785f7a..000000000 --- a/audio/common/sfx/dekuScrub.s +++ /dev/null @@ -1,16 +0,0 @@ -sndDekuScrubStart: - -sndDekuScrubChannel2: - duty $00 - vol $d - env $1 $00 - cmdf8 $f1 - note f6 $05 - cmdf8 $00 - rest $02 - vol $e - env $1 $00 - cmdf8 $f1 - note f6 $05 - cmdf8 $00 - cmdff diff --git a/audio/common/sfx/dig.s b/audio/common/sfx/dig.s deleted file mode 100644 index a888eff44..000000000 --- a/audio/common/sfx/dig.s +++ /dev/null @@ -1,18 +0,0 @@ -sndDigStart: - -sndDigChannel7: - cmdf0 $20 - note $46 $01 - cmdf0 $40 - note $46 $01 - cmdf0 $60 - note $46 $02 - cmdf0 $b0 - note $46 $04 - cmdf0 $00 - note $00 $08 - cmdf0 $70 - note $56 $03 - cmdf0 $f1 - note $64 $0a - cmdff diff --git a/audio/common/sfx/dimitri.s b/audio/common/sfx/dimitri.s deleted file mode 100644 index 6633331fc..000000000 --- a/audio/common/sfx/dimitri.s +++ /dev/null @@ -1,12 +0,0 @@ -sndDimitriStart: - -sndDimitriChannel5: - duty $0b - note c3 $02 - cmdf8 $1e - note c3 $05 - rest $05 - note c3 $02 - cmdf8 $1e - note c3 $08 - cmdff diff --git a/audio/common/sfx/ding.s b/audio/common/sfx/ding.s deleted file mode 100644 index 09852cea2..000000000 --- a/audio/common/sfx/ding.s +++ /dev/null @@ -1,15 +0,0 @@ -sndDingStart: - -sndDingChannel2: - duty $01 - vol $f - note ds6 $03 - vol $b - env $0 $06 - note ds6 $3c - cmdff - -sndDingChannel7: - cmdf0 $41 - note $15 $01 - cmdff diff --git a/audio/common/sfx/doorClose.s b/audio/common/sfx/doorClose.s deleted file mode 100644 index d9c71b320..000000000 --- a/audio/common/sfx/doorClose.s +++ /dev/null @@ -1,34 +0,0 @@ -sndDoorCloseStart: - -sndDoorCloseChannel2: - duty $01 - vol $0 - rest $02 - vol $6 - note c4 $01 - cmdf8 $0f - note c4 $05 - cmdf8 $00 - cmdff - -sndDoorCloseChannel7: - cmdf0 $d0 - note $24 $02 - cmdf0 $b0 - note $46 $01 - note $47 $01 - note $54 $01 - note $55 $01 - note $56 $01 - note $57 $01 - cmdf0 $00 - note $00 $01 - cmdf0 $60 - note $24 $02 - note $56 $02 - note $57 $05 - cmdf0 $20 - note $24 $02 - note $56 $02 - note $57 $05 - cmdff diff --git a/audio/common/sfx/dropEssence.s b/audio/common/sfx/dropEssence.s deleted file mode 100644 index c7e4b0418..000000000 --- a/audio/common/sfx/dropEssence.s +++ /dev/null @@ -1,12 +0,0 @@ -sndDropEssenceStart: - -sndDropEssenceChannel2: - duty $00 - vol $d - cmdf8 $00 - env $0 $01 - note c7 $0f - vol $6 - env $0 $02 - note c7 $0f - cmdff diff --git a/audio/common/sfx/endless.s b/audio/common/sfx/endless.s deleted file mode 100644 index 17a7d52a6..000000000 --- a/audio/common/sfx/endless.s +++ /dev/null @@ -1,52 +0,0 @@ -sndEndlessStart: - -sndEndlessChannel7: - cmdf0 $30 - note $67 $07 - cmdf0 $40 - note $66 $05 - cmdf0 $50 - note $65 $05 - cmdf0 $60 - note $64 $05 - cmdf0 $70 - note $57 $05 - cmdf0 $80 - note $56 $05 - cmdf0 $80 - note $55 $05 - cmdf0 $80 - note $47 $05 - cmdf0 $80 - note $45 $05 - cmdf0 $80 - note $44 $05 - cmdf0 $80 - note $37 $05 - cmdf0 $80 - note $36 $05 - cmdf0 $80 - note $35 $05 - cmdf0 $80 - note $34 $08 - cmdf0 $80 - note $27 $08 - cmdf0 $80 - note $26 $09 - cmdf0 $80 - note $25 $09 - cmdf0 $80 - note $24 $0d - cmdf0 $80 - note $17 $0d - cmdf0 $80 - note $16 $0f - cmdf0 $80 - note $15 $0f - cmdf0 $80 - note $14 $0f -musice61b9: - cmdf0 $80 - note $07 $0f - goto musice61b9 - cmdff diff --git a/audio/common/sfx/enemyJump.s b/audio/common/sfx/enemyJump.s deleted file mode 100644 index 8b694f1f0..000000000 --- a/audio/common/sfx/enemyJump.s +++ /dev/null @@ -1,9 +0,0 @@ -sndEnemyJumpStart: - -sndEnemyJumpChannel2: - duty $02 - vol $b - env $0 $02 - cmdf8 $0f - note c4 $13 - cmdff diff --git a/audio/common/sfx/energyThing.s b/audio/common/sfx/energyThing.s deleted file mode 100644 index 5921867fb..000000000 --- a/audio/common/sfx/energyThing.s +++ /dev/null @@ -1,205 +0,0 @@ -sndEnergyThingStart: - -sndEnergyThingChannel2: - duty $00 - vol $1 - note e7 $01 - note g7 $01 - note as7 $01 - vol $1 - note e7 $01 - note g7 $01 - note as7 $01 - vol $1 - note e7 $01 - note g7 $01 - note as7 $01 - vol $1 - note e7 $01 - note g7 $01 - note as7 $01 - vol $2 - cmdf8 $01 - note e7 $01 - note g7 $01 - note as7 $01 - vol $2 - note e7 $01 - note g7 $01 - note as7 $01 - vol $2 - note e7 $01 - note g7 $01 - note as7 $01 - vol $2 - note e7 $01 - note g7 $01 - note as7 $01 - cmdf8 $00 - vol $3 - cmdf8 $03 - note e7 $01 - note g7 $01 - note as7 $01 - vol $3 - note f7 $01 - note g7 $01 - note as7 $01 - vol $3 - note f7 $01 - note g7 $01 - note as7 $01 - vol $3 - note f7 $01 - note g7 $01 - note as7 $01 - cmdf8 $00 - vol $4 - cmdf8 $05 - note f7 $01 - note gs7 $01 - note as7 $01 - vol $4 - note f7 $01 - note gs7 $01 - note as7 $01 - vol $4 - note f7 $01 - note gs7 $01 - note as7 $01 - vol $4 - note f7 $01 - note gs7 $01 - note as7 $01 - cmdf8 $00 - vol $6 - cmdf8 $07 - note f7 $01 - note gs7 $01 - note b7 $01 - vol $5 - note f7 $01 - note gs7 $01 - note b7 $01 - vol $5 - note f7 $01 - note gs7 $01 - note b7 $01 - vol $5 - note f7 $01 - note gs7 $01 - note b7 $01 - cmdf8 $00 - vol $8 - cmdf8 $09 - note fs7 $01 - note gs7 $01 - note b7 $01 - vol $6 - note fs7 $01 - note gs7 $01 - note b7 $01 - vol $6 - note fs7 $01 - note gs7 $01 - note b7 $01 - vol $6 - note fs7 $01 - note gs7 $01 - note b7 $01 - cmdf8 $00 - vol $9 - cmdf8 $0b - note fs7 $01 - note a7 $01 - note b7 $01 - vol $7 - note fs7 $01 - note a7 $01 - note b7 $01 - vol $7 - note fs7 $01 - note a7 $01 - note b7 $01 - vol $7 - note fs7 $01 - note a7 $01 - note b7 $01 - cmdf8 $00 - vol $a - cmdf8 $0d - note fs7 $01 - note a7 $01 - note c8 $01 - vol $8 - note fs7 $01 - note a7 $01 - note c8 $01 - vol $8 - note fs7 $01 - note a7 $01 - note c8 $01 - vol $8 - note fs7 $01 - note a7 $01 - note c8 $01 - cmdf8 $00 - vol $b - cmdf8 $0e - note g7 $01 - note a7 $01 - note c8 $01 - vol $9 - note g7 $01 - note a7 $01 - note c8 $01 - vol $9 - note g7 $01 - note a7 $01 - note c8 $01 - vol $9 - note g7 $01 - note a7 $01 - note c8 $01 - cmdf8 $00 - vol $c - cmdf8 $0f - note g7 $01 - note as7 $01 - note c8 $01 - vol $a - note g7 $01 - note as7 $01 - note c8 $01 - vol $a - note g7 $01 - note as7 $01 - note c8 $01 - vol $a - note g7 $01 - note as7 $01 - note c8 $01 - cmdf8 $00 - vol $d - cmdf8 $10 - note g7 $01 - note as7 $01 - note cs8 $01 - vol $b - note g7 $01 - note b7 $01 - note cs8 $01 - vol $b - note g7 $01 - note b7 $01 - note cs8 $01 - vol $b - note g7 $01 - note b7 $01 - note cs8 $01 - cmdf8 $00 - vol $b - note g7 $01 - note b7 $01 - note cs8 $01 - cmdff diff --git a/audio/common/sfx/enterCave.s b/audio/common/sfx/enterCave.s deleted file mode 100644 index 492673b2b..000000000 --- a/audio/common/sfx/enterCave.s +++ /dev/null @@ -1,18 +0,0 @@ -sndEnterCaveStart: - -sndEnterCaveChannel7: - cmdf0 $71 - note $24 $04 - cmdf0 $00 - note $00 $08 - cmdf0 $61 - note $25 $04 - cmdf0 $00 - note $00 $08 - cmdf0 $42 - note $27 $04 - cmdf0 $00 - note $00 $08 - cmdf0 $24 - note $34 $04 - cmdff diff --git a/audio/common/sfx/error.s b/audio/common/sfx/error.s deleted file mode 100644 index 7b8fc41e4..000000000 --- a/audio/common/sfx/error.s +++ /dev/null @@ -1,31 +0,0 @@ -sndErrorStart: - -sndErrorChannel2: - duty $01 - vol $e - note ds3 $02 - vol $0 - rest $01 - vol $e - note ds3 $02 - vol $0 - rest $0a - vol $e - note ds3 $02 - vol $0 - rest $01 - vol $e - note ds3 $02 - vol $0 - rest $01 - vol $e - note ds3 $02 - vol $0 - rest $01 - vol $e - note ds3 $02 - vol $0 - rest $01 - vol $e - note ds3 $02 - cmdff diff --git a/audio/common/sfx/explosion.s b/audio/common/sfx/explosion.s deleted file mode 100644 index 25ade1582..000000000 --- a/audio/common/sfx/explosion.s +++ /dev/null @@ -1,24 +0,0 @@ -sndExplosionStart: - -sndExplosionChannel7: - cmdf0 $f1 - note $64 $01 - cmdf0 $f1 - note $56 $01 - cmdf0 $f1 - note $47 $02 - cmdf0 $f1 - note $54 $03 - cmdf0 $f1 - note $55 $04 - cmdf0 $c0 - note $56 $04 - cmdf0 $85 - note $56 $0a - cmdf0 $65 - note $56 $0a - cmdf0 $45 - note $56 $0a - cmdf0 $25 - note $56 $0a - cmdff diff --git a/audio/common/sfx/fadeout.s b/audio/common/sfx/fadeout.s deleted file mode 100644 index 861a15ec0..000000000 --- a/audio/common/sfx/fadeout.s +++ /dev/null @@ -1,32 +0,0 @@ -sndFadeoutStart: - -sndFadeoutChannel7: - cmdf0 $60 - note $37 $06 - cmdf0 $60 - note $36 $06 - cmdf0 $60 - note $35 $06 - cmdf0 $60 - note $34 $06 - cmdf0 $60 - note $27 $06 - cmdf0 $60 - note $26 $06 - cmdf0 $60 - note $25 $06 - cmdf0 $60 - note $24 $06 - cmdf0 $60 - note $17 $06 - cmdf0 $60 - note $16 $06 - cmdf0 $60 - note $15 $06 - cmdf0 $60 - note $14 $06 - cmdf0 $40 - note $07 $14 - cmdf0 $47 - note $07 $46 - cmdff diff --git a/audio/common/sfx/fairyCutscene.s b/audio/common/sfx/fairyCutscene.s deleted file mode 100644 index 72190cd5b..000000000 --- a/audio/common/sfx/fairyCutscene.s +++ /dev/null @@ -1,88 +0,0 @@ -sndFairyCutsceneStart: - -sndFairyCutsceneChannel2: - cmdf0 $d1 - .db $07 $d1 $04 - vol $1 - .db $07 $e1 $02 - vol $1 - .db $07 $d9 $02 - vol $3 - .db $07 $ce $04 - vol $1 - .db $07 $de $02 - vol $1 - .db $07 $d7 $02 - vol $5 - .db $07 $cc $04 - vol $2 - .db $07 $dc $02 - vol $1 - .db $07 $d5 $02 - vol $7 - .db $07 $ca $04 - vol $2 - .db $07 $da $02 - vol $2 - .db $07 $d3 $02 - vol $9 - .db $07 $c8 $04 - vol $3 - .db $07 $d8 $02 - vol $2 - .db $07 $d1 $02 - .db $07 $c6 $03 - vol $a - .db $07 $c2 $04 - vol $3 - .db $07 $d2 $02 - vol $3 - .db $07 $cd $02 - vol $9 - .db $07 $c0 $04 - vol $4 - .db $07 $d0 $02 - vol $3 - .db $07 $cb $02 - vol $7 - .db $07 $be $04 - vol $3 - .db $07 $de $02 - vol $3 - .db $07 $c9 $02 - vol $5 - .db $07 $bc $04 - vol $3 - .db $07 $cc $02 - vol $2 - .db $07 $c7 $02 - vol $3 - .db $07 $b9 $04 - vol $2 - .db $07 $c9 $02 - vol $1 - .db $07 $c4 $02 - vol $2 - .db $07 $b6 $04 - vol $1 - .db $07 $c6 $02 - vol $1 - .db $07 $c1 $02 - vol $2 - .db $07 $af $04 - vol $1 - .db $07 $c1 $02 - vol $1 - .db $07 $bc $02 - vol $1 - .db $07 $ab $04 - env $0 $01 - vol $1 - .db $07 $bf $02 - cmdff - -.ifdef ROM_SEASONS -.ifdef BUILD_VANILLA - .db $ff -.endif -.endif diff --git a/audio/common/sfx/fallInHole.s b/audio/common/sfx/fallInHole.s deleted file mode 100644 index e65064ab3..000000000 --- a/audio/common/sfx/fallInHole.s +++ /dev/null @@ -1,12 +0,0 @@ -sndFallInHoleStart: - -sndFallInHoleChannel2: - duty $02 - vol $9 - cmdf8 $f6 - note a4 $14 - cmdf8 $00 - vol $2 - cmdf8 $f4 - note a4 $14 - cmdff diff --git a/audio/common/sfx/filledHeartContainer.s b/audio/common/sfx/filledHeartContainer.s deleted file mode 100644 index a320bc2f9..000000000 --- a/audio/common/sfx/filledHeartContainer.s +++ /dev/null @@ -1,13 +0,0 @@ -sndFilledHeartContainerStart: - -sndFilledHeartContainerChannel2: - duty $02 - vol $a - env $0 $02 - note fs6 $06 - note gs6 $06 - note as6 $06 - note b6 $06 - env $0 $04 - note cs7 $1e - cmdff diff --git a/audio/common/sfx/floodgates.s b/audio/common/sfx/floodgates.s deleted file mode 100644 index 0a6f3c98e..000000000 --- a/audio/common/sfx/floodgates.s +++ /dev/null @@ -1,26 +0,0 @@ -sndFloodgatesStart: - -sndFloodgatesChannel7: - cmdf0 $10 - note $25 $02 - cmdf0 $20 - note $25 $01 - cmdf0 $30 - note $25 $02 - cmdf0 $40 - note $25 $01 - cmdf0 $50 - note $25 $02 - cmdf0 $60 - note $25 $01 - cmdf0 $70 - note $25 $02 - cmdf0 $90 - note $25 $01 - cmdf0 $a0 - note $25 $02 -musiceb8ad: - cmdf0 $b0 - note $25 $ff - goto musiceb8ad - cmdff diff --git a/audio/common/sfx/fluteDimitri.s b/audio/common/sfx/fluteDimitri.s deleted file mode 100644 index 3eb3165bc..000000000 --- a/audio/common/sfx/fluteDimitri.s +++ /dev/null @@ -1,43 +0,0 @@ -sndFluteDimitriStart: - -sndFluteDimitriChannel3: - vol $0 - rest $f1 - cmdff - -sndFluteDimitriChannel2: - vol $0 - rest $1f - duty $02 - vol $2 - note d5 $05 - note g5 $04 - note a5 $05 - note c6 $46 - rest $0e - note b5 $05 - note c6 $04 - note b5 $05 - note g5 $0e - note a5 $54 - cmdff - -sndFluteDimitriChannel5: - duty $16 - note d5 $04 - note g5 $05 - note a5 $05 - note c6 $46 - rest $0e - note b5 $04 - note c6 $05 - note b5 $05 - note g5 $0e - note a5 $54 - rest $1f - cmdff - -sndFluteDimitriChannel7: - cmdf0 $00 - note $00 $f1 - cmdff diff --git a/audio/common/sfx/fluteMoosh.s b/audio/common/sfx/fluteMoosh.s deleted file mode 100644 index ea664cf3b..000000000 --- a/audio/common/sfx/fluteMoosh.s +++ /dev/null @@ -1,41 +0,0 @@ -sndFluteMooshStart: - -sndFluteMooshChannel3: - vol $0 - rest $e5 - cmdff - -sndFluteMooshChannel2: - vol $0 - rest $0d - duty $02 - vol $2 - note ds6 $12 - note as5 $12 - note as6 $1b - rest $09 - note g6 $12 - note ds6 $12 - note c7 $1b - rest $09 - note as6 $48 - cmdff - -sndFluteMooshChannel5: - duty $16 - note ds6 $12 - note as5 $12 - note as6 $1b - rest $09 - note g6 $12 - note ds6 $12 - note c7 $1b - rest $09 - note as6 $48 - rest $0d - cmdff - -sndFluteMooshChannel7: - cmdf0 $00 - note $00 $e5 - cmdff diff --git a/audio/common/sfx/fluteRicky.s b/audio/common/sfx/fluteRicky.s deleted file mode 100644 index d0a761981..000000000 --- a/audio/common/sfx/fluteRicky.s +++ /dev/null @@ -1,53 +0,0 @@ -sndFluteRickyStart: - -sndFluteRickyChannel3: - vol $0 - rest $f1 - cmdff - -sndFluteRickyChannel2: - vol $0 - duty $02 - rest $1f - vol $2 - note c6 $05 - note f6 $04 - note g6 $05 - note c7 $46 - vol $0 - note c7 $0e - vol $2 - note as6 $05 - note c7 $04 - note as6 $05 - note a6 $0e - note f6 $0e - note g6 $04 - vol $0 - note g6 $0a - vol $2 - note c6 $38 - cmdff - -sndFluteRickyChannel5: - duty $16 - note c6 $04 - note f6 $05 - note g6 $05 - note c7 $46 - rest $0e - note as6 $04 - note c7 $05 - note as6 $05 - note a6 $0e - note f6 $0e - note g6 $03 - rest $0b - note c6 $38 - rest $1f - cmdff - -sndFluteRickyChannel7: - cmdf0 $00 - note $00 $f1 - cmdff diff --git a/audio/common/sfx/gainHeart.s b/audio/common/sfx/gainHeart.s deleted file mode 100644 index fe9698791..000000000 --- a/audio/common/sfx/gainHeart.s +++ /dev/null @@ -1,9 +0,0 @@ -sndGainHeartStart: - -sndGainHeartChannel2: - duty $02 - vol $9 - note d5 $01 - note g5 $01 - note d6 $01 - cmdff diff --git a/audio/common/sfx/galeSeed.s b/audio/common/sfx/galeSeed.s deleted file mode 100644 index aa0d494d6..000000000 --- a/audio/common/sfx/galeSeed.s +++ /dev/null @@ -1,39 +0,0 @@ -sndGaleSeedStart: - -sndGaleSeedChannel2: - duty $02 - vol $b - note c5 $02 - vol $a - note d5 $02 - vol $9 - note e5 $02 - vol $8 - note fs5 $02 - note g5 $02 - vol $7 - note as5 $02 - vol $7 - note c5 $02 - vol $6 - note fs5 $02 - note gs5 $02 - note as5 $02 - vol $5 - note c5 $02 - note fs5 $02 - note gs5 $02 - vol $4 - note as5 $02 - note c5 $02 - vol $3 - note fs5 $02 - note gs5 $02 - vol $2 - note as5 $02 - note c5 $02 - vol $1 - note fs5 $02 - note gs5 $02 - note as5 $02 - cmdff diff --git a/audio/common/sfx/getItem.s b/audio/common/sfx/getItem.s deleted file mode 100644 index f6b0e5e11..000000000 --- a/audio/common/sfx/getItem.s +++ /dev/null @@ -1,32 +0,0 @@ -sndGetItemStart: - -sndGetItemChannel2: - duty $01 - vol $b - note c5 $0a - note cs5 $0a - note d5 $0a - note ds5 $32 - cmdff - -sndGetItemChannel3: - duty $01 - vol $9 - note a5 $0a - note as5 $0a - note b5 $0a - note c6 $32 - cmdff - -sndGetItemChannel5: - duty $01 - note f4 $0a - note fs4 $0a - note g4 $0a - note gs4 $32 - cmdff - -sndGetItemChannel7: - cmdf0 $00 - note $00 $50 - cmdff diff --git a/audio/common/sfx/getSeed.s b/audio/common/sfx/getSeed.s deleted file mode 100644 index 5258a886c..000000000 --- a/audio/common/sfx/getSeed.s +++ /dev/null @@ -1,33 +0,0 @@ -sndGetSeedStart: - -sndGetSeedChannel2: - duty $01 - vol $d - note ds7 $04 - vol $0 - rest $01 - vol $d - note f7 $04 - vol $0 - rest $01 - vol $d - note g7 $04 - vol $0 - rest $01 - vol $d - note as7 $04 - vol $0 - rest $02 - vol $6 - note as7 $04 - vol $0 - rest $02 - vol $2 - note as7 $04 - cmdff - -.ifdef ROM_SEASONS -.ifdef BUILD_VANILLA - .db $ff -.endif -.endif diff --git a/audio/common/sfx/ghost.s b/audio/common/sfx/ghost.s deleted file mode 100644 index 641902141..000000000 --- a/audio/common/sfx/ghost.s +++ /dev/null @@ -1,30 +0,0 @@ -sndGhostStart: - -sndGhostChannel2: - duty $02 - vol $1 - note a6 $08 - vol $2 - note as6 $08 - vol $3 - note ds6 $08 - vol $4 - note e6 $08 - vol $6 - note a6 $08 - vol $8 - note as6 $08 - vol $9 - note ds6 $08 - vol $a - note e6 $08 - vol $b - note a6 $08 - vol $3 - note as6 $08 - vol $2 - note ds6 $08 - vol $1 - env $0 $07 - note e6 $08 - cmdff diff --git a/audio/common/sfx/gohmaSpawnGel.s b/audio/common/sfx/gohmaSpawnGel.s deleted file mode 100644 index 16bccde40..000000000 --- a/audio/common/sfx/gohmaSpawnGel.s +++ /dev/null @@ -1,12 +0,0 @@ -sndGohmaSpawnGelStart: - -sndGohmaSpawnGelChannel2: - duty $00 - vol $b - cmdf8 $05 - note b6 $06 - cmdf8 $00 - vol $4 - cmdf8 $05 - note b6 $0a - cmdff diff --git a/audio/common/sfx/goron.s b/audio/common/sfx/goron.s deleted file mode 100644 index 16a979c48..000000000 --- a/audio/common/sfx/goron.s +++ /dev/null @@ -1,13 +0,0 @@ -sndGoronStart: - -sndGoronChannel2: - duty $00 - vol $d - cmdf8 $c4 - note a2 $0a - cmdf8 $00 - vol $e - cmdf8 $37 - note f2 $0f - cmdf8 $00 - cmdff diff --git a/audio/common/sfx/goronDanceB.s b/audio/common/sfx/goronDanceB.s deleted file mode 100644 index 12d0c0235..000000000 --- a/audio/common/sfx/goronDanceB.s +++ /dev/null @@ -1,40 +0,0 @@ -sndGoronDanceBStart: - -sndGoronDanceBChannel2: - duty $01 - vol $0 - rest $03 - vol $c - note a5 $01 - vol $d - note g4 $01 - vol $e - note c6 $01 - vol $a - env $0 $01 - note c6 $08 - cmdff - -sndGoronDanceBChannel3: - duty $00 - vol $0 - rest $03 - vol $d - note g5 $03 - vol $a - env $0 $01 - note g5 $08 - cmdff - -sndGoronDanceBChannel7: - cmdf0 $a1 - note $07 $01 - cmdf0 $91 - note $14 $01 - cmdf0 $81 - note $15 $01 - cmdf0 $71 - note $16 $01 - cmdf0 $61 - note $17 $02 - cmdff diff --git a/audio/common/sfx/heartBeep.s b/audio/common/sfx/heartBeep.s deleted file mode 100644 index 6a9c2523e..000000000 --- a/audio/common/sfx/heartBeep.s +++ /dev/null @@ -1,17 +0,0 @@ -sndHeartBeepStart: - -sndHeartBeepChannel2: - duty $02 - vol $b - note b5 $02 - vol $0 - rest $02 - vol $d - note b6 $04 - vol $9 - note b5 $02 - vol $0 - rest $02 - vol $6 - note b6 $03 - cmdff diff --git a/audio/common/sfx/jingle.s b/audio/common/sfx/jingle.s deleted file mode 100644 index c6666b050..000000000 --- a/audio/common/sfx/jingle.s +++ /dev/null @@ -1,10 +0,0 @@ -sndJingleStart: - -sndJingleChannel2: - vol $8 - env $0 $02 - note b5 $0a - note cs6 $0a - note d6 $0a - note a6 $0f - cmdff diff --git a/audio/common/sfx/jump.s b/audio/common/sfx/jump.s deleted file mode 100644 index b48f53e5b..000000000 --- a/audio/common/sfx/jump.s +++ /dev/null @@ -1,9 +0,0 @@ -sndJumpStart: - -sndJumpChannel2: - duty $02 - vol $c - env $0 $02 - cmdf8 $10 - note d4 $14 - cmdff diff --git a/audio/common/sfx/killEnemy.s b/audio/common/sfx/killEnemy.s deleted file mode 100644 index 7f91c455b..000000000 --- a/audio/common/sfx/killEnemy.s +++ /dev/null @@ -1,24 +0,0 @@ -sndKillEnemyStart: - -sndKillEnemyChannel7: - cmdf0 $d3 - note $37 $01 - note $44 $01 - note $45 $01 - note $46 $01 - note $47 $01 - note $54 $01 - note $55 $01 - note $56 $01 - note $57 $02 - note $56 $01 - note $55 $01 - note $54 $01 - note $47 $04 - note $46 $03 - cmdf0 $20 - note $55 $04 - note $54 $04 - note $47 $04 - note $46 $04 - cmdff diff --git a/audio/common/sfx/land.s b/audio/common/sfx/land.s deleted file mode 100644 index 49e295db7..000000000 --- a/audio/common/sfx/land.s +++ /dev/null @@ -1,10 +0,0 @@ -sndLandStart: - -sndLandChannel7: - cmdf0 $90 - note $14 $01 - cmdf0 $00 - note $00 $01 - cmdf0 $22 - note $14 $02 - cmdff diff --git a/audio/common/sfx/lightTorch.s b/audio/common/sfx/lightTorch.s deleted file mode 100644 index c106e0184..000000000 --- a/audio/common/sfx/lightTorch.s +++ /dev/null @@ -1,32 +0,0 @@ -sndLightTorchStart: - -sndLightTorchChannel7: - cmdf0 $30 - note $67 $01 - cmdf0 $40 - note $66 $01 - cmdf0 $50 - note $65 $01 - cmdf0 $60 - note $64 $01 - cmdf0 $70 - note $57 $01 - cmdf0 $80 - note $55 $01 - cmdf0 $90 - note $54 $01 - cmdf0 $a1 - note $47 $01 - cmdf0 $a0 - note $46 $01 - note $45 $01 - note $46 $01 - note $47 $01 - note $55 $01 - cmdf0 $80 - note $57 $01 - note $64 $01 - cmdf0 $50 - note $65 $02 - note $66 $02 - cmdff diff --git a/audio/common/sfx/lightning.s b/audio/common/sfx/lightning.s deleted file mode 100644 index c9a4e53e8..000000000 --- a/audio/common/sfx/lightning.s +++ /dev/null @@ -1,42 +0,0 @@ -sndLightningStart: - -sndLightningChannel7: - cmdf0 $f0 - note $00 $01 - cmdf0 $80 - note $24 $02 - cmdf0 $f0 - note $00 $02 - cmdf0 $80 - note $15 $01 - note $17 $02 - cmdf0 $f0 - note $02 $02 - cmdf0 $a0 - note $26 $02 - note $14 $01 - note $17 $02 - cmdf0 $f0 - note $26 $01 - note $27 $01 - note $35 $04 - note $24 $03 - note $26 $03 - note $25 $04 - note $35 $02 - cmdf0 $f2 - note $36 $02 - note $37 $05 - note $36 $01 - note $44 $02 - note $34 $01 - note $55 $01 - note $36 $03 - note $44 $01 - note $37 $03 - note $46 $02 - note $44 $01 - note $37 $02 - note $47 $02 - note $54 $01 - cmdff diff --git a/audio/common/sfx/linkDead.s b/audio/common/sfx/linkDead.s deleted file mode 100644 index 4e1fde326..000000000 --- a/audio/common/sfx/linkDead.s +++ /dev/null @@ -1,40 +0,0 @@ -sndLinkDeadStart: - -sndLinkDeadChannel5: - duty $03 - vibrato $08 - vol $9 - note fs5 $05 - note a5 $05 - note c6 $05 - vol $9 - note f5 $05 - note gs5 $05 - note b5 $05 - vol $9 - note e5 $05 - note g5 $05 - note as5 $05 - vol $9 - note ds5 $05 - note fs5 $05 - note a5 $05 - vol $9 - note d5 $05 - note f5 $05 - note gs5 $05 - vol $9 - note cs5 $05 - note e5 $05 - note g5 $05 - vol $9 - note c5 $05 - note ds5 $05 - note fs5 $05 - vol $9 - note b4 $05 - note d5 $05 - note f5 $05 - vol $3 - note fs4 $02 - cmdff diff --git a/audio/common/sfx/linkFall.s b/audio/common/sfx/linkFall.s deleted file mode 100644 index 8b6f508ae..000000000 --- a/audio/common/sfx/linkFall.s +++ /dev/null @@ -1,40 +0,0 @@ -sndLinkFallStart: - -sndLinkFallChannel5: - duty $03 - note c6 $02 - note b5 $02 - note as5 $02 - note a5 $02 - note as5 $02 - note b5 $02 - note as5 $02 - note gs5 $02 - note a5 $02 - note as5 $02 - note a5 $02 - note g5 $02 - note gs5 $02 - note a5 $02 - note gs5 $02 - note fs5 $02 - note g5 $02 - note gs5 $02 - note g5 $02 - note f5 $02 - note fs5 $02 - note g5 $02 - note fs5 $02 - note e5 $02 - note f5 $02 - note fs5 $02 - note f5 $02 - note ds5 $02 - note e5 $02 - note f5 $02 - note e5 $02 - note d5 $02 - note ds5 $02 - note e5 $02 - note ds5 $02 - cmdff diff --git a/audio/common/sfx/linkSwim.s b/audio/common/sfx/linkSwim.s deleted file mode 100644 index 9f3d1b833..000000000 --- a/audio/common/sfx/linkSwim.s +++ /dev/null @@ -1,25 +0,0 @@ -sndLinkSwimStart: - -sndLinkSwimChannel2: - duty $02 - env $2 $00 - vol $9 - cmdf8 $16 - note fs3 $0f - cmdf8 $00 - rest $02 - env $1 $00 - vol $1 - cmdf8 $0f - note gs3 $0a - env $0 $00 - vol $4 - cmdf8 $16 - note b3 $05 - cmdff - -.ifdef ROM_SEASONS -.ifdef BUILD_VANILLA - .db $ff -.endif -.endif diff --git a/audio/common/sfx/magicPowder.s b/audio/common/sfx/magicPowder.s deleted file mode 100644 index 1c6399f5f..000000000 --- a/audio/common/sfx/magicPowder.s +++ /dev/null @@ -1,34 +0,0 @@ -sndMagicPowderStart: - -sndMagicPowderChannel2: - duty $00 - cmdf0 $df - .db $07 $d8 $05 - vol $d - .db $07 $de $03 - vol $7 - .db $07 $e1 $03 - vol $5 - .db $07 $e3 $05 - vol $b - .db $07 $d8 $05 - vol $9 - .db $07 $de $03 - vol $6 - .db $07 $e1 $03 - vol $4 - .db $07 $e3 $05 - vol $9 - .db $07 $d8 $05 - vol $8 - .db $07 $de $03 - vol $5 - .db $07 $e1 $03 - vol $3 - .db $07 $e3 $05 - vol $2 - .db $07 $d8 $05 - vol $1 - env $0 $03 - .db $07 $de $04 - cmdff diff --git a/audio/common/sfx/makuDisappear.s b/audio/common/sfx/makuDisappear.s deleted file mode 100644 index 3cd585006..000000000 --- a/audio/common/sfx/makuDisappear.s +++ /dev/null @@ -1,84 +0,0 @@ -sndMakuDisappearStart: - -sndMakuDisappearChannel2: - duty $02 - vol $3 - note c2 $1c - note c2 $1c - note c2 $1c - note c2 $1c - note c2 $1c - cmdff - -sndMakuDisappearChannel7: - cmdf0 $f0 - note $75 $1c - cmdf0 $f0 - note $75 $1c - cmdf0 $f0 - note $75 $1c - cmdf0 $f0 - note $75 $1c - cmdf0 $f0 - note $75 $1c - cmdf0 $f0 - note $67 $01 - note $66 $01 - note $65 $01 - note $64 $01 - note $57 $01 - note $56 $01 - note $55 $01 - note $54 $01 - note $47 $01 - cmdf0 $b0 - note $67 $01 - note $66 $01 - note $65 $01 - note $64 $01 - note $57 $01 - note $56 $01 - note $55 $01 - note $54 $01 - note $47 $01 - cmdf0 $90 - note $67 $01 - note $66 $01 - note $65 $01 - note $64 $01 - note $57 $01 - note $56 $01 - note $55 $01 - note $54 $01 - note $47 $01 - cmdf0 $70 - note $67 $01 - note $66 $01 - note $65 $01 - note $64 $01 - note $57 $01 - note $56 $01 - note $55 $01 - note $54 $01 - note $47 $01 - cmdf0 $50 - note $67 $01 - note $66 $01 - note $65 $01 - note $64 $01 - note $57 $01 - note $56 $01 - note $55 $01 - note $54 $01 - note $47 $01 - cmdf0 $36 - note $67 $01 - note $66 $01 - note $65 $01 - note $64 $01 - note $57 $01 - note $56 $01 - note $55 $01 - note $54 $01 - note $47 $01 - cmdff diff --git a/audio/common/sfx/makuTreePast.s b/audio/common/sfx/makuTreePast.s deleted file mode 100644 index beec3bbed..000000000 --- a/audio/common/sfx/makuTreePast.s +++ /dev/null @@ -1,35 +0,0 @@ -sndMakuTreePastStart: - -sndMakuTreePastChannel2: - duty $02 - vol $5 - env $1 $00 - vibrato $00 - cmdf8 $04 - note g6 $05 - vol $3 - env $0 $07 - vibrato $00 - cmdf8 $ff - note c7 $37 - cmdff - -sndMakuTreePastChannel5: - duty $08 - vibrato $00 - cmdf8 $04 - note g6 $05 - vibrato $00 - cmdf8 $ff - note c7 $28 - cmdff - -sndMakuTreePastChannel7: - cmdf0 $20 - note $16 $12 - note $17 $01 - cmdf0 $20 - note $16 $14 - cmdf0 $24 - note $16 $1e - cmdff diff --git a/audio/common/sfx/menuMove.s b/audio/common/sfx/menuMove.s deleted file mode 100644 index 51fac5db0..000000000 --- a/audio/common/sfx/menuMove.s +++ /dev/null @@ -1,9 +0,0 @@ -sndMenuMoveStart: - -sndMenuMoveChannel2: - duty $02 - cmdf0 $d9 - .db $07 $a0 $03 - vol $1 - .db $07 $a0 $05 - cmdff diff --git a/audio/common/sfx/minecart.s b/audio/common/sfx/minecart.s deleted file mode 100644 index d30a3b61c..000000000 --- a/audio/common/sfx/minecart.s +++ /dev/null @@ -1,28 +0,0 @@ -sndMinecartStart: - -sndMinecartChannel7: - cmdf0 $91 - note $44 $01 - cmdf0 $70 - note $36 $01 - cmdf0 $00 - note $00 $01 - cmdf0 $91 - note $27 $01 - cmdf0 $61 - note $35 $02 - cmdf0 $20 - note $44 $03 - cmdf0 $91 - note $44 $01 - cmdf0 $70 - note $36 $01 - cmdf0 $00 - note $00 $01 - cmdf0 $91 - note $27 $01 - cmdf0 $61 - note $35 $02 - cmdf0 $26 - note $44 $0c - cmdff diff --git a/audio/common/sfx/moosh.s b/audio/common/sfx/moosh.s deleted file mode 100644 index 6316ba5c7..000000000 --- a/audio/common/sfx/moosh.s +++ /dev/null @@ -1,15 +0,0 @@ -sndMooshStart: -sndMooshChannel5: - duty $0a - cmdf8 $1e - note c3 $05 - rest $02 - cmdf8 $2e - note c3 $08 - rest $08 - cmdf8 $e2 - note gs3 $08 - rest $06 - cmdf8 $d8 - note gs3 $08 - cmdff diff --git a/audio/common/sfx/moveBlock.s b/audio/common/sfx/moveBlock.s deleted file mode 100644 index d814452bb..000000000 --- a/audio/common/sfx/moveBlock.s +++ /dev/null @@ -1,23 +0,0 @@ -sndMoveBlockStart: - -sndMoveBlockChannel7: - cmdf0 $60 - note $65 $02 - cmdf0 $80 - note $65 $02 - cmdf0 $a0 - note $65 $02 - cmdf0 $b0 - note $65 $02 - cmdf0 $d0 - note $65 $02 - cmdf0 $50 - note $55 $05 - cmdf0 $d0 - note $65 $03 - note $57 $02 - cmdf0 $d0 - note $55 $05 - cmdf0 $d0 - note $65 $04 - cmdff diff --git a/audio/common/sfx/mysterySeed.s b/audio/common/sfx/mysterySeed.s deleted file mode 100644 index 80396f173..000000000 --- a/audio/common/sfx/mysterySeed.s +++ /dev/null @@ -1,27 +0,0 @@ -sndMysterySeedStart: - -sndMysterySeedChannel2: - duty $00 - vol $6 - note b4 $04 - note d5 $04 - vol $7 - note fs5 $04 - note as5 $04 - vol $8 - note b5 $04 - note d6 $04 - vol $9 - note fs6 $04 - note as6 $04 - vol $5 - note b5 $04 - note d6 $04 - note fs6 $04 - note as6 $04 - vol $1 - note b5 $04 - note d6 $04 - note fs6 $04 - note as6 $04 - cmdff diff --git a/audio/common/sfx/openChest.s b/audio/common/sfx/openChest.s deleted file mode 100644 index 37cc26c1d..000000000 --- a/audio/common/sfx/openChest.s +++ /dev/null @@ -1,14 +0,0 @@ -sndOpenChestStart: - -sndOpenChestChannel7: - cmdf0 $f0 - note $37 $01 - cmdf0 $f0 - note $64 $02 - cmdf0 $00 - note $00 $04 - cmdf0 $f0 - note $44 $01 - cmdf0 $b0 - note $44 $02 - cmdff diff --git a/audio/common/sfx/openMenu.s b/audio/common/sfx/openMenu.s deleted file mode 100644 index 6cfe4ce03..000000000 --- a/audio/common/sfx/openMenu.s +++ /dev/null @@ -1,17 +0,0 @@ -sndOpenMenuStart: - -sndOpenMenuChannel2: - duty $01 - vol $f - env $3 $00 - cmdf8 $23 - note c3 $16 - cmdff - -sndOpenMenuChannel3: - duty $02 - vol $f - env $3 $00 - cmdf8 $2c - note c2 $16 - cmdff diff --git a/audio/common/sfx/opening.s b/audio/common/sfx/opening.s deleted file mode 100644 index dce6b7f38..000000000 --- a/audio/common/sfx/opening.s +++ /dev/null @@ -1,65 +0,0 @@ -sndOpeningStart: - -sndOpeningChannel2: - duty $02 - vol $3 - note c2 $1f - note c2 $1f - note c2 $1f - note c2 $1f - note c2 $1c - note c2 $20 - note c2 $26 - note c2 $14 - note c2 $0a - note c2 $13 - note c2 $12 - note c2 $1c - env $0 $07 - note c2 $32 - cmdff - -sndOpeningChannel7: - cmdf0 $f0 - note $76 $1f - cmdf0 $f0 - note $76 $1f - cmdf0 $f0 - note $76 $1f - cmdf0 $f0 - note $76 $09 - note $67 $09 - note $76 $09 - cmdf0 $f0 - note $76 $07 - note $74 $07 - note $67 $07 - note $76 $07 - cmdf0 $f0 - note $76 $0f - note $66 $09 - note $76 $08 - cmdf0 $f0 - note $76 $12 - note $66 $07 - note $74 $07 - note $75 $06 - cmdf0 $f0 - note $76 $0e - note $66 $06 - cmdf0 $f0 - note $67 $05 - note $65 $05 - cmdf0 $f0 - note $57 $10 - note $64 $03 - cmdf0 $c0 - note $64 $06 - note $65 $03 - note $65 $09 - cmdf0 $a0 - note $66 $0d - note $74 $0f - cmdf0 $85 - note $76 $32 - cmdff diff --git a/audio/common/sfx/pickUp.s b/audio/common/sfx/pickUp.s deleted file mode 100644 index bdb9f5f7c..000000000 --- a/audio/common/sfx/pickUp.s +++ /dev/null @@ -1,17 +0,0 @@ -sndPickupStart: - -sndPickupChannel2: - cmdf0 $80 - vol $9 - cmdf8 $1e - .db $03 $2c $0d - cmdf8 $00 - .db $05 $12 $01 - .db $05 $8c $01 - .db $05 $ef $01 - .db $06 $50 $01 - .db $06 $85 $01 - .db $06 $9e $01 - .db $06 $85 $01 - .db $06 $50 $01 - cmdff diff --git a/audio/common/sfx/pieceOfPower.s b/audio/common/sfx/pieceOfPower.s deleted file mode 100644 index 0bb7fdc6d..000000000 --- a/audio/common/sfx/pieceOfPower.s +++ /dev/null @@ -1,98 +0,0 @@ -sndPieceOfPowerStart: - -sndPieceOfPowerChannel2: - duty $02 - vol $d - note a5 $01 - note cs6 $01 - vol $b - note as5 $01 - note d6 $01 - vol $9 - note b5 $01 - note c6 $01 - note e6 $01 - note cs6 $01 - note f6 $01 - note d6 $01 - note ds6 $01 - note g6 $01 - note e6 $01 - note gs6 $01 - note f6 $01 - note fs6 $01 - note as6 $01 - note g6 $01 - note b6 $01 - note gs6 $01 - note a6 $01 - note cs7 $01 - note as6 $01 - note d7 $01 - note b6 $01 - vol $b - note e7 $02 - vol $8 - note a5 $01 - note cs6 $01 - note as5 $01 - note d6 $01 - note b5 $01 - note c6 $01 - note e6 $01 - vol $7 - note cs6 $01 - note f6 $01 - note d6 $01 - note ds6 $01 - note g6 $01 - note e6 $01 - note gs6 $01 - vol $6 - note f6 $01 - note fs6 $01 - note as6 $01 - note g6 $01 - note b6 $01 - note gs6 $01 - vol $5 - note a6 $01 - note cs7 $01 - note as6 $01 - note d7 $01 - note b6 $01 - vol $9 - note e7 $02 - vol $5 - note a5 $01 - note cs6 $01 - vol $4 - note as5 $01 - note d6 $01 - note b5 $01 - note c6 $01 - note e6 $01 - note cs6 $01 - note f6 $01 - vol $3 - note d6 $01 - note ds6 $01 - note g6 $01 - note e6 $01 - note gs6 $01 - note f6 $01 - vol $2 - note fs6 $01 - note as6 $01 - note g6 $01 - note b6 $01 - note gs6 $01 - vol $1 - note a6 $01 - note cs7 $01 - note as6 $01 - note d7 $01 - note b6 $02 - vol $2 - note e7 $01 - cmdff diff --git a/audio/common/sfx/pirateBell.s b/audio/common/sfx/pirateBell.s deleted file mode 100644 index 4dbe78f61..000000000 --- a/audio/common/sfx/pirateBell.s +++ /dev/null @@ -1,44 +0,0 @@ -sndPirateBellStart: - -sndPirateBellChannel2: - duty $00 - vol $c - cmdf8 $20 - note a4 $01 - cmdf8 $00 - vol $7 - note c5 $01 - note ds5 $01 - vol $6 - note cs5 $01 - note e5 $01 - vol $5 - note cs5 $01 - note e5 $01 - vol $4 - note cs5 $01 - note e5 $01 - vol $3 - note d5 $01 - note f5 $01 - vol $2 - note d5 $01 - note f5 $01 - vol $1 - note ds5 $01 - note fs5 $01 - cmdff - -sndPirateBellChannel7: - cmdf0 $f0 - note $34 $01 - cmdf0 $e0 - note $34 $01 - cmdf0 $b5 - note $24 $01 - note $24 $02 - note $24 $02 - note $17 $02 - note $17 $03 - note $16 $28 - cmdff diff --git a/audio/common/sfx/poof.s b/audio/common/sfx/poof.s deleted file mode 100644 index 4ead55563..000000000 --- a/audio/common/sfx/poof.s +++ /dev/null @@ -1,28 +0,0 @@ -sndPoofStart: - -sndPoofChannel2: - vol $d - cmdf0 $80 - cmdf8 $61 - .db $05 $39 $03 - cmdf8 $9f - .db $06 $3f $03 - cmdf8 $61 - .db $05 $39 $03 - cmdf8 $9f - .db $06 $3f $03 - cmdf8 $61 - .db $05 $39 $03 - vol $8 - cmdf8 $9f - .db $06 $3f $03 - vol $6 - cmdf8 $61 - .db $05 $39 $03 - vol $4 - cmdf8 $9f - .db $06 $3f $03 - vol $2 - cmdf8 $66 - .db $05 $39 $03 - cmdff diff --git a/audio/common/sfx/restore.s b/audio/common/sfx/restore.s deleted file mode 100644 index 0fd4ca821..000000000 --- a/audio/common/sfx/restore.s +++ /dev/null @@ -1,106 +0,0 @@ -sndRestoreStart: - -sndRestoreChannel2: - duty $02 - vol $1 - note f7 $01 - note as7 $01 - note d8 $01 - note f7 $01 - note as6 $01 - note d8 $01 - vol $2 - note f7 $01 - note as7 $01 - note d8 $01 - note f7 $01 - note as6 $01 - note d8 $01 - vol $3 - note f7 $01 - note a7 $01 - note d8 $01 - note f7 $01 - note a6 $01 - note d8 $01 - vol $4 - note f7 $01 - note a7 $01 - note d8 $01 - note f7 $01 - note a6 $01 - note d8 $01 - vol $5 - note f7 $01 - note gs7 $01 - note d8 $01 - note f7 $01 - note gs6 $01 - note d8 $01 - vol $6 - note fs7 $01 - note gs7 $01 - note d8 $01 - note fs7 $01 - note gs6 $01 - note d8 $01 - vol $7 - note fs7 $01 - note g7 $01 - note d8 $01 - note fs7 $01 - note g6 $01 - note d8 $01 - vol $6 - note fs7 $01 - note g7 $01 - note d8 $01 - note fs7 $01 - note g6 $01 - note d8 $01 - vol $5 - note fs7 $01 - note fs7 $01 - note d8 $01 - note fs7 $01 - note fs6 $01 - note d8 $01 - vol $4 - note fs7 $01 - note fs7 $01 - note d8 $01 - note fs7 $01 - note fs6 $01 - note d8 $01 - vol $3 - note g7 $01 - note f7 $01 - note d8 $01 - note g7 $01 - note f6 $01 - note d8 $01 - note g7 $01 - note f7 $01 - note d8 $01 - vol $2 - note g7 $01 - note f6 $01 - note d8 $01 - note g7 $01 - note e7 $01 - note d8 $01 - note g7 $01 - note e6 $01 - note d8 $01 - vol $1 - note g7 $01 - note e7 $01 - note d8 $01 - note g7 $01 - note e6 $01 - note d8 $01 - note g7 $01 - note ds7 $01 - env $0 $01 - note d8 $01 - cmdff diff --git a/audio/common/sfx/ricky.s b/audio/common/sfx/ricky.s deleted file mode 100644 index fb13f16fd..000000000 --- a/audio/common/sfx/ricky.s +++ /dev/null @@ -1,19 +0,0 @@ -sndRickyStart: - -sndRickyChannel5: - duty $03 - cmdf8 $0c - note g5 $05 - vol $0 - rest $08 - cmdf8 $fe - note d6 $05 - cmdf8 $00 - note g5 $01 - cmdf8 $0c - note g5 $05 - vol $0 - rest $0a - cmdf8 $fe - note d6 $0f - cmdff diff --git a/audio/common/sfx/roller.s b/audio/common/sfx/roller.s deleted file mode 100644 index bf398c7de..000000000 --- a/audio/common/sfx/roller.s +++ /dev/null @@ -1,50 +0,0 @@ -sndRollerStart: - -sndRollerChannel2: - duty $00 - vol $0 - rest $05 - vol $f - note c2 $01 - vol $e - note cs2 $01 - vol $d - note c2 $01 - vol $c - note d2 $01 - vol $b - note cs2 $01 - vol $a - note e2 $01 - vol $9 - note c2 $01 - vol $8 - note d2 $01 - vol $7 - note cs2 $01 - vol $6 - note ds2 $01 - vol $5 - note c2 $01 - vol $4 - note ds2 $01 - vol $3 - note cs2 $01 - vol $2 - note ds2 $01 - cmdff - -sndRollerChannel7: - cmdf0 $f1 - note $52 $01 - note $56 $03 - cmdf0 $01 - note $00 $01 - cmdf0 $f1 - note $52 $01 - note $56 $03 - note $64 $04 - note $57 $06 - cmdf0 $43 - note $57 $1e - cmdff diff --git a/audio/common/sfx/rumble.s b/audio/common/sfx/rumble.s deleted file mode 100644 index bd5a0e1b5..000000000 --- a/audio/common/sfx/rumble.s +++ /dev/null @@ -1,14 +0,0 @@ -sndRumbleStart: - -sndRumbleChannel2: - cmdf0 $df - .db $00 $45 $03 - vol $8 - env $0 $05 - .db $00 $45 $32 - cmdff - -sndRumbleChannel7: - cmdf0 $f5 - note $75 $3c - cmdff diff --git a/audio/common/sfx/rumble2.s b/audio/common/sfx/rumble2.s deleted file mode 100644 index 68a2df9d4..000000000 --- a/audio/common/sfx/rumble2.s +++ /dev/null @@ -1,26 +0,0 @@ -sndRumble2Start: - -sndRumble2Channel2: - vol $3 - note c2 $14 - note c2 $14 - note c2 $14 - note c2 $14 - note c2 $14 - note c2 $0a - cmdff - -sndRumble2Channel7: - cmdf0 $f0 - note $75 $14 - cmdf0 $f0 - note $75 $14 - cmdf0 $f0 - note $75 $14 - cmdf0 $f0 - note $75 $14 - cmdf0 $f0 - note $75 $14 - cmdf0 $f0 - note $74 $0a - cmdff diff --git a/audio/common/sfx/rupee.s b/audio/common/sfx/rupee.s deleted file mode 100644 index cef9cd5b0..000000000 --- a/audio/common/sfx/rupee.s +++ /dev/null @@ -1,20 +0,0 @@ -sndRupeeStart: - -sndRupeeChannel2: - duty $00 - env $0 $03 - vol $d - note gs7 $02 - vol $0 - rest $01 - vol $f - note e8 $02 - vol $9 - note gs7 $02 - vol $7 - note e8 $03 - vol $4 - note gs7 $02 - vol $2 - note e8 $03 - cmdff diff --git a/audio/common/sfx/scentSeed.s b/audio/common/sfx/scentSeed.s deleted file mode 100644 index 140ff9e9d..000000000 --- a/audio/common/sfx/scentSeed.s +++ /dev/null @@ -1,42 +0,0 @@ -sndScentSeedStart: - -sndScentSeedChannel2: - duty $02 - vol $f - cmdf8 $ce - note a2 $06 - cmdf8 $00 - vol $e - cmdf8 $50 - note f2 $06 - cmdf8 $00 - vol $a - cmdf8 $ce - note a2 $06 - cmdf8 $00 - vol $8 - cmdf8 $50 - note f2 $06 - cmdf8 $00 - vol $7 - cmdf8 $ce - note a2 $06 - cmdf8 $00 - vol $6 - cmdf8 $50 - note f2 $06 - cmdf8 $00 - vol $5 - cmdf8 $ce - note a2 $06 - cmdf8 $00 - vol $4 - cmdf8 $50 - note f2 $06 - cmdf8 $00 - vol $3 - env $0 $03 - cmdf8 $ce - note a2 $06 - cmdf8 $00 - cmdff diff --git a/audio/common/sfx/seedShooter.s b/audio/common/sfx/seedShooter.s deleted file mode 100644 index aa4af822e..000000000 --- a/audio/common/sfx/seedShooter.s +++ /dev/null @@ -1,22 +0,0 @@ -sndSeedShooterStart: - -sndSeedShooterChannel2: - duty $02 - vol $c - cmdf8 $28 - note ds5 $02 - cmdf8 $00 - note ds5 $01 - duty $02 - vol $6 - vibrato $01 - env $0 $02 - note ds5 $0c - cmdff - -sndSeedShooterChannel7: - cmdf0 $b1 - note $25 $01 - cmdf0 $41 - note $14 $0a - cmdff diff --git a/audio/common/sfx/selectItem.s b/audio/common/sfx/selectItem.s deleted file mode 100644 index 34f37ccc0..000000000 --- a/audio/common/sfx/selectItem.s +++ /dev/null @@ -1,34 +0,0 @@ -sndSelectItemStart: - -sndSelectItemChannel2: - duty $02 - vol $8 - note b5 $04 - vol $6 - note e6 $01 - vol $b - note a6 $04 - vol $5 - note b5 $04 - vol $4 - note e6 $01 - vol $6 - note a6 $04 - vol $3 - note b5 $04 - vol $2 - note e6 $01 - vol $4 - note a6 $04 - vol $1 - note b5 $04 - vol $1 - note e6 $01 - vol $2 - note a6 $04 - vol $1 - note b5 $04 - note e6 $01 - vol $1 - note a6 $04 - cmdff diff --git a/audio/common/sfx/shield.s b/audio/common/sfx/shield.s deleted file mode 100644 index d140aea57..000000000 --- a/audio/common/sfx/shield.s +++ /dev/null @@ -1,28 +0,0 @@ -sndShieldStart: - -sndShieldChannel2: - duty $00 - vol $0 - cmdf8 $00 - env $0 $00 - note c7 $01 - vol $f - cmdf8 $00 - env $0 $01 - note c2 $01 - vol $e - cmdf8 $00 - env $0 $01 - note c7 $01 - vol $0 - note c7 $02 - cmdff - -sndShieldChannel7: - cmdf0 $10 - note $26 $01 - cmdf0 $70 - note $24 $01 - cmdf0 $00 - note $36 $01 - cmdff diff --git a/audio/common/sfx/shock.s b/audio/common/sfx/shock.s deleted file mode 100644 index 37b692c4c..000000000 --- a/audio/common/sfx/shock.s +++ /dev/null @@ -1,59 +0,0 @@ -sndShockStart: - -sndShockChannel2: - cmdf0 $db - .db $06 $0b $02 - vol $b - .db $06 $0b $02 - vol $b - .db $06 $0b $02 - vol $b - .db $06 $0b $02 - vol $b - .db $06 $0b $02 - vol $b - .db $06 $0b $02 - vol $b - .db $06 $0b $02 - vol $b - .db $06 $0b $02 - vol $b - .db $06 $0b $02 - vol $b - .db $06 $0b $02 - vol $b - .db $06 $0b $02 - vol $b - .db $06 $0b $02 - vol $b - .db $06 $0b $02 - cmdff - -sndShockChannel7: - cmdf0 $d0 - note $24 $02 - cmdf0 $d0 - note $34 $02 - cmdf0 $d0 - note $24 $02 - cmdf0 $d0 - note $34 $02 - cmdf0 $d0 - note $24 $02 - cmdf0 $d0 - note $34 $02 - cmdf0 $d0 - note $24 $02 - cmdf0 $d0 - note $34 $02 - cmdf0 $d0 - note $24 $02 - cmdf0 $d0 - note $34 $02 - cmdf0 $d0 - note $24 $02 - cmdf0 $d0 - note $34 $02 - cmdf0 $d0 - note $34 $02 - cmdff diff --git a/audio/common/sfx/slash.s b/audio/common/sfx/slash.s deleted file mode 100644 index b05b239d6..000000000 --- a/audio/common/sfx/slash.s +++ /dev/null @@ -1,12 +0,0 @@ -sndSlashStart: - -sndSlashChannel7: - cmdf0 $b0 - note $17 $01 - note $25 $01 - note $27 $01 - note $35 $01 - note $37 $01 - note $45 $01 - note $47 $01 - cmdff diff --git a/audio/common/sfx/solvePuzzle.s b/audio/common/sfx/solvePuzzle.s deleted file mode 100644 index 177a2102d..000000000 --- a/audio/common/sfx/solvePuzzle.s +++ /dev/null @@ -1,16 +0,0 @@ -sndSolvePuzzleStart: - -sndSolvePuzzleChannel2: - duty $02 - vol $f - env $0 $01 - note fs6 $08 - note f6 $08 - note d6 $08 - note b5 $08 - note g5 $08 - note ds6 $08 - note g6 $08 - env $0 $01 - note b6 $0f - cmdff diff --git a/audio/common/sfx/solvePuzzle2.s b/audio/common/sfx/solvePuzzle2.s deleted file mode 100644 index b1993892d..000000000 --- a/audio/common/sfx/solvePuzzle2.s +++ /dev/null @@ -1,35 +0,0 @@ -sndSolvePuzzle2Start: - -sndSolvePuzzle2Channel2: - duty $02 - env $0 $02 - vol $d - note fs6 $10 - vol $b - note d6 $12 - note g5 $14 - vol $d - note g6 $18 - cmdff - -sndSolvePuzzle2Channel3: - duty $02 - env $0 $02 - vol $0 - rest $08 - vol $c - note f6 $10 - vol $b - note b5 $13 - vol $c - note ds6 $16 - env $0 $02 - vol $e - note b6 $23 - cmdff - -.ifdef ROM_AGES -.ifdef BUILD_VANILLA - cmdff -.endif -.endif diff --git a/audio/common/sfx/splash.s b/audio/common/sfx/splash.s deleted file mode 100644 index 89356e313..000000000 --- a/audio/common/sfx/splash.s +++ /dev/null @@ -1,9 +0,0 @@ -sndSplashStart: - -sndSplashChannel2: - duty $02 - env $1 $00 - vol $3 - cmdf8 $30 - note fs4 $06 - cmdff diff --git a/audio/common/sfx/strike.s b/audio/common/sfx/strike.s deleted file mode 100644 index 06ea409d1..000000000 --- a/audio/common/sfx/strike.s +++ /dev/null @@ -1,14 +0,0 @@ -sndStrikeStart: - -sndStrikeChannel7: - cmdf0 $80 - note $54 $01 - cmdf0 $80 - note $27 $02 - cmdf0 $b0 - note $15 $02 - cmdf0 $60 - note $27 $02 - cmdf0 $60 - note $47 $02 - cmdff diff --git a/audio/common/sfx/strongPound.s b/audio/common/sfx/strongPound.s deleted file mode 100644 index 966967fba..000000000 --- a/audio/common/sfx/strongPound.s +++ /dev/null @@ -1,37 +0,0 @@ -sndStrongPoundStart: - -sndStrongPoundChannel2: - duty $00 - vol $f - note ds2 $03 - vol $0 - rest $01 - vol $f - note ds2 $01 - vol $f - note ds2 $02 - vol $0 - rest $01 - vol $f - env $0 $01 - note c2 $0a - cmdff - -sndStrongPoundChannel7: - cmdf0 $f1 - note $55 $03 - cmdf0 $01 - note $55 $01 - cmdf0 $f1 - note $35 $01 - cmdf0 $f1 - note $46 $02 - cmdf0 $01 - note $55 $01 - cmdf0 $f1 - note $36 $01 - cmdf0 $f6 - note $55 $0a - cmdf0 $96 - note $57 $46 - cmdff diff --git a/audio/common/sfx/switch.s b/audio/common/sfx/switch.s deleted file mode 100644 index 3cc0582aa..000000000 --- a/audio/common/sfx/switch.s +++ /dev/null @@ -1,23 +0,0 @@ -sndSwitchStart: - -sndSwitchChannel2: - duty $02 - vol $d - note e5 $01 - vol $0 - rest $03 - vol $a - note a5 $01 - vol $0 - rest $03 - vol $8 - note b5 $01 - vol $0 - rest $03 - vol $a - note a5 $01 - vol $0 - rest $03 - vol $d - note e5 $01 - cmdff diff --git a/audio/common/sfx/switchHook.s b/audio/common/sfx/switchHook.s deleted file mode 100644 index 74029dcda..000000000 --- a/audio/common/sfx/switchHook.s +++ /dev/null @@ -1,10 +0,0 @@ -sndSwitchHookStart: - -sndSwitchHookChannel2: - vol $d - note c7 $01 - vol $0 - rest $01 - vol $3 - note c7 $01 - cmdff diff --git a/audio/common/sfx/swordBeam.s b/audio/common/sfx/swordBeam.s deleted file mode 100644 index 8fba39443..000000000 --- a/audio/common/sfx/swordBeam.s +++ /dev/null @@ -1,75 +0,0 @@ -sndSwordBeamStart: - -sndSwordBeamChannel2: - duty $00 - vol $d - note b5 $01 - vol $8 - note cs5 $01 - note as4 $01 - note gs5 $01 - note as4 $01 - note gs4 $01 - note f5 $01 - note gs4 $01 - note g4 $01 - note ds5 $01 - note g4 $01 - note f4 $01 - vol $9 - note b5 $01 - vol $5 - note cs5 $01 - note as4 $01 - note gs5 $01 - note as4 $01 - note gs4 $01 - note f5 $01 - note gs4 $01 - note g4 $01 - note ds5 $01 - note g4 $01 - note f4 $01 - vol $6 - note b5 $01 - vol $3 - note cs5 $01 - note as4 $01 - note gs5 $01 - note as4 $01 - note gs4 $01 - note f5 $01 - note gs4 $01 - note g4 $01 - note ds5 $01 - note g4 $01 - note f4 $01 - vol $3 - note b5 $01 - vol $2 - note cs5 $01 - note as4 $01 - note gs5 $01 - note as4 $01 - note gs4 $01 - note f5 $01 - note gs4 $01 - note g4 $01 - note ds5 $01 - note g4 $01 - note f4 $01 - vol $1 - note b5 $01 - vol $1 - note cs5 $01 - note as4 $01 - note gs5 $01 - note as4 $01 - note gs4 $01 - note f5 $01 - note gs4 $01 - note g4 $01 - note ds5 $01 - note g4 $01 - note f4 $01 - cmdff diff --git a/audio/common/sfx/swordObtained.s b/audio/common/sfx/swordObtained.s deleted file mode 100644 index 6072355ef..000000000 --- a/audio/common/sfx/swordObtained.s +++ /dev/null @@ -1,29 +0,0 @@ -sndSwordObtainedStart: - -sndSwordObtainedChannel2: - cmdf0 $00 - vol $0 - .db $00 $00 $09 - vol $6 - env $0 $07 - .db $07 $c0 $55 - cmdff - -sndSwordObtainedChannel7: - cmdf0 $80 - note $27 $01 - note $37 $01 - note $46 $01 - note $56 $01 - note $66 $01 - note $56 $01 - note $46 $01 - note $37 $01 - note $27 $01 - cmdff - -.ifdef ROM_SEASONS -.ifdef BUILD_VANILLA - .db $ff -.endif -.endif diff --git a/audio/common/sfx/swordSlash.s b/audio/common/sfx/swordSlash.s deleted file mode 100644 index 73b8b9818..000000000 --- a/audio/common/sfx/swordSlash.s +++ /dev/null @@ -1,22 +0,0 @@ -sndSwordSlashStart: - -sndSwordSlashChannel7: - cmdf0 $20 - note $47 $01 - cmdf0 $20 - note $46 $01 - cmdf0 $30 - note $45 $01 - cmdf0 $40 - note $44 $01 - cmdf0 $50 - note $37 $01 - cmdf0 $70 - note $35 $01 - cmdf0 $90 - note $27 $01 - cmdf0 $b0 - note $26 $01 - cmdf0 $c0 - note $25 $01 - cmdff diff --git a/audio/common/sfx/swordSpin.s b/audio/common/sfx/swordSpin.s deleted file mode 100644 index 27b360cd5..000000000 --- a/audio/common/sfx/swordSpin.s +++ /dev/null @@ -1,38 +0,0 @@ -sndSwordSpinStart: - -sndSwordSpinChannel7: - cmdf0 $40 - note $07 $01 - cmdf0 $50 - note $14 $02 - cmdf0 $60 - note $16 $02 - cmdf0 $70 - note $24 $02 - cmdf0 $80 - note $26 $02 - cmdf0 $90 - note $34 $02 - cmdf0 $a0 - note $35 $02 - cmdf0 $b0 - note $36 $02 - cmdf0 $b0 - note $37 $02 - cmdf0 $a0 - note $36 $02 - cmdf0 $90 - note $35 $02 - cmdf0 $80 - note $34 $02 - cmdf0 $70 - note $26 $02 - cmdf0 $60 - note $24 $02 - cmdf0 $50 - note $16 $02 - cmdf0 $40 - note $14 $02 - cmdf0 $30 - note $07 $01 - cmdff diff --git a/audio/common/sfx/teleport.s b/audio/common/sfx/teleport.s deleted file mode 100644 index 126638462..000000000 --- a/audio/common/sfx/teleport.s +++ /dev/null @@ -1,175 +0,0 @@ -sndTeleportStart: - -sndTeleportChannel2: - duty $01 - vol $1 - note as3 $01 - vol $1 - note a2 $01 - vol $1 - note gs3 $01 - vol $1 - note b3 $01 - vol $1 - note as2 $01 - vol $1 - note a3 $01 - vol $2 - note c4 $01 - vol $1 - note b2 $01 - vol $1 - note as3 $01 - vol $3 - note cs4 $01 - vol $1 - note c3 $01 - vol $1 - note b3 $01 - vol $4 - note d4 $01 - vol $2 - note cs3 $01 - vol $2 - note c4 $01 - vol $5 - note ds4 $01 - vol $3 - note d3 $01 - vol $3 - note cs4 $01 - vol $6 - note e4 $01 - vol $4 - note ds3 $01 - vol $4 - note d4 $01 - vol $7 - note f4 $01 - vol $5 - note e3 $01 - vol $5 - note ds4 $01 - vol $8 - note fs4 $01 - vol $6 - note f3 $01 - vol $6 - note e4 $01 - vol $9 - note g4 $01 - vol $7 - note fs3 $01 - vol $7 - note f4 $01 - vol $a - note gs4 $01 - vol $8 - note g3 $01 - vol $8 - note fs4 $01 - vol $b - note a4 $01 - vol $9 - note gs3 $01 - vol $9 - note g4 $01 - vol $c - note as4 $01 - vol $a - note a3 $01 - vol $a - note gs4 $01 - vol $d - note b4 $01 - vol $b - note as3 $01 - vol $a - note gs4 $01 - vol $e - note c5 $01 - vol $c - note b3 $01 - vol $9 - note a4 $01 - vol $d - note cs5 $01 - vol $b - note c4 $01 - vol $8 - note as4 $01 - vol $c - note d5 $01 - vol $a - note cs4 $01 - vol $7 - note b4 $01 - vol $b - note ds5 $01 - vol $9 - note d4 $01 - vol $6 - note c5 $01 - vol $a - note e5 $01 - vol $8 - note ds4 $01 - vol $5 - note cs5 $01 - vol $9 - note f5 $01 - vol $7 - note e4 $01 - vol $4 - note d5 $01 - vol $8 - note fs5 $01 - vol $6 - note f4 $01 - vol $3 - note ds5 $01 - vol $7 - note g5 $01 - vol $5 - note fs4 $01 - vol $2 - note e5 $01 - vol $6 - note gs5 $01 - vol $4 - note g4 $01 - vol $1 - note f5 $01 - vol $5 - note a5 $01 - vol $3 - note gs4 $01 - vol $1 - note fs5 $01 - vol $4 - note as5 $01 - vol $2 - note a4 $01 - vol $1 - note g5 $01 - vol $3 - note b5 $01 - vol $1 - note as4 $01 - vol $2 - note c6 $01 - vol $1 - note b4 $01 - vol $1 - note cs6 $01 - vol $1 - note c5 $01 - vol $1 - note d6 $01 - cmdff - -.ifdef ROM_AGES -.ifdef BUILD_VANILLA - cmdff -.endif -.endif diff --git a/audio/common/sfx/text.s b/audio/common/sfx/text.s deleted file mode 100644 index 7ccafa7be..000000000 --- a/audio/common/sfx/text.s +++ /dev/null @@ -1,10 +0,0 @@ -sndTextStart: - -sndTextChannel2: - duty $02 - vol $2 - note f6 $02 - duty $02 - vol $b - note f6 $01 - cmdff diff --git a/audio/common/sfx/text2.s b/audio/common/sfx/text2.s deleted file mode 100644 index 85f0ae4ab..000000000 --- a/audio/common/sfx/text2.s +++ /dev/null @@ -1,16 +0,0 @@ -sndText2Start: - -sndText2Channel2: - duty $02 - env $1 $00 - vol $d - note fs5 $05 - vol $0 - rest $01 - vol $d - note b5 $05 - vol $0 - rest $01 - vol $d - note e6 $05 - cmdff diff --git a/audio/common/sfx/throw.s b/audio/common/sfx/throw.s deleted file mode 100644 index 3170d4a32..000000000 --- a/audio/common/sfx/throw.s +++ /dev/null @@ -1,14 +0,0 @@ -sndThrowStart: - -sndThrowChannel2: - duty $02 - vol $d - env $1 $00 - cmdf8 $f4 - note d6 $0a - cmdf8 $00 - vol $8 - env $0 $01 - cmdf8 $e0 - note c5 $08 - cmdff diff --git a/audio/common/sfx/transform.s b/audio/common/sfx/transform.s deleted file mode 100644 index 2ba26fe0b..000000000 --- a/audio/common/sfx/transform.s +++ /dev/null @@ -1,31 +0,0 @@ -sndTransformStart: - -sndTransformChannel2: - duty $00 - vol $3 - note b6 $02 - vol $8 - note b6 $02 - vol $a - note b6 $02 - vol $a - note b5 $03 - vol $9 - note f5 $03 - vol $8 - note c5 $03 - vol $7 - note fs5 $03 - vol $4 - note f5 $03 - vol $4 - note c5 $03 - vol $4 - note fs5 $03 - vol $2 - note f5 $03 - vol $2 - note c5 $03 - vol $2 - note fs5 $03 - cmdff diff --git a/audio/common/sfx/unknown3.s b/audio/common/sfx/unknown3.s deleted file mode 100644 index 4210cd194..000000000 --- a/audio/common/sfx/unknown3.s +++ /dev/null @@ -1,27 +0,0 @@ -sndUnknown3Start: - -sndUnknown3Channel2: - duty $01 - vibrato $0b - vol $c - cmdf8 $36 - note c3 $08 - cmdf8 $00 - vol $9 - note gs5 $01 - note b4 $01 - vol $9 - cmdf8 $18 - note g3 $06 - cmdf8 $00 - vol $7 - note gs5 $01 - note b4 $01 - vol $7 - cmdf8 $18 - note g3 $06 - cmdf8 $00 - vol $7 - note gs5 $01 - note b4 $01 - cmdff diff --git a/audio/common/sfx/unknown4.s b/audio/common/sfx/unknown4.s deleted file mode 100644 index 9222a707e..000000000 --- a/audio/common/sfx/unknown4.s +++ /dev/null @@ -1,47 +0,0 @@ -sndUnknown4Start: - -sndUnknown4Channel2: - duty $02 - vol $d - note c4 $01 - note c5 $01 - note g3 $01 - note g4 $01 - note c5 $01 - note c4 $01 - note as4 $01 - note as3 $01 - note a4 $01 - note a3 $01 - note g4 $01 - note g3 $01 - note f4 $01 - note f3 $01 - note ds4 $01 - note ds3 $01 - vol $b - note cs4 $01 - vol $a - note cs3 $01 - vol $9 - note b3 $01 - vol $8 - note b2 $01 - vol $5 - note c2 $01 - note c3 $01 - note c2 $01 - note c3 $01 - note c2 $01 - note c3 $01 - note c2 $01 - note c3 $01 - note c2 $01 - note c3 $01 - note c2 $01 - note c3 $01 - note c2 $01 - note c3 $01 - note c2 $01 - note c3 $01 - cmdff diff --git a/audio/common/sfx/unknown5.s b/audio/common/sfx/unknown5.s deleted file mode 100644 index 6b9075b21..000000000 --- a/audio/common/sfx/unknown5.s +++ /dev/null @@ -1,14 +0,0 @@ -sndUnknown5Start: - -sndUnknown5Channel7: - cmdf0 $30 - note $27 $01 - cmdf0 $60 - note $27 $01 - cmdf0 $90 - note $17 $01 - cmdf0 $c0 - note $17 $01 - cmdf0 $f0 - note $07 $01 - cmdff diff --git a/audio/common/sfx/unknown7.s b/audio/common/sfx/unknown7.s deleted file mode 100644 index 5fd37c781..000000000 --- a/audio/common/sfx/unknown7.s +++ /dev/null @@ -1,8 +0,0 @@ -sndUnknown7Start: - -sndUnknown7Channel2: - duty $02 - vol $5 - note d6 $01 - note d7 $04 - cmdff diff --git a/audio/common/sfx/veranFairyAttack.s b/audio/common/sfx/veranFairyAttack.s deleted file mode 100644 index e886cbd8d..000000000 --- a/audio/common/sfx/veranFairyAttack.s +++ /dev/null @@ -1,76 +0,0 @@ -sndVeranFairyAttackStart: - -sndVeranFairyAttackChannel2: - cmdf0 $34 - vol $9 - .db $06 $46 $04 - vol $8 - .db $06 $46 $04 - vol $7 - .db $06 $46 $04 - vol $6 - .db $06 $46 $04 - vol $5 - .db $06 $46 $04 - vol $4 - .db $06 $46 $04 - vol $3 - .db $06 $46 $04 - vol $2 - .db $06 $46 $04 - vol $1 - .db $06 $46 $04 - cmdff - -sndVeranFairyAttackChannel7: - cmdf0 $90 - note $36 $01 - note $34 $01 - note $27 $01 - note $26 $01 - cmdf0 $80 - note $36 $01 - note $34 $01 - note $27 $01 - note $26 $01 - cmdf0 $70 - note $36 $01 - note $34 $01 - note $27 $01 - note $26 $01 - cmdf0 $60 - note $36 $01 - note $34 $01 - note $27 $01 - note $26 $01 - cmdf0 $50 - note $36 $01 - note $34 $01 - note $27 $01 - note $26 $01 - cmdf0 $40 - note $36 $01 - note $34 $01 - note $27 $01 - note $26 $01 - cmdf0 $30 - note $36 $01 - note $34 $01 - note $27 $01 - note $26 $01 - cmdf0 $20 - note $36 $01 - note $34 $01 - note $27 $01 - note $26 $01 - cmdf0 $10 - note $36 $01 - note $34 $01 - note $27 $01 - note $26 $01 - cmdf0 $11 - note $36 $01 - note $34 $01 - note $27 $01 - note $26 $01 - cmdff diff --git a/audio/common/sfx/veranProjectile.s b/audio/common/sfx/veranProjectile.s deleted file mode 100644 index 71b0533cb..000000000 --- a/audio/common/sfx/veranProjectile.s +++ /dev/null @@ -1,67 +0,0 @@ -sndVeranProjectileStart: - -sndVeranProjectileChannel2: - cmdf0 $00 - vol $0 - .db $00 $00 $01 - vol $d - .db $07 $80 $01 - vol $9 - cmdf8 $fc - .db $07 $80 $05 - cmdf8 $00 - .db $07 $68 $01 - .db $07 $58 $01 - .db $07 $46 $01 - vol $b - .db $07 $80 $01 - vol $9 - cmdf8 $fc - .db $07 $80 $05 - cmdf8 $00 - .db $07 $68 $01 - .db $07 $58 $01 - .db $07 $46 $01 - vol $a - .db $07 $80 $01 - vol $8 - cmdf8 $fc - .db $07 $80 $05 - cmdf8 $00 - .db $07 $68 $01 - .db $07 $58 $01 - .db $07 $46 $01 - vol $9 - .db $07 $80 $01 - vol $7 - cmdf8 $fc - .db $07 $80 $05 - cmdf8 $00 - .db $07 $68 $01 - .db $07 $58 $01 - .db $07 $46 $01 - vol $8 - .db $07 $80 $01 - vol $6 - cmdf8 $fc - .db $07 $80 $05 - cmdf8 $00 - .db $07 $68 $01 - .db $07 $58 $01 - .db $07 $46 $01 - vol $5 - .db $07 $80 $01 - vol $3 - cmdf8 $fc - .db $07 $80 $05 - cmdf8 $00 - .db $07 $68 $01 - .db $07 $58 $01 - .db $07 $46 $01 - vol $3 - .db $07 $80 $01 - env $0 $03 - vol $1 - cmdf8 $fc - .db $07 $80 $05 - cmdff diff --git a/audio/common/sfx/warpStart.s b/audio/common/sfx/warpStart.s deleted file mode 100644 index 2c64cea00..000000000 --- a/audio/common/sfx/warpStart.s +++ /dev/null @@ -1,159 +0,0 @@ -sndWarpStartStart: - -sndWarpStartChannel2: - cmdf0 $d2 - .db $07 $07 $03 - .db $06 $e7 $01 - .db $06 $80 $01 - .db $06 $9e $01 - vol $4 - .db $07 $09 $03 - .db $06 $e9 $01 - .db $06 $82 $01 - .db $06 $a0 $01 - vol $6 - .db $07 $0b $03 - .db $06 $eb $01 - .db $06 $85 $01 - .db $06 $a3 $01 - vol $8 - .db $07 $0f $03 - .db $06 $ef $01 - .db $06 $89 $01 - .db $06 $a7 $01 - vol $9 - .db $07 $14 $03 - .db $06 $f4 $01 - .db $06 $8f $01 - .db $06 $ab $01 - vol $a - .db $07 $19 $03 - .db $06 $f9 $01 - .db $06 $94 $01 - .db $06 $b2 $01 - vol $a - .db $07 $1c $03 - .db $06 $ff $01 - .db $06 $99 $01 - .db $06 $b7 $01 - vol $a - .db $07 $22 $03 - .db $07 $05 $01 - .db $06 $9d $01 - .db $06 $bb $01 - vol $a - .db $07 $26 $03 - .db $07 $09 $01 - .db $06 $a2 $01 - .db $06 $c0 $01 - vol $a - .db $07 $2a $03 - .db $07 $0f $01 - .db $06 $a6 $01 - .db $06 $c5 $01 - vol $a - .db $07 $30 $03 - .db $07 $14 $01 - .db $06 $aa $01 - .db $06 $c9 $01 - vol $a - .db $07 $35 $03 - .db $07 $18 $01 - .db $06 $af $01 - .db $06 $cf $01 - vol $a - .db $07 $3b $03 - .db $07 $1e $01 - .db $06 $b3 $01 - .db $06 $d4 $01 - vol $a - .db $07 $41 $03 - .db $07 $23 $01 - .db $06 $b7 $01 - .db $06 $d9 $01 - vol $a - .db $07 $44 $03 - .db $07 $23 $01 - .db $06 $b7 $01 - .db $06 $d9 $01 - vol $a - .db $07 $47 $03 - .db $07 $27 $01 - .db $06 $bb $01 - .db $06 $df $01 - vol $a - .db $07 $4a $03 - .db $07 $2b $01 - .db $06 $c1 $01 - .db $06 $e4 $01 - vol $a - .db $07 $4d $03 - .db $07 $32 $01 - .db $06 $c7 $01 - .db $06 $e9 $01 - vol $a - .db $07 $50 $03 - .db $07 $37 $01 - .db $06 $cb $01 - .db $06 $f0 $01 - vol $a - .db $07 $53 $03 - .db $07 $3c $01 - .db $06 $d1 $01 - .db $06 $f6 $01 - vol $a - .db $07 $56 $03 - .db $07 $43 $01 - .db $06 $d7 $01 - .db $06 $fb $01 - vol $a - .db $07 $59 $03 - .db $07 $48 $01 - .db $06 $dc $01 - .db $07 $03 $01 - vol $a - .db $07 $5b $03 - .db $07 $4d $01 - .db $06 $e3 $01 - .db $07 $09 $01 - vol $a - .db $07 $60 $03 - .db $07 $52 $01 - .db $06 $e5 $01 - .db $07 $0a $01 - vol $a - .db $07 $66 $03 - .db $07 $58 $01 - .db $06 $ea $01 - .db $07 $16 $01 - vol $9 - .db $07 $6b $03 - .db $07 $5e $01 - .db $06 $f5 $01 - .db $07 $1a $01 - vol $8 - .db $07 $73 $03 - .db $07 $62 $01 - .db $06 $fa $01 - .db $07 $26 $01 - vol $7 - .db $07 $79 $03 - .db $07 $6e $01 - .db $07 $05 $01 - .db $07 $2a $01 - vol $5 - .db $07 $7d $03 - .db $07 $72 $01 - .db $07 $0a $01 - .db $07 $36 $01 - vol $3 - .db $07 $85 $03 - .db $07 $7e $01 - .db $07 $15 $01 - .db $07 $3a $01 - vol $1 - .db $07 $8b $03 - .db $07 $82 $01 - .db $07 $1a $01 - .db $07 $46 $01 - cmdff diff --git a/audio/common/sfx/wave.s b/audio/common/sfx/wave.s deleted file mode 100644 index 35754fc8d..000000000 --- a/audio/common/sfx/wave.s +++ /dev/null @@ -1,22 +0,0 @@ -sndWaveStart: - -sndWaveChannel7: - cmdf0 $20 - note $15 $03 - cmdf0 $30 - note $15 $03 - cmdf0 $40 - note $15 $03 - cmdf0 $50 - note $15 $03 - cmdf0 $60 - note $15 $03 - cmdf0 $70 - note $15 $06 - cmdf0 $70 - note $15 $19 - cmdf0 $70 - note $15 $19 - cmdf0 $77 - note $15 $4b - cmdff diff --git a/audio/common/sfx/whistle.s b/audio/common/sfx/whistle.s deleted file mode 100644 index 3f5229a32..000000000 --- a/audio/common/sfx/whistle.s +++ /dev/null @@ -1,54 +0,0 @@ -sndWhistleStart: - -sndWhistleChannel2: - duty $00 - vol $c - note g7 $02 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - note g7 $01 - note gs7 $01 - cmdff diff --git a/audio/common/waveforms.json b/audio/common/waveforms.json new file mode 100644 index 000000000..516a52f2f --- /dev/null +++ b/audio/common/waveforms.json @@ -0,0 +1,232 @@ +[ + { + "id": 0, + "name": "WF_TRIANGLE_MEDIUM", + "data": "1 1 2 2 3 3 4 4 5 5 6 6 7 8 9 10 10 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2" + }, + { + "id": 1, + "name": "WF_SQUARE_80_VOL_8", + "data": "0 0 0 0 0 0 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8" + }, + { + "id": 2, + "name": "WF_SQUARE_75_VOL_F", + "data": "0 0 0 0 0 0 0 0 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15" + }, + { + "id": 3, + "name": "WF_TRIANGLE_LOUD", + "data": "1 1 3 3 5 5 7 7 9 9 11 11 13 13 15 15 15 15 13 13 11 11 9 9 7 7 5 5 3 3 1 1" + }, + { + "id": 4, + "name": "WF_TRIANGLE_HALF_04", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 8 9 9 10 10 10 10 10 10 10 10 9 9 8 8" + }, + { + "id": 5, + "name": "WF_TRIANGLE_MEDIUM_ALT", + "data": "1 1 2 2 3 3 4 4 5 5 6 6 7 8 9 10 10 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2" + }, + { + "id": 6, + "name": "WF_TRIANGLE_HALF_06", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 4 4 5 5 5 5 5 5 5 5 4 4 3 3" + }, + { + "id": 7, + "name": "WF_TRIANGLE_HALF_07_CLONE", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 5 5 6 6 6 6 6 6 6 6 5 5 4 4" + }, + { + "id": 8, + "name": "WF_TRIANGLE_SOFT", + "data": "0 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 4 4 4 3 3 3 2 2 2 1 1 1 0 0 0 0" + }, + { + "id": 9, + "name": "WF_TRIANGLE_HALF_09", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 5 5 5 5 3 3 3 3 0 0" + }, + { + "id": 10, + "name": "WF_SQUARE_50_VOL_A", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12" + }, + { + "id": 11, + "name": "WF_SQUARE_90_VOL_D", + "data": "0 0 0 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13" + }, + { + "id": 12, + "name": "WF_SQUARE_50_VOL_1", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1" + }, + { + "id": 13, + "name": "WF_SQUARE_50_VOL_3", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3" + }, + { + "id": 14, + "name": "WF_SQUARE_50_VOL_8", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8" + }, + { + "id": 15, + "name": "WF_SQUARE_50_VOL_3_ALT", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3" + }, + { + "id": 16, + "name": "WF_SQUARE_50_VOL_7", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7" + }, + { + "id": 17, + "name": "WF_SQUARE_50_VOL_8_ALT", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8" + }, + { + "id": 18, + "name": "WF_12", + "data": "0 0 0 0 0 0 0 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9" + }, + { + "id": 19, + "name": "WF_SQUARE_78_VOL_7", + "data": "0 0 0 0 0 0 0 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7" + }, + { + "id": 20, + "name": "WF_TRIANGLE_14", + "data": "3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 4 4 5 5 5 5 5 5 5 5 4 4 3" + }, + { + "id": 21, + "name": "WF_15", + "data": "5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 4 6 6 7 7 7 7 7 7 7 7 6 6 5" + }, + { + "id": 22, + "name": "WF_TRIANGLE_16", + "data": "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0" + }, + { + "id": 23, + "name": "WF_SQUARE_50_VOL_5", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5" + }, + { + "id": 24, + "name": "WF_SQUARE_50_VOL_9", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9" + }, + { + "id": 25, + "name": "WF_SQUARE_62_VOL_7", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7" + }, + { + "id": 26, + "name": "WF_1a", + "data": "8 0 13 11 15 15 13 11 8 0 2 5 0 0 2 5 8 0 13 11 15 15 13 11 8 0 2 5 0 0 2 5" + }, + { + "id": 27, + "name": "WF_1b", + "data": "4 0 6 14 8 0 6 14 4 0 1 3 0 0 1 3 4 0 6 14 8 0 6 14 4 0 1 3 0 0 1 3" + }, + { + "id": 28, + "name": "WF_1c", + "data": "15 15 11 11 0 0 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11" + }, + { + "id": 29, + "name": "WF_SAWTOOTH_DOUBLEFREQ", + "data": "7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0" + }, + { + "id": 30, + "name": "WF_SAWTOOTH_LOUD", + "data": "15 15 14 14 13 13 12 12 11 11 10 10 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0" + }, + { + "id": 31, + "name": "WF_ALTERNATING_1f", + "data": "1 1 15 15 3 3 13 13 5 5 11 11 7 7 9 9 8 8 8 8 7 7 9 9 5 5 11 11 3 3 13 13" + }, + { + "id": 32, + "name": "WF_TRIANGLE_20", + "data": "0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0" + }, + { + "id": 33, + "name": "WF_21", + "data": "0 0 0 0 0 0 0 0 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15" + }, + { + "id": 34, + "name": "WF_22", + "data": "6 12 6 12 6 12 6 12 6 11 6 10 6 9 6 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0" + }, + { + "id": 35, + "name": "WF_SAWTOOTH_SOFT", + "data": "7 7 7 7 6 6 6 6 5 5 5 5 4 4 4 4 12 12 11 11 11 10 10 10 10 9 9 9 8 8 8 8" + }, + { + "id": 36, + "name": "WF_24", + "data": "8 0 10 14 13 11 15 6 15 15 15 6 13 11 10 14 8 0 4 15 2 5 0 10 0 0 0 10 2 5 4 15" + }, + { + "id": 37, + "name": "WF_25", + "data": "12 0 13 2 13 11 13 2 12 0 10 3 8 0 5 12 4 0 2 13 2 5 2 13 4 0 5 12 8 0 10 3" + }, + { + "id": 38, + "name": "WF_TRIANGLE_HALF_26", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 2 3 3 3 3 2 2 1 1 0 0" + }, + { + "id": 39, + "name": "WF_TRIANGLE_27", + "data": "0 0 0 0 0 0 0 0 9 9 11 11 13 13 14 14 15 15 15 15 14 14 13 13 11 11 9 9 0 0 0 0" + }, + { + "id": 40, + "name": "WF_TRIANGLE_HALF_28", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 5 5 6 6 6 6 6 6 6 6 5 5 4 4" + }, + { + "id": 41, + "name": "WF_SQUARE_75_VOL_2", + "data": "0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2" + }, + { + "id": 42, + "name": "WF_SQUARE_75_VOL_3", + "data": "0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3" + }, + { + "id": 43, + "name": "WF_SQUARE_50_VOL_4", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4" + }, + { + "id": 44, + "name": "WF_SQUARE_50_VOL_2", + "data": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2" + }, + { + "id": 45, + "name": "WF_2d", + "data": "9 11 13 15 15 15 15 14 13 12 11 10 9 8 7 6 2 1 0 0 0 1 2 3 2 2 2 2 2 3 2 3" + } +] diff --git a/audio/common/waveforms.s b/audio/common/waveforms.s deleted file mode 100644 index 8724526ca..000000000 --- a/audio/common/waveforms.s +++ /dev/null @@ -1,176 +0,0 @@ -; These are the waveforms available on the wave channel. Using the command "duty $XX" will use -; waveform number XX in this table. -; -; If adding a new waveform, remember to add a reference to it at the end of waveformTable. - - -.define NUM_WAVEFORMS $2e - -; Table of pointers to waveform data -waveformTable: - .rept NUM_WAVEFORMS index i - .dw @waveform{%.2x{i}} - .endr - - -@waveformUnused0: - .db $00 $00 $00 $00 $66 $77 $88 $88 $88 $88 $88 $88 $88 $77 $66 $55 - -m_waveform $04, WF_TRIANGLE_HALF_04 - .db $00 $00 $00 $00 $00 $00 $00 $00 $88 $99 $aa $aa $aa $aa $99 $88 - -m_waveform $0e, WF_SQUARE_50_VOL_8 - .db $00 $00 $00 $00 $00 $00 $00 $00 $88 $88 $88 $88 $88 $88 $88 $88 - -m_waveform $28, WF_TRIANGLE_HALF_28 - .db $00 $00 $00 $00 $00 $00 $00 $00 $44 $55 $66 $66 $66 $66 $55 $44 - -m_waveform $06, WF_TRIANGLE_HALF_06 - .db $00 $00 $00 $00 $00 $00 $00 $00 $33 $44 $55 $55 $55 $55 $44 $33 - -m_waveform $07, WF_TRIANGLE_HALF_07_CLONE - .db $00 $00 $00 $00 $00 $00 $00 $00 $44 $55 $66 $66 $66 $66 $55 $44 - -m_waveform $26, WF_TRIANGLE_HALF_26 - .db $00 $00 $00 $00 $00 $00 $00 $00 $00 $11 $22 $33 $33 $22 $11 $00 - -m_waveform $09, WF_TRIANGLE_HALF_09 - .db $00 $00 $00 $00 $00 $00 $00 $00 $00 $33 $33 $55 $55 $33 $33 $00 - -m_waveform $16, WF_TRIANGLE_16 - .db $01 $23 $45 $67 $89 $ab $cd $ef $ed $cb $a9 $87 $65 $43 $21 $00 - -m_waveform $20, WF_TRIANGLE_20 - .db $00 $01 $23 $45 $67 $89 $ab $cd $cb $a9 $87 $65 $43 $21 $00 $00 - -@waveformUnused1: - .db $00 $00 $00 $00 $88 $88 $88 $88 $88 $88 $88 $88 $88 $88 $88 $88 - -m_waveform $0a, WF_SQUARE_50_VOL_A - .db $00 $00 $00 $00 $00 $00 $00 $00 $cc $cc $cc $cc $cc $cc $cc $cc - -m_waveform $1e, WF_SAWTOOTH_LOUD - .db $ff $ee $dd $cc $bb $aa $99 $88 $77 $66 $55 $44 $33 $22 $11 $00 - -m_waveform $21, WF_21 - .db $00 $00 $00 $00 $77 $77 $77 $77 $77 $77 $77 $77 $ff $ff $ff $ff - -@waveformUnused2: - .db $ff $ee $cc $bb $99 $88 $66 $55 $cc $aa $99 $77 $66 $44 $22 $00 - -m_waveform $23, WF_SAWTOOTH_SOFT - .db $77 $77 $66 $66 $55 $55 $44 $44 $cc $bb $ba $aa $a9 $99 $88 $88 - -@waveformUnused3: - .db $88 $aa $cc $ee $ff $ee $dd $cc $bb $aa $99 $88 $66 $44 $22 $00 - -m_waveform $22, WF_22 - .db $6c $6c $6c $6c $6b $6a $69 $68 $77 $66 $55 $44 $33 $22 $11 $00 - -m_waveform $1f, WF_ALTERNATING_1f - .db $11 $ff $33 $dd $55 $bb $77 $99 $88 $88 $77 $99 $55 $bb $33 $dd - -m_waveform $24, WF_24 - .db $80 $ae $db $f6 $ff $f6 $db $ae $80 $4f $25 $0a $00 $0a $25 $4f - -@waveformUnused4: - .db $ff $f6 $db $ae $80 $4f $25 $0a $00 $0a $25 $4f $80 $ae $db $f6 - -m_waveform $25, WF_25 - .db $c0 $d2 $db $d2 $c0 $a3 $80 $5c $40 $2d $25 $2d $40 $5c $80 $a3 - -@waveformUnused5: - .db $c0 $db $c0 $80 $40 $25 $40 $80 $c0 $db $c0 $80 $40 $25 $40 $80 - -m_waveform $1a, WF_1a - .db $80 $db $ff $db $80 $25 $00 $25 $80 $db $ff $db $80 $25 $00 $25 - -m_waveform $1b, WF_1b - .db $40 $6e $80 $6e $40 $13 $00 $13 $40 $6e $80 $6e $40 $13 $00 $13 - -@waveformUnused6: - .db $20 $37 $40 $37 $20 $0a $00 $0a $20 $37 $40 $37 $20 $0a $00 $0a - -m_waveform $27, WF_TRIANGLE_27 - .db $00 $00 $00 $00 $99 $bb $dd $ee $ff $ff $ee $dd $bb $99 $00 $00 - -m_waveform $01, WF_SQUARE_80_VOL_8 - .db $00 $00 $00 $88 $88 $88 $88 $88 $88 $88 $88 $88 $88 $88 $88 $88 - -m_waveform $02, WF_SQUARE_75_VOL_F - .db $00 $00 $00 $00 $ff $ff $ff $ff $ff $ff $ff $ff $ff $ff $ff $ff - -m_waveform $1c, WF_1c - .db $ff $bb $00 $bb $bb $bb $bb $bb $bb $bb $bb $bb $bb $bb $bb $bb - -m_waveform $1d, WF_SAWTOOTH_DOUBLEFREQ - .db $77 $66 $55 $44 $33 $22 $11 $00 $77 $66 $55 $44 $33 $22 $11 $00 - -m_waveform $14, WF_TRIANGLE_14 - .db $30 $00 $00 $00 $00 $00 $00 $00 $03 $34 $45 $55 $55 $55 $54 $43 - -m_waveform $13, WF_SQUARE_78_VOL_7 - .db $00 $00 $00 $07 $77 $77 $77 $77 $77 $77 $77 $77 $77 $77 $77 $77 - -m_waveform $15, WF_15 - .db $50 $00 $00 $00 $00 $00 $00 $00 $05 $46 $67 $77 $77 $77 $76 $65 - -m_waveform $12, WF_12 - .db $00 $00 $00 $09 $99 $99 $99 $99 $99 $99 $99 $99 $99 $99 $99 $99 - -@waveformUnused7: - .db $01 $23 $45 $67 $89 $ab $cd $ef $fe $dc $ba $98 $76 $54 $32 $10 - -m_waveform $0c, WF_SQUARE_50_VOL_1 - .db $00 $00 $00 $00 $00 $00 $00 $00 $11 $11 $11 $11 $11 $11 $11 $11 - -m_waveform $0d, WF_SQUARE_50_VOL_3 - .db $00 $00 $00 $00 $00 $00 $00 $00 $33 $33 $33 $33 $33 $33 $33 $33 - -m_waveform $0f, WF_SQUARE_50_VOL_3_ALT - .db $00 $00 $00 $00 $00 $00 $00 $00 $33 $33 $33 $33 $33 $33 $33 $33 - -m_waveform $10, WF_SQUARE_50_VOL_7 - .db $00 $00 $00 $00 $00 $00 $00 $00 $77 $77 $77 $77 $77 $77 $77 $77 - -m_waveform $11, WF_SQUARE_50_VOL_8_ALT - .db $00 $00 $00 $00 $00 $00 $00 $00 $88 $88 $88 $88 $88 $88 $88 $88 - -m_waveform $17, WF_SQUARE_50_VOL_5 - .db $00 $00 $00 $00 $00 $00 $00 $00 $55 $55 $55 $55 $55 $55 $55 $55 - -m_waveform $18, WF_SQUARE_50_VOL_9 - .db $00 $00 $00 $00 $00 $00 $00 $00 $99 $99 $99 $99 $99 $99 $99 $99 - -m_waveform $19, WF_SQUARE_62_VOL_7 - .db $00 $00 $00 $00 $00 $00 $77 $77 $77 $77 $77 $77 $77 $77 $77 $77 - -m_waveform $08, WF_TRIANGLE_SOFT - .db $00 $00 $11 $12 $22 $33 $34 $44 $44 $43 $33 $22 $21 $11 $00 $00 - -m_waveform $00, WF_TRIANGLE_MEDIUM - .db $11 $22 $33 $44 $55 $66 $78 $9a $a9 $88 $77 $66 $55 $44 $33 $22 - -m_waveform $05, WF_TRIANGLE_MEDIUM_ALT - .db $11 $22 $33 $44 $55 $66 $78 $9a $a9 $88 $77 $66 $55 $44 $33 $22 - -m_waveform $03, WF_TRIANGLE_LOUD - .db $11 $33 $55 $77 $99 $bb $dd $ff $ff $dd $bb $99 $77 $55 $33 $11 - -m_waveform $0b, WF_SQUARE_90_VOL_D - .db $00 $0d $dd $dd $dd $dd $dd $dd $dd $dd $dd $dd $dd $dd $dd $dd - -m_waveform $2b, WF_SQUARE_50_VOL_4 - .db $00 $00 $00 $00 $00 $00 $00 $00 $44 $44 $44 $44 $44 $44 $44 $44 - -m_waveform $2c, WF_SQUARE_50_VOL_2 - .db $00 $00 $00 $00 $00 $00 $00 $00 $22 $22 $22 $22 $22 $22 $22 $22 - -m_waveform $29, WF_SQUARE_75_VOL_2 - .db $00 $00 $00 $00 $22 $22 $22 $22 $22 $22 $22 $22 $22 $22 $22 $22 - -m_waveform $2a, WF_SQUARE_75_VOL_3 - .db $00 $00 $00 $00 $33 $33 $33 $33 $33 $33 $33 $33 $33 $33 $33 $33 - -m_waveform $2d, WF_2d - .db $9b $df $ff $fe $dc $ba $98 $76 $21 $00 $01 $23 $22 $22 $23 $23 diff --git a/audio/mml_documentation.md b/audio/mml_documentation.md new file mode 100644 index 000000000..4a6184bab --- /dev/null +++ b/audio/mml_documentation.md @@ -0,0 +1,436 @@ +# Oracles audio MML documentation + +This project's music and sound effects are authored as `.mml` files (an +mmlgb-derived dialect) and compiled by the vendored `tools/audio/mml2wla` +into the WLA-DX assembly the real sound engine (`code/audio.s`) understands. +This document covers the whole dialect as it +exists in *this* project specifically -- where it matches mmlgb exactly, where +it's been extended for this engine, and where an mmlgb feature has no +equivalent here and is silently dropped. Formatted to match +`mmlgb_documentation.md` from the original mml2wla project. + +Every `.mml` file, and everything under `audio/*/mus/bin/` and +`audio/*/sfx/bin/`, is generated -- see "Build pipeline" at the end. + +## Channels + +The Game Boy has four sound channels: two square waves, one user-defined +wave, and a noise generator -- referred to throughout this document (and in +every `.mml` file) as `A`/`B`/`C`/`D`. + +| Letter | Channel | +|:-------|:---------| +| `A` | Square 1 | +| `B` | Square 2 | +| `C` | Wave | +| `D` | Noise | + +Under the hood, this engine gives sound effects their own separate set of 4 +channel slots so an sfx can briefly interrupt whatever music is already +playing without clobbering it. Which set a `.mml` file targets is decided by +the `#SFX` directive (see below), never written explicitly in the channel +letters themselves -- `A`/`B`/`C`/`D` mean the same 4 physical channels either +way. + +| Letter | Physical channel | Music engine channel | Sfx engine channel | +|:-------|:------------------|:---------------------:|:--------------------:| +| `A` | Square 1 | 0 | 2 | +| `B` | Square 2 | 1 | 3 | +| `C` | Wave | 4 | 5 | +| `D` | Noise | 6 | 7 | + +## Commands + +| Command | Description | +|:--------|:------------| +| `;` | Comment. Rest of the line is ignored. | +| `ABCD` | Selects the current channel(s) for the rest of the line. Multiple letters apply the same line to each, e.g. `AB t120 cdef...`. | +| `cdefgab` | Play a note. Append `+` (preferred) or `#` for sharp, `-` for flat. | +| `r` | Rest (silence, clean cutoff). Append a length. | +| `w` | Wait/tie: holds the currently playing note instead of cutting it off. Append a length. | +| `o` | Followed by a number, sets the current octave. | +| `>`, `<` | Octave up / down by one. | +| `l` | Followed by a number, sets the default note length used whenever a note omits its own. | +| `v` | Followed by a number, sets channel volume. `A`/`B`/`D` take 0-15; `C` (wave) takes 0-3 -- see "Waveforms" for why. | +| `t` | Set tempo in BPM. Global -- affects every channel from the real-time moment each one's own playback reaches it, not just whatever comes later in the source text. | +| `L` | Marks the loop point: the song plays from the start once, then repeats forever from here. | +| `[...]n` | Repeat block `n` times. Nestable, e.g. `[c4[d4e4]5]8` plays `c4 d4e4 d4e4 d4e4` (`c4` followed by `d4e4` repeated 5 times) a total of 8 times -- 88 notes altogether -- and compiles correctly either way. See "Space optimization" for whether it actually saves ROM space. | + +### Numbers + +Decimal by default. `0x` prefix for hex (`0xA3` = 163), `0b` for binary +(`0b10100011`). + +### Note length + +Append a number for a musical length, e.g. `c+4` is a C# quarter note. Add +`.`/`..`/... for dotted/double-dotted, etc. + +| Value | Length | Ticks | +|:------|:-------|------:| +| `1` | Whole note | 192 | +| `2` | Half note | 96 | +| `3` | Half triplet note | 64 | +| `4` | Quarter note | 48 | +| `6` | Quarter triplet note | 32 | +| `8` | Eighth note | 24 | +| `12` | Eighth triplet note | 16 | +| `16` | Sixteenth note | 12 | +| `24` | Sixteenth triplet note | 8 | +| `32` | Thirty-second note | 6 | + +Use `=X` for an exact tick count instead of one of the named fractions above +-- e.g. `c+=17` is 17 ticks, still fully tempo-relative like any other +length, just not one of the standard note values. In a `#VANILLA`-flagged +file (see "File-level directives"), `=X` means something different instead: +a raw, tempo-*independent* hardware frame count (`c+=4` holds for exactly 4 +frames no matter what `t` says). This is what every vanilla song dumped +straight from the ROM uses throughout (see "Build pipeline"), since vanilla +data has no tempo of its own to convert to -- only literal frame counts. Not +something a hand-authored song needs to reach for. + +Use `^` to tie lengths together, e.g. `c4^4` is the same duration as `c2` +(but still one single note-trigger, not two). A bare dot or tie with nothing +after it falls back to the channel's current default length (`l`) rather +than being a parse error. + +### Valid notes + +| Channel | First note | Last note | +|:--------|:-----------|:----------| +| `A` Square 1 | `C1` | `B8` | +| `B` Square 2 | `C1` | `B8` | +| `C` Wave | `C2` | `B8` | +| `D` Noise | n/a -- see "Noise channel" below | + +The wave channel's usable range is one octave narrower than the square +channels -- a real asymmetry in this engine's own frequency-lookup code (its +square-channel path subtracts an octave before the table lookup; its wave +path doesn't), not a rounding artifact. A note outside a channel's range is +clamped, with a warning. + +## File-level directives + +Written as their own line, anywhere in the file (conventionally the top). +Stripped before the rest of the file is parsed, so they never collide with +real MML syntax. + +| Directive | Effect | +|:----------|:-------| +| `#TITLE ` | Overrides every generated label (`musStart`, `musChannel0`, the loop label, etc.) that would otherwise be derived from the output filename. Must be a valid label: letters/digits/underscore, not starting with a digit. | +| `#COMPOSER ` | Documentation only -- has no effect on the compiled output. | +| `#SFX` | Marks this file as a sound effect rather than music -- see "Channels" above and "Sfx-specific commands" below. | +| `#VANILLA` | Marks this file as a byte-accurate reproduction of real ROM data (every file `tools/audio/dumpMusicMml.py`/`dumpSfxMml.py` write has this). Changes `=X` to mean a raw, tempo-independent frame count instead of a tick count -- see "Note length" -- and switches the default-length space optimization to its automatic, same-length-run-detecting mode -- see "Space optimization". | + +## Macros + +### Volume envelope -- `@ve` (channels A, B, D) + +`@ve` requests a hardware volume envelope, `length` from -7 to 7. +Negative decays, positive climbs. `@ve0` disables it. + +An increasing envelope (`@ve+n`) is an *exact* match only when the channel's +current volume is already 0 -- this engine has a real hardware fade-in-from- +zero feature for exactly that case. From any other starting volume there's no +exact equivalent, so it's approximated by matching the real-world sweep +duration instead (a warning is printed when this approximation is used). +Decreasing envelopes (and `@ve0`) are always an exact match. + +Not available on the wave channel (`C`) at all -- volume there is baked +directly into the waveform sample data (see "Waveforms"). + +On the noise channel (`D`), envelope pace is normally fixed per noise +"pitch" (baked into the fixed noise table -- see "Noise channel"), so `@ve` +is dropped there with a warning by default. Pass `--noise-envelope` to +mml2wla to instead have it generate new, exact noise-table entries on the +fly. + +### Raw envelope -- `@ea,` (channels A, B, D) + +A direct, two-parameter passthrough of this engine's own envelope command, +with no mmlgb equivalent: `attack` (0-15) and `decay` (0-7) are independently +controllable in a way no single `@ve` value can express (`@ve` can only ever +request one direction per trigger). Mostly useful for `#VANILLA` reproductions; +hand-authored songs will usually want `@ve` instead. + +### Wave pattern duty -- `@wd` (channels A, B) + +Sets the square wave's duty cycle, `duty` 0-3: + +``` + _ +0 | | | 12.5% + | |_____________| + ___ +1 | | | 25% + | |___________| + _______ +2 | | | 50% + | |_______| + ___________ +3 | | | 75% + | |___| +``` + +### Waveform select -- `@wave` (channel C) + +See "Waveforms" below -- both defining new wave data and selecting an +already-existing one use the exact same numeric syntax. + +### Release -- `@rl` (channels A, B only) + +`@rl` followed by a length decays the currently-playing note from whatever +volume it's already at, at a fixed hardware pace, instead of cutting it off +(`r`) or holding it (`w`). No mmlgb equivalent -- it exists because this is +what a real pre-fix bug in this engine's own `r` used to do, and it turned +out to be the dominant note-release technique in the original game's music, +so it was kept as a real, intentionally-available command. + +### Raw volume -- `@vr<0-15>` (any channel) + +A direct passthrough of this engine's own volume register write, bypassing +`v`'s usual per-channel meaning. Mainly relevant on the wave channel, where +plain `v` (0-3) instead selects a pre-scaled waveform variant (see +"Waveforms") -- `@vr` writes the raw 0-15 hardware value directly, matching +what the original vanilla wave-channel data actually does. + +### Pitch offset -- `@po<-127..127>` (channels A, B, C) + +A signed value added once to a note's frequency at trigger time, held for +that note's whole duration. `@po0` disables it. No effect on the noise +channel. + +### Pitch slide -- `@s<-127..127>` (channels A, B, C) + +A signed value re-added to the channel's live frequency every single frame, +for as long as it stays nonzero -- a continuous, unbounded slide (distinct +from mmlgb's portamento, which glides toward and settles on a specific +target note; this engine has no equivalent to that). `@s0` disables it. No +effect on the noise channel. + +### Vibrato -- `@v,[,]` (channels A, B) + +`depth` (0-15) and an optional `delay` (a note length, defaulting to none) +work as in mmlgb. `speed` is accepted for compatibility but has no effect -- +this engine's vibrato oscillation rate is fixed in hardware, so any nonzero +value prints a warning. Conventionally written as `@v0,,`. Use +`@v0,0` to disable. + +### User macros -- `@@` + +Define with `@@ = { }`; call with `@@`, which is exactly +equivalent to re-inserting the macro body at that point. The macro body is +re-parsed against the *calling* channel's live octave/default-length state +at each call site (and continues to mutate that state afterwards), matching +real hardware playback behavior rather than mmlgb's own compile-time-only +macro expansion. + +``` +@@1 = { v13 @ve-5 @v0,5 } +A l8 cdef @@1 g +; equivalent to: A l8 cdef v13 @ve-5 @v0,5 g +``` + +## Noise channel + +Unlike the other three channels, the noise channel doesn't play a smooth +chromatic scale -- this engine only has a small, fixed palette of hand-tuned +"noise notes" (drum/crash/dash-style sounds), each a specific (envelope, +hardware frequency) pair, authored in `audio/common/noise.json` (see "Build +pipeline"). A regular note letter (`c`-`b`) on channel `D` is automatically +matched to whichever palette entry is the closest real hardware frequency. + +To pick a specific palette entry exactly, instead of the closest match to a +chromatic note, use: + +- **`n$XX`** or **`n34`** -- a literal palette entry by its raw byte value, + hex or decimal. Needs a comma before the length, e.g. `n$22,4` or + `n34,=8`. +- **A named alias**, if the entry has one in `noise.json` (`crash`, `snare`, + `dashLong`, etc.) -- defined once per file as `@crash = n$22` (conventionally + at the top, right after the channel-select letters), then used just like a + note: `@crash=4`. + +A value that isn't one of `noise.json`'s documented entries still works, but +prints a warning, since it's unusual enough to be worth double-checking. + +## Sfx-specific commands + +Two more commands exist only because sound effects use engine features +music never does -- both are overloads of the same underlying opcode +depending on which channel they're used on. Neither has any mmlgb +equivalent. + +### Raw noise envelope -- `@er,,` (channel D, sfx only) + +A raw, immediate hardware envelope write: `vol` (0-15) is the starting +volume, `dir` is `0` (decrease) or `1` (increase -- something no `@ve`/`@ea` +value can express on the noise channel, since its envelope is normally fixed +per palette entry), `pace` is 0-7. Unlike `@ve`/`@ea`, this takes effect +immediately rather than waiting for the next note-trigger, and real sfx data +re-issues it before every single note it's meant to affect (needed again +each time, not deduplicated). + +### Raw frequency mode -- `@fm` + `@rf$=` (channels A, B, sfx only) + +`@fm` (0-255) is a one-way switch: from that point on, this channel +stops reading regular note letters entirely and instead reads a literal raw +hardware frequency value for every event, via `@rf$=` (hex +0-$ffff, exact frame length required). Used for siren/pitch-sweep effects +that need to sweep completely outside the normal chromatic note range (e.g. +the `beam` sound effect). There's no way back to regular notes on that +channel once `@fm` has been used -- real sfx data never needs one, since +`@fm` is always issued once, right at the very start of the channel. + +## Space optimization + +None of this changes what a song sounds like -- these are purely how many +ROM bytes it takes to say it, and the compiler applies all of them +automatically wherever profitable. + +### Repeat blocks -- `[...]n` + +A `[...]n` block is checked for whether every iteration is guaranteed to +compile to identical bytes: if so, it becomes one real WLA-DX `.rept n` +block -- the repeated content exists exactly once in ROM no matter how +large `n` is, e.g. `[abcd]3` compiling `abcd` once instead of three times. +This is always guaranteed when every length inside the block is written as +an exact tick/frame count (`=X`), since those never depend on tempo +rounding at all. For ordinary tick-based lengths (`4`, `8`, ...), it's +guaranteed whenever the block's *total* length happens to land on a whole +number of frames at the current tempo -- common, but not certain, since the +Game Boy's hardware timer only supports discrete tempo steps to begin with. +When it isn't guaranteed, later iterations really can round to very +slightly different frame counts than the first (never audible, but no +longer byte-identical), so the block is expanded in full instead, to keep +every iteration's timing exactly accurate rather than risk drifting for the +sake of a smaller ROM. A run that happens to still be byte-identical after +expansion may yet get merged by the next optimization below. + +### Repeat detection + +Separately from `[...]n` above, whenever a channel's fully-compiled output +contains a run of literally identical consecutive chunks -- a repeated `@@` +macro call, an expanded (not `.rept`-collapsed) `[...]n` block, or just +coincidentally-identical stretches of same-pitch, same-length notes -- it's +automatically collapsed into a `.rept` block too. This is a byte-for-byte +equality check on the *already-fully-resolved* output, so it finds real +repetition regardless of what produced it. + +### Default note length + +Square channels (`A`/`B`) only. A normal note costs 2 bytes (pitch byte + +explicit length byte); this engine also has a 1-byte short form for a note +playing at the channel's currently-stored default length (2 bytes to set, +once). This is a genuinely new engine feature with no vanilla-ROM +equivalent, so the compiler always emits both forms side by side, guarded +so a from-scratch reproduction of the original game keeps using the plain +form byte-for-byte while every other build benefits from the shorter one. + +Which notes actually get the short form depends on `#VANILLA`: + +- **Hand-authored (no `#VANILLA`):** the default length is manually defined + in the MML, via `l` -- a note that omits its own length, relying on the + channel's current `l`, is exactly the author's own signal that this note + "is at the default," and that's what triggers the short form (`l4 cdefg` + -- all five notes qualify). A note with an explicit length of its own + doesn't, even if the number happens to match. +- **`#VANILLA`:** vanilla data has no `l`/default-length concept at all -- + every note already carries its own exact length. So instead, the compiler + looks for same-length runs after the fact: whenever 3 or more + single-trigger notes in a row happen to share a length, it's worth + switching the stored default once and using the short form for all of + them (2 notes cost the same either way, so shorter runs are left alone). + This is a nice space win for reproductions with no authoring effort at + all, since it's automatic. + +### Looping + +`L` marks a song's loop point. Everything before it plays once as an intro; +everything from `L` onward repeats forever via a single `goto` back to that +point -- the loop body's bytes exist exactly once in ROM no matter how many +times it repeats during playback, which is normally by far the single +biggest space saving available for any looping song. + +## Waveforms + +The wave channel's usable sounds are 32-sample (4-bit each) waveforms, +looked up by a numeric id via `duty $XX` at the engine level. Every `.mml` +file uses one unified syntax for both defining brand new waveform data and +selecting an already-existing one -- there's no separate "local" vs +"external reference" syntax to choose between. + +**Defining new data**, inline in the `.mml` file, at the top level (not +inside a channel): + +``` +@wave50 = { 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 } +``` + +32 samples, each 0-15, in playback order. The id (`50` here) only has to be +unique within this file and not already claimed by an existing named +waveform (see below) -- it isn't the id the data ends up at in the final +ROM table. + +**Selecting a waveform**, whether it's one just defined above or one that +already exists project-wide, in a channel: + +``` +C @wave50 l4 cdefg +``` + +**Project-wide waveforms** (`audio/common/waveforms.json`) are the +already-named, already-cataloged entries every song can use for free, by id, +with no `{...}` definition of their own -- e.g. `@wave14` might already be +`WF_SQUARE_50_VOL_8`. Referencing one of these costs nothing extra: no new +data is written anywhere, the compiled song just points `duty` at the +existing table entry directly. + +### How local and global waveforms actually compile together + +This is the important part: a song's own newly-authored waveform (a +`@waveN = {...}` whose id isn't already in `waveforms.json`) isn't left as a +separate, manually-merged side file. The whole project's audio is compiled +in one pass (`tools/audio/buildAudio.py`, run by the Makefile), sharing a +single waveform table builder across every song and sound effect at once. +Any new waveform any song defines is automatically deduplicated (an +identical waveform, even one authored independently in two different songs, +or at two different volume levels of the same source data, becomes one +shared table entry), assigned the next free id after everything already in +`waveforms.json`, and folded directly into the single generated +`audio/common/bin/waveforms.s` alongside the existing catalog -- so there is +always exactly one complete, self-consistent table, and every song's `duty` +reference (old or new, local or global) points at the correct final entry +with no manual step required. + +Volume on the wave channel works differently from every other channel: this +engine's `vol`/`v` command does nothing there at all -- volume has to be +baked into the waveform's own sample data. `v0`-`v3` (100%/50%/25%/mute) +automatically requests a scaled variant of whatever waveform is currently +selected, generated and deduplicated the same way. `@vr` (see above) is the +escape hatch for when you specifically want the raw 0-15 hardware value +written instead, matching how the original vanilla wave-channel data is +actually authored. + +## Build pipeline + +`.mml` is the authored source. Nothing else in `audio/*/mus/` or +`audio/*/sfx/` is meant to be hand-edited: + +- `audio/*/mus/*.mml` and `audio/*/sfx/*.mml` compile to + `audio/*/mus/bin/*.s` / `audio/*/sfx/bin/*.s` automatically as part of a + normal `make`/`make ages`/`make seasons` -- see `tools/audio/buildAudio.py` + and the Makefile's `$(AUDIO_MML_STAMP)` rule. The `bin/` output is + gitignored, regenerated on demand. +- `audio/common/waveforms.json` and `audio/common/noise.json` are the + committed sources for the wave/noise tables; `audio/common/bin/waveforms.s` + and `noise.s` are generated from them the same way (see + `tools/audio/waveformsJsonToS.py` / `noiseJsonToS.py`). +- The `.mml` files themselves are **not committed** -- they encode + Nintendo's copyrighted music/sfx data, so for legal reasons this repo only + distributes the tooling to reconstruct them, never the reconstructed files + themselves. Run `make dumpmusic ROM=path/to/rom.gbc` once per game (music) + or `make dumpsfx ROM_AGES_FILE=path/to/ages.gbc ROM_SEASONS_FILE=path/to/seasons.gbc` + once total (sfx, both ROMs needed together) against your own legally-owned + ROMs to regenerate them locally -- see `tools/audio/dumpMusicMml.py` / + `dumpSfxMml.py`. diff --git a/audio/seasons/mus/ancientRuins.s b/audio/seasons/mus/ancientRuins.s deleted file mode 100644 index e3eda439b..000000000 --- a/audio/seasons/mus/ancientRuins.s +++ /dev/null @@ -1,729 +0,0 @@ -musAncientRuinsStart: - -musAncientRuinsChannel1: - vibrato $f1 - env $0 $00 - cmdf2 - duty $02 - vol $6 - note fs3 $0e - note cs4 $0e -musicf3418: - note c4 $02 - note cs4 $02 - note c4 $34 - vibrato $01 - env $0 $00 - vol $3 - note c4 $1c - vibrato $f1 - env $0 $00 - vol $6 - note gs3 $07 - note a3 $07 - note b3 $07 - note a3 $07 - note gs3 $02 - note a3 $02 - note gs3 $34 - vibrato $01 - env $0 $00 - vol $3 - note gs3 $1c - vibrato $f1 - env $0 $00 - vol $6 - note fs3 $0e - note cs4 $0e - note c4 $02 - note cs4 $02 - note c4 $34 - vibrato $01 - env $0 $00 - vol $3 - note c4 $1c - vibrato $f1 - env $0 $00 - vol $6 - note cs4 $07 - note d4 $07 - note f4 $07 - note d4 $07 - note cs4 $38 - vibrato $01 - env $0 $00 - vol $3 - note cs4 $1c - vibrato $f1 - env $0 $00 - vol $6 - note fs3 $0e - note cs4 $0e - note c4 $02 - note cs4 $02 - note c4 $34 - vibrato $01 - env $0 $00 - vol $3 - note c4 $1c - vibrato $f1 - env $0 $00 - vol $6 - note a3 $03 - rest $04 - note a3 $07 - note gs3 $07 - note fs3 $07 - note gs3 $02 - note a3 $02 - note gs3 $34 - vibrato $01 - env $0 $00 - vol $1 - note gs3 $1c - vibrato $f1 - env $0 $00 - vol $6 - note fs3 $0e - note cs4 $0e - note c4 $02 - note cs4 $02 - note c4 $34 - vibrato $01 - env $0 $00 - vol $3 - note c4 $1c - vibrato $f1 - env $0 $00 - vol $6 - note cs4 $07 - note d4 $07 - note f4 $07 - note fs4 $07 - note gs4 $02 - note a4 $02 - note gs4 $50 - vibrato $01 - env $0 $00 - vol $3 - note gs4 $1c - rest $46 - vibrato $f1 - env $0 $00 - vol $6 - note gs4 $07 - vol $3 - note gs4 $07 - vol $6 - note g4 $07 - note gs4 $07 - note g4 $07 - note d4 $07 - note cs4 $02 - note d4 $02 - note cs4 $34 - vibrato $01 - env $0 $00 - vol $3 - note cs4 $0e - vibrato $f1 - env $0 $00 - vol $6 - note a4 $07 - vol $3 - note a4 $07 - vol $6 - note a4 $07 - note g4 $07 - note fs4 $07 - note ds4 $07 - note d4 $02 - note ds4 $02 - note d4 $34 - vibrato $01 - env $0 $00 - vol $3 - note d4 $0e - vibrato $f1 - env $0 $00 - vol $6 - note as4 $07 - vol $3 - note as4 $07 - vol $6 - note a4 $07 - note g4 $07 - note fs4 $07 - note ds4 $07 - note d4 $02 - note ds4 $02 - note d4 $34 - vibrato $01 - env $0 $00 - vol $3 - note d4 $1c - vibrato $f1 - env $0 $00 - vol $6 - note e4 $07 - note f4 $07 - note gs4 $07 - note a4 $07 - note b4 $02 - note c5 $02 - note b4 $34 - vibrato $01 - env $0 $00 - vol $3 - note b4 $1c - vibrato $f1 - env $0 $00 - vol $6 - note b4 $07 - note a4 $07 - note gs4 $07 - note f4 $07 - note e4 $02 - note f4 $02 - note e4 $34 - vibrato $01 - env $0 $00 - vol $3 - note e4 $1c - rest $1c - vibrato $f1 - env $0 $00 - vol $6 - note e4 $07 - note f4 $07 - note gs4 $07 - note a4 $07 - note b4 $07 - note a4 $07 - note gs4 $07 - note f4 $07 - note e4 $07 - note f4 $07 - note e4 $07 - note ds4 $07 - note e4 $54 - rest $1c - note fs3 $0e - note cs4 $0e - goto musicf3418 - cmdff - -musAncientRuinsChannel0: - vol $0 - note gs3 $1c - vibrato $f1 - env $0 $00 - cmdf2 - duty $02 -musicf3598: - rest $1c - vol $7 - note fs4 $0e - note cs5 $0e - vol $6 - note c5 $02 - note cs5 $02 - note c5 $33 - rest $01 - vibrato $01 - env $0 $00 - vol $3 - note c5 $1c - vibrato $f1 - env $0 $00 - vol $7 - note gs4 $07 - note a4 $07 - note b4 $07 - note a4 $07 - vol $6 - note gs4 $02 - note a4 $02 - note gs4 $33 - rest $01 - vibrato $01 - env $0 $00 - vol $3 - note gs4 $1c - vibrato $f1 - env $0 $00 - vol $7 - note fs4 $0e - note cs5 $0e - vol $6 - note c5 $02 - note cs5 $02 - note c5 $33 - rest $01 - vibrato $01 - env $0 $00 - vol $3 - note c5 $1c - vibrato $f1 - env $0 $00 - vol $7 - note cs5 $07 - note d5 $07 - note f5 $07 - note fs5 $07 - note gs5 $07 - note fs5 $07 - note f5 $07 - note d5 $07 - vol $6 - note cs5 $02 - note d5 $02 - note cs5 $17 - rest $01 - vibrato $01 - env $0 $00 - vol $3 - note cs5 $1c - vibrato $f1 - env $0 $00 - vol $7 - note fs4 $0e - note cs5 $07 - note c5 $03 - note cs5 $04 - note c5 $38 - vibrato $01 - env $0 $00 - vol $3 - note c5 $1c - vibrato $f1 - env $0 $00 - vol $7 - note a4 $03 - rest $04 - note a4 $07 - note gs4 $07 - note fs4 $07 - note gs4 $03 - note a4 $04 - note gs4 $31 - vibrato $01 - env $0 $00 - vol $3 - note gs4 $1c - vibrato $f1 - env $0 $00 - vol $7 - note fs4 $0e - note cs5 $07 - note c5 $03 - note cs5 $04 - note c5 $38 - vibrato $01 - env $0 $00 - vol $3 - note c5 $1c - vibrato $f1 - env $0 $00 - vol $7 - note cs5 $07 - note d5 $07 - note f5 $07 - note fs5 $07 - note gs5 $07 - note fs5 $07 - note f5 $07 - note d5 $07 - note cs5 $07 - note b4 $07 - note a4 $07 - note gs4 $07 - note g2 $03 - rest $04 - vol $3 - note g2 $03 - rest $04 - vol $7 - note g2 $03 - rest $04 - vol $3 - note g2 $03 - rest $04 - vol $7 - note gs2 $0e - note g2 $03 - rest $04 - vol $3 - note g2 $03 - rest $3c - vol $6 - note gs2 $03 - rest $04 - vol $3 - note gs2 $03 - rest $04 - vol $6 - note gs2 $03 - rest $04 - vol $3 - note gs2 $03 - rest $04 - vol $6 - note a2 $0e - note gs2 $03 - rest $04 - vol $3 - note gs2 $03 - rest $3c - vol $6 - note a2 $03 - rest $04 - vol $3 - note a2 $03 - rest $04 - vol $6 - note a2 $03 - rest $04 - vol $3 - note a2 $03 - rest $04 - vol $6 - note as2 $0e - note a2 $03 - rest $04 - vol $3 - note a2 $03 - rest $3c - vol $6 - note a2 $03 - rest $04 - vol $3 - note a2 $03 - rest $04 - vol $6 - note a2 $03 - rest $04 - vol $3 - note a2 $03 - rest $04 - vol $6 - note as2 $0e - note a2 $03 - rest $04 - vol $3 - note a2 $03 - rest $3c - vol $6 - note b2 $03 - rest $04 - vol $3 - note b2 $03 - rest $04 - vol $6 - note b2 $03 - rest $04 - vol $3 - note b2 $03 - rest $04 - vol $6 - note c3 $0e - note b2 $03 - rest $04 - vol $3 - note b2 $03 - rest $3c - vol $6 - note b2 $03 - rest $04 - vol $3 - note b2 $03 - rest $04 - vol $6 - note b2 $03 - rest $04 - vol $3 - note b2 $03 - rest $04 - vol $6 - note c3 $0e - note b2 $03 - rest $04 - vol $3 - note b2 $03 - rest $46 - vol $3 - note e4 $07 - note f4 $07 - note gs4 $07 - note a4 $07 - note b4 $07 - note a4 $07 - note gs4 $07 - note f4 $07 - note e4 $07 - note f4 $07 - vol $3 - note e4 $07 - note ds4 $07 - note e4 $77 - rest $0b - goto musicf3598 - cmdff - -musAncientRuinsChannel4: - rest $1c - cmdf2 -musicf3753: - duty $0e - note fs2 $1c - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note fs2 $1c - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note fs2 $1c - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note fs2 $1c - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $2a - duty $0e - note fs2 $1c - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note fs2 $1c - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note fs2 $1c - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note cs3 $07 - duty $0f - note cs3 $07 - rest $0e - duty $0e - note fs2 $07 - duty $0f - note fs2 $07 - rest $0e - duty $0e - note cs2 $07 - note d2 $07 - note f2 $07 - note fs2 $07 - note gs2 $07 - note fs2 $07 - note f2 $07 - note d2 $07 - note cs2 $07 - note d2 $07 - note cs2 $07 - duty $0f - note cs2 $07 - duty $0e - note cs2 $03 - duty $0f - note cs2 $06 - rest $05 - duty $0e - note cs2 $03 - duty $0f - note cs2 $06 - rest $05 - duty $0e - note d2 $0e - duty $0e - note cs2 $03 - duty $0f - note cs2 $06 - rest $3d - duty $0e - note cs2 $03 - duty $0f - note cs2 $06 - rest $05 - duty $0e - note cs2 $03 - duty $0f - note cs2 $06 - rest $05 - duty $0e - note d2 $0e - duty $0e - note cs2 $03 - duty $0f - note cs2 $06 - rest $3d - duty $0e - note d2 $03 - duty $0f - note d2 $06 - rest $05 - duty $0e - note d2 $03 - duty $0f - note d2 $06 - rest $05 - duty $0e - note ds2 $0e - duty $0e - note d2 $03 - duty $0f - note d2 $06 - rest $3d - duty $0e - note d2 $03 - duty $0f - note d2 $06 - rest $05 - duty $0e - note d2 $03 - duty $0f - note d2 $06 - rest $05 - duty $0e - note ds2 $0e - duty $0e - note d2 $03 - duty $0f - note d2 $06 - rest $3d - duty $0e - note e2 $03 - duty $0f - note e2 $06 - rest $05 - duty $0e - note e2 $03 - duty $0f - note e2 $06 - rest $05 - duty $0e - note f2 $0e - duty $0e - note e2 $03 - duty $0f - note e2 $06 - rest $3d - duty $0e - note e2 $03 - duty $0f - note e2 $06 - rest $05 - duty $0e - note e2 $03 - duty $0f - note e2 $06 - rest $05 - duty $0e - note f2 $0e - duty $0e - note e2 $03 - duty $0f - note e2 $06 - rest $ad - duty $0e - note e2 $07 - note f2 $07 - note e2 $07 - note ds2 $07 - note e2 $07 - note f2 $07 - note gs2 $07 - note f2 $07 - note e2 $07 - note f2 $07 - note e2 $07 - note ds2 $07 - note e2 $1c - goto musicf3753 - cmdff - -.define musAncientRuinsChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/seasons/mus/carnival.s b/audio/seasons/mus/carnival.s deleted file mode 100644 index 07937e793..000000000 --- a/audio/seasons/mus/carnival.s +++ /dev/null @@ -1,252 +0,0 @@ -musCarnivalStart: - -musCarnivalChannel1: - vibrato $00 - env $0 $03 - duty $02 -musiceeb67: - vol $6 - note g4 $0e - vibrato $00 - env $0 $04 - note e4 $1c - vibrato $00 - env $0 $03 - note g4 $0e - note ds4 $0e - vibrato $00 - env $0 $04 - note b4 $1c - vibrato $00 - env $0 $03 - note a4 $0e - note g4 $0e - vibrato $00 - env $0 $04 - note e4 $1c - vibrato $00 - env $0 $03 - note c4 $0e - note b3 $0e - note ds4 $07 - note fs4 $07 - note b4 $0e - note a4 $0e - vibrato $00 - env $0 $04 - note g4 $1c - vibrato $00 - env $0 $03 - note a4 $0e - note b4 $0e - note c5 $0e - note d5 $0e - note e5 $0e - note f5 $0e - vibrato $00 - env $0 $04 - note g5 $1c - vibrato $00 - env $0 $03 - note f5 $0e - note cs5 $0e - vibrato $00 - env $0 $04 - note e5 $1c - note d5 $1c - vibrato $00 - env $0 $03 - note a5 $0e - vibrato $00 - env $0 $04 - note f5 $1c - vibrato $00 - env $0 $03 - note e5 $0e - note ds5 $0e - note b5 $07 - note c6 $07 - note b5 $0e - note a5 $0e - note g5 $0e - vibrato $00 - env $0 $04 - note e5 $1c - vibrato $00 - env $0 $03 - note g5 $0e - note cs5 $0e - note a5 $07 - note as5 $07 - note a5 $0e - note g5 $0e - note g5 $0e - note f5 $0e - note e5 $0e - note f5 $0e - note g5 $0e - note f5 $0e - note a5 $0e - note c6 $0e - note e6 $0e - note d6 $0e - note c6 $0e - note e6 $0e - vibrato $00 - env $0 $04 - note d6 $1c - rest $1c - vibrato $00 - env $0 $03 - goto musiceeb67 - cmdff - -musCarnivalChannel0: - vibrato $00 - env $0 $03 - duty $02 -musiceec2a: - vol $6 - note c3 $0e - note e3 $0e - note g2 $0e - note e3 $0e - note b2 $0e - note ds3 $0e - note fs2 $0e - note ds3 $0e - note c3 $0e - note e3 $0e - note g2 $0e - note e3 $0e - note b2 $0e - note ds3 $0e - note fs2 $0e - note ds3 $0e - note c3 $0e - note e3 $0e - note g2 $0e - note e3 $0e - note a2 $0e - note e3 $0e - note c3 $0e - note e3 $0e - note d3 $0e - note f3 $0e - note a2 $0e - note f3 $0e - note g2 $0e - note a2 $0e - note b2 $0e - note g2 $0e - note f3 $0e - note a3 $0e - note c3 $0e - note a3 $0e - note b2 $0e - note fs3 $0e - note ds3 $0e - note fs3 $0e - note e3 $0e - note g3 $0e - note b2 $0e - note g3 $0e - note a2 $0e - note e3 $0e - note cs3 $0e - note e3 $0e - note d3 $0e - note f3 $0e - note a2 $0e - note f3 $0e - note d3 $0e - note f3 $0e - note a2 $0e - note gs2 $0e - note g2 $0e - note d3 $0e - note d2 $0e - note d3 $0e - note g2 $0e - note g2 $0e - note a2 $0e - note b2 $0e - goto musiceec2a - cmdff - -musCarnivalChannel4: - duty $0c -musiceecb1: - vol $3 - note g4 $0e - note e4 $1c - note g4 $0e - note ds4 $0e - note b4 $1c - note a4 $0e - note g4 $0e - note e4 $1c - note c4 $0e - note b3 $0e - note ds4 $07 - note fs4 $07 - note b4 $0e - note a4 $0e - note g4 $1c - note a4 $0e - note b4 $0e - note c5 $0e - note d5 $0e - note e5 $0e - note f5 $0e - note g5 $1c - note f5 $0e - note cs5 $0e - note e5 $1c - note d5 $1c - note a5 $0e - note f5 $1c - note e5 $0e - note ds5 $0e - note b5 $07 - note c6 $07 - note b5 $0e - note a5 $0e - note g5 $0e - note e5 $1c - note g5 $0e - note cs5 $0e - note a5 $07 - note as5 $07 - note a5 $0e - note g5 $0e - note g5 $0e - note f5 $0e - note e5 $0e - note f5 $0e - note g5 $0e - note f5 $0e - note a5 $0e - note c6 $0e - note e6 $0e - note d6 $0e - note c6 $0e - note e6 $0e - note d6 $1c - rest $1c - goto musiceecb1 - cmdff - -.define musCarnivalChannel6 MUSIC_CHANNEL_FALLBACK EXPORT - - ; Unused data? - - note c1 $6a - .db $6e ; ??? - note cs1 $33 - .db $6d ; ??? - note e1 $cd - .db $6f ; ??? - note fs1 $02 - .db $77 ; ??? - cmdff diff --git a/audio/seasons/mus/dancingDragonDungeon.s b/audio/seasons/mus/dancingDragonDungeon.s deleted file mode 100644 index 3e6c461e3..000000000 --- a/audio/seasons/mus/dancingDragonDungeon.s +++ /dev/null @@ -1,1185 +0,0 @@ -musDancingDragonDungeonStart: - -musDancingDragonDungeonChannel1: - vibrato $f1 - env $0 $00 - cmdf2 - duty $02 - vol $6 - note a3 $09 - rest $04 - vol $3 - note a3 $05 - vol $6 - note a3 $09 - note c4 $09 - note a3 $09 - note c4 $09 - note g4 $09 -musicf2144: - note fs4 $3f - vibrato $01 - env $0 $00 - vol $3 - note fs4 $12 - vibrato $f1 - env $0 $00 - vol $6 - note a3 $09 - note c4 $09 - note g4 $09 - note fs4 $09 - note g4 $04 - note fs4 $05 - note e4 $09 - note d4 $09 - note e4 $3f - vibrato $01 - env $0 $00 - vol $3 - note e4 $12 - vibrato $f1 - env $0 $00 - vol $6 - note a3 $09 - rest $04 - vol $3 - note a3 $05 - vol $6 - note a3 $09 - note c4 $09 - note a3 $09 - note c4 $09 - note e4 $09 - note g4 $12 - vol $3 - note g4 $09 - vol $6 - note fs4 $09 - note g4 $12 - vol $3 - note g4 $09 - vol $6 - note fs4 $09 - note g4 $12 - vol $3 - note g4 $09 - vol $6 - note fs4 $09 - note g4 $09 - note fs4 $03 - note g4 $03 - note fs4 $03 - note e4 $09 - note d4 $09 - note e4 $48 - vibrato $01 - env $0 $00 - vol $1 - note e4 $09 - vibrato $f1 - env $0 $00 - vol $6 - note c4 $09 - rest $04 - vol $3 - note c4 $05 - vol $6 - note c4 $09 - note e4 $09 - note c4 $09 - note e4 $09 - note b4 $09 - note gs4 $3f - vibrato $01 - env $0 $00 - vol $3 - note gs4 $12 - vibrato $f1 - env $0 $00 - vol $6 - note c4 $09 - rest $04 - vol $3 - note c4 $05 - vol $6 - note c4 $09 - note e4 $09 - note c4 $09 - note e4 $09 - note gs4 $09 - note g4 $3f - vibrato $01 - env $0 $00 - vol $3 - note g4 $12 - vibrato $f1 - env $0 $00 - vol $6 - note c4 $09 - rest $04 - vol $3 - note c4 $05 - vol $6 - note c4 $09 - note e4 $09 - note c4 $09 - note e4 $09 - note a4 $09 - note fs4 $3f - vibrato $01 - env $0 $00 - vol $3 - note fs4 $12 - rest $12 - vibrato $f1 - env $0 $00 - vol $6 - note e4 $09 - note fs4 $09 - note g4 $04 - note fs4 $05 - note e4 $09 - note d4 $09 - note e4 $3f - vibrato $01 - env $0 $00 - vol $3 - note e4 $12 - rest $3f - vibrato $00 - env $0 $04 - vol $5 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - vol $5 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - vol $5 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - vol $5 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - vol $5 - note a4 $04 - vol $4 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note a4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note gs4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - vol $4 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note g4 $04 - note c5 $05 - note fs4 $04 - note d5 $05 - note fs4 $04 - note d5 $05 - note fs4 $04 - note d5 $05 - note fs4 $04 - note d5 $05 - note fs4 $04 - note d5 $05 - note fs4 $04 - note d5 $05 - note fs4 $04 - vol $5 - note d5 $05 - vol $6 - note d5 $04 - vol $6 - note ds5 $05 - vol $6 - note e5 $04 - rest $05 - vibrato $f1 - env $0 $00 - vol $6 - note a3 $09 - rest $09 - note a3 $09 - note c4 $09 - note a3 $09 - note c4 $09 - note g4 $09 - goto musicf2144 - cmdff - -musDancingDragonDungeonChannel0: - vol $0 - note gs3 $3f - vibrato $00 - env $0 $00 - cmdf2 - duty $02 -musicf2441: - rest $12 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $51 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $51 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $51 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $51 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $51 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $51 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $51 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $51 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $51 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $51 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $51 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $51 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $1b - vol $6 - note a3 $09 - note e3 $09 - note a3 $09 - note e3 $09 - rest $12 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $1b - vol $6 - note gs3 $09 - note e3 $09 - vol $6 - note gs3 $09 - note e3 $09 - rest $12 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $1b - vol $6 - note g3 $09 - note e3 $09 - note g3 $09 - note e3 $09 - rest $12 - vol $6 - note e3 $04 - rest $0e - note d3 $12 - note ds3 $09 - note e3 $04 - rest $02 - vol $3 - note e3 $05 - rest $02 - vol $1 - note e3 $05 - rest $3f - goto musicf2441 - cmdff - -musDancingDragonDungeonChannel4: - rest $3f - cmdf2 -musicf25dc: - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note g2 $12 - note gs2 $09 - note a2 $04 - duty $0f - note a2 $04 - rest $49 - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note g2 $12 - note gs2 $09 - note a2 $04 - duty $0f - note a2 $04 - rest $49 - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note g2 $12 - note gs2 $09 - note a2 $04 - duty $0f - note a2 $04 - rest $49 - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note g2 $12 - note gs2 $09 - note a2 $04 - duty $0f - note a2 $04 - rest $49 - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note g2 $12 - note gs2 $09 - note a2 $04 - duty $0f - note a2 $04 - rest $49 - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note g2 $12 - note gs2 $09 - note a2 $04 - duty $0f - note a2 $04 - rest $49 - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note g2 $12 - note gs2 $09 - note a2 $04 - duty $0f - note a2 $04 - rest $49 - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note a2 $04 - duty $0f - note a2 $04 - rest $0a - duty $0e - note g2 $12 - note gs2 $09 - note a2 $04 - duty $0f - note a2 $04 - rest $25 - duty $0e - note a2 $09 - note e2 $09 - note g2 $09 - note e2 $09 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - rest $1b - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - rest $3f - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - rest $1b - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - rest $3f - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - rest $1b - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - rest $3f - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - rest $1b - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - rest $12 - duty $0e - note e2 $09 - note g2 $09 - note e2 $09 - note g2 $09 - note gs2 $09 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - rest $1b - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - rest $3f - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - rest $1b - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - rest $3f - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - rest $1b - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - duty $0e - note a2 $04 - duty $0f - note a2 $05 - rest $3f - duty $0e - note b2 $04 - duty $0f - note b2 $05 - duty $0e - note b2 $04 - duty $0f - note b2 $05 - duty $0e - note b2 $04 - duty $0f - note b2 $05 - rest $1b - duty $0e - note b2 $04 - duty $0f - note b2 $05 - duty $0e - note b2 $04 - duty $0f - note b2 $05 - duty $0e - note e2 $04 - duty $0f - note e2 $05 - rest $3f - goto musicf25dc - cmdff - -musDancingDragonDungeonChannel6: - rest $3f - cmdf2 -musicf28a9: - vol $3 - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - note $26 $09 - note $26 $09 - rest $09 - note $26 $09 - note $26 $09 - rest $2d - note $26 $09 - rest $09 - note $26 $09 - rest $1b - goto musicf28a9 - cmdff diff --git a/audio/seasons/mus/explorersCrypt.s b/audio/seasons/mus/explorersCrypt.s deleted file mode 100644 index c9bb68322..000000000 --- a/audio/seasons/mus/explorersCrypt.s +++ /dev/null @@ -1,879 +0,0 @@ -musExplorersCryptStart: - -musExplorersCryptChannel1: - vibrato $f1 - env $0 $00 - cmdf2 - duty $02 -musicf0db2: - vol $0 - note gs3 $28 - vol $6 - note d4 $28 - note f4 $28 - note e4 $28 - note ds4 $50 - note d4 $3c - vibrato $01 - env $0 $00 - vol $3 - note d4 $14 - vibrato $00 - env $0 $03 - vol $6 - note cs4 $0d - note gs3 $0d - note g3 $0e - vol $4 - note cs4 $0d - note gs3 $0d - note g3 $0e - vol $2 - note cs4 $0d - note gs3 $0d - note g3 $0e - vol $1 - note cs4 $0d - note gs3 $0d - note g3 $0e - vol $6 - note cs5 $0d - note gs4 $0d - note g4 $0e - vol $4 - note cs5 $0d - note gs4 $0d - note g4 $0e - vol $2 - note cs5 $0d - note gs4 $0d - note g4 $0e - vol $1 - note cs5 $0d - note gs4 $0d - note g4 $36 - vibrato $f1 - env $0 $00 - vol $6 - note f5 $28 - note a5 $28 - note gs5 $28 - note g5 $50 - note fs5 $3c - vibrato $01 - env $0 $00 - vol $3 - note fs5 $14 - vibrato $00 - env $0 $03 - vol $6 - note fs5 $0d - note c5 $0d - note b4 $0e - vol $4 - note fs5 $0d - note c5 $0d - note b4 $0e - vol $2 - note fs5 $0d - note c5 $0d - note b4 $0e - vol $1 - note fs5 $0d - note c5 $0d - note b4 $0e - vol $6 - note fs6 $0d - note c6 $0d - note b5 $0e - vol $4 - note fs6 $0d - note c6 $0d - note b5 $0e - vol $2 - note fs6 $0d - note c6 $0d - note b5 $0e - vol $1 - note fs6 $0d - note c6 $0d - note b5 $0e - vibrato $f1 - env $0 $00 - vol $6 - note d4 $0a - note f4 $0a - note g4 $0a - note f4 $0a - note gs4 $a0 - vibrato $01 - env $0 $00 - vol $3 - note gs4 $28 - vibrato $f1 - env $0 $00 - vol $6 - note gs4 $14 - note g4 $0a - rest $05 - vol $3 - note g4 $05 - vol $6 - note f4 $0a - rest $05 - vol $3 - note f4 $05 - vol $6 - note d4 $0a - rest $05 - vol $3 - note d4 $05 - vol $6 - note f4 $14 - note d4 $0a - rest $0a - vol $3 - note f4 $14 - note d4 $0a - rest $0a - vol $2 - note f4 $14 - note d4 $0a - rest $0a - vol $1 - note f4 $14 - note d4 $0a - rest $0a - vibrato $00 - env $0 $03 - vol $6 - note d5 $0a - note d6 $0a - note d5 $0a - rest $0a - vol $3 - note d5 $0a - note d6 $0a - note d5 $0a - rest $0a - vol $2 - note d5 $0a - note d6 $0a - note d5 $0a - rest $0a - vol $1 - note d5 $0a - note d6 $0a - note d5 $0a - rest $0a - vibrato $f1 - env $0 $00 - vol $6 - note d4 $0a - note f4 $0a - note a4 $0a - note gs4 $0a - note c5 $a0 - vibrato $01 - env $0 $00 - vol $3 - note c5 $28 - vibrato $f1 - env $0 $00 - vol $6 - note ds5 $14 - note b4 $0a - rest $05 - vol $3 - note b4 $05 - vol $6 - note g4 $0a - rest $05 - vol $3 - note g4 $05 - vol $6 - note ds4 $0a - rest $05 - vol $3 - note ds4 $05 - vol $6 - note d4 $0a - rest $0a - vol $4 - note d4 $0a - rest $0a - vol $2 - note d4 $0a - rest $0a - vol $1 - note d4 $0a - rest $5a - vibrato $00 - env $0 $03 - vol $6 - note d5 $0a - note d6 $0a - note d5 $0a - rest $0a - vol $3 - note d5 $0a - note d6 $0a - note d5 $0a - rest $0a - vol $2 - note d5 $0a - note d6 $0a - note d5 $0a - rest $0a - vol $1 - note d5 $0a - note d6 $0a - note d5 $14 - vibrato $f1 - env $0 $00 - goto musicf0db2 - cmdff - -musExplorersCryptChannel0: - vibrato $f1 - env $0 $00 - cmdf2 - duty $02 -musicf0f4a: - vol $0 - note gs3 $28 - vol $6 - note a3 $28 - note c4 $28 - note b3 $28 - note as3 $50 - note gs3 $3c - vibrato $01 - env $0 $00 - vol $4 - note gs3 $14 - rest $0f - vibrato $00 - env $0 $03 - note cs4 $0d - note gs3 $0d - note g3 $06 - rest $08 - vol $3 - note cs4 $0d - note gs3 $0d - note g3 $06 - rest $08 - vol $2 - note cs4 $0d - note gs3 $0d - note g3 $06 - rest $08 - vol $1 - note cs4 $0d - note gs3 $0d - note g3 $06 - rest $08 - vol $4 - note cs5 $0d - note gs4 $0d - note g4 $06 - rest $08 - vol $3 - note cs5 $0d - note gs4 $0d - note g4 $06 - rest $08 - vol $2 - note cs5 $0d - note gs4 $0d - note g4 $06 - rest $08 - vol $1 - note cs5 $0d - note gs4 $0d - note g4 $06 - rest $21 - vibrato $f1 - env $0 $00 - vol $7 - note c5 $28 - note e5 $28 - note ds5 $28 - note d5 $50 - note cs5 $3c - vibrato $01 - env $0 $00 - vol $4 - note cs5 $14 - rest $0f - vibrato $00 - env $0 $03 - vol $3 - note fs5 $0d - note c5 $0d - note b4 $06 - rest $08 - vol $2 - note fs5 $0d - note c5 $0d - note b4 $06 - rest $08 - vol $2 - note fs5 $0d - note c5 $0d - note b4 $06 - rest $08 - vol $1 - note fs5 $0d - note c5 $0d - note b4 $06 - rest $08 - vol $4 - note fs6 $0d - note c6 $0d - note b5 $06 - rest $08 - vol $3 - note fs6 $0d - note c6 $0d - note b5 $06 - rest $08 - vol $2 - note fs6 $0d - note c6 $0d - note b5 $06 - rest $08 - vol $1 - note fs6 $0d - note c6 $0c - vibrato $f1 - env $0 $00 - vol $6 - note a3 $0a - note c4 $0a - note d4 $0a - note c4 $0a - note ds4 $a0 - vibrato $01 - env $0 $00 - vol $3 - note ds4 $28 - vibrato $f1 - env $0 $00 - vol $6 - note ds4 $14 - note d4 $0a - rest $05 - vol $3 - note d4 $05 - vol $6 - note c4 $0a - rest $05 - vol $3 - note c4 $05 - vol $6 - note a3 $0a - rest $05 - vol $3 - note a3 $05 - rest $af - vibrato $00 - env $0 $03 - vol $4 - note d5 $0a - note d6 $0a - note d5 $0a - rest $0a - vol $3 - note d5 $0a - note d6 $0a - note d5 $0a - rest $0a - vol $2 - note d5 $0a - note d6 $0a - note d5 $0a - rest $0a - vol $1 - note d5 $0a - note d6 $0a - note d5 $05 - vibrato $f1 - env $0 $00 - vol $6 - note a3 $0a - note c4 $0a - note e4 $0a - note ds4 $0a - note gs4 $a0 - vibrato $01 - env $0 $00 - vol $3 - note gs4 $28 - vibrato $f1 - env $0 $00 - vol $6 - note b4 $14 - note g4 $0a - rest $05 - vol $3 - note g4 $05 - vol $6 - note ds4 $0a - rest $05 - vol $3 - note ds4 $05 - vol $6 - note a3 $0a - rest $05 - vol $3 - note a3 $05 - rest $af - vibrato $00 - env $0 $03 - note d5 $0a - note d6 $0a - note d5 $0a - rest $0a - vol $3 - note d5 $0a - note d6 $0a - note d5 $0a - rest $0a - vol $2 - note d5 $0a - note d6 $0a - note d5 $0a - rest $0a - vol $1 - note d5 $0a - note d6 $0a - note d5 $05 - vibrato $f1 - env $0 $00 - goto musicf0f4a - cmdff - -musExplorersCryptChannel4: - cmdf2 -musicf10cc: - duty $0e - note d2 $0a - rest $0a - note d2 $0a - rest $6e - note cs2 $05 - rest $05 - note cs2 $05 - rest $05 - note d2 $0a - rest $0a - note d2 $0a - rest $6e - note d2 $0a - rest $0a - note cs2 $0b - rest $09 - note cs2 $0d - rest $6b - vol $b - note cs2 $05 - rest $05 - note cs2 $05 - rest $05 - vol $b - note cs2 $0d - rest $07 - note cs2 $0d - rest $6b - note cs2 $0a - rest $0a - note d2 $0a - rest $0a - note d2 $0a - rest $6e - note cs2 $05 - rest $05 - note cs2 $05 - rest $05 - note d2 $0a - rest $0a - note d2 $0a - rest $6e - note d2 $0a - rest $0a - note cs2 $0b - rest $09 - note d2 $0d - rest $7f - note d2 $0d - rest $07 - note d2 $0d - rest $6b - note c2 $05 - rest $05 - note c2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $2d - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $19 - duty $0e - note a1 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $2d - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $19 - duty $0e - note a1 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $2d - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $19 - duty $0e - note c2 $0a - note cs2 $0a - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $2d - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $19 - duty $0e - note a1 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $2d - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $19 - duty $0e - note a1 $05 - duty $0f - note a1 $05 - duty $0e - note a1 $05 - duty $0f - note a1 $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $2d - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $2d - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $2d - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $19 - duty $0e - note a1 $0a - duty $0f - note a1 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $2d - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $05 - duty $0e - note d2 $0a - duty $0f - note d2 $05 - rest $19 - duty $0e - note c2 $0a - note cs2 $0a - goto musicf10cc - cmdff - -musExplorersCryptChannel6: - cmdf2 -musicf12c5: - vol $4 - note $2a $14 - note $2a $28 - rest $50 - note $2a $14 - note $2a $14 - note $2a $28 - rest $50 - note $2a $14 - note $2a $14 - note $2a $28 - rest $50 - note $2a $14 - note $2a $14 - note $2a $28 - rest $50 - note $2a $14 - note $2a $14 - note $2a $28 - rest $50 - note $2a $14 - note $2a $14 - note $2a $28 - rest $50 - note $2a $14 - note $2a $14 - note $2a $28 - rest $50 - note $2a $14 - note $2a $14 - note $2a $28 - rest $64 - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - note $2a $0a - goto musicf12c5 - cmdff diff --git a/audio/seasons/mus/gnarledRootDungeon.s b/audio/seasons/mus/gnarledRootDungeon.s deleted file mode 100644 index 741d7cfc4..000000000 --- a/audio/seasons/mus/gnarledRootDungeon.s +++ /dev/null @@ -1,439 +0,0 @@ -musGnarledRootDungeonStart: - -musGnarledRootDungeonChannel1: - vibrato $f1 - env $0 $00 - cmdf2 - duty $02 -musicf06be: - vol $4 - note b4 $12 - vol $5 - note c5 $12 - vol $6 - note cs5 $36 - note c5 $12 - note cs5 $12 - note c5 $12 - note f4 $09 - rest $04 - vol $3 - note f4 $02 - rest $03 - vol $6 - note f4 $09 - rest $04 - vol $3 - note f4 $02 - rest $6f - vol $4 - note a4 $12 - vol $5 - note as4 $12 - vol $6 - note b4 $36 - vol $6 - note as4 $12 - note b4 $12 - note as4 $12 - note e4 $09 - rest $03 - vol $4 - note e4 $03 - rest $03 - vol $6 - note e4 $09 - rest $02 - vol $5 - note e4 $03 - rest $04 - vol $2 - note e4 $03 - rest $69 - vol $4 - note b4 $12 - vol $6 - note c5 $12 - vol $6 - note cs5 $36 - vol $6 - note c5 $12 - note cs5 $12 - note c5 $12 - note f4 $09 - rest $02 - vol $4 - note f4 $03 - rest $04 - vol $6 - note f4 $09 - rest $02 - vol $4 - note f4 $03 - rest $04 - vol $2 - note f4 $03 - rest $69 - vol $5 - note a4 $12 - vol $5 - note as4 $12 - vol $6 - note b4 $36 - vol $6 - note as4 $12 - note b4 $12 - note as4 $12 - note e4 $09 - rest $03 - vol $4 - note e4 $03 - rest $03 - vol $6 - note e4 $09 - rest $01 - vol $4 - note e4 $03 - rest $05 - vol $2 - note e4 $03 - rest $69 - duty $01 - vol $6 - note b3 $09 - note as3 $09 - note gs3 $09 - note fs3 $09 - note f3 $55 - rest $17 - note as3 $04 - note b3 $05 - note as3 $09 - note gs3 $09 - note fs3 $09 - note f3 $5a - rest $12 - note a3 $09 - note gs3 $09 - note fs3 $09 - note f3 $09 - note ds3 $5a - rest $12 - note a3 $09 - note gs3 $09 - note fs3 $09 - note f3 $09 - note ds3 $12 - note f3 $09 - rest $1b - note ds3 $12 - note f3 $09 - rest $1b - note b3 $09 - note as3 $09 - note gs3 $09 - note fs3 $09 - note f3 $55 - rest $17 - note b3 $09 - note as3 $09 - note gs3 $09 - note fs3 $09 - note f3 $3f - rest $09 - note f3 $09 - note g3 $09 - note a3 $09 - note b3 $09 - note c4 $09 - rest $09 - note c4 $09 - rest $09 - note fs4 $6c - rest $48 - duty $02 - goto musicf06be - cmdff - -musGnarledRootDungeonChannel0: - cmdf2 - vibrato $f1 - env $0 $00 - duty $02 -musicf07ce: - vol $4 - note f4 $12 - vol $5 - note fs4 $12 - vol $6 - note g4 $36 - note fs4 $12 - note g4 $12 - note fs4 $12 - vol $6 - note b3 $09 - rest $04 - vol $3 - note b3 $02 - rest $03 - vol $6 - note b3 $09 - rest $04 - vol $3 - note b3 $02 - rest $6f - vol $4 - note e4 $12 - vol $5 - note f4 $12 - vol $6 - note fs4 $36 - vol $6 - note f4 $12 - note fs4 $12 - note f4 $12 - note as3 $09 - rest $03 - vol $3 - note as3 $03 - rest $03 - vol $6 - note as3 $09 - rest $03 - vol $2 - note as3 $03 - rest $03 - vol $2 - note as3 $03 - rest $69 - vol $3 - note f4 $12 - vol $5 - note fs4 $12 - vol $6 - note g4 $36 - note fs4 $12 - note g4 $12 - note fs4 $12 - vol $6 - note b3 $09 - rest $03 - vol $3 - note b3 $03 - rest $03 - vol $6 - note b3 $09 - rest $03 - vol $3 - note b3 $03 - rest $03 - vol $2 - note b3 $03 - rest $0f - vol $6 - note fs3 $04 - rest $01 - vol $4 - note fs3 $05 - rest $01 - vol $3 - note fs3 $04 - rest $4b - vol $3 - note e4 $12 - vol $5 - note f4 $12 - vol $6 - note fs4 $36 - note f4 $12 - vol $6 - note fs4 $12 - note f4 $12 - note as3 $09 - rest $03 - vol $3 - note as3 $03 - rest $03 - vol $6 - note as3 $09 - rest $03 - vol $3 - note as3 $03 - rest $03 - vol $2 - note as3 $03 - rest $0f - vol $6 - note e3 $04 - rest $01 - vol $5 - note e3 $05 - rest $01 - vol $3 - note e3 $04 - rest $ff - rest $ff - rest $ff - rest $e4 - vol $1 - note c5 $04 - rest $05 - vol $2 - note cs5 $04 - vol $0 - note c5 $05 - vol $2 - note c5 $04 - vol $1 - note cs5 $05 - vol $3 - note cs5 $04 - vol $1 - note c5 $05 - vol $3 - note c5 $04 - vol $1 - note cs5 $05 - vol $4 - note cs5 $04 - vol $1 - note c5 $05 - vol $4 - note c5 $04 - vol $2 - note cs5 $05 - vol $5 - note cs5 $04 - vol $2 - note c5 $05 - vol $5 - note c5 $04 - vol $2 - note cs5 $05 - vol $6 - note cs5 $04 - vol $2 - note c5 $05 - rest $48 - goto musicf07ce - cmdff - -musGnarledRootDungeonChannel4: -musicf08ce: - duty $0e - note b2 $09 - rest $09 - note b2 $09 - rest $75 - note b2 $09 - rest $09 - note b2 $09 - rest $75 - note as2 $09 - rest $09 - note as2 $09 - rest $75 - note as2 $09 - rest $09 - note as2 $09 - rest $75 - note b2 $09 - rest $09 - note b2 $09 - rest $75 - note b2 $09 - rest $09 - note b2 $09 - rest $63 - note b2 $09 - rest $09 - note as2 $09 - rest $09 - note as2 $09 - rest $75 - note as2 $09 - rest $09 - note as2 $09 - rest $63 - note as2 $09 - rest $09 - note b2 $09 - rest $09 - note b2 $09 - rest $1b - note f2 $09 - rest $09 - note b2 $09 - rest $09 - note b2 $09 - rest $1b - note f2 $09 - rest $09 - note b2 $09 - rest $09 - note b2 $09 - rest $1b - note f2 $09 - rest $09 - note b2 $09 - rest $09 - note b2 $09 - rest $1b - note f2 $09 - rest $09 - note a2 $09 - rest $09 - note a2 $09 - rest $1b - note ds2 $09 - rest $09 - note a2 $09 - rest $09 - note a2 $09 - rest $1b - note ds2 $09 - rest $09 - note a2 $09 - rest $09 - note a2 $09 - rest $09 - note ds2 $12 - note f2 $09 - rest $1b - note ds2 $12 - note f2 $09 - rest $1b - note b2 $09 - rest $09 - note b2 $09 - rest $1b - note f2 $09 - rest $09 - note b2 $09 - rest $09 - note b2 $09 - rest $1b - note f2 $09 - rest $09 - note b2 $09 - rest $09 - note b2 $09 - rest $1b - note f2 $09 - rest $09 - note b2 $09 - rest $09 - note b2 $09 - rest $1b - note f2 $09 - rest $09 - note fs2 $09 - rest $09 - note fs2 $09 - rest $09 - note d2 $6c - rest $48 - goto musicf08ce - cmdff - -.define musGnarledRootDungeonChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/seasons/mus/herosCave.s b/audio/seasons/mus/herosCave.s deleted file mode 100644 index 8e931d4e1..000000000 --- a/audio/seasons/mus/herosCave.s +++ /dev/null @@ -1,161 +0,0 @@ -musHerosCaveStart: - -musHerosCaveChannel1: - vibrato $00 - env $0 $03 - cmdf2 - duty $02 -musicf0c91: - vol $6 - note g3 $1c - note fs3 $1c - note g3 $1c - note fs3 $1c - note g3 $2a - vibrato $00 - note c3 $04 - env $0 $00 - note cs3 $05 - note d3 $05 - note ds3 $07 - rest $0b - vol $2 - note ds3 $07 - rest $0c - vol $1 - note ds3 $07 - rest $0c - vibrato $00 - env $0 $03 - vol $6 - note g3 $1c - note fs3 $1c - note g3 $1c - note fs3 $1c - note g3 $2a - vibrato $00 - env $0 $00 - note ds6 $04 - note d6 $05 - note c6 $05 - note a5 $07 - rest $0b - vol $2 - note a5 $07 - rest $0c - vol $1 - note a5 $07 - rest $0c - vibrato $00 - env $0 $03 - vol $6 - note g3 $1c - note fs3 $1c - note g3 $1c - note a3 $1c - note g3 $1c - note a3 $1c - note g3 $1c - note fs3 $1c - note g3 $1c - note a3 $1c - note g3 $1c - note a3 $1c - note g3 $2a - vibrato $00 - env $0 $00 - note g3 $04 - note gs3 $05 - note a3 $05 - note as3 $07 - rest $0b - vol $3 - note as3 $07 - rest $0c - vol $2 - note as3 $07 - rest $0c - vibrato $00 - env $0 $03 - goto musicf0c91 - cmdff -musHerosCaveChannel0: - vibrato $00 - env $0 $03 - cmdf2 - duty $02 -musicf0d21: - vol $6 - note as2 $1c - note c3 $1c - note as2 $1c - note c3 $1c - note as2 $2a - rest $46 - note as2 $1c - note c3 $1c - note as2 $1c - note c3 $1c - note as2 $2a - rest $46 - note as2 $1c - note c3 $1c - note as2 $1c - note c3 $1c - note as2 $1c - note c3 $1c - note as2 $1c - note c3 $1c - note as2 $1c - note c3 $1c - note as2 $1c - note c3 $1c - note as2 $2a - rest $46 - goto musicf0d21 - cmdff -musHerosCaveChannel4: - cmdf2 -musicf0d5b: - duty $17 - note ds4 $07 - rest $15 - note g4 $15 - note ds4 $07 - note as4 $07 - rest $15 - note a4 $2a - rest $62 - note ds4 $07 - rest $15 - note g4 $15 - note ds4 $07 - note a3 $07 - rest $15 - note as3 $38 - rest $54 - note ds4 $07 - rest $15 - note g4 $15 - note as4 $07 - note d5 $07 - rest $15 - note fs4 $23 - rest $07 - note as4 $1c - note a4 $1c - note g4 $0e - note c4 $0e - note d4 $0e - note fs4 $07 - rest $15 - note as4 $15 - note g4 $07 - note as4 $07 - rest $15 - note e4 $2a - rest $62 - goto musicf0d5b - cmdff - -.define musHerosCaveChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/seasons/mus/hideAndSeek.s b/audio/seasons/mus/hideAndSeek.s deleted file mode 100644 index 5fe888f98..000000000 --- a/audio/seasons/mus/hideAndSeek.s +++ /dev/null @@ -1,386 +0,0 @@ -musHideAndSeekStart: - -musHideAndSeekChannel1: - vibrato $32 - env $0 $00 - duty $01 -musiced6de: - vol $7 - note g4 $15 - vibrato $00 - env $0 $00 - note c5 $07 - note e5 $07 - rest $03 - vol $3 - note e5 $04 - vol $7 - note g5 $07 - rest $03 - vol $3 - note g5 $04 - vibrato $32 - env $0 $00 - vol $7 - note fs5 $1c - vibrato $00 - env $0 $00 - note g5 $07 - rest $03 - vol $3 - note g5 $07 - rest $04 - vol $1 - note g5 $07 - vibrato $32 - env $0 $00 - vol $7 - note as5 $15 - vibrato $00 - env $0 $00 - note a5 $07 - note gs5 $07 - rest $03 - vol $3 - note gs5 $04 - vol $7 - note g5 $07 - rest $03 - vol $3 - note g5 $04 - vibrato $32 - env $0 $00 - vol $7 - note fs5 $1c - vibrato $00 - env $0 $00 - note g5 $07 - rest $03 - vol $3 - note g5 $07 - rest $04 - vol $1 - note g5 $07 - rest $0e - vibrato $00 - env $0 $02 - vol $7 - note a5 $07 - note gs5 $07 - note g5 $0e - note fs5 $0e - note f5 $0e - note e5 $0e - note ds5 $0e - note d5 $0e - note cs5 $0e - note c5 $0e - note b4 $0e - note a4 $0e - note g4 $1c - rest $1c - vibrato $00 - env $0 $00 - vol $6 - note fs3 $07 - vol $8 - note g3 $07 - vol $7 - note fs3 $07 - vol $8 - note g3 $07 - vol $7 - note as3 $07 - rest $03 - vol $3 - note as3 $04 - vol $7 - note as3 $07 - rest $03 - vol $3 - note as3 $04 - vol $8 - note g3 $23 - vol $4 - note g3 $15 - vol $8 - note fs3 $07 - vol $7 - note g3 $07 - vol $5 - note fs3 $07 - vol $7 - note g3 $07 - vol $7 - note d4 $07 - rest $03 - vol $3 - note d4 $04 - vol $9 - note d4 $07 - rest $03 - vol $4 - note d4 $04 - vol $8 - note g3 $1c - rest $2a - vibrato $00 - env $0 $03 - vol $7 - note f5 $07 - note e5 $07 - note ds5 $0e - note d5 $0e - note cs5 $0e - note c5 $0e - note b4 $0e - note as4 $0e - note a4 $1c - note gs4 $1c - note g4 $1c - rest $1c - vibrato $81 - env $0 $00 - note e5 $15 - note c5 $07 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $7 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $7 - note f5 $15 - note cs5 $07 - note gs4 $07 - rest $03 - vol $3 - note gs4 $04 - vol $7 - note gs4 $07 - rest $03 - vol $3 - note gs4 $04 - vol $7 - note e5 $15 - note c5 $07 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $7 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $7 - note d5 $15 - note as4 $07 - note f4 $07 - rest $03 - vol $3 - note f4 $04 - vol $7 - note f4 $07 - rest $03 - vol $3 - note f4 $04 - vibrato $00 - env $0 $02 - vol $7 - note g4 $07 - rest $07 - note g5 $07 - note fs5 $07 - note f5 $0e - note e5 $0e - note ds5 $0e - note d5 $0e - note cs5 $0e - note c5 $0e - note b4 $1c - note as4 $1c - note a4 $1c - note g4 $1b - rest $01 - vibrato $32 - env $0 $00 - goto musiced6de - cmdff - -musHideAndSeekChannel0: - vibrato $00 - env $0 $02 - duty $01 -musiced84b: - vol $0 - note gs3 $ee - vol $a - note fs5 $07 - note f5 $07 - note e5 $0e - note ds5 $0e - note d5 $0e - note cs5 $0e - note c5 $0e - note b4 $0e - note as4 $0e - note a4 $0e - note g4 $07 - note fs4 $07 - note f4 $07 - note e4 $07 - note d4 $07 - note c4 $07 - note b3 $07 - note a3 $07 - vol $b - note g3 $0e - rest $fc - vol $7 - note a4 $07 - note gs4 $07 - note g4 $0e - note fs4 $0e - note f4 $0e - note e4 $0e - note ds4 $0e - note d4 $0e - note cs4 $1c - note c4 $1c - note b3 $1c - rest $1c - vibrato $81 - env $0 $00 - note g4 $1c - note e4 $0e - note c4 $0e - note gs4 $1c - note f4 $0e - note cs4 $0e - note g4 $1c - note e4 $0e - note c4 $0e - note f4 $1c - note d4 $0e - note as3 $0e - vibrato $00 - env $0 $02 - note b3 $0e - note d5 $07 - note cs5 $07 - note c5 $0e - note b4 $0e - note as4 $0e - note a4 $0e - note gs4 $0e - note g4 $0e - note fs4 $1c - note f4 $1c - note e4 $1c - note ds4 $1c - goto musiced84b - cmdff - -musHideAndSeekChannel4: - duty $0e -musiced8d1: - vol $b - note c3 $1c - note g3 $07 - rest $07 - note g3 $07 - rest $07 - note ds3 $1c - note e3 $07 - rest $15 - note c3 $1c - note g3 $07 - rest $07 - note g3 $07 - rest $07 - note gs3 $1c - note g3 $07 - rest $15 - note c3 $0e - rest $ee - vol $c - note g2 $07 - rest $07 - note g2 $07 - rest $07 - vol $d - note g2 $1c - note cs3 $03 - note d3 $07 - rest $2e - note g2 $07 - rest $07 - vol $b - note g2 $07 - rest $07 - vol $b - note g2 $1c - vol $c - note fs3 $03 - note g3 $07 - rest $cf - vol $b - note g2 $07 - vol $b - note fs2 $07 - note g2 $07 - note fs2 $07 - note g2 $07 - note c3 $1c - note fs3 $07 - note g3 $07 - note fs3 $07 - note g3 $07 - note cs3 $1c - note g3 $07 - note gs3 $07 - note g3 $07 - note gs3 $07 - note c3 $1c - note fs3 $07 - note g3 $07 - note fs3 $07 - note g3 $07 - note as2 $1c - note e3 $07 - note f3 $07 - note e3 $07 - note f3 $07 - note g2 $07 - rest $07 - note b4 $07 - note as4 $07 - note a4 $07 - rest $07 - note gs4 $07 - rest $07 - note g4 $07 - rest $07 - note fs4 $07 - rest $07 - note f4 $07 - rest $07 - note e4 $07 - rest $07 - note ds4 $07 - rest $15 - note d4 $07 - rest $15 - note cs4 $07 - rest $11 - note fs2 $04 - note g2 $07 - rest $15 - goto musiced8d1 - cmdff - -.define musHideAndSeekChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/seasons/mus/horonVillage.s b/audio/seasons/mus/horonVillage.s deleted file mode 100644 index c5961215c..000000000 --- a/audio/seasons/mus/horonVillage.s +++ /dev/null @@ -1,248 +0,0 @@ -musHoronVillageStart: - -musHoronVillageChannel1: - vibrato $00 - env $0 $03 - duty $02 -musicec007: - vol $6 - note ds5 $20 - note fs5 $20 - note cs5 $20 - note ds5 $10 - note e5 $10 - note ds5 $20 - note fs5 $20 - note cs5 $20 - note b4 $10 - note cs5 $10 - note ds5 $20 - note fs5 $20 - note cs6 $10 - note b5 $10 - note fs5 $10 - note ds5 $10 - note fs5 $20 - note e5 $10 - note ds5 $10 - note cs5 $20 - note e5 $10 - note fs5 $10 - note gs5 $20 - note ds6 $20 - note cs6 $20 - note as5 $10 - note gs5 $10 - note fs5 $20 - note cs6 $20 - note b5 $18 - rest $08 - note b5 $10 - note as5 $10 - vibrato $00 - env $0 $00 - note gs5 $04 - rest $04 - vol $3 - note gs5 $04 - rest $04 - vol $6 - note cs5 $04 - rest $04 - vol $3 - note cs5 $04 - rest $04 - vol $6 - note cs6 $04 - rest $04 - vol $3 - note cs6 $04 - rest $04 - vol $6 - note cs5 $04 - rest $04 - vol $3 - note cs5 $04 - rest $04 - vol $6 - note gs5 $04 - rest $04 - vol $3 - note gs5 $04 - rest $04 - vol $6 - note cs5 $04 - rest $04 - vol $3 - note cs5 $04 - rest $04 - vol $6 - note cs6 $04 - rest $04 - vol $3 - note cs6 $04 - rest $04 - vol $6 - note cs5 $04 - rest $04 - vol $3 - note cs5 $04 - rest $04 - vol $6 - note fs5 $08 - note gs5 $08 - note fs5 $08 - note gs5 $08 - note fs5 $08 - rest $04 - vol $3 - note fs5 $08 - rest $04 - vol $6 - note as5 $04 - note cs6 $04 - note fs6 $04 - rest $04 - vol $3 - note as5 $04 - note cs6 $04 - note fs6 $04 - rest $04 - vol $1 - note as5 $04 - note cs6 $04 - note fs6 $04 - rest $1c - vibrato $00 - env $0 $03 - goto musicec007 - cmdff - -musHoronVillageChannel0: - vibrato $00 - env $0 $03 - duty $02 -musicec0d8: - vol $6 - note b3 $10 - note fs4 $10 - note b3 $10 - note fs4 $10 - note as3 $10 - note fs4 $10 - note fs3 $10 - note fs4 $10 - note b3 $10 - note fs4 $10 - note b3 $10 - note fs4 $10 - note as3 $10 - note fs3 $10 - note gs3 $10 - note as3 $10 - note b3 $10 - note fs4 $10 - note b3 $10 - note as3 $10 - note gs3 $10 - note ds4 $10 - note gs3 $10 - note ds4 $10 - note cs4 $10 - note gs4 $10 - note cs4 $10 - note gs4 $10 - note fs3 $10 - note gs3 $10 - note as3 $10 - note b3 $10 - note cs4 $10 - note e4 $10 - note cs4 $10 - note b3 $10 - note as3 $10 - note cs4 $10 - note fs3 $10 - note cs4 $10 - note ds3 $10 - note e3 $10 - note fs3 $10 - note as3 $10 - note gs3 $10 - note as3 $10 - note b3 $10 - note ds4 $10 - note e4 $20 - note ds4 $20 - note cs4 $20 - note b3 $20 - note as3 $10 - note fs4 $10 - note b3 $10 - note fs4 $10 - note c4 $10 - note fs4 $10 - note cs4 $10 - note fs4 $10 - goto musicec0d8 - cmdff - -musHoronVillageChannel4: - duty $0c -musicec157: - note ds5 $0e - note ds5 $20 - note fs5 $20 - note cs5 $20 - note ds5 $10 - note e5 $10 - note ds5 $20 - note fs5 $20 - note cs5 $20 - note b4 $10 - note cs5 $10 - note ds5 $20 - note fs5 $20 - note cs6 $10 - note b5 $10 - note fs5 $10 - note ds5 $10 - note fs5 $20 - note e5 $10 - note ds5 $10 - note cs5 $20 - note e5 $10 - note fs5 $10 - note gs5 $20 - note ds6 $20 - note cs6 $20 - note as5 $10 - note gs5 $10 - note fs5 $20 - note cs6 $20 - note b5 $18 - rest $08 - note b5 $10 - note as5 $10 - note gs5 $10 - note cs5 $10 - note cs6 $10 - note cs5 $10 - note gs5 $10 - note cs5 $10 - note cs6 $10 - note cs5 $10 - note fs5 $08 - note gs5 $08 - note fs5 $08 - note gs5 $08 - note fs5 $10 - rest $08 - note as5 $04 - note cs6 $04 - note fs6 $04 - rest $2e - goto musicec157 - cmdff - -.define musHoronVillageChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/seasons/mus/makuTree.s b/audio/seasons/mus/makuTree.s deleted file mode 100644 index 1145cf080..000000000 --- a/audio/seasons/mus/makuTree.s +++ /dev/null @@ -1,430 +0,0 @@ -musMakuTreeStart: - -musMakuTreeChannel1: -musicf0001: - vibrato $e1 - env $0 $00 - cmdf2 - duty $02 - vol $6 - note e3 $1c - note g3 $1c - note d4 $1c - note b3 $1c - note g4 $1c - note e4 $1c - note d4 $1c - note e4 $1c - env $0 $00 - note a3 $09 - note d4 $09 - note e4 $0a - note g4 $09 - note a4 $09 - note e4 $0a - note fs4 $09 - note a4 $09 - note d5 $0a - note b4 $09 - note fs5 $09 - note e5 $0a - note b4 $09 - note d5 $09 - note g5 $0a - note fs5 $09 - note a5 $09 - note e5 $0a - note fs5 $09 - note a5 $09 - note d6 $0a - note b5 $09 - note cs6 $09 - note a5 $0a - env $0 $00 - vol $1 - note b6 $04 - note a6 $04 - note b6 $04 - note a6 $04 - vol $2 - note b6 $04 - note a6 $04 - note b6 $04 - note a6 $04 - vol $3 - note b6 $04 - note a6 $04 - note b6 $04 - note a6 $04 - vol $3 - note b6 $04 - note a6 $04 - vol $4 - note b6 $04 - note a6 $04 - env $0 $05 - note b6 $0e - vol $3 - note b6 $0e - vol $2 - note b6 $0e - vol $1 - note b6 $5a - env $0 $00 - vol $6 - note a3 $1c - note gs3 $1c - note fs3 $1c - note e3 $1c - note d3 $1c - note fs3 $1c - note e3 $1c - note a2 $1c - note d3 $1c - note b2 $1c - note e3 $1c - env $0 $06 - note fs3 $70 - env $0 $00 - env $0 $00 - note d4 $09 - note e4 $09 - note g4 $0a - note fs4 $09 - note e4 $09 - note d4 $0a - note e4 $09 - note b4 $09 - note d5 $0a - note cs5 $09 - note b4 $09 - note a4 $0a - note b4 $09 - note e5 $09 - note a5 $0a - note g5 $09 - note fs5 $09 - note e5 $0a - note fs5 $09 - note a5 $09 - note d6 $0a - note cs6 $09 - note b5 $09 - note a5 $0a - env $0 $00 - vol $6 - note e5 $04 - note fs5 $04 - note a5 $06 - note b5 $04 - env $0 $06 - vol $4 - note d6 $0a - vol $4 - note d6 $09 - vol $2 - note d6 $09 - vol $1 - note d6 $0a - env $0 $00 - vol $6 - note e5 $04 - vol $6 - note fs5 $04 - note a5 $06 - note b5 $04 - env $0 $06 - vol $5 - note d6 $0a - vol $4 - note d6 $09 - vol $2 - note d6 $09 - vol $1 - note d6 $0a - env $0 $00 - vol $6 - note e5 $04 - vol $6 - note fs5 $04 - note a5 $06 - note b5 $04 - env $0 $06 - vol $4 - note d6 $0a - vol $3 - note d6 $09 - vol $2 - note d6 $09 - vol $1 - note d6 $0a - env $0 $00 - vol $1 - note g6 $04 - note a6 $04 - vol $1 - note g6 $04 - note a6 $04 - vol $2 - note g6 $04 - note a6 $04 - vol $2 - note g6 $04 - note a6 $04 - vol $3 - note g6 $04 - note a6 $04 - vol $3 - note g6 $04 - note a6 $04 - vol $4 - note g6 $04 - note a6 $04 - env $0 $07 - vol $2 - note g6 $0e - vol $2 - note g6 $0e - vol $1 - note g6 $0e - vol $1 - note g6 $46 - env $0 $00 - goto musicf0001 - cmdff - -musMakuTreeChannel0: -musicf0156: - vibrato $e1 - env $0 $00 - cmdf2 - duty $02 - vol $6 - note a2 $1c - note d3 $1c - note g3 $1c - note e3 $1c - vol $6 - note c4 $1c - note b3 $1c - note g3 $1c - env $0 $04 - note a3 $2e - env $0 $00 - env $0 $00 - vol $6 - note a3 $0a - note d4 $09 - note e4 $09 - note g4 $0a - note a4 $09 - vol $4 - note e4 $09 - note fs4 $0a - note a4 $09 - note d5 $09 - note b4 $0a - note fs5 $09 - note e5 $09 - note b4 $0a - note d5 $09 - note g5 $09 - vol $4 - note fs5 $0a - note a5 $09 - note e5 $09 - vol $4 - note fs5 $0a - note a5 $09 - note d6 $09 - note b5 $0a - env $0 $00 - vol $1 - note g6 $04 - note f6 $04 - note g6 $04 - note f6 $04 - vol $2 - note g6 $04 - note f6 $04 - note g6 $04 - note f6 $04 - vol $3 - note g6 $04 - note f6 $04 - note g6 $04 - note f6 $04 - vol $3 - note g6 $04 - note f6 $04 - vol $4 - note g6 $04 - note f6 $04 - env $0 $06 - vol $2 - note g6 $0e - vol $2 - note g6 $0e - vol $2 - note g6 $0e - vol $1 - note g6 $5a - env $0 $00 - vol $6 - note d3 $1c - note cs3 $1c - note b2 $1c - note a2 $1c - note g2 $1c - note b2 $1c - note a2 $1c - note e2 $1c - note g2 $1c - note e2 $1c - note a2 $1c - note b2 $1c - note d3 $1c - note e3 $1c - env $0 $06 - note g3 $31 - env $0 $00 - env $0 $00 - vol $6 - note b3 $09 - note d4 $09 - vol $4 - note g4 $0a - note fs4 $09 - note e4 $09 - note d4 $0a - note e4 $09 - note b4 $09 - note d5 $0a - note cs5 $09 - note b4 $09 - note a4 $0a - note b4 $09 - note e5 $09 - vol $4 - note a5 $0a - note g5 $09 - note fs5 $09 - note e5 $0a - note fs5 $09 - note a5 $09 - note d6 $0a - note cs6 $09 - note b5 $09 - note a5 $0a - env $0 $00 - vol $4 - note e5 $04 - note fs5 $05 - note a5 $04 - note b5 $04 - env $0 $06 - vol $3 - note d6 $0d - vol $2 - note d6 $0e - vol $1 - note d6 $0c - env $0 $00 - vol $3 - note e5 $04 - note fs5 $05 - note a5 $04 - note b5 $04 - env $0 $06 - vol $2 - note d6 $0d - vol $1 - note d6 $0e - vol $1 - note d6 $0c - env $0 $00 - vol $3 - note e5 $04 - note fs5 $05 - note a5 $04 - note b5 $04 - env $0 $06 - vol $2 - note d6 $0c - vol $1 - note d6 $05 - env $0 $00 - vol $1 - note b6 $04 - note cs7 $04 - vol $1 - note b6 $04 - note cs7 $04 - vol $2 - note b6 $04 - note cs7 $04 - vol $2 - note b6 $04 - note cs7 $04 - vol $3 - note b6 $04 - note cs7 $04 - vol $3 - note b6 $04 - note cs7 $04 - vol $4 - note b6 $04 - note cs7 $04 - env $0 $06 - vol $2 - note b6 $0e - vol $2 - note b6 $0e - vol $2 - note b6 $0e - vol $1 - note b6 $47 - env $0 $00 - goto musicf0156 - cmdff - -musMakuTreeChannel4: -musicf02ac: - duty $17 - note a3 $1c - note d4 $1c - note g4 $1c - note e4 $1c - note c5 $1c - note b4 $1c - note g4 $1c - note a4 $1c - note e4 $70 - duty $0f - note e4 $38 - duty $0c - note e4 $38 - rest $c4 - duty $17 - note d4 $1c - note cs4 $1c - note b3 $1c - note a3 $1c - note g3 $1c - note b3 $1c - note a3 $1c - note e3 $1c - note g3 $1c - note e3 $1c - note a3 $1c - note b3 $70 - duty $0f - note b3 $38 - duty $0c - note b3 $38 - rest $ff - rest $c1 - goto musicf02ac - cmdff - -.define musMakuTreeChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/seasons/mus/poisonMothsLair.s b/audio/seasons/mus/poisonMothsLair.s deleted file mode 100644 index ab6c9aec1..000000000 --- a/audio/seasons/mus/poisonMothsLair.s +++ /dev/null @@ -1,525 +0,0 @@ -musPoisonMothsLairStart: - -musPoisonMothsLairChannel1: - vibrato $f1 - env $0 $00 - cmdf2 - duty $02 -musicf1dc1: - vol $7 - note e4 $24 - note b4 $24 - note e4 $24 - note ds4 $24 - note as4 $0d - rest $01 - vol $3 - note as4 $05 - rest $01 - vol $2 - note as4 $04 - rest $03 - vol $1 - note as4 $04 - rest $29 - vol $7 - note b2 $03 - note d4 $03 - note f5 $03 - rest $04 - vol $3 - note b2 $03 - note d4 $03 - note f5 $03 - rest $05 - vol $1 - note b2 $03 - note d4 $03 - note f5 $03 - vol $7 - note gs2 $03 - note b3 $03 - note d5 $03 - rest $04 - vol $3 - note gs2 $03 - note b3 $03 - note d5 $03 - rest $05 - vol $1 - note gs2 $03 - note b3 $03 - note d5 $03 - rest $48 - vol $7 - note e4 $24 - note b4 $24 - note e5 $24 - note ds5 $24 - note as5 $06 - rest $03 - vol $3 - note as5 $03 - rest $06 - vol $2 - note as5 $03 - rest $03 - vol $1 - note as5 $03 - rest $03 - vol $1 - note as5 $03 - rest $4b - vol $7 - note b2 $03 - note d4 $03 - note f5 $03 - rest $04 - vol $3 - note b2 $03 - note d4 $03 - note f5 $03 - rest $05 - vol $1 - note b2 $03 - note d4 $03 - note f5 $03 - vol $7 - note gs2 $03 - note b3 $03 - note d5 $03 - rest $04 - vol $3 - note gs2 $03 - note b3 $03 - note d5 $03 - rest $05 - vol $1 - note gs2 $03 - note b3 $03 - note d5 $03 - rest $24 - vol $7 - note gs1 $03 - note b2 $03 - note d4 $03 - rest $04 - vol $3 - note gs1 $03 - note b2 $03 - note d4 $03 - rest $05 - vol $1 - note gs1 $03 - note b2 $03 - note d4 $03 - vol $7 - note f1 $03 - note gs2 $03 - note b3 $03 - rest $04 - vol $3 - note f1 $03 - note gs2 $03 - note b3 $03 - rest $05 - vol $1 - note f1 $03 - note gs2 $03 - note b3 $03 - rest $24 - vol $7 - note as2 $03 - note cs4 $03 - note e5 $03 - rest $04 - vol $3 - note as2 $03 - note cs4 $03 - note e5 $03 - rest $05 - vol $1 - note as2 $03 - note cs4 $03 - note e5 $03 - vol $7 - note g2 $03 - note as3 $03 - note cs5 $03 - rest $04 - vol $3 - note g2 $03 - note as3 $03 - note cs5 $03 - rest $05 - vol $1 - note g2 $03 - note as3 $03 - note cs5 $03 - rest $24 - vol $7 - note f1 $03 - note gs2 $03 - note b3 $03 - rest $04 - vol $3 - note f1 $03 - note gs2 $03 - note b3 $03 - rest $05 - vol $1 - note f1 $03 - note gs2 $03 - note b3 $03 - vol $7 - note d1 $03 - note f2 $03 - note gs3 $03 - rest $04 - vol $3 - note d1 $03 - note f2 $03 - note gs3 $03 - rest $05 - vol $1 - note d1 $03 - note f2 $03 - note gs3 $03 - rest $48 - vol $4 - note a3 $0c - note ds3 $0c - note d3 $0c - note ds3 $0c - note a3 $0c - vol $4 - note ds3 $0c - note d3 $0c - note ds3 $0c - note d3 $0c - note ds3 $0c - vol $2 - note ds3 $0c - vol $1 - note ds3 $0c - vol $5 - note gs4 $0c - vol $2 - note a4 $0c - rest $03 - vol $1 - note a4 $0c - rest $21 - vol $5 - note b3 $0c - note f3 $0c - note e3 $0c - note f3 $0c - note b3 $0c - note f3 $0c - note e3 $0c - note f3 $0c - note e3 $0c - note f3 $0c - rest $18 - note as4 $0c - vol $3 - note b4 $0c - rest $03 - vol $1 - note b4 $0c - rest $21 - vol $4 - note c4 $0c - vol $4 - note fs3 $0c - vol $5 - note f3 $0c - vol $5 - note fs3 $0c - rest $06 - vol $2 - note fs3 $0c - rest $06 - vol $5 - note cs4 $0c - vol $5 - note g3 $0c - vol $5 - note fs3 $0c - vol $5 - note g3 $0c - rest $06 - vol $2 - note g3 $0c - rest $06 - vol $5 - note d4 $0c - vol $6 - note gs3 $0c - vol $6 - note a3 $0c - vol $6 - note ds4 $0c - vol $7 - note a3 $0c - vol $7 - note as3 $0c - vol $7 - note fs4 $04 - vol $5 - note a4 $05 - rest $09 - vol $6 - note f4 $04 - vol $5 - note gs4 $05 - rest $09 - vol $6 - note e4 $04 - vol $4 - note g4 $05 - rest $09 - vol $6 - note ds4 $04 - vol $4 - note fs4 $05 - rest $09 - vol $6 - note d4 $04 - vol $4 - note f4 $05 - rest $09 - vol $6 - note cs4 $04 - vol $4 - note e4 $05 - rest $09 - vol $6 - note c4 $04 - vol $4 - note ds4 $05 - rest $09 - vol $5 - note b3 $04 - vol $4 - note d4 $05 - rest $0f - vol $5 - note as3 $04 - vol $4 - note cs4 $04 - rest $07 - vol $3 - note cs4 $03 - rest $36 - vol $6 - note a3 $06 - rest $03 - vol $2 - note c4 $06 - rest $03 - vol $1 - note c4 $06 - rest $2e - vol $5 - note gs3 $09 - rest $01 - vol $2 - note b3 $07 - rest $03 - vol $1 - note b3 $06 - rest $4e - goto musicf1dc1 - cmdff - -musPoisonMothsLairChannel0: - vibrato $00 - env $0 $00 - cmdf2 - duty $02 -musicf1ffc: - vol $7 - note gs3 $24 - note b3 $24 - note gs3 $24 - note g3 $24 - note as3 $0c - rest $03 - vol $2 - note as3 $03 - rest $03 - vol $2 - note as3 $03 - rest $03 - vol $1 - note as3 $03 - rest $2a - vol $4 - note b4 $09 - rest $03 - vol $1 - note b4 $03 - rest $03 - vol $1 - note b4 $03 - rest $03 - vol $1 - note b4 $03 - rest $09 - vol $5 - note gs4 $04 - rest $01 - vol $2 - note gs4 $04 - rest $06 - vol $1 - note gs4 $03 - rest $06 - vol $1 - note gs4 $03 - rest $51 - vol $7 - note gs3 $24 - note b3 $24 - note gs3 $24 - note g3 $24 - vol $6 - note as3 $06 - rest $03 - vol $2 - note as3 $03 - rest $03 - vol $2 - note as3 $03 - rest $03 - vol $1 - note as3 $03 - rest $03 - vol $1 - note as3 $03 - rest $4e - vol $4 - note b4 $09 - rest $03 - vol $3 - note b4 $03 - rest $03 - vol $1 - note b4 $03 - rest $0f - vol $4 - note gs4 $09 - rest $03 - vol $3 - note gs4 $03 - rest $03 - vol $1 - note gs4 $03 - rest $33 - vol $2 - note f3 $09 - rest $03 - vol $4 - note f3 $03 - rest $03 - vol $1 - note f3 $03 - rest $0f - vol $3 - note d3 $09 - rest $03 - vol $4 - note d3 $03 - rest $03 - vol $1 - note d3 $03 - rest $33 - vol $5 - note as4 $06 - rest $03 - vol $3 - note as4 $03 - rest $06 - vol $1 - note as4 $03 - rest $0f - vol $3 - note g4 $06 - rest $03 - vol $5 - note g4 $03 - rest $06 - vol $1 - note g4 $03 - rest $33 - vol $3 - note d3 $09 - rest $03 - vol $5 - note d3 $03 - rest $03 - vol $2 - note d3 $03 - rest $0f - vol $3 - note b2 $09 - rest $03 - vol $4 - note b2 $03 - rest $03 - vol $2 - note b2 $03 - rest $57 - vol $5 - note d2 $75 - rest $63 - vol $6 - note ds2 $75 - rest $63 - vol $5 - note ds2 $48 - vol $6 - note e2 $48 - vol $6 - note f2 $24 - vol $6 - note fs2 $24 - note a3 $04 - rest $0e - vol $6 - note gs3 $04 - rest $0e - vol $6 - note g3 $04 - rest $0e - vol $6 - note fs3 $04 - rest $0e - vol $6 - note f3 $04 - rest $0e - vol $5 - note e3 $04 - rest $0e - vol $5 - note ds3 $04 - rest $0e - vol $5 - note d3 $04 - rest $14 - vol $4 - note cs3 $06 - rest $42 - vol $4 - note c3 $04 - rest $42 - vol $3 - note b2 $05 - rest $63 - goto musicf1ffc - cmdff - -.define musPoisonMothsLairChannel4 MUSIC_CHANNEL_FALLBACK EXPORT -.define musPoisonMothsLairChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/seasons/mus/samasaDesert.s b/audio/seasons/mus/samasaDesert.s deleted file mode 100644 index 85d47face..000000000 --- a/audio/seasons/mus/samasaDesert.s +++ /dev/null @@ -1,704 +0,0 @@ -musSamasaDesertStart: - -musSamasaDesertChannel1: - vibrato $00 - env $0 $00 - duty $02 -musicefa3e: - vol $6 - note e6 $08 - note d6 $08 - note as5 $08 - note a5 $08 - env $0 $03 - note f5 $10 - env $0 $00 - vol $6 - note e5 $08 - vol $3 - note f5 $08 - vol $6 - note f5 $08 - vol $3 - note e5 $08 - vol $6 - note a5 $08 - vol $3 - note f5 $08 - vol $6 - note as5 $08 - vol $3 - note a5 $08 - vol $6 - note as5 $08 - note d6 $08 - note e6 $08 - note d6 $08 - note as5 $08 - note a5 $08 - env $0 $03 - note f5 $10 - env $0 $00 - vol $6 - note e5 $08 - vol $3 - note f5 $08 - vol $6 - note f5 $08 - vol $3 - note e5 $08 - vol $6 - note a5 $08 - vol $3 - note f5 $08 - vol $6 - note as5 $08 - vol $3 - note a5 $08 - vol $6 - note as5 $08 - note d6 $08 - note e6 $08 - note as5 $08 - note a5 $08 - note f5 $08 - env $0 $03 - note e5 $10 - env $0 $00 - vol $6 - note d5 $08 - vol $3 - note e5 $08 - vol $6 - note e5 $08 - vol $3 - note d5 $08 - vol $6 - note a5 $08 - vol $3 - note e5 $08 - vol $6 - note as5 $08 - vol $3 - note a5 $08 - vol $6 - note as5 $08 - note d6 $08 - vol $6 - note e6 $08 - note as5 $08 - note a5 $08 - note f5 $08 - env $0 $03 - note e5 $10 - env $0 $00 - vol $6 - note d5 $08 - vol $3 - note e5 $08 - vol $6 - note e5 $08 - vol $3 - note d5 $08 - vol $6 - note a5 $08 - vol $3 - note e5 $08 - vol $6 - note as5 $08 - vol $3 - note a5 $08 - vol $6 - note as5 $08 - note d6 $08 - vol $6 - note e6 $08 - note d6 $08 - note as5 $08 - note a5 $08 - env $0 $03 - note f5 $10 - env $0 $00 - vol $6 - note e5 $08 - vol $3 - note f5 $08 - vol $6 - note f5 $08 - vol $3 - note e5 $08 - vol $6 - note a5 $08 - vol $3 - note f5 $08 - vol $6 - note as5 $08 - vol $3 - note a5 $08 - vol $6 - note as5 $08 - note d6 $08 - note e6 $08 - note d6 $08 - note as5 $08 - note a5 $08 - env $0 $03 - note f5 $10 - env $0 $00 - vol $6 - note e5 $08 - vol $3 - note f5 $08 - vol $6 - note f5 $08 - vol $3 - note e5 $08 - vol $6 - note a5 $08 - vol $3 - note f5 $08 - vol $6 - note as5 $08 - note a5 $08 - note as5 $08 - note d6 $08 - note e6 $08 - note as5 $08 - note a5 $08 - note f5 $08 - env $0 $03 - note e5 $10 - env $0 $00 - vol $6 - note d5 $08 - vol $3 - note e5 $08 - vol $6 - note e5 $08 - vol $3 - note d5 $08 - vol $6 - note a5 $08 - vol $3 - note e5 $08 - vol $6 - note as5 $08 - note a5 $08 - note as5 $08 - note d6 $08 - vol $6 - note e6 $08 - note as5 $08 - note a5 $08 - note f5 $08 - env $0 $03 - note e5 $10 - env $0 $00 - vol $6 - note d5 $08 - vol $3 - note e5 $08 - vol $6 - note e5 $08 - vol $3 - note d5 $08 - vol $6 - note a5 $08 - vol $3 - note e5 $08 - vol $6 - note as5 $08 - note a5 $08 - note as5 $08 - note d6 $08 - vol $6 - note d6 $08 - note a5 $08 - note g5 $08 - note e5 $08 - env $0 $03 - note d5 $10 - env $0 $00 - vol $6 - note c5 $08 - vol $3 - note d5 $08 - vol $6 - note d5 $08 - vol $3 - note c5 $08 - vol $6 - note g5 $08 - vol $3 - note d5 $08 - vol $6 - note a5 $08 - note g5 $08 - note a5 $08 - note c6 $08 - vol $6 - note d6 $08 - note a5 $08 - note g5 $08 - note e5 $08 - env $0 $03 - note d5 $10 - env $0 $00 - vol $6 - note c5 $08 - vol $3 - note d5 $08 - vol $6 - note d5 $08 - vol $3 - note c5 $08 - vol $6 - note g5 $08 - vol $3 - note d5 $08 - vol $6 - note a5 $08 - note g5 $08 - note a5 $08 - note c6 $08 - vol $6 - note c6 $08 - note g5 $08 - note fs5 $08 - note d5 $08 - env $0 $03 - note c5 $10 - env $0 $00 - vol $6 - note as4 $08 - vol $3 - note c5 $08 - vol $6 - note c5 $08 - vol $3 - note as4 $08 - vol $6 - note fs5 $08 - vol $3 - note c5 $08 - vol $6 - note g5 $08 - note f5 $08 - note g5 $08 - note as5 $08 - vol $6 - note as5 $08 - note f5 $08 - note ds5 $08 - note b4 $08 - env $0 $03 - note as4 $10 - env $0 $00 - vol $6 - note gs4 $08 - vol $3 - note as4 $08 - vol $6 - note b4 $08 - vol $3 - note gs4 $08 - vol $6 - note ds5 $08 - vol $3 - note b4 $08 - vol $6 - note f5 $08 - note ds5 $08 - note f5 $08 - note gs5 $08 - vol $6 - note g5 $10 - note d5 $10 - note b4 $10 - note g4 $10 - note b4 $10 - note d5 $10 - note as5 $10 - note f5 $10 - note d5 $10 - note as4 $10 - note d5 $10 - note f5 $10 - note cs6 $10 - note gs5 $10 - note f5 $10 - note cs5 $10 - note f5 $10 - note gs5 $10 - note e6 $10 - note b5 $10 - note gs5 $10 - note e5 $10 - note gs5 $10 - note b5 $10 - vibrato $00 - env $0 $03 - vol $4 - note b5 $08 - note gs5 $08 - note as5 $08 - note g5 $08 - note a5 $08 - note fs5 $08 - note gs5 $08 - note f5 $08 - note g5 $08 - note e5 $08 - note fs5 $08 - note ds5 $08 - note f5 $08 - note d5 $08 - note e5 $08 - note cs5 $08 - note ds5 $08 - note c5 $08 - note d5 $08 - note b4 $08 - note cs5 $08 - note as4 $08 - note c5 $08 - note a4 $08 - note b4 $08 - note gs4 $08 - note as4 $08 - env $0 $04 - note g4 $48 - vibrato $00 - env $0 $00 - goto musicefa3e - cmdff - -musSamasaDesertChannel4: -musicefcb4: - duty $0c - rest $0c - vol $2 - note e6 $08 - note b5 $08 - note a5 $08 - note f5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note f5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note f5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note f5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note f5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note f5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note f5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note f5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - vol $0 - note e5 $01 - vol $2 - note e6 $08 - note b5 $08 - note a5 $08 - note f5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note f5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note f5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note f5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note f5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note f5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note f5 $08 - note e6 $08 - note b5 $08 - note a5 $07 - note f5 $01 - vol $0 - note a5 $07 - vol $2 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - note e6 $08 - note b5 $08 - note a5 $08 - note e5 $08 - vol $2 - note d6 $08 - note a5 $08 - note g5 $08 - note d5 $08 - note d6 $08 - note a5 $08 - note g5 $08 - note d5 $08 - note d6 $08 - note a5 $08 - note g5 $08 - note d5 $08 - note d6 $08 - note a5 $08 - note g5 $08 - note d5 $08 - note d6 $08 - note a5 $08 - note g5 $08 - note d5 $08 - note d6 $08 - note a5 $08 - note g5 $08 - note d5 $08 - note d6 $08 - note a5 $08 - note g5 $08 - note d5 $08 - note d6 $08 - note a5 $08 - note g5 $08 - note d5 $08 - vol $2 - note c6 $08 - note g5 $08 - note fs5 $08 - note c5 $08 - vol $2 - note c6 $08 - note g5 $08 - note fs5 $08 - note c5 $08 - note c6 $08 - note g5 $08 - note fs5 $08 - note c5 $08 - note c6 $08 - note g5 $08 - note fs5 $08 - note c5 $08 - note as5 $08 - vol $2 - note f5 $08 - note ds5 $08 - note b4 $08 - note as4 $08 - vol $2 - note as5 $08 - vol $2 - note f5 $08 - note ds5 $08 - note b4 $08 - note as4 $08 - vol $2 - note as5 $08 - vol $2 - note f5 $08 - note ds5 $08 - note b4 $08 - note as4 $08 - vol $4 - note gs5 $08 - vibrato $00 - note g5 $10 - note d5 $10 - note b4 $10 - note g4 $10 - note b4 $10 - note d5 $10 - note as5 $10 - note f5 $10 - note d5 $10 - note as4 $10 - note d5 $10 - note f5 $10 - vol $4 - note cs6 $10 - note gs5 $10 - note f5 $10 - note cs5 $10 - note f5 $10 - note gs5 $10 - note e6 $10 - note b5 $10 - note gs5 $10 - note e5 $10 - note gs5 $10 - note b5 $04 - duty $0d - note e3 $20 - duty $0c - note e3 $20 - rest $bf - rest $21 - goto musicefcb4 - cmdff - -musSamasaDesertChannel0: -musicefe8d: - duty $02 - vol $8 - env $0 $07 - note e2 $30 - note d2 $30 - note e2 $20 - note d2 $30 - note e2 $30 - note d2 $20 - note e2 $30 - note d2 $30 - note e2 $20 - note d2 $30 - note e2 $30 - note d2 $20 - note e2 $30 - note d2 $30 - note e2 $20 - note d2 $30 - note e2 $30 - note d2 $20 - note e2 $30 - note d2 $30 - note e2 $20 - note d2 $30 - note e2 $30 - note d2 $20 - note d2 $30 - note c2 $30 - note g2 $20 - note c3 $30 - note as2 $30 - note f3 $20 - note as2 $30 - note gs2 $30 - note ds3 $20 - note gs2 $30 - note fs2 $30 - note cs3 $20 - env $0 $00 - vol $6 - note g2 $60 - note as2 $60 - note cs3 $60 - note e3 $60 - vol $4 - env $0 $03 - note g4 $08 - note as4 $08 - note fs4 $08 - note a4 $08 - note f4 $08 - note gs4 $08 - note e4 $08 - note g4 $08 - note ds4 $08 - note fs4 $08 - note d4 $08 - note f4 $08 - note cs4 $08 - note e4 $08 - note c4 $08 - note ds4 $08 - note b3 $08 - note d4 $08 - note as3 $08 - note cs4 $08 - note a3 $08 - note c4 $08 - note gs3 $08 - note b3 $08 - note g3 $08 - note as3 $08 - note fs3 $08 - env $0 $04 - note a3 $48 - goto musicefe8d - cmdff - -.define musSamasaDesertChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/seasons/mus/snakesRemains.s b/audio/seasons/mus/snakesRemains.s deleted file mode 100644 index 9c07205d5..000000000 --- a/audio/seasons/mus/snakesRemains.s +++ /dev/null @@ -1,394 +0,0 @@ -musSnakesRemainsStart: - -musSnakesRemainsChannel1: - vibrato $00 - env $0 $00 - cmdf2 - duty $02 -musicf09bb: - vol $6 - note d4 $10 - note ds4 $10 - note a4 $10 - note d5 $10 - note ds4 $10 - note c5 $10 - note ds4 $10 - note c5 $10 - note a4 $10 - note ds4 $10 - note d4 $10 - note a4 $10 - note d4 $10 - note ds4 $10 - note a4 $10 - note d5 $10 - note ds4 $10 - note c5 $10 - note ds4 $10 - note c5 $10 - note a4 $10 - note ds4 $10 - note d4 $10 - note a4 $10 - note d4 $10 - note ds4 $10 - note a4 $10 - note d5 $10 - note ds4 $10 - note c5 $10 - note ds4 $10 - note c5 $10 - note a4 $10 - note ds4 $10 - note d4 $10 - note a4 $10 - note d4 $10 - note ds4 $10 - note a4 $10 - note d5 $10 - note ds4 $10 - note c5 $10 - note ds4 $10 - note c5 $10 - note a4 $10 - note ds4 $10 - note d4 $10 - note a4 $10 - note e4 $10 - note f4 $10 - note b4 $10 - note e5 $10 - note f4 $10 - note d5 $10 - note f4 $10 - note d5 $10 - note b4 $10 - note f4 $10 - note e4 $10 - note b4 $10 - note e4 $10 - note f4 $10 - note b4 $10 - note e5 $10 - note f4 $10 - note d5 $10 - note f4 $10 - note d5 $10 - note b4 $10 - note f4 $10 - note e4 $10 - note b4 $10 - note e4 $10 - note f4 $10 - note b4 $10 - note e5 $10 - note f4 $10 - note d5 $10 - note f4 $10 - note d5 $10 - note b4 $10 - note f4 $10 - note e4 $10 - note b4 $10 - note e4 $10 - note f4 $10 - note b4 $10 - note e5 $10 - note f4 $10 - note d5 $10 - note f4 $10 - note d5 $10 - note b4 $10 - note f4 $10 - note e4 $10 - note d4 $10 - vol $6 - note b3 $10 - note as3 $10 - note a3 $10 - note gs3 $10 - rest $04 - vol $3 - note gs3 $08 - rest $04 - vol $1 - note gs3 $08 - rest $08 - vol $6 - note gs3 $10 - note g3 $10 - note fs3 $10 - note f3 $10 - rest $04 - vol $3 - note f3 $08 - rest $04 - vol $1 - note f3 $08 - rest $08 - vol $6 - note f3 $10 - note e3 $10 - note ds3 $10 - note d3 $10 - rest $04 - vol $3 - note d3 $08 - rest $04 - vol $1 - note d3 $08 - rest $08 - vol $6 - note d3 $10 - note cs3 $10 - note c3 $10 - note b2 $10 - rest $04 - vol $3 - note b2 $08 - rest $04 - vol $1 - note b2 $08 - rest $08 - goto musicf09bb - cmdff - -musSnakesRemainsChannel0: - vibrato $00 - env $0 $00 - cmdf2 - duty $02 -musicf0adb: - vol $0 - note gs3 $12 - vol $3 - note d4 $10 - note ds4 $10 - note a4 $10 - note d5 $10 - note ds4 $10 - note c5 $10 - note ds4 $10 - note c5 $10 - note a4 $10 - vol $3 - note ds4 $10 - note d4 $10 - note a4 $10 - note d4 $10 - note ds4 $10 - note a4 $10 - note d5 $10 - note ds4 $10 - note c5 $10 - note ds4 $10 - vol $3 - note c5 $10 - note a4 $10 - note ds4 $10 - note d4 $10 - rest $10 - note d4 $10 - note ds4 $10 - note a4 $10 - note d5 $10 - note ds4 $10 - note c5 $10 - note ds4 $10 - note c5 $10 - note a4 $10 - note ds4 $10 - note d4 $10 - note a4 $10 - note d4 $10 - note ds4 $10 - note a4 $10 - note d5 $10 - note ds4 $10 - note c5 $10 - note ds4 $10 - note c5 $10 - note a4 $10 - note ds4 $10 - note d4 $10 - note a4 $10 - note e4 $10 - note f4 $10 - note b4 $10 - note e5 $10 - note f4 $10 - note d5 $10 - note f4 $10 - note d5 $10 - note b4 $10 - note f4 $10 - note e4 $10 - note b4 $10 - note e4 $10 - note f4 $10 - note b4 $10 - note e5 $10 - note f4 $10 - note d5 $10 - note f4 $10 - note d5 $10 - note b4 $10 - note f4 $10 - note e4 $10 - note b4 $10 - note e4 $10 - note f4 $10 - note b4 $10 - note e5 $10 - note f4 $10 - vol $3 - note d5 $10 - note f4 $10 - note d5 $10 - note b4 $10 - note f4 $10 - note e4 $10 - note b4 $10 - note e4 $10 - note f4 $10 - note b4 $10 - note e5 $10 - note f4 $10 - note d5 $10 - note f4 $10 - note d5 $10 - note b4 $10 - note f4 $10 - note e4 $0a - rest $04 - vol $6 - note e3 $10 - vol $6 - note ds3 $10 - vol $6 - note d3 $10 - note cs3 $10 - rest $04 - vol $3 - note cs3 $08 - rest $04 - vol $1 - note cs3 $08 - rest $08 - vol $6 - note cs3 $10 - vol $6 - note c3 $10 - note b2 $10 - note as2 $10 - rest $04 - vol $3 - note as2 $08 - rest $04 - vol $1 - note as2 $08 - rest $08 - vol $6 - note as2 $10 - note a2 $10 - vol $6 - note gs2 $10 - note g2 $10 - rest $04 - vol $3 - note g2 $08 - rest $04 - vol $1 - note g2 $08 - rest $08 - vol $6 - note g2 $10 - note fs2 $10 - note f2 $10 - vol $6 - note e2 $10 - rest $04 - vol $3 - note e2 $08 - rest $04 - vol $1 - note e2 $08 - rest $08 - goto musicf0adb - cmdff - -musSnakesRemainsChannel4: - cmdf2 -musicf0c00: - duty $0e - note d2 $10 - rest $10 - note d2 $10 - rest $70 - note c2 $20 - note d2 $10 - rest $10 - note d2 $10 - rest $80 - note c2 $10 - note d2 $0a - rest $06 - note d2 $0a - rest $06 - note d2 $10 - rest $70 - note c2 $20 - note d2 $10 - note c2 $10 - note d2 $10 - rest $70 - note ds2 $20 - note e2 $10 - rest $10 - note e2 $10 - rest $80 - note d2 $10 - note e2 $10 - note g2 $10 - note e2 $10 - rest $80 - note d2 $10 - note e2 $10 - note g2 $10 - note b2 $10 - note as2 $75 - rest $0b - note d2 $10 - note e2 $10 - note d2 $10 - note e2 $10 - note as1 $90 - rest $08 - duty $0f - note b3 $10 - note as3 $10 - note a3 $10 - note gs3 $10 - rest $20 - note gs3 $10 - note g3 $10 - note fs3 $10 - note f3 $10 - rest $20 - note f3 $10 - note e3 $10 - note ds3 $10 - note d3 $10 - rest $20 - note d3 $10 - note cs3 $10 - note c3 $10 - note b2 $10 - rest $08 - duty $0e - note c2 $10 - goto musicf0c00 - cmdff - -.define musSnakesRemainsChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/seasons/mus/songOfStorms.s b/audio/seasons/mus/songOfStorms.s deleted file mode 100644 index 986261922..000000000 --- a/audio/seasons/mus/songOfStorms.s +++ /dev/null @@ -1,495 +0,0 @@ -musSongOfStormsStart: - -musSongOfStormsChannel1: -; Measure 1-4 - vol $0 - note gs3 $c0 - vibrato $e1 - env $0 $00 - cmdf2 - duty $02 -musicf84c2: -; Measure 5-6 -.rept 2 - vol $7 - note d4 $08 - note f4 $08 - note d5 $08 - rest $04 - - vol $3 - note d5 $08 - rest $04 - - vol $1 - note d5 $08 -.endr -; Measure 7 - vol $7 - note e5 $10 - rest $04 - vol $3 - note e5 $04 - - vol $7 - note f5 $08 - note e5 $08 - note f5 $08 -; Measure 8 - note e5 $08 - note c5 $08 - - note a4 $10 - rest $02 - vol $3 - note a4 $08 - rest $02 - vol $1 - note a4 $04 -; Measure 9 - vol $7 - note a4 $10 - note d4 $10 - note f4 $08 - note g4 $08 -; Measure 10 - note a4 $20 - vol $3 - note a4 $10 -; Measure 11 - vol $7 - note a4 $10 - note d4 $10 - note f4 $08 - note g4 $08 -; Measure 12 - note e4 $20 - vol $3 - note e4 $10 -; Measure 13-14 -.rept 2 - vol $7 - note d4 $08 - note f4 $08 - note d5 $08 - rest $04 - - vol $3 - note d5 $08 - rest $04 - - vol $1 - note d5 $08 -.endr -; Measure 15 - vol $7 - note e5 $10 - rest $04 - vol $3 - note e5 $04 - - vol $7 - note f5 $08 - note e5 $08 - note f5 $08 -; Measure 16 - note e5 $08 - note c5 $08 - - note a4 $10 - vol $3 - note a4 $10 -; Measure 17 - vol $7 - note a4 $10 - note d4 $10 - note f4 $08 - note g4 $08 -; Measure 18 - note a4 $10 - rest $06 - vol $3 - note a4 $08 - rest $02 - vol $7 - note a4 $10 -; Measure 19 - note d4 $50 -; Measure 20-21 - rest $70 - goto musicf84c2 - cmdff - -musSongOfStormsChannel0: -; Measure 1 - vol $0 - note gs3 $10 - vibrato $00 - env $0 $00 - cmdf2 - duty $02 -.rept 2 - vol $6 - note a3 $04 - rest $02 - vol $3 - note a3 $04 - rest $02 - vol $1 - note a3 $04 -.endr -; Measure 2 - rest $08 - vol $6 - note e3 $08 - note b3 $18 - vol $3 - note b3 $08 -; Measure 3 - rest $10 -.rept 2 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $04 - rest $02 - vol $1 - note c4 $04 -.endr -; Measure 4 - rest $08 - vol $6 - note e3 $08 - note b3 $18 - vol $3 - note b3 $08 -musicf85ca: -; Measure 5 - rest $10 -.rept 2 - vol $6 - note a3 $04 - rest $02 - vol $3 - note a3 $04 - rest $02 - vol $1 - note a3 $04 -.endr -; Measure 6 - rest $10 - vol $6 - note b3 $18 - vol $3 - note b3 $08 -; Measure 7 - rest $10 -.rept 2 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $04 - rest $02 - vol $1 - note c4 $04 -.endr -; Measure 8 - rest $10 - vol $6 - note b3 $18 - vol $3 - note b3 $08 -; Measure 9 - rest $10 -.rept 2 - vol $6 - note a3 $04 - rest $02 - vol $3 - note a3 $04 - rest $02 - vol $1 - note a3 $04 -.endr -; Measure 10 - rest $10 - vol $6 - note a3 $18 - vol $3 - note a3 $08 -; Measure 11 - rest $10 -.rept 2 - vol $6 - note a3 $04 - rest $02 - vol $3 - note a3 $04 - rest $02 - vol $1 - note a3 $04 -.endr -; Measure 12 - rest $10 - vol $6 - note a3 $18 - vol $3 - note a3 $08 -; Measure 13 - rest $10 -.rept 2 - vol $6 - note a3 $04 - rest $02 - vol $3 - note a3 $04 - rest $02 - vol $1 - note a3 $04 -.endr -; Measure 14 - rest $10 - vol $6 - note b3 $18 - vol $3 - note b3 $08 -; Measure 15 - rest $10 -.rept 2 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $04 - rest $02 - vol $1 - note c4 $04 -.endr -; Measure 16 - rest $10 - vol $6 - note b3 $18 - vol $3 - note b3 $08 -; Measure 17 - rest $10 -.rept 2 - vol $6 - note a3 $04 - rest $02 - vol $3 - note a3 $04 - rest $02 - vol $1 - note a3 $04 -.endr -; Measure 18 - rest $10 - vol $6 - note a3 $18 - vol $3 - note a3 $08 -; Measure 19 - rest $10 -.rept 2 - vol $6 - note a3 $04 - rest $02 - vol $3 - note a3 $04 - rest $02 - vol $1 - note a3 $04 -.endr -; Measure 20 - rest $08 - vol $6 - note e3 $08 - note b3 $18 - vol $3 - note b3 $08 -; Measure 21 - rest $10 -.rept 2 - vol $6 - note c4 $04 - rest $02 - vol $3 - note c4 $04 - rest $02 - vol $1 - note c4 $04 -.endr -; Measure 22 - rest $08 - vol $6 - note e3 $08 - note b3 $18 - vol $3 - note b3 $08 - goto musicf85ca - cmdff - -musSongOfStormsChannel4: - cmdf2 -; Measure 1 - duty $17 - note d2 $10 -.rept 2 - duty $17 - note f3 $04 - rest $0c -.endr -; Measure 2 - duty $17 - note e2 $10 - note g3 $20 -; Measure 3 - note f2 $10 -.rept 2 - duty $17 - note a3 $04 - rest $0c -.endr -; Measure 4 - duty $17 - note e2 $10 - note g3 $20 - -musicf8741: -; Measure 5 - note d2 $10 -.rept 2 - note f3 $04 - rest $0c -.endr -; Measure 6 - note e2 $10 - note g3 $20 -; Measure 7 - note f2 $10 -.rept 2 - note a3 $04 - rest $0c -.endr -; Measure 8 - note e2 $10 - note g3 $20 -; Measure 9 - note as2 $10 -.rept 2 - note f3 $04 - rest $0c -.endr -; Measure 10 - note f2 $10 - note f3 $20 -; Measure 11 - note as2 $10 -.rept 2 - note f3 $04 - rest $0c -.endr -; Measure 12 - note a2 $10 - note e3 $20 -; Measure 13 - note d2 $10 -.rept 2 - note f3 $04 - rest $0c -.endr -; Measure 14 - note e2 $10 - note g3 $20 -; Measure 15 - note f2 $10 -.rept 2 - note a3 $04 - rest $0c -.endr -; Measure 16 - note e2 $10 - note g3 $20 -; Measure 17 - note as2 $10 -.rept 2 - note f3 $04 - rest $0c -.endr -; Measure 18 - note a2 $10 - note e3 $20 -; Measure 19 - note d2 $10 -.rept 2 - note f3 $04 - rest $0c -.endr -; Measure 20 - note e2 $10 - note g3 $20 -; Measure 21 - note f2 $10 -.rept 2 - note a3 $04 - rest $0c -.endr -; Measure 22 - note e2 $10 - note g3 $20 - goto musicf8741 - cmdff - -musSongOfStormsChannel6: -; Measure 1 - rest $10 - cmdf2 - cmdf2 - vol $3 -.rept 2 - note $2a $10 -.endr -; Measure 2 - rest $08 -.rept 4 - note $2a $08 -.endr - rest $18 -; Measure 3b -.rept 2 - note $2a $10 -.endr - rest $08 -.rept 4 - note $2a $08 -.endr - rest $07 -musicf87e8: -; Measure 5 - rest $11 -; Measure 5b-20b -.rept 8 - .rept 2 - note $2a $10 - .endr - rest $08 - .rept 4 - note $2a $08 - .endr - rest $18 -.endr -; Measure 21b -.rept 2 - note $2a $10 -.endr -; Measure 22 - rest $08 -.rept 4 - note $2a $08 -.endr - rest $07 - goto musicf87e8 - cmdff diff --git a/audio/seasons/mus/subrosia.s b/audio/seasons/mus/subrosia.s deleted file mode 100644 index ace6d5206..000000000 --- a/audio/seasons/mus/subrosia.s +++ /dev/null @@ -1,320 +0,0 @@ -musSubrosiaStart: - -musSubrosiaChannel1: - vibrato $00 - env $0 $00 - duty $01 -musicfaffc: - vol $0 - note gs3 $24 - vol $6 - note f4 $09 - rest $04 - vol $3 - note f4 $09 - rest $05 - vol $1 - note f4 $09 - rest $24 - vol $6 - note f4 $09 - rest $04 - vol $3 - note f4 $09 - rest $05 - vol $1 - note f4 $09 - rest $24 - vol $6 - note f4 $09 - rest $04 - vol $3 - note f4 $09 - rest $05 - vol $1 - note f4 $09 - vibrato $00 - env $0 $03 - duty $02 - vol $6 - note f5 $12 - note f5 $12 - note fs5 $12 - rest $36 - duty $01 - vibrato $00 - env $0 $00 - note f4 $09 - rest $04 - vol $3 - note f4 $09 - rest $05 - vol $1 - note f4 $09 - rest $24 - vol $6 - note f4 $09 - rest $04 - vol $3 - note f4 $09 - rest $05 - vol $1 - note f4 $09 - rest $24 - vol $6 - note f4 $09 - rest $04 - vol $3 - note f4 $09 - rest $05 - vol $1 - note f4 $09 - vibrato $00 - env $0 $03 - duty $02 - vol $6 - note f5 $12 - note f5 $12 - note fs5 $12 - rest $12 - vibrato $e1 - env $0 $00 - duty $01 - note e4 $36 - note d4 $12 - note c4 $09 - rest $04 - vol $3 - note c4 $09 - rest $05 - vol $1 - note c4 $09 - vol $6 - note b3 $09 - rest $04 - vol $3 - note b3 $09 - rest $05 - vol $1 - note b3 $09 - vol $6 - note as3 $48 - note a3 $09 - rest $04 - vol $3 - note a3 $09 - rest $05 - vol $1 - note a3 $09 - rest $24 - vol $6 - note gs3 $48 - note g3 $09 - rest $04 - vol $3 - note g3 $09 - rest $05 - vol $1 - note g3 $09 - rest $24 - vol $6 - note f3 $09 - rest $04 - vol $3 - note f3 $09 - rest $05 - vol $1 - note f3 $09 - vol $6 - note f3 $09 - note fs3 $09 - note f3 $09 - note fs3 $09 - rest $04 - vol $3 - note fs3 $09 - rest $05 - vol $6 - note f4 $09 - note fs4 $09 - note f4 $09 - note fs4 $09 - rest $04 - vol $3 - note fs4 $09 - rest $05 - vol $6 - note g4 $12 - note a4 $09 - note g4 $09 - note f4 $24 - note fs4 $09 - rest $04 - vol $3 - note fs4 $09 - rest $05 - vol $1 - note fs4 $09 - rest $24 - goto musicfaffc - cmdff - -musSubrosiaChannel0: - vibrato $00 - env $0 $00 - duty $01 -musicfb10b: - vol $0 - note gs3 $24 - vol $6 - note d4 $09 - rest $04 - vol $3 - note d4 $09 - rest $05 - vol $1 - note d4 $09 - rest $24 - vol $6 - note d4 $09 - rest $04 - vol $3 - note d4 $09 - rest $05 - vol $1 - note d4 $09 - rest $24 - vol $6 - note d4 $09 - rest $04 - vol $3 - note d4 $09 - rest $05 - vol $1 - note d4 $09 - env $0 $03 - duty $02 - vol $6 - note d5 $12 - note d5 $12 - note ds5 $12 - rest $36 - vibrato $00 - env $0 $00 - duty $01 - note d4 $09 - rest $04 - vol $3 - note d4 $09 - rest $05 - vol $1 - note d4 $09 - rest $24 - vol $6 - note d4 $09 - rest $04 - vol $3 - note d4 $09 - rest $05 - vol $1 - note d4 $09 - rest $24 - vol $6 - note d4 $09 - rest $04 - vol $3 - note d4 $09 - rest $05 - vol $1 - note d4 $09 - vibrato $00 - env $0 $03 - duty $02 - vol $6 - note d5 $12 - note d5 $12 - note ds5 $12 - rest $ff - rest $ff - rest $e4 - vibrato $00 - env $0 $00 - duty $01 - goto musicfb10b - cmdff - -musSubrosiaChannel4: -musicfb193: - duty $0e - note b2 $24 - note f3 $12 - note fs3 $12 - note a3 $24 - note gs3 $12 - note g3 $12 - note f3 $24 - note fs3 $09 - duty $0f - note fs3 $09 - rest $5a - duty $0e - note b2 $24 - note f3 $12 - note fs3 $12 - note a3 $09 - duty $0f - note a3 $09 - duty $0e - note a3 $12 - note gs3 $12 - note g3 $12 - note f3 $24 - note fs3 $09 - duty $0f - note fs3 $09 - rest $5a - duty $0e - note g3 $36 - note fs3 $12 - note e3 $09 - duty $0f - note e3 $09 - rest $12 - duty $0e - note d3 $09 - duty $0f - note d3 $09 - rest $12 - duty $0e - note c3 $48 - note b2 $12 - rest $36 - note as2 $48 - note a2 $12 - rest $36 - note gs2 $48 - note fs2 $36 - duty $0f - note fs2 $12 - duty $0e - note c3 $31 - note b2 $05 - note as2 $04 - note a2 $05 - note gs2 $04 - note g2 $05 - note fs2 $09 - duty $0f - note fs2 $09 - rest $12 - duty $0e - note f2 $03 - note fs2 $09 - duty $0f - note fs2 $09 - rest $0f - duty $0e - goto musicfb193 - cmdff - -.define musSubrosiaChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/seasons/mus/subrosianDance.s b/audio/seasons/mus/subrosianDance.s deleted file mode 100644 index b54047219..000000000 --- a/audio/seasons/mus/subrosianDance.s +++ /dev/null @@ -1,780 +0,0 @@ -musSubrosianDanceStart: - -musSubrosianDanceChannel1: - vibrato $00 - env $0 $04 - cmdf2 - duty $02 -musicf2e89: - vol $6 - note e4 $1c - note gs4 $1c - note b4 $1c - note as4 $0e - note b4 $07 - note cs5 $07 - note d5 $0e - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note b4 $0e - note as4 $07 - rest $03 - vol $3 - note as4 $04 - vol $6 - note b4 $23 - vol $3 - note b4 $15 - vol $6 - note gs4 $1c - note a4 $0e - note as4 $0e - note b4 $0e - note gs4 $07 - rest $03 - vol $3 - note gs4 $04 - vol $6 - note e4 $07 - rest $03 - vol $3 - note e4 $04 - vol $6 - note b3 $07 - rest $03 - vol $3 - note b3 $04 - vol $6 - note c4 $03 - note d4 $04 - note c4 $03 - note d4 $04 - note c4 $03 - note d4 $04 - note c4 $07 - note b3 $03 - rest $19 - note cs4 $03 - note d4 $04 - note cs4 $03 - note d4 $04 - note cs4 $03 - note d4 $04 - note cs4 $07 - note b3 $03 - rest $19 - note e4 $1c - note gs4 $1c - note b4 $1c - note as4 $0e - note b4 $07 - note cs5 $07 - note d5 $0e - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note d5 $0e - note ds5 $0e - note e5 $1c - vol $3 - note e5 $0e - vol $6 - note b4 $07 - note cs5 $07 - note d5 $0e - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note d5 $0e - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note d5 $0e - note cs5 $07 - note b4 $03 - note cs5 $04 - note b4 $0e - note as4 $0e - note b4 $0e - note as4 $07 - rest $03 - vol $3 - note as4 $04 - vol $6 - note gs4 $0e - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - vol $6 - note e4 $1c - vol $3 - note e4 $0e - vol $6 - note b3 $0e - note c4 $1c - note b3 $1c - note cs4 $1c - note b3 $07 - rest $03 - vol $3 - note b3 $04 - vol $6 - note b3 $0e - note d4 $1c - note b3 $1c - note cs4 $1c - note b3 $07 - rest $03 - vol $3 - note b3 $07 - rest $19 - vol $6 - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note as4 $07 - rest $03 - vol $3 - note as4 $04 - vol $6 - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note c5 $0e - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note as4 $07 - rest $03 - vol $3 - note as4 $04 - vol $6 - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note cs5 $0e - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note as4 $07 - rest $03 - vol $3 - note as4 $04 - vol $6 - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note b4 $1c - vol $3 - note b4 $0e - vol $6 - note b3 $0e - note c4 $1c - note b3 $1c - note c4 $04 - note cs4 $05 - note c4 $05 - note cs4 $04 - note c4 $05 - note cs4 $05 - note b3 $0e - rest $0e - note ds4 $1c - note b3 $1c - note c4 $04 - note cs4 $05 - note c4 $05 - note cs4 $04 - note c4 $05 - note cs4 $05 - note b3 $0e - rest $1c - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note as4 $07 - rest $03 - vol $3 - note as4 $04 - vol $6 - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note e5 $0e - note d5 $07 - rest $03 - vol $3 - note d5 $04 - vol $6 - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note as4 $0e - note a4 $07 - rest $03 - vol $3 - note a4 $04 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - vol $6 - note e4 $2a - vol $3 - note e4 $0e - goto musicf2e89 - cmdff - -musSubrosianDanceChannel0: - vibrato $00 - env $0 $03 - cmdf2 - duty $02 -musicf304c: - vol $0 - note c3 $ff - note c3 $51 - vol $6 - note c3 $03 - note d3 $04 - note c3 $03 - note d3 $04 - note c3 $03 - note d3 $04 - note c3 $07 - note b2 $03 - rest $19 - note cs3 $03 - note d3 $04 - note cs3 $03 - note d3 $04 - note cs3 $03 - note d3 $04 - note cs3 $07 - note b2 $03 - rest $ff - rest $cc - note b2 $0e - vibrato $00 - env $0 $03 - note c3 $1c - note b2 $1c - vibrato $00 - env $0 $03 - note cs3 $04 - note d3 $05 - note cs3 $05 - note d3 $04 - note cs3 $05 - note d3 $05 - note b2 $07 - rest $07 - note b2 $0e - vibrato $00 - env $0 $03 - note d3 $1c - note b2 $1c - vibrato $00 - env $0 $03 - note cs3 $04 - note d3 $05 - note cs3 $05 - note d3 $04 - note cs3 $05 - note d3 $05 - note b2 $0e - rest $1c - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note a4 $0e - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note a4 $0e - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - vol $6 - note as4 $07 - rest $03 - vol $3 - note as4 $04 - vol $6 - note g4 $1c - vol $3 - note g4 $1c - vibrato $00 - env $0 $03 - vol $6 - note c3 $1c - note b2 $1c - vibrato $00 - env $0 $03 - note c3 $04 - note cs3 $05 - note c3 $05 - note cs3 $04 - note c3 $05 - note cs3 $05 - note b2 $0e - rest $0e - vibrato $00 - env $0 $03 - note ds3 $1c - note b2 $1c - vibrato $00 - env $0 $03 - note c3 $04 - note cs3 $05 - note c3 $05 - note cs3 $04 - note c3 $05 - note cs3 $05 - note b2 $0e - rest $1c - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note as4 $0e - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note e4 $07 - rest $03 - vol $3 - note e4 $04 - vol $6 - note fs4 $0e - note f4 $07 - rest $03 - vol $3 - note f4 $04 - vol $6 - note e4 $07 - rest $03 - vol $3 - note e4 $04 - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $04 - vol $6 - note as3 $2a - vol $3 - note as3 $0e - goto musicf304c - cmdff - -musSubrosianDanceChannel4: - cmdf2 -musicf3194: - duty $0e - note e2 $1c - duty $0f - note e2 $0a - rest $04 - duty $0e - note b2 $0e - note as2 $1c - duty $0f - note as2 $0a - rest $04 - duty $0e - note g2 $0e - note e2 $0e - note b2 $07 - duty $0f - note b2 $04 - rest $03 - duty $0e - note as2 $38 - note g2 $07 - note a2 $07 - note g2 $07 - note fs2 $07 - note e2 $1c - duty $0f - note e2 $0a - rest $04 - duty $0e - note b2 $0e - note as2 $1c - duty $0f - note as2 $0a - rest $04 - duty $0e - note g2 $0e - note c2 $03 - note d2 $04 - note c2 $03 - note d2 $04 - note c2 $03 - note d2 $04 - note c2 $07 - note b1 $03 - duty $0f - note b1 $06 - rest $13 - duty $0e - note cs2 $03 - note d2 $04 - note cs2 $03 - note d2 $04 - note cs2 $03 - note d2 $04 - note cs2 $07 - note b1 $03 - duty $0f - note b1 $04 - duty $0e - note a2 $07 - note g2 $07 - note fs2 $07 - note e2 $1c - duty $0f - note e2 $0a - rest $04 - duty $0e - note b2 $0e - note as2 $1c - duty $0f - note as2 $0a - rest $04 - duty $0e - note g2 $0e - note e2 $0e - note b2 $07 - duty $0f - note b2 $04 - rest $03 - duty $0e - note as2 $38 - note g2 $07 - note a2 $07 - note g2 $07 - note fs2 $07 - note e2 $1c - duty $0f - note e2 $0a - rest $04 - duty $0e - note b2 $0e - note as2 $1c - duty $0f - note as2 $0a - rest $04 - duty $0e - note g2 $0e - note e2 $0e - note b2 $07 - duty $0f - note b2 $04 - rest $03 - duty $0e - note as2 $38 - note g2 $07 - note a2 $07 - note g2 $07 - note fs2 $07 - note e2 $1c - duty $0f - note e2 $0a - rest $04 - duty $0e - note b2 $0e - note as2 $04 - note b2 $05 - note as2 $05 - note b2 $04 - note as2 $05 - note b2 $05 - duty $0f - note b2 $0a - rest $04 - duty $0e - note g2 $0e - note e2 $0e - note b2 $07 - duty $0f - note b2 $04 - rest $03 - duty $0e - note as2 $20 - note b2 $05 - note as2 $05 - note b2 $04 - note as2 $05 - note b2 $05 - note g2 $07 - note a2 $07 - note g2 $07 - note fs2 $07 - note e2 $1c - duty $0f - note e2 $0a - rest $04 - duty $0e - note b2 $0e - note as2 $1c - duty $0f - note as2 $0a - rest $04 - duty $0e - note g2 $0e - note e2 $0e - note b2 $07 - duty $0f - note b2 $04 - rest $03 - duty $0e - note as2 $38 - note g2 $07 - note a2 $07 - note g2 $07 - note fs2 $07 - note e2 $1c - duty $0f - note e2 $0a - rest $04 - duty $0e - note b2 $0e - note as2 $1c - duty $0f - note as2 $0a - rest $04 - duty $0e - note g2 $0e - note e2 $0e - note b2 $07 - duty $0f - note b2 $04 - rest $03 - duty $0e - note as2 $38 - note g2 $07 - note a2 $07 - note g2 $07 - note fs2 $07 - note e2 $1c - duty $0f - note e2 $0e - rest $46 - duty $0e - note as2 $0b - duty $0f - note as2 $03 - duty $0e - note a2 $07 - duty $0f - note a2 $04 - rest $03 - duty $0e - note g2 $07 - duty $0f - note g2 $04 - rest $03 - duty $0e - note f2 $07 - duty $0f - note f2 $04 - rest $03 - duty $0e - note e2 $0e - duty $0f - note e2 $0a - rest $04 - duty $0e - note g2 $07 - note a2 $07 - note g2 $07 - note fs2 $07 - goto musicf3194 - cmdff - -musSubrosianDanceChannel6: - cmdf2 -musicf3351: - vol $3 - note $23 $1c - note $26 $0e - note $23 $0e - note $23 $1c - note $26 $0e - note $23 $0e - note $23 $0e - note $26 $0e - note $26 $2a - note $26 $0e - note $26 $0e - note $26 $0e - note $23 $1c - note $26 $0e - note $23 $0e - note $23 $1c - note $26 $0e - note $23 $0e - note $23 $0e - note $26 $0e - note $26 $2a - note $26 $0e - note $26 $0e - note $26 $0e - note $23 $1c - note $26 $0e - note $23 $0e - note $23 $1c - note $26 $0e - note $23 $0e - note $23 $0e - note $26 $0e - note $26 $2a - note $26 $0e - note $26 $0e - note $26 $0e - note $23 $1c - note $26 $0e - note $23 $0e - note $23 $1c - note $26 $0e - note $23 $0e - note $23 $0e - note $26 $0e - note $26 $2a - note $26 $0e - note $26 $0e - note $26 $0e - note $23 $1c - note $26 $0e - note $23 $0e - note $23 $1c - note $26 $0e - note $23 $0e - note $23 $0e - note $26 $0e - note $26 $2a - note $26 $0e - note $26 $0e - note $26 $0e - note $23 $1c - note $26 $0e - note $23 $0e - note $23 $1c - note $26 $0e - note $23 $0e - note $23 $0e - note $26 $0e - note $26 $2a - note $26 $0e - note $26 $0e - note $26 $0e - note $23 $1c - note $26 $0e - note $23 $0e - note $23 $1c - note $26 $0e - note $23 $0e - note $23 $0e - note $26 $0e - note $26 $2a - note $26 $0e - note $26 $0e - note $26 $0e - note $26 $70 - note $26 $0e - note $26 $0e - note $26 $0e - note $26 $0e - note $26 $1c - note $26 $1c - goto musicf3351 - cmdff diff --git a/audio/seasons/mus/subrosianShop.s b/audio/seasons/mus/subrosianShop.s deleted file mode 100644 index 156324688..000000000 --- a/audio/seasons/mus/subrosianShop.s +++ /dev/null @@ -1,604 +0,0 @@ -sndSubrosianShopStart: - -sndSubrosianShopChannel1: - vibrato $00 - env $0 $00 - duty $01 -musicf59c8: - vol $6 - note ds5 $0e - note d5 $07 - rest $03 - vol $3 - note d5 $04 - vol $6 - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note c5 $07 - rest $03 - vol $3 - note c5 $07 - rest $04 - vol $1 - note c5 $07 - vol $6 - note b4 $0e - note c5 $07 - rest $03 - vol $3 - note c5 $04 - vol $6 - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note ds5 $0e - note fs5 $07 - rest $03 - vol $3 - note fs5 $04 - vol $6 - note ds5 $07 - note d5 $07 - note cs5 $07 - note b4 $07 - rest $07 - vol $3 - note b4 $07 - vol $6 - note b4 $0e - note c5 $07 - rest $03 - vol $3 - note c5 $04 - vol $6 - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note ds5 $0e - note d5 $07 - rest $03 - vol $3 - note d5 $04 - vol $6 - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note c5 $07 - rest $03 - vol $3 - note c5 $07 - rest $04 - vol $1 - note c5 $07 - vol $6 - note b4 $0e - note c5 $07 - rest $03 - vol $3 - note c5 $04 - vol $6 - note cs5 $07 - rest $03 - vol $3 - note cs5 $07 - rest $04 - vol $1 - note cs5 $07 - duty $02 - vol $7 - note fs6 $07 - rest $03 - vol $3 - note fs6 $04 - vol $7 - note fs6 $07 - vol $6 - note f6 $07 - note fs6 $07 - note f6 $07 - vol $6 - note fs6 $07 - rest $03 - vol $3 - note fs6 $04 - vol $6 - note f6 $07 - rest $03 - vol $3 - note f6 $04 - vol $6 - note fs6 $07 - rest $03 - vol $3 - note fs6 $07 - rest $04 - vol $1 - note fs6 $07 - duty $01 - vol $6 - note ds5 $0e - note d5 $07 - rest $03 - vol $3 - note d5 $04 - vol $6 - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note c5 $07 - rest $03 - vol $3 - note c5 $07 - rest $04 - vol $1 - note c5 $07 - vol $6 - note b4 $0e - note c5 $07 - rest $03 - vol $3 - note c5 $04 - vol $6 - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note ds5 $0e - note fs5 $07 - rest $03 - vol $3 - note fs5 $04 - vol $6 - note ds5 $07 - note d5 $07 - note cs5 $07 - note b4 $07 - rest $03 - vol $3 - note b4 $07 - rest $04 - vol $6 - note b4 $0e - note c5 $07 - rest $03 - vol $3 - note c5 $04 - vol $6 - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note ds5 $0e - note d5 $07 - rest $03 - vol $3 - note d5 $04 - vol $6 - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note c5 $07 - rest $03 - vol $3 - note c5 $07 - rest $04 - vol $1 - note c5 $07 - vol $6 - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note c5 $07 - note cs5 $07 - vol $6 - note d5 $07 - note ds5 $07 - rest $0e - duty $02 - vol $7 - note as6 $07 - rest $03 - vol $3 - note as6 $04 - vol $7 - note as6 $07 - vol $6 - note a6 $07 - note as6 $07 - note a6 $07 - vol $6 - note as6 $07 - rest $03 - vol $3 - note as6 $04 - vol $6 - note a6 $07 - rest $03 - vol $3 - note a6 $04 - vol $6 - note as6 $07 - rest $03 - vol $3 - note as6 $07 - rest $04 - vol $1 - note as6 $06 - rest $01 - duty $01 - goto musicf59c8 - cmdff - -sndSubrosianShopChannel0: - vibrato $00 - env $0 $00 - duty $01 -musicf5b5b: - vol $0 - note gs3 $0e - vol $6 - note gs3 $0e - note b3 $0e - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $1 - note ds4 $07 - vol $6 - note gs3 $0e - note b3 $0e - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $1 - note ds4 $07 - vol $6 - note gs3 $0e - note b3 $0e - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $1 - note ds4 $07 - vol $6 - note gs3 $0e - note b3 $0e - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $1 - note ds4 $07 - vol $6 - note gs3 $0e - note b3 $0e - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $1 - note ds4 $07 - vol $6 - note gs3 $0e - note b3 $0e - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $1 - note ds4 $07 - duty $02 - vol $6 - note ds6 $07 - rest $03 - vol $3 - note ds6 $04 - vol $6 - note ds6 $07 - note d6 $07 - note ds6 $07 - note d6 $07 - note ds6 $07 - rest $03 - vol $3 - note ds6 $04 - vol $6 - note d6 $07 - rest $03 - vol $3 - note d6 $04 - vol $6 - note ds6 $07 - rest $03 - vol $3 - note ds6 $07 - rest $04 - vol $1 - note ds6 $07 - rest $0e - duty $01 - vol $6 - note gs3 $0e - note b3 $0e - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $1 - note ds4 $07 - vol $6 - note gs3 $0e - note b3 $0e - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $1 - note ds4 $07 - vol $6 - note gs3 $0e - note b3 $0e - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $1 - note ds4 $07 - vol $6 - note gs3 $0e - note b3 $0e - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $1 - note ds4 $07 - vol $6 - note gs3 $0e - note b3 $0e - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $1 - note ds4 $07 - vol $6 - note gs3 $0e - note b3 $0e - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $04 - vol $1 - note ds4 $07 - duty $02 - vol $6 - note fs6 $07 - rest $03 - vol $3 - note fs6 $04 - vol $6 - note fs6 $07 - note f6 $07 - note fs6 $07 - note f6 $07 - note fs6 $07 - rest $03 - vol $3 - note fs6 $04 - vol $6 - note f6 $07 - rest $03 - vol $3 - note f6 $04 - vol $6 - note fs6 $07 - rest $03 - vol $3 - note fs6 $07 - rest $04 - vol $1 - note fs6 $06 - rest $01 - duty $01 - goto musicf5b5b - cmdff - -sndSubrosianShopChannel4: -musicf5c94: - duty $0e - note e3 $05 - duty $0f - note e3 $0f - rest $08 - duty $0e - note b3 $05 - duty $0f - note b3 $0f - rest $08 - duty $0e - note b2 $05 - duty $0f - note b2 $0f - rest $08 - duty $0e - note b3 $05 - duty $0f - note b3 $0f - rest $08 - duty $0e - note e3 $05 - duty $0f - note e3 $0f - rest $08 - duty $0e - note b3 $05 - duty $0f - note b3 $0f - rest $08 - duty $0e - note b2 $05 - duty $0f - note b2 $0f - rest $08 - duty $0e - note b3 $05 - duty $0f - note b3 $0f - rest $08 - duty $0e - note e3 $05 - duty $0f - note e3 $0f - rest $08 - duty $0e - note b3 $05 - duty $0f - note b3 $0f - rest $08 - duty $0e - note b2 $05 - duty $0f - note b2 $0f - rest $08 - duty $0e - note b3 $05 - duty $0f - note b3 $0f - rest $08 - duty $0e - note e3 $15 - duty $0f - note e3 $07 - duty $0e - note b2 $07 - duty $0f - note b2 $07 - duty $0e - note e3 $15 - duty $0f - note e3 $07 - duty $0e - note ds3 $07 - duty $0f - note ds3 $07 - duty $0e - note e3 $07 - duty $0f - note e3 $0e - rest $07 - duty $0e - note e3 $05 - duty $0f - note e3 $0f - rest $08 - duty $0e - note b3 $05 - duty $0f - note b3 $0f - rest $08 - duty $0e - note b2 $05 - duty $0f - note b2 $0f - rest $08 - duty $0e - note b3 $05 - duty $0f - note b3 $0f - rest $08 - duty $0e - note e3 $05 - duty $0f - note e3 $0f - rest $08 - duty $0e - note b3 $05 - duty $0f - note b3 $0f - rest $08 - duty $0e - note b2 $05 - duty $0f - note b2 $0f - rest $08 - duty $0e - note b3 $05 - duty $0f - note b3 $0f - rest $08 - duty $0e - note e3 $05 - duty $0f - note e3 $0f - rest $08 - duty $0e - note b3 $05 - duty $0f - note b3 $0f - rest $08 - duty $0e - note b2 $05 - duty $0f - note b2 $0f - rest $08 - duty $0e - note b3 $05 - duty $0f - note b3 $0f - rest $08 - duty $0e - note e3 $15 - duty $0f - note e3 $07 - duty $0e - note b2 $07 - duty $0f - note b2 $07 - duty $0e - note e3 $1c - duty $0e - note b2 $07 - duty $0f - note b2 $07 - duty $0e - note e3 $07 - duty $0f - note e3 $0e - rest $07 - goto musicf5c94 - cmdff - -.define sndSubrosianShopChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/seasons/mus/sunkenCity.s b/audio/seasons/mus/sunkenCity.s deleted file mode 100644 index c211fa692..000000000 --- a/audio/seasons/mus/sunkenCity.s +++ /dev/null @@ -1,253 +0,0 @@ -musSunkenCityStart: - -musSunkenCityChannel1: - vibrato $e1 - env $0 $00 - duty $02 -musiced98b: - vol $6 - note g4 $1c - note c5 $07 - rest $03 - vol $3 - note c5 $04 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note fs4 $1c - note b4 $07 - rest $03 - vol $3 - note b4 $07 - rest $04 - vol $1 - note b4 $07 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note g4 $0e - note c5 $0e - note g4 $0e - note fs4 $0e - note cs5 $04 - rest $06 - vol $3 - note cs5 $04 - vol $6 - note as4 $04 - rest $06 - vol $3 - note as4 $04 - vol $6 - note fs4 $04 - rest $06 - vol $3 - note fs4 $04 - vol $6 - note e5 $04 - note f5 $05 - note fs5 $05 - note g5 $04 - rest $03 - vol $4 - note g5 $02 - rest $02 - vol $3 - note g5 $03 - rest $1c - vol $6 - note b6 $04 - note a6 $05 - note g6 $05 - note ds6 $04 - rest $03 - vol $4 - note ds6 $02 - rest $02 - vol $2 - note ds6 $03 - rest $1c - vol $6 - note g4 $1c - note c5 $07 - rest $03 - vol $3 - note c5 $04 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note fs4 $0e - note cs5 $0e - note as4 $0e - vol $3 - note as4 $0e - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note g4 $0e - note c5 $0e - note e5 $0e - note fs5 $0e - note ds5 $0e - rest $03 - vol $3 - note ds5 $07 - rest $04 - vol $6 - note a5 $0e - rest $38 - vibrato $00 - env $0 $02 - duty $00 - vol $6 - note f5 $0e - vol $6 - note b4 $0e - note b4 $0e - note f5 $0e - rest $38 - vol $6 - note e5 $0e - rest $2a - vibrato $e1 - env $0 $00 - duty $02 - goto musiced98b - cmdff - -musSunkenCityChannel0: - vibrato $00 - env $0 $03 - duty $02 -musiceda60: - vol $6 - note c3 $0e - rest $0e - note e3 $0e - rest $0e - note g2 $0e - rest $0e - note e3 $0e - rest $0e - note c3 $0e - rest $0e - note e3 $0e - rest $0e - note g2 $0e - rest $0e - note e3 $0e - rest $2a - vibrato $00 - env $0 $00 - vol $6 - note e2 $04 - note f2 $05 - note fs2 $05 - note g2 $04 - rest $03 - vol $5 - note g2 $02 - rest $02 - vol $3 - note g2 $03 - rest $1c - vol $6 - note b2 $04 - note a2 $05 - note g2 $05 - note ds2 $04 - rest $03 - vol $4 - note ds2 $02 - rest $05 - vibrato $00 - env $0 $03 - vol $6 - note c3 $0e - rest $0e - vol $6 - note e3 $0e - rest $0e - note g2 $0e - rest $0e - note e3 $0e - rest $0e - note c3 $0e - rest $0e - note e3 $0e - rest $0e - note g2 $0e - rest $0e - note e3 $0e - rest $46 - vibrato $00 - env $0 $02 - duty $00 - vol $6 - note cs5 $0e - note g4 $0e - note g4 $0e - note cs5 $0e - rest $38 - note c5 $0e - rest $2a - vibrato $00 - env $0 $03 - duty $02 - goto musiceda60 - cmdff - -musSunkenCityChannel4: -musicedaef: - rest $ff - rest $5f - duty $17 - note g4 $07 - rest $07 - note g5 $07 - rest $23 - note g4 $07 - rest $07 - note g5 $07 - rest $23 - note g4 $07 - rest $07 - note g5 $07 - rest $23 - note g4 $07 - rest $07 - note g5 $07 - rest $15 - duty $10 - note fs2 $03 - note g2 $6d - rest $1c - note g2 $07 - note gs2 $07 - note a2 $07 - note b2 $05 - note b2 $02 - note c3 $07 - rest $07 - note g2 $07 - rest $05 - note as2 $02 - note gs2 $0e - note g2 $07 - rest $07 - goto musicedaef - cmdff - -.define musSunkenCityChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/seasons/mus/swordAndShieldMaze.s b/audio/seasons/mus/swordAndShieldMaze.s deleted file mode 100644 index 928ca40c5..000000000 --- a/audio/seasons/mus/swordAndShieldMaze.s +++ /dev/null @@ -1,575 +0,0 @@ -musSwordAndShieldMazeStart: - -musSwordAndShieldMazeChannel1: -musicf02f4: - vibrato $e1 - env $0 $00 - cmdf2 - duty $02 - vol $6 - note c4 $24 - note cs4 $24 - note c4 $24 - note cs4 $24 - vol $6 - note c4 $06 - vol $1 - note c4 $03 - vol $6 - note c4 $06 - vol $1 - note c4 $03 - vol $6 - note c4 $06 - vol $1 - note c4 $0c - vol $4 - note c4 $09 - vol $1 - note c4 $09 - vol $2 - note c4 $09 - vol $1 - note c4 $1b - vol $6 - note c4 $12 - note cs4 $12 - note e4 $12 - note c4 $90 - vol $6 - note e4 $04 - vol $1 - note e4 $05 - vol $3 - note e4 $04 - vol $1 - note e4 $05 - vol $6 - note as3 $04 - vol $1 - note as3 $05 - vol $4 - note as3 $04 - vol $1 - note as3 $05 - vol $2 - note as3 $04 - vol $1 - note as3 $05 - vol $1 - note as3 $04 - rest $71 - vol $6 - note e4 $12 - note as3 $12 - vol $3 - note as3 $12 - vol $6 - note gs4 $6c - note a4 $24 - note as4 $24 - note b4 $24 - note c5 $90 - vol $6 - note e5 $04 - vol $1 - note e5 $05 - vol $3 - note e5 $04 - vol $1 - note e5 $05 - vol $6 - note as4 $04 - vol $1 - note as4 $05 - vol $5 - note as4 $04 - vol $1 - note as4 $05 - vol $3 - note as4 $04 - vol $1 - note as4 $05 - vol $2 - note as4 $04 - rest $68 - vol $6 - note b4 $09 - note e5 $09 - note a5 $09 - note gs5 $09 - note cs5 $09 - note gs5 $09 - note b5 $09 - note a5 $09 - note e5 $09 - note a5 $09 - note ds6 $09 - note cs6 $09 - note ds5 $09 - note gs5 $09 - note cs6 $09 - note b5 $09 - note ds5 $09 - note e5 $09 - note b5 $09 - note a5 $09 - note cs5 $09 - note ds5 $09 - note a5 $09 - note gs5 $09 - note a4 $09 - note cs5 $09 - note gs5 $09 - note fs5 $09 - note gs4 $09 - note b4 $09 - note fs5 $09 - note e5 $09 - note fs4 $09 - note a4 $09 - note e5 $09 - note a5 $09 - note b4 $09 - note e5 $09 - note a5 $09 - note c6 $09 - note d5 $09 - note g5 $09 - note c6 $09 - note f6 $09 - note g5 $09 - note c6 $09 - note f6 $09 - note as6 $09 - note as5 $09 - note f6 $09 - note as6 $09 - note d7 $09 - note d6 $09 - note a6 $09 - note d7 $09 - note ds7 $09 - note e6 $09 - note a6 $09 - note ds7 $09 - note f7 $09 - note g6 $09 - note as6 $09 - note f7 $09 - note e7 $09 - rest $0d - vol $3 - note e7 $09 - rest $0e - vol $1 - note e7 $09 - rest $24 - goto musicf02f4 - cmdff - -musSwordAndShieldMazeChannel0: - vibrato $e1 - env $0 $00 - cmdf2 - duty $02 -musicf041c: - vol $6 - note fs3 $24 - note g3 $24 - note fs3 $24 - note g3 $24 - vol $6 - note fs3 $04 - vol $1 - note fs3 $05 - vol $6 - note fs3 $04 - vol $1 - note fs3 $05 - vol $6 - note fs3 $04 - vol $1 - note fs3 $0e - vol $4 - note fs3 $09 - vol $1 - note fs3 $09 - vol $2 - note fs3 $09 - vol $1 - note fs3 $1b - vol $6 - note fs3 $12 - note g3 $12 - note c4 $12 - note fs3 $90 - vol $7 - note as3 $04 - vol $1 - note as3 $05 - vol $4 - note as3 $04 - vol $1 - note as3 $05 - vol $6 - note e3 $04 - vol $1 - note e3 $05 - vol $5 - note e3 $04 - vol $1 - note e3 $05 - vol $3 - note e3 $04 - vol $1 - note e3 $05 - vol $2 - note e3 $04 - rest $71 - vol $6 - note fs3 $12 - note g3 $24 - note gs3 $24 - note a3 $24 - note as3 $24 - note b3 $24 - note c4 $24 - note cs4 $24 - note d4 $24 - note ds4 $24 - note e4 $24 - note f4 $24 - vol $6 - note as4 $04 - vol $1 - note as4 $05 - vol $3 - note as4 $04 - vol $1 - note as4 $05 - vol $6 - note e4 $04 - vol $1 - note e4 $05 - vol $5 - note e4 $04 - vol $1 - note e4 $05 - vol $3 - note e4 $04 - vol $1 - note e4 $05 - vol $1 - note e4 $04 - rest $80 - vol $2 - note b4 $09 - note e5 $09 - note a5 $09 - note gs5 $09 - note cs5 $09 - note gs5 $09 - note b5 $09 - note a5 $09 - note e5 $09 - note a5 $09 - note ds6 $09 - note cs6 $09 - note ds5 $09 - note gs5 $09 - note cs6 $09 - note b5 $09 - note ds5 $09 - note e5 $09 - note b5 $09 - note a5 $09 - note cs5 $09 - note ds5 $09 - note a5 $09 - note gs5 $09 - note a4 $07 - note cs5 $01 - vol $0 - note a4 $08 - note cs5 $01 - vol $2 - note gs5 $0a - note fs5 $09 - note gs4 $09 - note b4 $09 - note fs5 $09 - note e5 $09 - note fs4 $09 - note a4 $09 - note e5 $09 - note a5 $09 - note b4 $09 - note e5 $09 - note a5 $09 - note c6 $09 - note d5 $09 - note g5 $09 - note c6 $09 - note f6 $09 - note g5 $09 - note c6 $09 - note f6 $09 - note as6 $09 - note as5 $09 - note f6 $09 - note as6 $09 - note d7 $09 - note d6 $09 - note a6 $09 - note d7 $09 - note ds7 $09 - note e6 $09 - note a6 $09 - note ds7 $09 - note d7 $09 - rest $03 - vol $2 - note e7 $03 - rest $57 - goto musicf041c - cmdff - -musSwordAndShieldMazeChannel4: - cmdf2 -musicf0536: - duty $07 - note cs3 $12 - note c3 $12 - note b2 $12 - note as2 $12 - note a2 $12 - note gs2 $12 - note g2 $12 - note fs2 $12 - note cs3 $12 - note c3 $12 - note b2 $12 - note as2 $12 - note a2 $12 - note gs2 $12 - note g2 $12 - note fs2 $12 - note cs3 $12 - note c3 $12 - note b2 $12 - note as2 $12 - note a2 $12 - note gs2 $12 - note g2 $12 - note fs2 $12 - note cs3 $12 - note c3 $12 - note b2 $12 - note as2 $12 - note a2 $12 - note gs2 $12 - note g2 $12 - note fs2 $12 - note cs3 $12 - note c3 $12 - note b2 $12 - note as2 $12 - note a2 $12 - note gs2 $12 - note g2 $12 - note fs2 $12 - note cs3 $12 - note c3 $12 - note b2 $12 - note as2 $12 - note a2 $12 - note gs2 $12 - note g2 $12 - note fs2 $12 - note cs3 $12 - note c3 $12 - note b2 $12 - note as2 $12 - note a2 $12 - note gs2 $12 - note g2 $12 - note fs2 $12 - note cs3 $12 - note c3 $12 - note b2 $12 - note as2 $12 - note a2 $12 - note gs2 $12 - note g2 $12 - note e2 $24 - rest $ff - rest $ff - rest $8a - goto musicf0536 - cmdff - -musSwordAndShieldMazeChannel6: - cmdf2 -musicf05c3: - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $10 - vol $6 - note $22 $02 - vol $4 - note $23 $10 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $10 - vol $6 - note $22 $02 - vol $4 - note $23 $10 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $10 - vol $6 - note $22 $02 - vol $4 - note $23 $10 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $07 - vol $6 - note $22 $02 - vol $4 - note $23 $07 - vol $6 - note $22 $02 - vol $4 - note $23 $07 - vol $6 - note $22 $02 - vol $4 - note $23 $07 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $10 - vol $6 - note $22 $02 - vol $4 - note $23 $10 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $22 - vol $6 - note $22 $02 - vol $4 - note $23 $10 - vol $6 - note $22 $02 - vol $4 - note $23 $10 - rest $ff - rest $ff - rest $c0 - goto musicf05c3 - cmdff diff --git a/audio/seasons/mus/tarmRuins.s b/audio/seasons/mus/tarmRuins.s deleted file mode 100644 index 8c8708f0b..000000000 --- a/audio/seasons/mus/tarmRuins.s +++ /dev/null @@ -1,851 +0,0 @@ -musTarmRuinsStart: - -musTarmRuinsChannel1: -; Measure 1-2 - vol $0 - note gs3 $ff - vol $0 - note gs3 $01 - vibrato $00 - env $0 $00 - duty $02 -musicee549: -; Measure 3 - vol $6 - note g5 $30 - vol $3 - note g5 $10 - - vol $6 - note fs5 $20 - note g5 $10 - note fs5 $10 -; Measure 4 - note e5 $10 - rest $08 - vol $3 - note e5 $08 - - vol $6 - note a4 $10 - rest $08 - vol $3 - note a4 $08 - - vol $6 - note a4 $10 - rest $08 - vol $3 - note a4 $08 - - vol $6 - note a4 $0c - rest $04 - note a4 $08 - note b4 $08 -; Measure 5 - note c5 $38 - vol $3 - note c5 $08 - - vol $6 - note b4 $20 - note d5 $20 -; Measure 6 - note c5 $20 - note b4 $10 - note a4 $10 - - note b4 $10 - rest $08 - vol $3 - note b4 $08 - - vol $6 - note g4 $10 - rest $08 - vol $3 - note g4 $08 -; Measure 7 - vol $6 - note a4 $30 - vol $3 - note a4 $20 - vol $1 - note a4 $10 - - vol $6 - note a4 $10 - note e5 $08 - rest $04 - vol $3 - note e5 $04 -; Measure 8 - vol $6 - note e5 $30 - vol $3 - note e5 $20 - vol $1 - note e5 $10 - rest $10 - - vol $6 - note e5 $08 - note a5 $08 -; Measure 9 -.rept 2 - note e5 $20 - vol $3 - note e5 $10 - - vol $6 - note e5 $08 - note a5 $08 -.endr -; Measure 10 - note e5 $40 - vol $3 - note e5 $20 - vol $1 - note e5 $20 -; Measure 11 - vol $6 - note c6 $08 - rest $04 - vol $3 - note c6 $08 - rest $04 - vol $1 - note c6 $08 - - vol $6 - note b5 $08 - rest $04 - vol $3 - note b5 $08 - rest $04 - vol $1 - note b5 $08 - - vol $6 - note a5 $08 - rest $04 - vol $3 - note a5 $08 - rest $04 - vol $1 - note a5 $08 - - vol $6 - note g5 $08 - rest $04 - vol $3 - note g5 $08 - rest $04 - vol $1 - note g5 $08 -; Measure 12 - vol $6 - note fs5 $48 - rest $08 - note g5 $10 - note a5 $10 - note b5 $10 -; Measure 13 - note c6 $08 - rest $04 - vol $3 - note c6 $08 - rest $04 - vol $1 - note c6 $08 - - vol $6 - note b5 $08 - rest $04 - vol $3 - note b5 $08 - rest $04 - vol $1 - note b5 $08 - - vol $6 - note a5 $08 - rest $04 - vol $3 - note a5 $08 - rest $04 - vol $1 - note a5 $08 - - vol $6 - note g5 $08 - rest $04 - vol $3 - note g5 $08 - rest $04 - vol $1 - note g5 $08 -; Measure 14 - vol $6 - note fs5 $40 - vol $3 - note fs5 $10 - - vol $6 - note fs5 $10 - note g5 $10 - note a5 $10 -; Measure 15 - note b5 $30 - vol $3 - note b5 $10 - - vol $6 - note e6 $30 - vol $3 - note e6 $10 -; Measure 16 - vol $6 - note d6 $18 - vol $3 - note d6 $08 - - vol $6 - note a5 $18 - vol $3 - note a5 $08 - - vol $6 - note f5 $18 - vol $3 - note f5 $08 - - vol $6 - note d5 $18 - vol $3 - note d5 $08 -; Measure 17 - rest $30 - - vol $6 - note b4 $05 - note e5 $05 - note a4 $06 - note b4 $2a - rest $06 - - note b4 $04 - note e5 $04 - note fs5 $04 - note a5 $04 -; Measure 18 - note b5 $30 - - note a5 $05 - note b5 $05 - note a5 $06 - - note f5 $20 - note e5 $10 - note d5 $10 - goto musicee549 - cmdff - -musTarmRuinsChannel0: - vibrato $00 ;pointless? - env $0 $00 ;pointless? - duty $02 -; Measure 1 - vol $6 - note a3 $08 - rest $08 - note b3 $08 - vol $3 - note a3 $08 - vol $6 - note d4 $08 - vol $3 - note b3 $08 - vol $6 - note e4 $08 - vol $3 - note d4 $08 -; Measure 1c-2 -.rept 3 - vol $6 - note a3 $08 - vol $3 - note e4 $08 - vol $6 - note b3 $08 - vol $3 - note a3 $08 - vol $6 - note d4 $08 - vol $3 - note b3 $08 - vol $6 - note e4 $08 - vol $3 - note d4 $08 -.endr -musicee701: -; Measure 3-6 -.rept 8 - vol $6 - note a3 $08 - vol $3 - note e4 $08 - vol $6 - note b3 $08 - vol $3 - note a3 $08 - vol $6 - note d4 $08 - vol $3 - note b3 $08 - vol $6 - note e4 $08 - vol $3 - note d4 $08 -.endr -; Measure 7 - vol $6 - note f3 $08 - vol $3 - note e4 $08 - vol $6 - note a3 $08 - vol $3 - note f3 $08 - vol $6 - note b3 $08 - vol $3 - note a3 $08 - vol $6 - note d4 $08 - vol $3 - note b3 $08 - - vol $6 - note f4 $08 - vol $3 - note d4 $08 - vol $6 - note a4 $08 - vol $3 - note f4 $08 - vol $6 - note b4 $08 - vol $3 - note a4 $08 - vol $6 - note d5 $08 - vol $3 - note b4 $08 -; Measure 8 - vol $6 - note f3 $08 - vol $3 - note d5 $08 - vol $6 - note a3 $08 - vol $3 - note f3 $08 - vol $6 - note b3 $08 - vol $3 - note a3 $08 - vol $6 - note d4 $08 - vol $3 - note b3 $08 - - vol $6 - note f4 $08 - vol $3 - note d4 $08 - vol $6 - note a4 $08 - vol $3 - note f4 $08 - vol $6 - note b4 $08 - vol $3 - note a4 $08 - vol $6 - note d5 $08 - vol $3 - note b4 $08 -; Measure 9 - vol $6 - note e3 $08 - vol $3 - note d5 $08 - vol $6 - note a3 $08 - vol $3 - note e3 $08 - vol $6 - note b3 $08 - vol $3 - note a3 $08 - vol $6 - note d4 $08 - vol $3 - note b3 $08 - - vol $6 - note e4 $08 - vol $3 - note d4 $08 - vol $6 - note a4 $08 - vol $3 - note e4 $08 - vol $6 - note b4 $08 - vol $3 - note a4 $08 - vol $6 - note d5 $08 - vol $3 - note b4 $08 -; Measure 10 - vol $6 - note e3 $08 - vol $3 - note d5 $08 - vol $6 - note g3 $08 - vol $3 - note e3 $08 - vol $6 - note b3 $08 - vol $3 - note g3 $08 - vol $6 - note d4 $08 - vol $3 - note b3 $08 - - vol $6 - note e4 $08 - vol $3 - note d4 $08 - vol $6 - note a4 $08 - vol $3 - note e4 $08 - vol $6 - note b4 $08 - vol $3 - note a4 $08 - vol $6 - note d5 $08 - vol $3 - note b4 $08 -; Measure 11 - vol $6 - note ds3 $04 - rest $04 - note fs3 $04 - vol $3 - note ds3 $04 - vol $6 - note a3 $04 - vol $3 - note fs3 $04 - vol $6 - note c4 $04 - vol $3 - note a3 $04 -.rept 4 - vol $6 - note ds3 $04 - vol $3 - note c4 $04 - vol $6 - note fs3 $04 - vol $3 - note ds3 $04 - vol $6 - note a3 $04 - vol $3 - note fs3 $04 - vol $6 - note c4 $04 - vol $3 - note a3 $04 -.endr -; Measure 12b - vol $6 - note fs3 $04 - vol $3 - note c4 $04 - vol $6 - note a3 $04 - vol $3 - note fs3 $04 - vol $6 - note c4 $04 - vol $3 - note a3 $04 - vol $6 - note ds4 $04 - vol $3 - note c4 $04 - - vol $6 - note a3 $04 - vol $3 - note ds4 $04 - vol $6 - note c4 $04 - vol $3 - note a3 $04 - vol $6 - note ds4 $04 - vol $3 - note c4 $04 - vol $6 - note fs4 $04 - vol $3 - note ds4 $04 - - vol $6 - note ds4 $04 - vol $3 - note fs4 $04 - vol $6 - note fs4 $04 - vol $3 - note ds4 $04 - vol $6 - note a4 $04 - vol $3 - note fs4 $04 - vol $6 - note c5 $04 - vol $3 - note a4 $04 -; Measure 13 - vol $6 - note ds3 $04 - vol $3 - note c5 $04 ;only difference between M11-12 and M13-14 - vol $6 - note fs3 $04 - vol $3 - note ds3 $04 - vol $6 - note a3 $04 - vol $3 - note fs3 $04 - vol $6 - note c4 $04 - vol $3 - note a3 $04 -.rept 4 - vol $6 - note ds3 $04 - vol $3 - note c4 $04 - vol $6 - note fs3 $04 - vol $3 - note ds3 $04 - vol $6 - note a3 $04 - vol $3 - note fs3 $04 - vol $6 - note c4 $04 - vol $3 - note a3 $04 -.endr -; Measure 14b - vol $6 - note fs3 $04 - vol $3 - note c4 $04 - vol $6 - note a3 $04 - vol $3 - note fs3 $04 - vol $6 - note c4 $04 - vol $3 - note a3 $04 - vol $6 - note ds4 $04 - vol $3 - note c4 $04 - - vol $6 - note a3 $04 - vol $3 - note ds4 $04 - vol $6 - note c4 $04 - vol $3 - note a3 $04 - vol $6 - note ds4 $04 - vol $3 - note c4 $04 - vol $6 - note fs4 $04 - vol $3 - note ds4 $04 - - vol $6 - note ds4 $04 - vol $3 - note fs4 $04 - vol $6 - note fs4 $04 - vol $3 - note ds4 $04 - vol $6 - note a4 $04 - vol $3 - note fs4 $04 - vol $6 - note c5 $04 - vol $3 - note a4 $04 -; Measure 15 - vol $6 - note g3 $08 - rest $08 - note b3 $08 - vol $3 - note g3 $08 - vol $6 - note e4 $08 - vol $3 - note b3 $08 - vol $6 - note g4 $08 - vol $3 - note e4 $08 - - vol $6 - note g3 $08 - vol $3 - note g4 $08 - vol $6 - note b3 $08 - vol $3 - note g3 $08 - vol $6 - note e4 $08 - vol $3 - note b3 $08 - vol $6 - note g4 $08 - vol $3 - note e4 $08 -; Measure 16 - vol $6 - note f3 $08 - vol $3 - note g4 $08 - vol $6 - note a3 $08 - vol $3 - note f3 $08 - vol $6 - note c4 $08 - vol $3 - note a3 $08 - vol $6 - note f4 $08 - vol $3 - note c4 $08 - - vol $6 - note f3 $08 - vol $3 - note f4 $08 - vol $6 - note a3 $08 - vol $3 - note f3 $08 - vol $6 - note c4 $08 - vol $3 - note a3 $08 - vol $6 - note f4 $08 - vol $3 - note c4 $08 -; Measure 17 - vol $6 - note c3 $08 - vol $3 - note f4 $08 - vol $6 - note e3 $08 - vol $3 - note c3 $08 - vol $6 - note g3 $08 - vol $3 - note e3 $08 - vol $6 - note b3 $08 - vol $3 - note g3 $08 - - vol $6 - note c3 $08 - vol $3 - note b3 $08 - vol $6 - note e3 $08 - vol $3 - note c3 $08 - vol $6 - note g3 $08 - vol $3 - note e3 $08 - vol $6 - note b3 $08 - vol $3 - note g3 $08 -; Measure 18 - vol $6 - note b2 $08 - vol $3 - note b3 $08 - vol $6 - note d3 $08 - vol $3 - note b2 $08 - vol $6 - note fs3 $08 - vol $3 - note d3 $08 - vol $6 - note a3 $08 - vol $3 - note fs3 $08 - - vol $6 - note as2 $08 - vol $3 - note a3 $08 - vol $6 - note d3 $08 - vol $3 - note as2 $08 - vol $6 - note e3 $08 - vol $3 - note d3 $08 - vol $6 - note g3 $08 - vol $3 - note e3 $08 - goto musicee701 - cmdff - -musTarmRuinsChannel4: - duty $08 -; Measure 1-3a 2 measures + 1.125 beats - rest $ff - rest $25 -musiceeac7: -; Measure 3b - note g5 $30 - rest $10 - - note fs5 $20 -; Measure 4a - note g5 $10 - note fs5 $10 - note e5 $10 - rest $10 - note a4 $10 - rest $10 - note a4 $10 - rest $10 -; Measure 5a - note a4 $0c - rest $04 - note a4 $08 - note b4 $08 - note c5 $38 - rest $08 - note b4 $20 -; Measure 6a - note d5 $20 - note c5 $20 - note b4 $10 - note a4 $10 - note b4 $10 - rest $10 -; Measure 7a - note g4 $10 - rest $10 - note a4 $60 -; Measure 8a - rest $10 - note e5 $08 - rest $08 - note e5 $60 -; Measure 9a-10a - rest $10 -.rept 3 - note e5 $08 - note a5 $08 - note e5 $30 -.endr -; Measure 11a-14a 4 measures + 1.5 beats - rest $ff - rest $ff - duty $08 ;pointless? - rest $32 -; Measure 15b - note g5 $10 - note a5 $10 - note b5 $30 - rest $10 - note e6 $30 -; Measure 16a - note e6 $10 - note d6 $18 - rest $08 - note a5 $18 - rest $08 - note f5 $18 - rest $08 -; Measure 17a - note d5 $18 - rest $38 - note b4 $05 - note e5 $05 - note a4 $06 - note b4 $2a -; Measure 18a - rest $06 - note b4 $04 - note e5 $04 - note fs5 $04 - note a5 $04 - - note b5 $30 - note a5 $05 - note b5 $05 - note a5 $06 - note f5 $20 -; Measure 1a - note e5 $10 - note d5 $10 - goto musiceeac7 - cmdff - -.define musTarmRuinsChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/seasons/mus/templeRemains.s b/audio/seasons/mus/templeRemains.s deleted file mode 100644 index 8e62ebcb5..000000000 --- a/audio/seasons/mus/templeRemains.s +++ /dev/null @@ -1,244 +0,0 @@ -musTempleRemainsStart: - -musTempleRemainsChannel1: - vibrato $00 - env $0 $00 -musicedce8: - vol $6 - note a3 $12 - note d4 $12 - note g4 $12 - note e4 $12 - note a4 $12 - note d4 $12 - note g4 $12 - note fs4 $12 - note e4 $12 - note b4 $12 - note a4 $12 - note d4 $12 - note g4 $12 - note e4 $12 - note fs4 $12 - note g4 $12 - vibrato $00 - env $0 $04 - note a4 $12 - note b4 $12 - note c5 $12 - note g5 $09 - rest $51 - note a4 $12 - note b4 $12 - note c5 $12 - note fs5 $09 - rest $51 - vibrato $00 - env $0 $00 - note b4 $12 - note g4 $12 - note e4 $12 - note a4 $12 - note g4 $12 - note d4 $12 - note e4 $12 - note a4 $12 - note fs4 $12 - note g4 $12 - note d5 $12 - note b4 $12 - note cs5 $12 - note a4 $12 - note g4 $12 - note b4 $12 - vibrato $00 - env $0 $04 - note fs5 $12 - note g5 $12 - note a5 $12 - note b5 $09 - rest $51 - note e5 $12 - note fs5 $12 - note g5 $12 - note a5 $09 - rest $51 - vibrato $00 - env $0 $00 - goto musicedce8 - cmdff - -musTempleRemainsChannel0: - vibrato $00 - env $0 $00 -musicedd69: - vol $1 - note a3 $0b - vol $4 - note a3 $12 - note d4 $12 - note g4 $12 - note e4 $12 - vol $4 - note a4 $12 - note d4 $12 - note g4 $12 - note fs4 $12 - note e4 $12 - note b4 $12 - note a4 $12 - note d4 $12 - vol $4 - note g4 $12 - note e4 $12 - note fs4 $12 - note g4 $12 - rest $1f - vibrato $00 - env $0 $04 - vol $4 - note b4 $12 - note c5 $12 - note g5 $09 - rest $51 - note a4 $12 - note b4 $12 - note c5 $12 - note fs5 $09 - rest $44 - vibrato $00 - env $0 $00 - vol $4 - note b4 $12 - note g4 $12 - note e4 $12 - note a4 $12 - note g4 $12 - note d4 $12 - note e4 $12 - note a4 $12 - note fs4 $12 - note g4 $12 - note d5 $12 - note b4 $12 - note cs5 $12 - note a4 $12 - note g4 $12 - note b4 $12 - rest $1f - vibrato $00 - env $0 $04 - vol $4 - note g5 $12 - note a5 $12 - note b5 $09 - rest $51 - note e5 $12 - note fs5 $12 - note g5 $12 - note a5 $09 - rest $39 - vibrato $00 - env $0 $00 - goto musicedd69 - cmdff - -musTempleRemainsChannel4: -musiceddee: - duty $0e - note a2 $24 - note e3 $24 - note d3 $36 - duty $0f - note d3 $12 - duty $0e - note a2 $12 - note e3 $12 - note g3 $12 - note e3 $12 - note fs3 $24 - note e3 $12 - note d3 $12 - duty $0e - note a2 $24 - duty $0f - note a2 $12 - duty $0c - note a2 $12 - duty $0e - note a2 $09 - duty $0f - note a2 $09 - duty $0e - note a2 $09 - duty $0f - note a2 $09 - rest $24 - duty $0e - note a2 $24 - duty $0f - note a2 $12 - duty $0c - note a2 $12 - duty $0e - note a2 $09 - duty $0f - note a2 $09 - duty $0e - note a2 $09 - duty $0f - note a2 $09 - rest $24 - duty $0e - note a2 $24 - note e3 $24 - note d3 $2d - duty $0f - note d3 $1b - duty $0e - note a2 $12 - note e3 $12 - note b3 $12 - note a3 $12 - note e4 $12 - note cs4 $12 - note b3 $12 - note g3 $12 - duty $0e - note a2 $24 - duty $0f - note a2 $12 - duty $0c - note a2 $12 - duty $0e - note a2 $09 - duty $0f - note a2 $09 - duty $0e - note a2 $09 - duty $0f - note a2 $09 - rest $24 - duty $0e - note a2 $24 - duty $0f - note a2 $12 - duty $0c - note a2 $12 - duty $0e - note a2 $09 - duty $0f - note a2 $09 - duty $0e - note a2 $09 - duty $0f - note a2 $09 - rest $24 - goto musiceddee - cmdff - -.ifdef BUILD_VANILLA - .dsb 6 $ff -.endif - -.define musTempleRemainsChannel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/seasons/mus/unicornsCave.s b/audio/seasons/mus/unicornsCave.s deleted file mode 100644 index a21fdd159..000000000 --- a/audio/seasons/mus/unicornsCave.s +++ /dev/null @@ -1,1451 +0,0 @@ -musUnicornsCaveStart: - -musUnicornsCaveChannel1: - vibrato $e1 - env $0 $00 - cmdf2 - duty $02 - vol $6 - note fs3 $07 - rest $03 - vol $3 - note fs3 $04 - vol $6 - note fs3 $03 - vol $3 - note fs3 $04 - vol $6 - note fs3 $03 - vol $3 - note fs3 $04 -musicf1423: - vol $6 - note cs4 $38 - note c4 $07 - rest $03 - vol $3 - note c4 $07 - rest $0b - vol $6 - note a3 $0b - rest $06 - vol $3 - note a3 $04 - vol $6 - note fs3 $07 - note e4 $38 - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $0b - vol $6 - note fs3 $07 - rest $03 - vol $3 - note fs3 $04 - vol $6 - note fs3 $03 - rest $01 - vol $3 - note fs3 $03 - vol $6 - note fs3 $03 - rest $01 - vol $3 - note fs3 $03 - vol $6 - note cs4 $38 - note c4 $07 - rest $07 - vol $3 - note c4 $07 - rest $07 - vol $6 - note a3 $0b - rest $06 - vol $3 - note a3 $04 - vol $6 - note fs3 $07 - note e3 $2e - note fs3 $05 - note e3 $05 - note ds3 $07 - rest $03 - vol $3 - note ds3 $07 - rest $0b - vol $6 - note cs4 $07 - rest $03 - vol $3 - note cs4 $04 - vol $6 - note cs4 $03 - rest $01 - vol $3 - note cs4 $03 - vol $6 - note cs4 $03 - rest $01 - vol $3 - note cs4 $03 - vol $6 - note gs4 $38 - note a4 $07 - rest $03 - vol $3 - note a4 $07 - rest $0b - vol $6 - note cs5 $07 - rest $03 - vol $3 - note cs5 $07 - rest $04 - vol $6 - note gs5 $07 - note f5 $1c - note a4 $03 - rest $01 - vol $3 - note a4 $03 - vol $6 - note a4 $03 - rest $01 - vol $3 - note a4 $03 - vol $6 - note a4 $03 - rest $01 - vol $3 - note a4 $03 - vol $6 - note a4 $03 - rest $01 - vol $3 - note a4 $03 - vol $6 - note ds4 $11 - vol $3 - note ds4 $0b - vol $6 - note a3 $07 - rest $03 - vol $3 - note a3 $04 - vol $6 - note a3 $07 - note fs3 $07 - note cs4 $38 - note c4 $07 - rest $03 - vol $3 - note c4 $07 - rest $0b - vol $6 - note a3 $07 - rest $03 - vol $3 - note a3 $07 - rest $04 - vol $6 - note gs4 $07 - note ds4 $1c - note a3 $03 - rest $01 - vol $3 - note a3 $03 - vol $6 - note a3 $03 - rest $01 - vol $3 - note a3 $03 - vol $6 - note a3 $03 - rest $01 - vol $3 - note a3 $03 - vol $6 - note a3 $03 - rest $01 - vol $3 - note a3 $03 - vol $6 - note ds3 $0e - vol $3 - note ds3 $0e - rest $1c - vol $6 - note c4 $0e - vol $5 - note b3 $07 - rest $03 - vol $2 - note b3 $04 - vol $6 - note c4 $0e - vol $5 - note b3 $07 - rest $03 - vol $2 - note b3 $07 - rest $35 - vol $6 - note d4 $0e - vol $5 - note cs4 $07 - rest $03 - vol $2 - note cs4 $04 - vol $6 - note d4 $0e - vol $5 - note cs4 $07 - rest $03 - vol $2 - note cs4 $07 - rest $35 - vol $7 - note e4 $0e - vol $6 - note ds4 $07 - rest $03 - vol $2 - note ds4 $04 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - vol $6 - note f4 $07 - rest $03 - vol $3 - note f4 $04 - vol $5 - note e4 $07 - rest $03 - vol $2 - note e4 $04 - vol $5 - note ds4 $07 - rest $03 - vol $2 - note ds4 $04 - vol $5 - note e4 $07 - rest $03 - vol $2 - note e4 $04 - vol $5 - note f4 $07 - rest $03 - vol $2 - note f4 $04 - vol $5 - note fs4 $07 - rest $03 - vol $2 - note fs4 $04 - vol $5 - note g4 $07 - rest $03 - vol $2 - note g4 $04 - vol $6 - note gs4 $07 - rest $03 - vol $2 - note gs4 $04 - vol $6 - note a4 $07 - rest $03 - vol $3 - note a4 $04 - vol $6 - note as4 $07 - rest $03 - vol $3 - note as4 $04 - vol $6 - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note c5 $07 - rest $03 - vol $3 - note c5 $04 - rest $1c - vol $6 - note fs4 $0e - vol $6 - note f4 $07 - rest $03 - vol $3 - note f4 $04 - vol $6 - note a4 $0e - vol $6 - note gs4 $07 - rest $03 - vol $3 - note gs4 $07 - rest $0b - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - vol $6 - note fs4 $0e - vol $5 - note f4 $07 - rest $03 - vol $2 - note f4 $04 - vol $6 - note a4 $0e - vol $5 - note gs4 $07 - rest $03 - vol $2 - note gs4 $04 - vol $6 - note g4 $0e - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $07 - rest $0b - vol $6 - note a4 $07 - rest $03 - vol $3 - note a4 $04 - vol $6 - note a4 $0e - vol $6 - note gs4 $07 - rest $03 - vol $3 - note gs4 $04 - vol $6 - note d5 $0e - vol $6 - note cs5 $07 - rest $03 - vol $3 - note cs5 $04 - vol $6 - note c5 $07 - rest $03 - vol $3 - note c5 $04 - vol $6 - note b4 $07 - rest $03 - vol $3 - note b4 $04 - vol $6 - note as4 $07 - rest $03 - vol $3 - note as4 $04 - vol $5 - note a4 $07 - rest $03 - vol $2 - note a4 $04 - vol $5 - note gs4 $07 - rest $03 - vol $2 - note gs4 $04 - vol $5 - note g4 $07 - rest $03 - vol $2 - note g4 $04 - vol $5 - note fs4 $07 - rest $03 - vol $2 - note fs4 $04 - vol $6 - note f4 $07 - rest $03 - vol $2 - note f4 $04 - vol $6 - note e4 $07 - rest $03 - vol $3 - note e4 $04 - rest $0e - vol $6 - note fs3 $07 - rest $03 - vol $3 - note fs3 $04 - vol $6 - note fs3 $03 - rest $01 - vol $3 - note fs3 $03 - vol $6 - note fs3 $03 - rest $01 - vol $3 - note fs3 $03 - goto musicf1423 - cmdff - -musUnicornsCaveChannel0: - vol $0 - note gs3 $1c - vibrato $00 - env $0 $00 - cmdf2 - duty $02 -musicf16a7: - rest $1c - vol $6 - note fs3 $11 - rest $04 - note fs3 $03 - rest $04 - note f3 $07 - rest $03 - vol $3 - note f3 $04 - vol $6 - note f3 $07 - rest $03 - vol $3 - note f3 $04 - rest $2a - vol $6 - note e3 $07 - rest $07 - note e3 $03 - rest $01 - vol $3 - note e3 $03 - vol $6 - note e3 $03 - rest $01 - vol $3 - note e3 $03 - vol $6 - note e3 $03 - rest $01 - vol $3 - note e3 $03 - vol $6 - note e3 $03 - rest $01 - vol $3 - note e3 $03 - vol $6 - note f3 $07 - rest $03 - vol $3 - note f3 $04 - vol $6 - note f3 $07 - rest $03 - vol $3 - note f3 $04 - rest $38 - vol $6 - note fs3 $11 - rest $04 - note fs3 $03 - rest $04 - note f3 $07 - rest $03 - vol $3 - note f3 $04 - vol $6 - note f3 $07 - rest $03 - vol $3 - note f3 $04 - rest $2a - vol $6 - note e3 $07 - rest $03 - vol $3 - note e3 $04 - vol $6 - note e3 $03 - rest $01 - vol $3 - note e3 $03 - vol $6 - note e3 $03 - rest $01 - vol $3 - note e3 $03 - vol $6 - note e3 $03 - rest $01 - vol $3 - note e3 $03 - vol $6 - note e3 $03 - rest $01 - vol $3 - note e3 $03 - vol $6 - note f3 $07 - rest $03 - vol $3 - note f3 $04 - vol $6 - note f3 $07 - rest $03 - vol $3 - note f3 $04 - rest $38 - vol $6 - note cs3 $11 - rest $04 - note cs3 $03 - rest $04 - note c3 $07 - rest $03 - vol $3 - note c3 $04 - vol $6 - note c3 $07 - rest $03 - vol $3 - note c3 $04 - rest $2a - vol $6 - note b2 $07 - rest $03 - vol $3 - note b2 $04 - vol $6 - note b2 $03 - rest $01 - vol $3 - note b2 $03 - vol $6 - note b2 $03 - rest $01 - vol $3 - note b2 $03 - vol $6 - note b2 $03 - rest $01 - vol $3 - note b2 $03 - vol $6 - note b2 $03 - rest $01 - vol $3 - note b2 $03 - vol $6 - note c3 $07 - rest $03 - vol $3 - note c3 $04 - vol $6 - note c3 $07 - rest $03 - vol $3 - note c3 $04 - rest $38 - vol $6 - note cs3 $11 - rest $04 - note cs3 $03 - rest $04 - note c3 $07 - rest $03 - vol $3 - note c3 $04 - vol $6 - note c3 $07 - rest $03 - vol $3 - note c3 $04 - rest $2a - vol $6 - note b2 $07 - rest $03 - vol $3 - note b2 $04 - vol $6 - note b2 $03 - rest $01 - vol $3 - note b2 $03 - vol $6 - note b2 $03 - rest $01 - vol $3 - note b2 $03 - vol $6 - note b2 $03 - rest $01 - vol $3 - note b2 $03 - vol $6 - note b2 $03 - rest $01 - vol $3 - note b2 $03 - vol $6 - note c3 $07 - rest $03 - vol $3 - note c3 $04 - vol $6 - note c3 $07 - rest $03 - vol $3 - note c3 $04 - rest $1c - vol $6 - note a3 $0e - vol $6 - note gs3 $07 - rest $03 - vol $3 - note gs3 $04 - vol $6 - note a3 $0e - vol $6 - note gs3 $07 - rest $03 - vol $3 - note gs3 $07 - rest $35 - vol $6 - note b3 $0e - vol $5 - note as3 $07 - rest $03 - vol $2 - note as3 $04 - vol $6 - note b3 $0e - vol $5 - note as3 $07 - rest $03 - vol $2 - note as3 $07 - rest $35 - vol $6 - note c4 $0e - vol $6 - note b3 $07 - rest $03 - vol $2 - note b3 $04 - vol $6 - note e4 $07 - rest $03 - vol $3 - note e4 $04 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $04 - vol $5 - note d4 $07 - rest $03 - vol $2 - note d4 $04 - vol $5 - note cs4 $07 - rest $03 - vol $2 - note cs4 $04 - vol $5 - note c4 $07 - rest $03 - vol $2 - note c4 $04 - vol $5 - note cs4 $07 - rest $03 - vol $2 - note cs4 $04 - vol $5 - note d4 $07 - rest $03 - vol $2 - note d4 $04 - vol $5 - note ds4 $07 - rest $03 - vol $2 - note ds4 $04 - vol $6 - note e4 $07 - rest $03 - vol $2 - note e4 $04 - vol $6 - note f4 $07 - rest $03 - vol $3 - note f4 $04 - vol $6 - note fs4 $07 - rest $03 - vol $3 - note fs4 $04 - vol $6 - note g4 $07 - rest $03 - vol $3 - note g4 $04 - vol $6 - note gs4 $07 - rest $03 - vol $3 - note gs4 $04 - vol $7 - note a4 $07 - rest $03 - vol $3 - note a4 $04 - rest $1c - vol $6 - note d4 $0e - vol $5 - note cs4 $07 - rest $03 - vol $2 - note cs4 $04 - vol $6 - note fs4 $0e - vol $5 - note f4 $07 - rest $03 - vol $2 - note f4 $07 - rest $0b - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $04 - vol $6 - note d4 $0e - vol $5 - note cs4 $07 - rest $03 - vol $2 - note cs4 $04 - vol $6 - note fs4 $0e - vol $5 - note f4 $07 - rest $03 - vol $2 - note f4 $04 - vol $6 - note e4 $0e - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $07 - rest $35 - vol $6 - note f4 $0e - vol $6 - note e4 $07 - rest $03 - vol $3 - note e4 $04 - vol $6 - note ds4 $07 - rest $03 - vol $3 - note ds4 $04 - vol $6 - note d4 $07 - rest $03 - vol $3 - note d4 $04 - vol $6 - note cs4 $07 - rest $03 - vol $3 - note cs4 $04 - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $04 - vol $6 - note b3 $07 - rest $03 - vol $3 - note b3 $04 - vol $6 - note as3 $07 - rest $03 - vol $2 - note as3 $04 - vol $5 - note a3 $07 - rest $03 - vol $2 - note a3 $04 - vol $6 - note gs3 $07 - rest $03 - vol $3 - note gs3 $04 - vol $6 - note g3 $07 - rest $03 - vol $3 - note g3 $04 - rest $2a - goto musicf16a7 - cmdff - -musUnicornsCaveChannel4: - rest $1c - cmdf2 -musicf1941: - duty $0e - note fs2 $0e - duty $0c - note fs2 $0e - duty $0e - note fs2 $0e - duty $0c - note fs2 $07 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $0b - duty $0e - note fs2 $03 - duty $0c - note fs2 $07 - rest $20 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - rest $1c - duty $0e - note fs2 $0e - duty $0c - note fs2 $0e - duty $0e - note fs2 $0e - duty $0c - note fs2 $07 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $0b - duty $0e - note fs2 $03 - duty $0c - note fs2 $07 - rest $20 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - rest $1c - duty $0e - note fs2 $0e - duty $0c - note fs2 $0e - duty $0e - note fs2 $0e - duty $0c - note fs2 $07 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $0b - duty $0e - note fs2 $03 - duty $0c - note fs2 $07 - rest $20 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - rest $1c - duty $0e - note fs2 $0e - duty $0c - note fs2 $0e - duty $0e - note fs2 $0e - duty $0c - note fs2 $07 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $0b - duty $0e - note fs2 $03 - duty $0c - note fs2 $07 - rest $20 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - rest $62 - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $07 - rest $2e - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - rest $0e - duty $0e - note fs2 $07 - duty $0c - note fs2 $07 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $04 - duty $0e - note fs2 $03 - duty $0c - note fs2 $07 - rest $20 - duty $0e - note e3 $07 - duty $0c - note e3 $07 - duty $0e - note ds3 $07 - duty $0c - note ds3 $07 - duty $0e - note d3 $07 - duty $0c - note d3 $07 - duty $0e - note cs3 $07 - duty $0c - note cs3 $07 - duty $0e - note c3 $07 - duty $0c - note c3 $07 - duty $0e - note cs3 $07 - duty $0c - note cs3 $07 - duty $0e - note d3 $07 - duty $0c - note d3 $07 - duty $0e - note ds3 $07 - duty $0c - note ds3 $07 - duty $0e - note e3 $07 - duty $0c - note e3 $07 - duty $0e - note f3 $07 - duty $0c - note f3 $07 - duty $0e - note fs3 $07 - duty $0c - note fs3 $07 - duty $0e - note g3 $07 - duty $0c - note g3 $07 - duty $0e - note gs3 $07 - duty $0c - note gs3 $07 - duty $0e - note a3 $07 - duty $0c - note a3 $07 - duty $0e - note b1 $03 - duty $0c - note b1 $04 - duty $0e - note b1 $03 - duty $0c - note b1 $04 - duty $0e - note b1 $03 - duty $0c - note b1 $07 - rest $3c - duty $0e - note b2 $03 - duty $0c - note b2 $0b - duty $0e - note b1 $03 - duty $0c - note b1 $0b - duty $0e - note b1 $03 - duty $0c - note b1 $04 - duty $0e - note b1 $03 - duty $0c - note b1 $04 - duty $0e - note b1 $03 - duty $0c - note b1 $04 - rest $31 - duty $0e - note b2 $03 - duty $0c - note b2 $07 - rest $12 - duty $0e - note b1 $03 - duty $0c - note b1 $0b - duty $0e - note b1 $03 - duty $0c - note b1 $04 - duty $0e - note b1 $03 - duty $0c - note b1 $04 - duty $0e - note b1 $03 - duty $0c - note b1 $0b - rest $62 - duty $0e - note cs2 $07 - duty $0c - note cs2 $15 - duty $0e - note cs2 $07 - duty $0c - note cs2 $07 - duty $0e - note cs2 $03 - duty $0c - note cs2 $04 - duty $0e - note cs2 $03 - duty $0c - note cs2 $04 - duty $0e - note cs2 $03 - duty $0c - note cs2 $04 - duty $0e - note cs2 $03 - duty $0c - note cs2 $07 - rest $19 - goto musicf1941 - cmdff - -musUnicornsCaveChannel6: - rest $1c - cmdf2 -musicf1c58: - vol $5 - note $26 $1c - vol $4 - note $24 $0e - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $5 - note $26 $07 - vol $5 - note $26 $0e - vol $4 - note $24 $1c - note $24 $0e - note $26 $0e - vol $2 - note $26 $07 - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $1c - note $24 $0e - vol $5 - note $26 $1c - vol $4 - note $24 $0e - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $5 - note $26 $07 - vol $5 - note $26 $0e - vol $4 - note $24 $1c - note $24 $0e - note $26 $0e - vol $2 - note $26 $07 - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $1c - note $24 $0e - vol $5 - note $26 $1c - vol $4 - note $24 $0e - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $5 - note $26 $07 - vol $5 - note $26 $0e - vol $4 - note $24 $1c - note $24 $0e - note $26 $0e - vol $2 - note $26 $07 - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $1c - note $24 $0e - note $24 $0e - note $26 $0e - vol $2 - note $26 $07 - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $1c - note $24 $0e - note $24 $0e - note $26 $0e - vol $2 - note $26 $07 - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $2a - rest $46 - note $26 $0e - vol $3 - note $26 $07 - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - rest $2a - vol $4 - note $26 $1c - note $26 $0e - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $07 - rest $1c - vol $4 - note $2a $0e - note $2a $0e - note $2a $0e - note $2a $0e - note $2a $0e - note $2a $0e - note $2a $0e - note $2a $0e - note $2a $0e - note $2a $0e - note $2a $0e - note $2a $0e - note $2a $0e - note $2a $0e - note $26 $2a - note $26 $1c - note $26 $0e - vol $4 - note $26 $07 - vol $4 - note $26 $07 - note $26 $0e - vol $4 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $1c - vol $4 - note $26 $1c - note $26 $0e - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $0e - vol $3 - note $26 $07 - vol $4 - note $26 $07 - vol $4 - note $26 $0e - vol $2 - note $2a $0e - note $2a $0e - note $2a $0e - vol $2 - note $2a $0e - note $2a $0e - note $2a $0e - note $2a $0e - vol $4 - note $26 $0e - vol $2 - note $2a $0e - vol $4 - note $26 $0e - note $26 $07 - note $26 $07 - note $26 $07 - note $26 $23 - goto musicf1c58 - cmdff diff --git a/audio/seasons/mus/unused1.s b/audio/seasons/mus/unused1.s deleted file mode 100644 index 8961f63dc..000000000 --- a/audio/seasons/mus/unused1.s +++ /dev/null @@ -1,934 +0,0 @@ -musUnused1Start: - -musUnused1Channel1: - vibrato $f1 - env $0 $00 - duty $01 -musicedeb0: - vol $6 - note f4 $07 - rest $03 - vol $3 - note f4 $07 - rest $04 - vol $6 - note c4 $07 - note f4 $2a - vibrato $01 - env $0 $00 - vol $3 - note f4 $0e - vibrato $f1 - env $0 $00 - vol $6 - note g4 $0e - note gs4 $07 - note as4 $07 - note c5 $07 - rest $03 - vol $3 - note c5 $07 - rest $04 - vol $6 - note ds4 $07 - note c5 $31 - vibrato $01 - env $0 $00 - vol $3 - note c5 $07 - vibrato $f1 - env $0 $00 - vol $6 - note cs5 $0e - note ds5 $07 - note cs5 $07 - note c5 $07 - rest $03 - vol $3 - note c5 $07 - rest $04 - vol $6 - note ds4 $07 - note c5 $31 - vibrato $01 - env $0 $00 - vol $3 - note c5 $07 - vibrato $f1 - env $0 $00 - vol $6 - note as4 $0e - note gs4 $07 - note as4 $07 - note c5 $3f - vibrato $01 - env $0 $00 - vol $3 - note c5 $15 - vibrato $f1 - env $0 $00 - vol $6 - note c5 $1c - note cs5 $0e - rest $03 - vol $3 - note cs5 $04 - vol $6 - note as4 $15 - note f4 $0e - note e4 $0e - note g4 $0e - note cs5 $0e - note as4 $0e - note c5 $2a - note as4 $0e - note gs4 $0e - rest $03 - vol $3 - note gs4 $07 - rest $0b - vol $6 - note c5 $07 - note f5 $07 - note g5 $07 - note gs5 $07 - note g5 $07 - note f5 $15 - vol $3 - note f5 $07 - vol $6 - note gs5 $07 - note g5 $07 - note f5 $15 - vol $3 - note f5 $07 - vol $6 - note gs5 $07 - note a5 $07 - note as5 $07 - note b5 $07 - note c6 $2a - note g5 $0e - note c5 $07 - rest $03 - vol $3 - note c5 $07 - rest $0b - vol $6 - note c5 $1c - note cs5 $07 - rest $03 - vol $3 - note cs5 $07 - rest $04 - vol $6 - note f4 $07 - note cs5 $31 - note as4 $07 - note ds5 $07 - note cs5 $07 - note c5 $07 - note as4 $03 - vol $3 - note as4 $04 - vol $6 - note as4 $07 - rest $03 - vol $3 - note as4 $07 - rest $04 - vol $6 - note c5 $03 - vol $3 - note c5 $04 - vol $6 - note c5 $31 - vibrato $01 - env $0 $00 - vol $3 - note c5 $07 - vibrato $f1 - env $0 $00 - vol $6 - note c5 $15 - vibrato $01 - env $0 $00 - vol $3 - note c5 $07 - vibrato $f1 - env $0 $00 - vol $6 - note as4 $07 - rest $03 - vol $3 - note as4 $07 - rest $04 - vol $6 - note d4 $07 - note as4 $2a - vibrato $01 - env $0 $00 - vol $3 - note as4 $07 - vibrato $f1 - env $0 $00 - vol $6 - note e4 $07 - note c5 $07 - note as4 $07 - note gs4 $07 - note g4 $03 - vol $3 - note g4 $04 - vol $6 - note g4 $1c - vibrato $01 - env $0 $00 - vol $3 - note g4 $07 - vibrato $f1 - env $0 $00 - vol $6 - note f4 $03 - vol $3 - note f4 $04 - vol $6 - note f4 $07 - note g4 $07 - note gs4 $0e - vol $3 - note gs4 $0e - vol $6 - note as4 $0e - note c5 $0e - note cs5 $07 - rest $03 - vol $3 - note cs5 $07 - rest $04 - vol $6 - note f4 $07 - note cs5 $2a - vibrato $01 - env $0 $00 - vol $3 - note cs5 $07 - vibrato $f1 - env $0 $00 - vol $6 - note as4 $07 - note ds5 $07 - note f5 $07 - note ds5 $07 - note cs5 $07 - note c5 $2a - note d5 $0e - note e5 $15 - vibrato $01 - env $0 $00 - vol $3 - note e5 $07 - vibrato $f1 - env $0 $00 - vol $6 - note f5 $0e - note g5 $0e - note gs5 $07 - rest $03 - vol $3 - note gs5 $07 - rest $04 - vol $6 - note b4 $07 - note gs5 $2a - vibrato $01 - env $0 $00 - vol $3 - note gs5 $07 - vibrato $f1 - env $0 $00 - vol $6 - note g5 $07 - note gs5 $07 - note a5 $07 - note as5 $07 - note b5 $07 - note c6 $07 - rest $03 - vol $3 - note c6 $07 - rest $04 - vol $6 - note g5 $07 - note c6 $3f - vibrato $01 - env $0 $00 - vol $3 - note c6 $0e - rest $07 - vibrato $f1 - env $0 $00 - goto musicedeb0 - cmdff - -musUnused1Channel0: - vibrato $f1 - env $0 $00 - duty $02 -musicee08a: - vol $6 - note gs3 $07 - rest $03 - vol $3 - note gs3 $04 - vol $6 - note gs3 $07 - note f3 $07 - note gs3 $07 - rest $03 - vol $3 - note gs3 $04 - vol $6 - note gs3 $07 - note f3 $07 - note gs3 $07 - rest $03 - vol $3 - note gs3 $04 - vol $6 - note gs3 $07 - note f3 $07 - note as3 $07 - note ds3 $07 - note f3 $07 - note g3 $07 - note gs3 $07 - rest $03 - vol $3 - note gs3 $04 - vol $6 - note gs3 $03 - vol $3 - note gs3 $04 - vol $6 - note gs3 $03 - vol $3 - note gs3 $04 - vol $6 - note gs3 $07 - rest $03 - vol $3 - note gs3 $04 - vol $6 - note ds3 $07 - note gs3 $07 - note c4 $07 - rest $03 - vol $3 - note c4 $04 - vol $6 - note c4 $07 - note gs3 $07 - note as3 $07 - rest $03 - vol $3 - note as3 $04 - vol $6 - note as3 $07 - note g3 $07 - note c4 $07 - rest $03 - vol $3 - note c4 $04 - vol $6 - note c4 $07 - note gs3 $07 - note c4 $07 - rest $03 - vol $3 - note c4 $04 - vol $6 - note c4 $07 - note gs3 $07 - note c4 $07 - rest $03 - vol $3 - note c4 $04 - vol $6 - note c4 $07 - note gs3 $07 - note g3 $0e - note f3 $07 - note g3 $07 - note gs3 $07 - rest $03 - vol $3 - note gs3 $04 - vol $6 - note ds3 $03 - vol $3 - note ds3 $04 - vol $6 - note ds3 $03 - vol $3 - note ds3 $04 - vol $6 - note gs3 $07 - rest $03 - vol $3 - note gs3 $04 - vol $6 - note ds3 $03 - vol $3 - note ds3 $04 - vol $6 - note ds3 $03 - vol $3 - note ds3 $04 - vol $6 - note c4 $07 - rest $03 - vol $3 - note c4 $04 - vol $6 - note ds3 $03 - vol $3 - note ds3 $04 - vol $6 - note ds3 $03 - vol $3 - note ds3 $04 - vol $6 - note as3 $07 - note gs3 $07 - note as3 $07 - note gs3 $03 - rest $04 - note gs3 $07 - rest $03 - vol $3 - note gs3 $04 - vol $6 - note g3 $03 - vol $3 - note g3 $04 - vol $6 - note g3 $03 - vol $3 - note g3 $04 - vol $6 - note f3 $07 - rest $03 - vol $3 - note f3 $04 - vol $6 - note g3 $07 - note f3 $07 - note as3 $07 - rest $03 - vol $3 - note as3 $04 - vol $6 - note c4 $07 - note as3 $07 - note g3 $07 - rest $03 - vol $3 - note g3 $04 - vol $6 - note g3 $07 - note as3 $07 - note gs3 $07 - rest $03 - vol $3 - note gs3 $04 - vol $6 - note c4 $07 - note cs4 $07 - note d4 $07 - rest $03 - vol $3 - note d4 $04 - vol $6 - note ds4 $03 - rest $04 - note ds4 $07 - note d4 $07 - rest $03 - vol $3 - note d4 $04 - vol $6 - note ds4 $07 - note d4 $07 - note cs4 $07 - rest $03 - vol $3 - note cs4 $04 - vol $6 - note cs4 $07 - note c4 $07 - note b3 $07 - rest $03 - vol $3 - note b3 $04 - vol $6 - note b3 $07 - note g3 $07 - note f3 $0e - note g3 $03 - rest $04 - note g3 $07 - note b3 $0e - note g3 $03 - rest $04 - note g3 $07 - note d4 $0e - note b3 $03 - rest $04 - note b3 $07 - note c4 $07 - rest $03 - vol $3 - note c4 $04 - vol $6 - note c4 $03 - rest $04 - note c4 $07 - note cs4 $09 - note ds4 $09 - note cs4 $0a - note c4 $07 - rest $03 - vol $3 - note c4 $04 - vol $6 - note c4 $07 - note g3 $07 - note e3 $07 - note g3 $07 - note c4 $07 - note e4 $07 - rest $23 - vol $6 - note f3 $07 - note as3 $07 - note gs3 $07 - note g3 $38 - note gs3 $23 - note ds3 $07 - note gs3 $07 - note as3 $07 - note c4 $07 - note gs3 $07 - note c4 $07 - note ds4 $07 - note gs4 $07 - note ds4 $07 - note c4 $07 - note gs3 $07 - note g3 $23 - vibrato $01 - env $0 $00 - vol $3 - note g3 $07 - vibrato $f1 - env $0 $00 - vol $6 - note f3 $04 - note g3 $05 - note f3 $05 - note e3 $0e - note g3 $07 - note c4 $07 - note cs4 $0e - note c4 $0e - rest $07 - note c3 $07 - note g3 $07 - note e3 $07 - note f3 $07 - note g3 $07 - note gs3 $07 - note as3 $07 - note b3 $07 - note c4 $07 - note cs4 $07 - note d4 $07 - note g4 $0e - note gs4 $0e - note as4 $07 - rest $03 - vol $3 - note as4 $07 - rest $12 - vol $6 - note as3 $03 - rest $04 - note as3 $07 - note gs3 $07 - note g3 $1c - note cs4 $1c - rest $07 - note gs3 $07 - note cs4 $07 - note b3 $07 - note c4 $07 - note cs4 $07 - note b3 $07 - note c4 $07 - note cs4 $07 - note d4 $07 - note c4 $07 - note cs4 $07 - note d4 $0e - note e4 $0e - note f4 $07 - rest $03 - vol $3 - note f4 $07 - rest $04 - vol $6 - note g3 $07 - note f4 $1c - note e4 $1c - note ds4 $1c - note cs4 $07 - note c4 $07 - note as3 $07 - note g3 $07 - note f3 $07 - note e3 $07 - note g3 $07 - note c4 $07 - note e4 $07 - note g3 $07 - note c4 $07 - note e4 $07 - note g4 $07 - note c4 $07 - note e4 $07 - note g4 $07 - goto musicee08a - cmdff - -musUnused1Channel4: -musicee2da: - duty $11 - note f2 $07 - duty $0f - note f2 $07 - rest $0e - duty $11 - note f2 $07 - duty $0f - note f2 $07 - rest $2a - duty $11 - note ds2 $1c - duty $11 - note gs2 $07 - duty $0f - note gs2 $07 - rest $0e - duty $11 - note gs2 $07 - duty $0f - note gs2 $07 - rest $2a - duty $11 - note as2 $1c - duty $11 - note gs2 $07 - duty $0f - note gs2 $07 - rest $0e - duty $11 - note gs2 $07 - duty $0f - note gs2 $07 - rest $2a - duty $11 - note ds2 $1c - duty $11 - note gs2 $07 - duty $0f - note gs2 $07 - rest $0e - duty $11 - note gs2 $07 - duty $0f - note gs2 $07 - rest $2a - duty $11 - note gs2 $1c - duty $11 - note g2 $07 - duty $0f - note g2 $07 - rest $0e - duty $11 - note g2 $07 - duty $0f - note g2 $07 - rest $2a - duty $11 - note c2 $1c - duty $11 - note f2 $07 - duty $0f - note f2 $07 - rest $0e - duty $11 - note f2 $07 - duty $0f - note f2 $07 - rest $2a - duty $11 - note f2 $1c - duty $11 - note g2 $07 - duty $0f - note g2 $07 - rest $0e - duty $11 - note g2 $07 - duty $0f - note g2 $07 - rest $2a - duty $11 - note g2 $1c - duty $11 - note c2 $07 - duty $0f - note c2 $07 - rest $0e - duty $11 - note c2 $07 - duty $0f - note c2 $07 - rest $2a - duty $11 - note c2 $1c - duty $11 - note as2 $07 - duty $0f - note as2 $05 - rest $02 - duty $11 - note as2 $07 - duty $0f - note as2 $05 - rest $10 - duty $11 - note as2 $0e - note ds2 $07 - duty $0f - note ds2 $05 - rest $02 - duty $11 - note ds2 $07 - duty $0f - note ds2 $05 - rest $10 - duty $11 - note g2 $0e - duty $11 - note gs2 $07 - duty $0f - note gs2 $05 - rest $02 - duty $11 - note gs2 $07 - duty $0f - note gs2 $05 - rest $10 - duty $11 - note ds2 $0e - note gs2 $07 - duty $0f - note gs2 $05 - rest $02 - duty $11 - note gs2 $07 - duty $0f - note gs2 $05 - rest $10 - duty $11 - note gs2 $0e - duty $11 - note g2 $07 - duty $0f - note g2 $05 - rest $02 - duty $11 - note g2 $07 - duty $0f - note g2 $05 - rest $10 - duty $11 - note g2 $0e - note c2 $07 - duty $0f - note c2 $05 - rest $02 - duty $11 - note c2 $07 - duty $0f - note c2 $05 - rest $10 - duty $11 - note e2 $0e - duty $11 - note f2 $07 - duty $0f - note f2 $05 - rest $02 - duty $11 - note f2 $0e - duty $0f - note f2 $05 - rest $09 - duty $11 - note f2 $07 - duty $0f - note f2 $05 - rest $02 - duty $11 - note f2 $07 - duty $0f - note f2 $05 - rest $02 - duty $11 - note f2 $0e - note g2 $0e - note gs2 $0e - duty $11 - note as2 $07 - duty $0f - note as2 $05 - rest $02 - duty $11 - note as2 $07 - duty $0f - note as2 $05 - rest $10 - duty $11 - note as2 $0e - note ds2 $07 - duty $0f - note ds2 $05 - rest $02 - duty $11 - note ds2 $07 - duty $0f - note ds2 $05 - rest $10 - duty $11 - note ds2 $0e - duty $11 - note f2 $07 - duty $0f - note f2 $05 - rest $02 - duty $11 - note f2 $0e - duty $0f - note f2 $05 - rest $09 - duty $11 - note f2 $0e - note ds2 $07 - duty $0f - note ds2 $05 - rest $02 - duty $11 - note ds2 $0e - duty $0f - note ds2 $05 - rest $09 - duty $11 - note ds2 $0e - duty $11 - note d2 $07 - duty $0f - note d2 $05 - rest $02 - duty $11 - note d2 $07 - duty $0f - note d2 $05 - rest $10 - duty $11 - note d2 $0e - note g2 $07 - duty $0f - note g2 $05 - rest $02 - duty $11 - note g2 $07 - duty $0f - note g2 $05 - rest $10 - duty $11 - note g2 $0e - duty $11 - note c2 $0e - duty $0f - note c2 $05 - rest $09 - duty $11 - note c2 $1c - note d2 $1c - note e2 $1c - goto musicee2da - cmdff -musUnused1Channel6: -musicee4f4: - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $2 - note $26 $04 - vol $2 - note $26 $03 - vol $1 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $2 - note $26 $04 - vol $2 - note $26 $03 - vol $2 - note $26 $04 - vol $5 - note $26 $0e - vol $3 - note $26 $03 - vol $2 - note $26 $04 - vol $2 - note $26 $03 - vol $2 - note $26 $04 - vol $5 - note $26 $03 - vol $4 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $3 - note $26 $03 - vol $3 - note $26 $04 - vol $2 - note $26 $03 - vol $3 - note $26 $04 - goto musicee4f4 - cmdff diff --git a/audio/seasons/mus/unused2.s b/audio/seasons/mus/unused2.s deleted file mode 100644 index f304340ab..000000000 --- a/audio/seasons/mus/unused2.s +++ /dev/null @@ -1,338 +0,0 @@ -musUnused2Start: - -musUnused2Channel1: - vibrato $00 - env $0 $04 - duty $02 -musicfbd80: - vol $8 - note c3 $0a - rest $14 - note ds3 $14 - note c3 $0a - rest $14 - note g2 $0a - note as2 $14 - note b2 $0a - note c3 $1e - note ds3 $14 - note g3 $0a - rest $14 - note g2 $0a - note as2 $14 - note g2 $0a - note c3 $1e - note ds3 $14 - note c3 $0a - rest $14 - note g2 $0a - note as2 $14 - note b2 $0a - note c3 $1e - note ds3 $14 - note c3 $0a - rest $14 - note c3 $0a - note ds3 $14 - note g3 $0a - note f3 $1e - note a3 $14 - note c3 $0a - rest $14 - note c3 $0a - note ds3 $14 - note e3 $0a - note f3 $1e - note a3 $14 - note c3 $0a - rest $14 - note c3 $0a - note ds3 $14 - note e3 $0a - note f3 $1e - note a3 $14 - note c3 $0a - rest $14 - note c3 $0a - note ds3 $14 - note e3 $0a - note f3 $1e - note a3 $14 - note f3 $0a - rest $14 - note f3 $0a - note a3 $14 - note f3 $0a - rest $14 - vibrato $00 - env $0 $00 - vol $6 - note g5 $0a - note fs5 $0a - rest $14 - note fs5 $14 - note f5 $0a - rest $14 - note f5 $0a - note e5 $0a - rest $14 - note e5 $14 - note ds5 $0a - rest $14 - note ds5 $0a - note d5 $14 - vol $3 - note d5 $0a - rest $14 - vol $6 - note as5 $0a - note a5 $0a - rest $14 - note a5 $14 - note gs5 $0a - rest $14 - note gs5 $0a - note g5 $0a - rest $14 - note g5 $14 - note fs5 $0a - rest $14 - note fs5 $0a - note f5 $14 - vol $3 - note f5 $0a - rest $14 - vol $6 - note c6 $0a - note b5 $0a - rest $14 - note b5 $14 - note as5 $0a - rest $14 - note as5 $0a - note a5 $0a - rest $14 - note a5 $14 - note gs5 $0a - rest $14 - note gs5 $0a - note g5 $14 - vol $3 - note g5 $0a - vibrato $00 - env $0 $03 - vol $6 - note fs5 $14 - rest $28 - note f5 $14 - rest $28 - note ds5 $14 - rest $28 - note d5 $14 - rest $28 - vibrato $00 - env $0 $04 - goto musicfbd80 - cmdff - -musUnused2Channel0: - vibrato $00 - env $0 $00 - duty $02 -musicfbe80: - vol $0 - note gs3 $ff - rest $ff - rest $ff - rest $d7 - vol $6 - note ds5 $0a - note d5 $0a - rest $14 - note d5 $14 - note cs5 $0a - rest $14 - note cs5 $0a - note c5 $0a - rest $14 - note c5 $14 - note b4 $0a - rest $14 - note b4 $0a - note as4 $14 - vol $3 - note as4 $0a - rest $14 - vol $6 - note g5 $0a - note fs5 $0a - rest $14 - note fs5 $14 - note f5 $0a - rest $14 - note f5 $0a - note e5 $0a - rest $14 - note e5 $14 - note ds5 $0a - rest $14 - note ds5 $0a - note d5 $14 - vol $3 - note d5 $0a - rest $14 - vol $6 - note a5 $0a - note gs5 $0a - rest $14 - note gs5 $14 - note g5 $0a - rest $14 - note g5 $0a - note fs5 $0a - rest $14 - note fs5 $14 - note f5 $0a - rest $14 - note f5 $0a - note e5 $14 - vol $3 - note e5 $0a - vibrato $00 - env $0 $03 - vol $6 - note ds5 $14 - rest $28 - note d5 $14 - rest $28 - note c5 $14 - rest $28 - note b4 $14 - rest $28 - vibrato $00 - env $0 $00 - goto musicfbe80 - cmdff - -musUnused2Channel4: -musicfbf0a: - duty $0e - note d4 $05 - note ds4 $2d - note c4 $0a - rest $32 - note g3 $0a - note as3 $14 - note a3 $0a - note as3 $14 - note a3 $0a - note g3 $0a - rest $14 - note f3 $0a - rest $14 - note d4 $05 - note ds4 $2d - note c4 $0a - rest $32 - note g3 $0a - note as3 $0a - note a3 $0a - note as3 $0a - note a3 $0a - note as3 $0a - note a3 $0a - note g3 $14 - note as3 $0a - note c4 $0a - rest $0a - note ds4 $0a - note e4 $05 - note f4 $2d - note c4 $0a - rest $32 - note d4 $0a - note ds4 $14 - note d4 $0a - note ds4 $14 - note d4 $0a - note c4 $0a - rest $14 - note as3 $0a - rest $14 - note e4 $05 - note f4 $2d - note a4 $0a - rest $32 - note c5 $0a - note ds5 $0a - note d5 $0a - note c5 $0a - note ds5 $0a - note d5 $0a - note c5 $05 - rest $05 - note c5 $14 - note ds5 $0a - note d5 $14 - note ds5 $0a - duty $0e - note g2 $3c - duty $0f - note g2 $14 - rest $78 - duty $0e - note g2 $07 - duty $0f - note g2 $03 - duty $0e - note g2 $0f - duty $0f - note g2 $05 - duty $0e - note g2 $07 - duty $0f - note g2 $03 - duty $0e - note gs2 $3c - duty $0f - note gs2 $14 - rest $78 - duty $0e - note gs2 $07 - duty $0f - note gs2 $03 - duty $0e - note gs2 $0f - duty $0f - note gs2 $05 - duty $0e - note gs2 $07 - duty $0f - note gs2 $03 - duty $0e - note g2 $3c - duty $0f - note g2 $14 - rest $be - duty $0e - note g2 $0f - rest $2d - duty $0e - note g2 $0f - rest $2d - duty $0e - note g2 $0f - duty $0f - note g2 $0f - duty $0e - note a2 $0f - duty $0f - note a2 $0f - duty $0e - note b2 $0f - duty $0f - note b2 $0f - goto musicfbf0a - cmdff - -.define musUnused2Channel6 MUSIC_CHANNEL_FALLBACK EXPORT diff --git a/audio/seasons/sfx/7d.s b/audio/seasons/sfx/7d.s deleted file mode 100644 index 2526d10fb..000000000 --- a/audio/seasons/sfx/7d.s +++ /dev/null @@ -1,14 +0,0 @@ -sndUnknown7dStart: - -sndUnknown7dChannel2: - duty $02 - vol $f - env $2 $00 - cmdf8 $0b - note g2 $18 - cmdf8 $00 - env $0 $05 - cmdf8 $f8 - note b2 $33 - cmdf8 $00 - cmdff diff --git a/audio/seasons/sfx/86.s b/audio/seasons/sfx/86.s deleted file mode 100644 index 336d7283d..000000000 --- a/audio/seasons/sfx/86.s +++ /dev/null @@ -1,62 +0,0 @@ -sndUnknown86Start: - -sndUnknown86Channel2: - duty $02 - vol $7 - note a4 $01 - note b4 $02 - vol $7 - note as4 $01 - note c5 $02 - vol $7 - note b4 $01 - note cs5 $02 - vol $7 - note c5 $01 - note d5 $02 - vol $6 - note cs5 $01 - note ds5 $02 - vol $5 - note d5 $01 - note e5 $02 - vol $4 - note ds5 $01 - note f5 $02 - vol $3 - note e5 $01 - note fs5 $02 - vol $2 - note c6 $01 - note fs6 $01 - vol $0 - rest $0f - vol $7 - note c5 $01 - note d5 $02 - vol $7 - note cs5 $01 - note ds5 $02 - vol $7 - note d5 $01 - note e5 $02 - vol $7 - note ds5 $01 - note f5 $02 - vol $6 - note e5 $01 - note fs5 $02 - vol $5 - note f5 $01 - note g5 $02 - vol $4 - note fs5 $01 - note gs5 $02 - vol $3 - note g5 $01 - note a5 $02 - vol $2 - note gs6 $02 - note f7 $02 - note c7 $01 - cmdff diff --git a/audio/seasons/sfx/8e.s b/audio/seasons/sfx/8e.s deleted file mode 100644 index 463b43a1e..000000000 --- a/audio/seasons/sfx/8e.s +++ /dev/null @@ -1,33 +0,0 @@ -sndUnknown8eStart: -sndUnknown8eChannel2: - duty $02 - vol $c - cmdf8 $e8 - note as4 $05 - cmdf8 $00 - vol $0 - rest $0c - vol $c - env $0 $01 - cmdf8 $e6 - note fs4 $08 - cmdf8 $00 - vol $c - env $0 $01 - cmdf8 $ee - note fs4 $06 - cmdf8 $00 - vol $0 - rest $03 - vol $d - env $0 $01 - cmdf8 $de - note b3 $0f - cmdf8 $00 - vol $0 - rest $0b - vol $d - env $0 $01 - cmdf8 $de - note b3 $0f - cmdff \ No newline at end of file diff --git a/audio/seasons/sfx/93.s b/audio/seasons/sfx/93.s deleted file mode 100644 index 6d35b114b..000000000 --- a/audio/seasons/sfx/93.s +++ /dev/null @@ -1,30 +0,0 @@ -sndUnknown93Start: -sndUnknown93Channel2: - duty $02 - vol $b - note c8 $01 - vol $0 - rest $0b - vol $b - note c7 $01 - vol $0 - rest $03 - vol $b - note f6 $01 - vol $0 - rest $03 - vol $b - note c6 $01 - vol $0 - rest $04 - vol $b - note as5 $01 - vol $0 - rest $04 - vol $b - note f5 $01 - vol $0 - rest $05 - vol $b - note d5 $01 - cmdff \ No newline at end of file diff --git a/audio/seasons/sfx/b5.s b/audio/seasons/sfx/b5.s deleted file mode 100644 index 793cd70bf..000000000 --- a/audio/seasons/sfx/b5.s +++ /dev/null @@ -1,20 +0,0 @@ -sndUnknownb5Start: - -sndUnknownb5Channel7: - cmdf0 $00 - note $00 $01 - cmdf0 $50 - note $15 $05 - cmdf0 $00 - note $00 $01 - cmdf0 $40 - note $14 $06 - cmdf0 $00 - note $00 $01 - cmdf0 $60 - note $34 $06 - cmdf0 $00 - note $00 $01 - cmdf0 $30 - note $06 $06 - cmdff diff --git a/audio/seasons/sfx/b7.s b/audio/seasons/sfx/b7.s deleted file mode 100644 index aff6fcac6..000000000 --- a/audio/seasons/sfx/b7.s +++ /dev/null @@ -1,60 +0,0 @@ -sndUnknownb7Start: - -sndUnknownb7Channel2: - cmdf0 $00 - vol $6 - .db $07 $06 $01 - .db $06 $0b $01 - vol $6 - .db $07 $06 $01 - .db $06 $0b $01 - vol $6 - .db $07 $06 $01 - .db $06 $0b $01 - vol $6 - .db $07 $06 $01 - .db $06 $0b $01 - vol $6 - .db $07 $06 $01 - .db $06 $0b $01 - vol $6 - .db $07 $06 $01 - .db $06 $0b $01 - vol $2 - .db $07 $06 $01 - .db $06 $0b $01 - vol $2 - .db $07 $06 $01 - .db $06 $0b $01 - vol $2 - .db $07 $06 $01 - .db $06 $0b $01 - vol $2 - .db $07 $06 $01 - .db $06 $0b $01 - vol $2 - .db $07 $06 $01 - .db $06 $0b $01 - vol $2 - .db $07 $06 $01 - .db $06 $0b $01 - cmdff - -sndUnknownb7Channel7: - cmdf0 $90 - note $27 $03 - cmdf0 $90 - note $34 $03 - cmdf0 $90 - note $35 $03 - cmdf0 $90 - note $36 $03 - cmdf0 $20 - note $27 $03 - cmdf0 $20 - note $34 $03 - cmdf0 $20 - note $35 $03 - cmdf0 $20 - note $36 $03 - cmdff diff --git a/audio/seasons/sfx/bd.s b/audio/seasons/sfx/bd.s deleted file mode 100644 index 1e98bce68..000000000 --- a/audio/seasons/sfx/bd.s +++ /dev/null @@ -1,470 +0,0 @@ -sndUnknownbdStart: - -sndUnknownbdChannel2: - duty $02 - cmdf0 $d2 - .db $07 $ec $01 - vol $3 - .db $07 $eb $01 - vol $4 - .db $07 $ea $01 - vol $5 - .db $07 $e9 $01 - vol $6 - .db $07 $e8 $01 - vol $7 - .db $07 $e7 $01 - vol $8 - .db $07 $e6 $01 - vol $9 - .db $07 $e5 $01 - .db $07 $e4 $01 - .db $07 $e3 $01 - .db $07 $e2 $01 - .db $07 $e1 $01 - .db $07 $e0 $01 - .db $07 $df $01 - .db $07 $de $01 - .db $07 $dd $01 - .db $07 $dc $01 - .db $07 $db $01 - .db $07 $da $01 - .db $07 $d9 $01 - .db $07 $d8 $01 - .db $07 $d7 $01 - .db $07 $d6 $01 - .db $07 $d5 $01 - .db $07 $d4 $01 - .db $07 $d3 $01 - .db $07 $d2 $01 - .db $07 $d1 $01 - .db $07 $d0 $01 - .db $07 $cf $01 - .db $07 $ce $01 - .db $07 $cd $01 - .db $07 $cc $01 - .db $07 $cb $01 - .db $07 $ca $01 - .db $07 $c9 $01 - .db $07 $c8 $01 - .db $07 $c7 $01 - .db $07 $c6 $01 - .db $07 $c5 $01 - .db $07 $c4 $01 - .db $07 $c3 $01 - .db $07 $c2 $01 - .db $07 $c1 $01 - .db $07 $c0 $01 - .db $07 $bf $01 - .db $07 $be $01 - .db $07 $bd $01 - .db $07 $bc $01 - .db $07 $bb $01 - .db $07 $ba $01 - .db $07 $b9 $01 - .db $07 $b8 $01 - .db $07 $b7 $01 - .db $07 $b6 $01 - .db $07 $b5 $01 - .db $07 $b4 $01 - .db $07 $b3 $01 - .db $07 $b2 $01 - .db $07 $b1 $01 - .db $07 $b0 $01 - .db $07 $af $01 - .db $07 $ae $01 - .db $07 $ad $01 - .db $07 $ac $01 - .db $07 $ab $01 - .db $07 $aa $01 - .db $07 $a9 $01 - .db $07 $a8 $01 - .db $07 $a7 $01 - .db $07 $a6 $01 - .db $07 $a5 $01 - .db $07 $a4 $01 - .db $07 $a3 $01 - .db $07 $a2 $01 - .db $07 $a1 $01 - .db $07 $a0 $01 - .db $07 $9f $01 - .db $07 $9e $01 - .db $07 $9d $01 - .db $07 $9c $01 - .db $07 $9b $01 - .db $07 $9a $01 - .db $07 $99 $01 - .db $07 $98 $01 - .db $07 $97 $01 - .db $07 $96 $01 - .db $07 $95 $01 - .db $07 $94 $01 - .db $07 $93 $01 - .db $07 $92 $01 - .db $07 $91 $01 - .db $07 $90 $01 - .db $07 $8f $01 - .db $07 $8e $01 - .db $07 $8d $01 - .db $07 $8c $01 - .db $07 $8b $01 - .db $07 $8a $01 - .db $07 $89 $01 - .db $07 $88 $01 - .db $07 $87 $01 - .db $07 $86 $01 - .db $07 $85 $01 - .db $07 $84 $01 - .db $07 $83 $01 - .db $07 $82 $01 - .db $07 $81 $01 - .db $07 $80 $01 - .db $07 $7f $01 - .db $07 $7e $01 - .db $07 $7d $01 - .db $07 $7c $01 - .db $07 $7b $01 - .db $07 $7a $01 - .db $07 $79 $01 - .db $07 $78 $01 - .db $07 $77 $01 - .db $07 $76 $01 - .db $07 $75 $01 - .db $07 $74 $01 - .db $07 $73 $01 - .db $07 $72 $01 - .db $07 $71 $01 - .db $07 $70 $01 - .db $07 $6f $01 - .db $07 $6e $01 - .db $07 $6d $01 - .db $07 $6c $01 - .db $07 $6b $01 - .db $07 $6a $01 - .db $07 $69 $01 - .db $07 $68 $01 - .db $07 $67 $01 - .db $07 $66 $01 - .db $07 $65 $01 - .db $07 $64 $01 - .db $07 $63 $01 - .db $07 $62 $01 - .db $07 $61 $01 - .db $07 $60 $01 - .db $07 $5f $01 - .db $07 $5e $01 - .db $07 $5d $01 - .db $07 $5c $01 - .db $07 $5b $01 - .db $07 $5a $01 - .db $07 $59 $01 - .db $07 $58 $01 - .db $07 $57 $01 - .db $07 $56 $01 - .db $07 $55 $01 - .db $07 $54 $01 - .db $07 $53 $01 - .db $07 $52 $01 - .db $07 $51 $01 - .db $07 $50 $01 - .db $07 $4f $01 - .db $07 $4e $01 - .db $07 $4d $01 - .db $07 $4c $01 - .db $07 $4b $01 - .db $07 $4a $01 - .db $07 $49 $01 - .db $07 $48 $01 - .db $07 $47 $01 - .db $07 $46 $01 - .db $07 $45 $01 - .db $07 $44 $01 - .db $07 $43 $01 - .db $07 $42 $01 - .db $07 $41 $01 - .db $07 $40 $01 - .db $07 $3f $01 - .db $07 $3e $01 - .db $07 $3d $01 - .db $07 $3c $01 - .db $07 $3b $01 - .db $07 $3a $01 - .db $07 $39 $01 - .db $07 $38 $01 - .db $07 $37 $01 - .db $07 $36 $01 - .db $07 $35 $01 - .db $07 $34 $01 - .db $07 $33 $01 - .db $07 $32 $01 - .db $07 $31 $01 - .db $07 $30 $01 - .db $07 $2f $01 - .db $07 $2e $01 - .db $07 $2d $01 - .db $07 $2c $01 - .db $07 $2b $01 - .db $07 $2a $01 - .db $07 $29 $01 - .db $07 $28 $01 - .db $07 $27 $01 - .db $07 $26 $01 - .db $07 $25 $01 - .db $07 $24 $01 - .db $07 $23 $01 - .db $07 $22 $01 - .db $07 $21 $01 - .db $07 $20 $01 - .db $07 $1f $01 - .db $07 $1e $01 - .db $07 $1d $01 - .db $07 $1c $01 - .db $07 $1b $01 - .db $07 $1a $01 - .db $07 $19 $01 - .db $07 $18 $01 - .db $07 $17 $01 - .db $07 $16 $01 - .db $07 $15 $01 - .db $07 $14 $01 - .db $07 $13 $01 - .db $07 $12 $01 - .db $07 $11 $01 - .db $07 $10 $01 - .db $07 $0f $01 - .db $07 $0e $01 - .db $07 $0d $01 - .db $07 $0c $01 - .db $07 $0b $01 - .db $07 $0a $01 - .db $07 $09 $01 - .db $07 $08 $01 - .db $07 $07 $01 - .db $07 $06 $01 - .db $07 $05 $01 - .db $07 $04 $01 - .db $07 $03 $01 - .db $07 $02 $01 - .db $07 $01 $01 - .db $07 $00 $01 - .db $06 $ff $01 - .db $06 $fd $01 - .db $06 $fb $01 - .db $06 $fa $01 - .db $06 $f9 $01 - .db $06 $f7 $01 - .db $06 $f5 $01 - .db $06 $f3 $01 - .db $06 $f1 $01 - .db $06 $ef $01 - .db $06 $ed $01 - .db $06 $eb $01 - .db $06 $e9 $01 - .db $06 $e7 $01 - .db $06 $e5 $01 - .db $06 $e3 $01 - .db $06 $e1 $01 - .db $06 $d9 $01 - .db $06 $d7 $01 - .db $06 $d5 $01 - .db $06 $d3 $01 - .db $06 $d1 $01 - .db $06 $c9 $01 - .db $06 $c7 $01 - .db $06 $c5 $01 - .db $06 $c3 $01 - .db $06 $c1 $01 - .db $06 $bf $01 - .db $06 $bd $01 - .db $06 $bb $01 - .db $06 $b9 $01 - .db $06 $b7 $01 - .db $06 $b5 $01 - .db $06 $b3 $01 - .db $06 $b1 $01 - .db $06 $af $01 - .db $06 $ad $01 - .db $06 $ab $01 - .db $06 $a9 $01 - .db $06 $a7 $01 - .db $06 $a5 $01 - .db $06 $a3 $01 - .db $06 $a1 $01 - .db $06 $9f $01 - .db $06 $9d $01 - .db $06 $9b $01 - .db $06 $99 $01 - .db $06 $97 $01 - .db $06 $95 $01 - .db $06 $93 $01 - .db $06 $91 $01 - .db $06 $8f $01 - .db $06 $8d $01 - .db $06 $8b $01 - .db $06 $89 $01 - .db $06 $87 $01 - .db $06 $85 $01 - .db $06 $83 $01 - .db $06 $81 $01 - .db $06 $7f $01 - .db $06 $7d $01 - .db $06 $7b $01 - .db $06 $79 $01 - .db $06 $77 $01 - .db $06 $75 $01 - .db $06 $73 $01 - .db $06 $71 $01 - .db $06 $6f $01 - .db $06 $6d $01 - .db $06 $6b $01 - .db $06 $69 $01 - .db $06 $67 $01 - .db $06 $65 $01 - .db $06 $63 $01 - .db $06 $61 $01 - .db $06 $5f $01 - .db $06 $5d $01 - .db $06 $5b $01 - .db $06 $59 $01 - .db $06 $57 $01 - .db $06 $55 $01 - .db $06 $53 $01 - .db $06 $51 $01 - .db $06 $4f $01 - .db $06 $4d $01 - .db $06 $4b $01 - .db $06 $49 $01 - .db $06 $47 $01 - .db $06 $45 $01 - .db $06 $43 $01 - .db $06 $41 $01 - .db $06 $3f $01 - .db $06 $3d $01 - .db $06 $3b $01 - .db $06 $39 $01 - .db $06 $37 $01 - .db $06 $35 $01 - .db $06 $33 $01 - .db $06 $31 $01 - .db $06 $2f $01 - .db $06 $2d $01 - .db $06 $2b $01 - .db $06 $29 $01 - .db $06 $27 $01 - .db $06 $25 $01 - .db $06 $23 $01 - .db $06 $21 $01 - .db $06 $1f $01 - .db $06 $1d $01 - .db $06 $1b $01 - .db $06 $19 $01 - .db $06 $17 $01 - .db $06 $15 $01 - .db $06 $13 $01 - .db $06 $11 $01 - .db $06 $0f $01 - .db $06 $0d $01 - .db $06 $0b $01 - .db $06 $09 $01 - .db $06 $07 $01 - .db $06 $05 $01 - .db $06 $03 $01 - .db $06 $01 $01 - .db $05 $ff $01 - .db $05 $fd $01 - .db $05 $fb $01 - .db $05 $f9 $01 - .db $05 $f7 $01 - .db $05 $f5 $01 - .db $05 $f3 $01 - .db $05 $f1 $01 - .db $05 $ef $01 - .db $05 $ed $01 - .db $05 $eb $01 - .db $05 $e9 $01 - .db $05 $e7 $01 - .db $05 $e5 $01 - .db $05 $e3 $01 - .db $05 $e1 $01 - .db $05 $df $01 - .db $05 $dd $01 - .db $05 $db $01 - .db $05 $d9 $01 - .db $05 $d7 $01 - .db $05 $d5 $01 - .db $05 $d3 $01 - .db $05 $d1 $01 - .db $05 $cf $01 - .db $05 $cd $01 - .db $05 $cb $01 - .db $05 $c9 $01 - .db $05 $c7 $01 - .db $05 $c5 $01 - .db $05 $c3 $01 - .db $05 $c1 $01 - .db $05 $bf $01 - .db $05 $bd $01 - .db $05 $bb $01 - .db $05 $b9 $01 - .db $05 $b7 $01 - .db $05 $b5 $01 - .db $05 $b3 $01 - .db $05 $b1 $01 - .db $05 $af $01 - .db $05 $ad $01 - .db $05 $ab $01 - .db $05 $a9 $01 - .db $05 $a7 $01 - .db $05 $a5 $01 - .db $05 $a3 $01 - .db $05 $a1 $01 - .db $05 $9f $01 - .db $05 $9d $01 - .db $05 $9b $01 - .db $05 $99 $01 - .db $05 $97 $01 - .db $05 $95 $01 - .db $05 $93 $01 - .db $05 $91 $01 - .db $05 $8f $01 - .db $05 $8d $01 - .db $05 $8b $01 - .db $05 $89 $01 - .db $05 $87 $01 - .db $05 $85 $01 - .db $05 $83 $01 - .db $05 $81 $01 - .db $05 $7f $01 - .db $05 $7d $01 - .db $05 $7b $01 - .db $05 $79 $01 - .db $05 $77 $01 - .db $05 $75 $01 - .db $05 $73 $01 - .db $05 $71 $01 - .db $05 $6f $01 - .db $05 $6d $01 - .db $05 $6b $01 - .db $05 $69 $01 - .db $05 $67 $01 - .db $05 $65 $01 - .db $05 $63 $01 - .db $05 $61 $01 - .db $05 $5f $01 - .db $05 $5d $01 - .db $05 $5b $01 - .db $05 $5a $01 - .db $05 $59 $01 - .db $05 $57 $01 - .db $05 $55 $01 - .db $05 $53 $01 - .db $05 $51 $01 - .db $05 $4f $01 - .db $05 $4d $01 - .db $05 $4b $01 - .db $05 $49 $01 - .db $05 $47 $01 - .db $05 $45 $01 - .db $05 $43 $01 - .db $05 $41 $01 - cmdff diff --git a/audio/seasons/sfx/creepyLaugh.s b/audio/seasons/sfx/creepyLaugh.s deleted file mode 100644 index c57e5e1c2..000000000 --- a/audio/seasons/sfx/creepyLaugh.s +++ /dev/null @@ -1,32 +0,0 @@ -sndCreepyLaughStart: - -sndCreepyLaughChannel2: - duty $00 - env $0 $01 - vol $b - cmdf8 $09 - note d6 $07 - cmdf8 $00 - vol $0 - rest $04 - vol $9 - cmdf8 $08 - note d6 $08 - cmdf8 $00 - vol $0 - rest $03 - vol $7 - cmdf8 $08 - note cs6 $08 - cmdf8 $00 - vol $0 - rest $02 - vol $5 - cmdf8 $09 - note c6 $0a - cmdf8 $00 - vol $4 - cmdf8 $0a - note as5 $0a - cmdf8 $00 - cmdff diff --git a/audio/seasons/sfx/d1.s b/audio/seasons/sfx/d1.s deleted file mode 100644 index 6fed5eae2..000000000 --- a/audio/seasons/sfx/d1.s +++ /dev/null @@ -1,28 +0,0 @@ -sndUnknownd1Start: - -sndUnknownd1Channel2: - duty $00 - vol $9 - cmdf8 $7f - note d3 $03 - cmdf8 $00 - cmdf8 $81 - note a3 $03 - cmdf8 $00 - vol $f - cmdf8 $ef - note a2 $32 - cmdff -sndUnknownd1Channel7: - cmdf0 $40 - note $44 $02 - note $45 $02 - note $46 $02 - cmdf0 $40 - note $46 $28 - note $47 $02 - note $54 $02 - note $55 $02 - note $56 $02 - note $57 $02 - cmdff diff --git a/audio/seasons/sfx/danceMove.s b/audio/seasons/sfx/danceMove.s deleted file mode 100644 index d4bde6db8..000000000 --- a/audio/seasons/sfx/danceMove.s +++ /dev/null @@ -1,21 +0,0 @@ -sndDanceMoveStart: -sndDanceMoveChannel2: - duty $02 - vol $f - cmdf8 $ee - note e3 $02 - cmdf8 $00 - vol $f - note a2 $01 - vol $f - note a2 $04 - env $0 $01 - note as2 $0c - cmdf8 $f6 - cmdff -sndDanceMoveChannel7: - cmdf0 $f1 - note $54 $02 - cmdf0 $51 - note $25 $0a - cmdff \ No newline at end of file diff --git a/audio/seasons/sfx/dodongoEat.s b/audio/seasons/sfx/dodongoEat.s deleted file mode 100644 index 1c497280b..000000000 --- a/audio/seasons/sfx/dodongoEat.s +++ /dev/null @@ -1,6 +0,0 @@ -sndDodongoEatStart: -sndDodongoEatChannel2: - vol $e - cmdf8 $10 - note f2 $11 - cmdff \ No newline at end of file diff --git a/audio/seasons/sfx/dodongoOpenMouth.s b/audio/seasons/sfx/dodongoOpenMouth.s deleted file mode 100644 index da6f5a896..000000000 --- a/audio/seasons/sfx/dodongoOpenMouth.s +++ /dev/null @@ -1,149 +0,0 @@ -sndDodongoOpenMouthStart: - -sndDodongoOpenMouthChannel2: - duty $00 - vol $9 - note fs2 $01 - vol $0 - rest $01 - vol $b - note as2 $01 - vol $0 - rest $01 - vol $d - note c3 $01 - vol $0 - rest $01 - vol $f - note cs3 $01 - vol $0 - rest $01 - vol $f - note cs3 $01 - vol $0 - rest $01 - vol $f - note cs3 $01 - vol $0 - rest $01 - vol $f - note c3 $01 - vol $0 - rest $01 - vol $f - note as2 $01 - vol $0 - rest $01 - vol $f - note a2 $01 - vol $0 - rest $01 - vol $f - note gs2 $01 - vol $0 - rest $01 - vol $f - note g2 $01 - vol $0 - rest $01 - vol $f - note fs2 $01 - vol $0 - rest $01 - vol $f - note f2 $01 - vol $0 - rest $01 - vol $f - note e2 $01 - vol $0 - rest $01 - vol $f - note ds2 $01 - vol $0 - rest $01 - vol $f - note d2 $01 - vol $0 - rest $01 - vol $f - note cs2 $01 - vol $0 - rest $01 - vol $f - note c2 $01 - vol $0 - rest $01 - vol $5 - note fs2 $01 - vol $0 - rest $01 - vol $5 - note as2 $01 - vol $0 - rest $01 - vol $5 - note c3 $01 - vol $0 - rest $01 - vol $5 - note cs3 $01 - vol $0 - rest $01 - vol $5 - note cs3 $01 - vol $0 - rest $01 - vol $5 - note cs3 $01 - vol $0 - rest $01 - vol $5 - note c3 $01 - vol $0 - rest $01 - vol $5 - note as2 $01 - vol $0 - rest $01 - vol $5 - note a2 $01 - vol $0 - rest $01 - vol $5 - note gs2 $01 - vol $0 - rest $01 - vol $5 - note g2 $01 - vol $0 - rest $01 - vol $5 - note fs2 $01 - vol $0 - rest $01 - vol $5 - note f2 $01 - vol $0 - rest $01 - vol $5 - note e2 $01 - vol $0 - rest $01 - vol $5 - note ds2 $01 - vol $0 - rest $01 - vol $5 - note d2 $01 - vol $0 - rest $01 - vol $5 - note cs2 $01 - vol $0 - rest $01 - vol $5 - note c2 $01 - vol $0 - rest $01 - cmdff diff --git a/audio/seasons/sfx/freezeLava.s b/audio/seasons/sfx/freezeLava.s deleted file mode 100644 index 531d2c031..000000000 --- a/audio/seasons/sfx/freezeLava.s +++ /dev/null @@ -1,38 +0,0 @@ -sndFreezeLavaStart: - -sndFreezeLavaChannel7: - cmdf0 $f0 - note $75 $09 - note $74 $07 - note $75 $09 - note $74 $07 - note $75 $09 - note $74 $07 - note $75 $09 - note $74 $07 - note $75 $09 - note $74 $07 - note $75 $09 - note $74 $07 - note $75 $09 - note $74 $07 - note $75 $09 - note $74 $07 - note $75 $09 - note $74 $07 - note $75 $09 - note $74 $07 - note $75 $09 - note $74 $07 - note $75 $09 - note $74 $07 - note $75 $09 - note $74 $07 - note $75 $09 - note $74 $07 - note $75 $09 - note $74 $07 - note $75 $09 - note $74 $07 - note $75 $03 - cmdff diff --git a/audio/seasons/sfx/frypolarMovement.s b/audio/seasons/sfx/frypolarMovement.s deleted file mode 100644 index 61a3fa84f..000000000 --- a/audio/seasons/sfx/frypolarMovement.s +++ /dev/null @@ -1,158 +0,0 @@ -sndFrypolarMovementStart: - -sndFrypolarMovementChannel2: - cmdf0 $d3 - .db $07 $08 $01 - vol $3 - .db $06 $0e $01 - vol $3 - .db $07 $08 $01 - vol $3 - .db $06 $0e $01 - vol $5 - .db $07 $08 $01 - vol $5 - .db $06 $0e $01 - vol $5 - .db $07 $08 $01 - vol $5 - .db $06 $0e $01 - vol $6 - .db $07 $08 $01 - vol $6 - .db $06 $0e $01 - vol $6 - .db $07 $08 $01 - vol $6 - .db $06 $0e $01 - vol $7 - .db $07 $08 $01 - vol $7 - .db $06 $0e $01 - vol $7 - .db $07 $08 $01 - vol $7 - .db $06 $0e $01 - vol $6 - .db $07 $08 $01 - vol $6 - .db $06 $0e $01 - vol $6 - .db $07 $08 $01 - vol $6 - .db $06 $0e $01 - vol $5 - .db $07 $08 $01 - vol $5 - .db $06 $0e $01 - vol $5 - .db $07 $08 $01 - vol $5 - .db $06 $0e $01 - vol $5 - .db $07 $08 $01 - vol $5 - .db $06 $0e $01 - vol $5 - .db $07 $08 $01 - vol $5 - .db $06 $0e $01 - vol $3 - .db $07 $08 $01 - vol $3 - .db $06 $0e $01 - vol $3 - .db $07 $08 $01 - vol $3 - .db $06 $0e $01 - vol $3 - .db $07 $08 $01 - vol $3 - .db $06 $0e $01 - vol $3 - .db $07 $08 $01 - vol $3 - .db $06 $0e $01 - vol $3 - .db $07 $08 $01 - vol $3 - .db $06 $0e $01 - cmdff -sndFrypolarMovementChannel7: - cmdf0 $10 - note $15 $01 - cmdf0 $20 - note $15 $01 - cmdf0 $30 - note $15 $01 - cmdf0 $40 - note $15 $01 - cmdf0 $50 - note $15 $01 - cmdf0 $60 - note $15 $01 - cmdf0 $70 - note $15 $01 - cmdf0 $80 - note $15 $01 - cmdf0 $90 - note $15 $01 - cmdf0 $a0 - note $15 $01 - cmdf0 $90 - note $15 $01 - cmdf0 $90 - note $15 $01 - cmdf0 $80 - note $15 $01 - cmdf0 $80 - note $15 $01 - cmdf0 $70 - note $15 $01 - cmdf0 $70 - note $15 $01 - cmdf0 $70 - note $15 $01 - cmdf0 $60 - note $15 $01 - cmdf0 $60 - note $15 $01 - cmdf0 $60 - note $15 $01 - cmdf0 $60 - note $15 $01 - cmdf0 $50 - note $15 $01 - cmdf0 $50 - note $15 $01 - cmdf0 $50 - note $15 $01 - cmdf0 $50 - note $15 $01 - cmdf0 $40 - note $15 $01 - cmdf0 $40 - note $15 $01 - cmdf0 $40 - note $15 $01 - cmdf0 $40 - note $15 $01 - cmdf0 $30 - note $15 $01 - cmdf0 $30 - note $15 $01 - cmdf0 $30 - note $15 $01 - cmdf0 $20 - note $15 $01 - cmdf0 $20 - note $15 $01 - cmdf0 $20 - note $15 $01 - cmdf0 $10 - note $15 $01 - cmdf0 $10 - note $15 $01 - cmdf0 $10 - note $15 $01 - cmdff diff --git a/audio/seasons/sfx/magnetGloves.s b/audio/seasons/sfx/magnetGloves.s deleted file mode 100644 index 6bca36180..000000000 --- a/audio/seasons/sfx/magnetGloves.s +++ /dev/null @@ -1,7 +0,0 @@ -sndMagnetGlovesStart: - -sndMagnetGlovesChannel2: - vol $9 - note f6 $01 - note c6 $01 - cmdff diff --git a/audio/seasons/sfx/makuTreeSnore.s b/audio/seasons/sfx/makuTreeSnore.s deleted file mode 100644 index b6ff37f14..000000000 --- a/audio/seasons/sfx/makuTreeSnore.s +++ /dev/null @@ -1,15 +0,0 @@ -sndMakuTreeSnoreStart: -sndMakuTreeSnoreChannel2: - duty $01 - env $2 $04 - vol $7 - cmdf8 $09 - cmdfd $fc - note b3 $41 - vol $0 - rest $11 - env $3 $03 - vol $4 - cmdf8 $f8 - note e5 $37 - cmdff \ No newline at end of file diff --git a/audio/seasons/sfx/wind.s b/audio/seasons/sfx/wind.s deleted file mode 100644 index 372283c2e..000000000 --- a/audio/seasons/sfx/wind.s +++ /dev/null @@ -1,79 +0,0 @@ -sndWindStart: - -sndWindChannel7: - cmdf0 $40 - note $37 $01 - note $36 $01 - note $35 $01 - note $34 $01 - note $27 $01 - note $34 $01 - note $35 $01 - note $36 $01 - note $37 $01 - cmdf0 $60 - note $37 $01 - note $36 $01 - note $35 $01 - note $34 $01 - note $27 $01 - note $34 $01 - note $35 $01 - note $36 $01 - note $37 $01 - cmdf0 $80 - note $37 $01 - note $36 $01 - note $35 $01 - note $34 $01 - note $27 $01 - note $34 $01 - note $35 $01 - note $36 $01 - note $37 $01 - cmdf0 $90 - note $37 $01 - note $36 $01 - note $35 $01 - note $34 $01 - note $27 $01 - note $34 $01 - note $35 $01 - note $36 $01 - note $37 $01 - cmdf0 $b0 - note $37 $01 - note $36 $01 - note $35 $01 - note $34 $01 - note $27 $01 - note $34 $01 - note $35 $01 - note $36 $01 - note $37 $01 - cmdf0 $90 - note $37 $01 - note $36 $01 - note $35 $01 - note $34 $01 - note $27 $01 - note $34 $01 - note $35 $01 - note $36 $01 - note $37 $01 - cmdf0 $70 - note $37 $01 - note $36 $01 - note $35 $01 - note $34 $01 - note $27 $01 - note $34 $01 - note $35 $01 - note $36 $01 - note $37 $01 - cmdf0 $56 - note $36 $03 - note $35 $03 - note $34 $03 - note $27 $19 - cmdff diff --git a/audio/seasons/soundChannelData.s b/audio/seasons/soundChannelData.s index edac77845..c7d5a4de3 100644 --- a/audio/seasons/soundChannelData.s +++ b/audio/seasons/soundChannelData.s @@ -28,44 +28,44 @@ bank39ChannelFallback: .redefine MUSIC_CHANNEL_FALLBACK bank39ChannelFallback -.include "audio/common/sfx/fairyCutscene.s" -.include "audio/common/sfx/baseball.s" +.include "audio/common/sfx/bin/fairyCutscene.s" +.include "audio/common/sfx/bin/baseball.s" .ifdef BUILD_VANILLA .dsb 12 $ff .endif -.include "audio/common/sfx/beam.s" -.include "audio/common/sfx/breakRock.s" -.include "audio/common/sfx/wave.s" -.include "audio/common/sfx/swordObtained.s" -.include "audio/seasons/sfx/magnetGloves.s" -.include "audio/common/sfx/pieceOfPower.s" -.include "audio/common/sfx/linkSwim.s" -.include "audio/common/sfx/poof.s" -.include "audio/common/sfx/bigSword.s" -.include "audio/seasons/sfx/b5.s" ; TODO -.include "audio/common/sfx/rumble.s" -.include "audio/seasons/sfx/frypolarMovement.s" -.include "audio/common/sfx/veranProjectile.s" -.include "audio/common/sfx/shock.s" -.include "audio/common/sfx/beam1.s" -.include "audio/common/sfx/fadeout.s" -.include "audio/common/sfx/pickUp.s" -.include "audio/common/sfx/chicken.s" -.include "audio/common/sfx/makuDisappear.s" -.include "audio/common/sfx/beam2.s" -.include "audio/seasons/sfx/b7.s" ; TODO -.include "audio/common/sfx/veranFairyAttack.s" -.include "audio/common/sfx/rumble2.s" -.include "audio/common/sfx/opening.s" -.include "audio/common/sfx/warpStart.s" -.include "audio/common/sfx/endless.s" -.include "audio/common/sfx/bigExplosion2.s" -.include "audio/seasons/sfx/bd.s" ; TODO -.include "audio/common/mus/mapleGame.s" -.include "audio/common/mus/finalBoss.s" -.include "audio/common/mus/essence.s" +.include "audio/common/sfx/bin/beam.s" +.include "audio/common/sfx/bin/breakRock.s" +.include "audio/common/sfx/bin/wave.s" +.include "audio/common/sfx/bin/swordObtained.s" +.include "audio/seasons/sfx/bin/magnetGloves.s" +.include "audio/common/sfx/bin/pieceOfPower.s" +.include "audio/common/sfx/bin/linkSwim.s" +.include "audio/common/sfx/bin/poof.s" +.include "audio/common/sfx/bin/bigSword.s" +.include "audio/seasons/sfx/bin/unknownb5.s" ; TODO +.include "audio/common/sfx/bin/rumble.s" +.include "audio/seasons/sfx/bin/frypolarMovement.s" +.include "audio/common/sfx/bin/veranProjectile.s" +.include "audio/common/sfx/bin/shock.s" +.include "audio/common/sfx/bin/beam1.s" +.include "audio/common/sfx/bin/fadeout.s" +.include "audio/common/sfx/bin/pickUp.s" +.include "audio/common/sfx/bin/chicken.s" +.include "audio/common/sfx/bin/makuDisappear.s" +.include "audio/common/sfx/bin/beam2.s" +.include "audio/seasons/sfx/bin/unknownb7.s" ; TODO +.include "audio/common/sfx/bin/veranFairyAttack.s" +.include "audio/common/sfx/bin/rumble2.s" +.include "audio/common/sfx/bin/opening.s" +.include "audio/common/sfx/bin/warpStart.s" +.include "audio/common/sfx/bin/endless.s" +.include "audio/common/sfx/bin/bigExplosion2.s" +.include "audio/seasons/sfx/bin/unknownbd.s" ; TODO +.include "audio/common/mus/bin/mapleGame.s" +.include "audio/common/mus/bin/finalBoss.s" +.include "audio/common/mus/bin/essence.s" .ifdef BUILD_VANILLA .dsb 13 $ff @@ -96,76 +96,85 @@ bank3aChannelFallback: .redefine MUSIC_CHANNEL_FALLBACK bank3aChannelFallback -.include "audio/common/mus/indoors.s" -.include "audio/common/mus/titlescreen.s" -.include "audio/common/mus/miniboss.s" -.include "audio/common/mus/gameover.s" -.include "audio/common/mus/cave.s" -.include "audio/common/mus/getEssence.s" -.include "audio/common/sfx/selectItem.s" -.include "audio/common/sfx/solvePuzzle.s" -.include "audio/common/sfx/getItem.s" -.include "audio/common/sfx/chargeSword.s" -.include "audio/common/sfx/clink.s" -.include "audio/common/sfx/throw.s" -.include "audio/common/sfx/bombLand.s" -.include "audio/common/sfx/jump.s" -.include "audio/common/sfx/damageEnemy.s" -.include "audio/common/sfx/gainHeart.s" -.include "audio/common/sfx/clink2.s" -.include "audio/common/sfx/fallInHole.s" -.include "audio/common/sfx/error.s" -.include "audio/common/sfx/solvePuzzle2.s" -.include "audio/common/sfx/getSeed.s" -.include "audio/common/sfx/damageLink.s" -.include "audio/common/sfx/heartBeep.s" -.include "audio/common/sfx/rupee.s" -.include "audio/common/sfx/gohmaSpawnGel.s" -.include "audio/seasons/sfx/freezeLava.s" -.include "audio/common/sfx/slash.s" -.include "audio/common/sfx/swordSpin.s" -.include "audio/common/sfx/openChest.s" -.include "audio/common/sfx/cutGrass.s" -.include "audio/common/sfx/enterCave.s" -.include "audio/common/sfx/bigExplosion.s" -.include "audio/common/sfx/boomerang.s" -.include "audio/common/sfx/dropEssence.s" -.include "audio/common/sfx/shield.s" -.include "audio/common/sfx/unknown5.s" -.include "audio/common/sfx/swordSlash.s" -.include "audio/common/sfx/killEnemy.s" -.include "audio/common/sfx/openMenu.s" -.include "audio/common/sfx/closeMenu.s" -.include "audio/common/sfx/energyThing.s" -.include "audio/common/sfx/swordBeam.s" -.include "audio/common/sfx/linkDead.s" -.include "audio/common/sfx/linkFall.s" -.include "audio/common/sfx/text.s" -.include "audio/common/sfx/bossDamage.s" -.include "audio/common/sfx/explosion.s" -.include "audio/common/sfx/doorClose.s" -.include "audio/common/sfx/moveBlock.s" -.include "audio/common/sfx/lightTorch.s" -.include "audio/common/sfx/unknown3.s" -.include "audio/common/sfx/minecart.s" -.include "audio/common/sfx/strongPound.s" -.include "audio/common/sfx/roller.s" -.include "audio/common/sfx/mysterySeed.s" -.include "audio/seasons/sfx/7d.s" ; TODO -.include "audio/common/sfx/switch.s" -.include "audio/common/sfx/aquamentusHover.s" -.include "audio/common/sfx/unknown4.s" -.include "audio/common/sfx/bossDead.s" -.include "audio/common/sfx/lightning.s" -.include "audio/seasons/sfx/wind.s" -.include "audio/seasons/sfx/d1.s" ; TODO -.include "audio/common/sfx/pirateBell.s" -.include "audio/seasons/sfx/dodongoOpenMouth.s" -.include "audio/common/sfx/magicPowder.s" -.include "audio/common/sfx/menuMove.s" -.include "audio/common/sfx/scentSeed.s" -.include "audio/seasons/sfx/86.s" ; TODO -.include "audio/common/sfx/teleport.s" +.include "audio/common/mus/bin/indoors.s" +.include "audio/common/mus/bin/titlescreen.s" +; Sound index 0 (dumpMusic.py's original, unhelpfully-named "musNone") and index 1 +; ("musTitlescreen") share identical channel data in the original ROM -- both really are +; the title screen theme. A single mml2wla run only emits one label set (this one, the +; correctly-named "Titlescreen"), so the other index's labels are aliased onto it here. +.define musNoneStart musTitlescreenStart EXPORT +.define musNoneChannel0 musTitlescreenChannel0 EXPORT +.define musNoneChannel1 musTitlescreenChannel1 EXPORT +.define musNoneChannel4 musTitlescreenChannel4 EXPORT +.define musNoneChannel6 MUSIC_CHANNEL_FALLBACK EXPORT +.include "audio/common/mus/bin/miniboss.s" +.include "audio/common/mus/bin/gameover.s" +.include "audio/common/mus/bin/cave.s" +.include "audio/common/mus/bin/getEssence.s" +.include "audio/common/sfx/bin/selectItem.s" +.include "audio/common/sfx/bin/solvePuzzle.s" +.include "audio/common/sfx/bin/getItem.s" +.include "audio/common/sfx/bin/chargeSword.s" +.include "audio/common/sfx/bin/clink.s" +.include "audio/common/sfx/bin/throw.s" +.include "audio/common/sfx/bin/bombLand.s" +.include "audio/common/sfx/bin/jump.s" +.include "audio/common/sfx/bin/damageEnemy.s" +.include "audio/common/sfx/bin/gainHeart.s" +.include "audio/common/sfx/bin/clink2.s" +.include "audio/common/sfx/bin/fallInHole.s" +.include "audio/common/sfx/bin/error.s" +.include "audio/common/sfx/bin/solvePuzzle2.s" +.include "audio/common/sfx/bin/getSeed.s" +.include "audio/common/sfx/bin/damageLink.s" +.include "audio/common/sfx/bin/heartBeep.s" +.include "audio/common/sfx/bin/rupee.s" +.include "audio/common/sfx/bin/gohmaSpawnGel.s" +.include "audio/seasons/sfx/bin/freezeLava.s" +.include "audio/common/sfx/bin/slash.s" +.include "audio/common/sfx/bin/swordSpin.s" +.include "audio/common/sfx/bin/openChest.s" +.include "audio/common/sfx/bin/cutGrass.s" +.include "audio/common/sfx/bin/enterCave.s" +.include "audio/common/sfx/bin/bigExplosion.s" +.include "audio/common/sfx/bin/boomerang.s" +.include "audio/common/sfx/bin/dropEssence.s" +.include "audio/common/sfx/bin/shield.s" +.include "audio/common/sfx/bin/unknown5.s" +.include "audio/common/sfx/bin/swordSlash.s" +.include "audio/common/sfx/bin/killEnemy.s" +.include "audio/common/sfx/bin/openMenu.s" +.include "audio/common/sfx/bin/closeMenu.s" +.include "audio/common/sfx/bin/energyThing.s" +.include "audio/common/sfx/bin/swordBeam.s" +.include "audio/common/sfx/bin/linkDead.s" +.include "audio/common/sfx/bin/linkFall.s" +.include "audio/common/sfx/bin/text.s" +.include "audio/common/sfx/bin/bossDamage.s" +.include "audio/common/sfx/bin/explosion.s" +.include "audio/common/sfx/bin/doorClose.s" +.include "audio/common/sfx/bin/moveBlock.s" +.include "audio/common/sfx/bin/lightTorch.s" +.include "audio/common/sfx/bin/unknown3.s" +.include "audio/common/sfx/bin/minecart.s" +.include "audio/common/sfx/bin/strongPound.s" +.include "audio/common/sfx/bin/roller.s" +.include "audio/common/sfx/bin/mysterySeed.s" +.include "audio/seasons/sfx/bin/unknown7d.s" ; TODO +.include "audio/common/sfx/bin/switch.s" +.include "audio/common/sfx/bin/aquamentusHover.s" +.include "audio/common/sfx/bin/unknown4.s" +.include "audio/common/sfx/bin/bossDead.s" +.include "audio/common/sfx/bin/lightning.s" +.include "audio/common/sfx/bin/wind.s" +.include "audio/seasons/sfx/bin/unknownd1.s" ; TODO +.include "audio/common/sfx/bin/pirateBell.s" +.include "audio/seasons/sfx/bin/dodongoOpenMouth.s" +.include "audio/common/sfx/bin/magicPowder.s" +.include "audio/common/sfx/bin/menuMove.s" +.include "audio/common/sfx/bin/scentSeed.s" +.include "audio/seasons/sfx/bin/unknown86.s" ; TODO +.include "audio/common/sfx/bin/teleport.s" sndd4Start: sndd4Channel2: @@ -177,24 +186,24 @@ sndd5Start: sndd5Channel2: cmdff -.include "audio/common/sfx/transform.s" -.include "audio/common/sfx/blueStalfosCharge.s" -.include "audio/seasons/sfx/makuTreeSnore.s" -.include "audio/common/sfx/fluteRicky.s" -.include "audio/common/sfx/fluteDimitri.s" -.include "audio/common/sfx/fluteMoosh.s" -.include "audio/common/mus/preCredits.s" -.include "audio/common/mus/twinrova.s" -.include "audio/common/sfx/makuTreePast.s" -.include "audio/common/sfx/restore.s" -.include "audio/seasons/sfx/creepyLaugh.s" -.include "audio/common/sfx/moosh.s" -.include "audio/common/sfx/ding.s" -.include "audio/common/sfx/dekuScrub.s" -.include "audio/common/sfx/floodgates.s" -.include "audio/common/sfx/ricky.s" -.include "audio/common/sfx/circling.s" -.include "audio/common/sfx/dig.s" +.include "audio/common/sfx/bin/transform.s" +.include "audio/common/sfx/bin/blueStalfosCharge.s" +.include "audio/seasons/sfx/bin/makuTreeSnore.s" +.include "audio/common/sfx/bin/fluteRicky.s" +.include "audio/common/sfx/bin/fluteDimitri.s" +.include "audio/common/sfx/bin/fluteMoosh.s" +.include "audio/common/mus/bin/preCredits.s" +.include "audio/common/mus/bin/twinrova.s" +.include "audio/common/sfx/bin/makuTreePast.s" +.include "audio/common/sfx/bin/restore.s" +.include "audio/seasons/sfx/bin/creepyLaugh.s" +.include "audio/common/sfx/bin/moosh.s" +.include "audio/common/sfx/bin/ding.s" +.include "audio/common/sfx/bin/dekuScrub.s" +.include "audio/common/sfx/bin/floodgates.s" +.include "audio/common/sfx/bin/ricky.s" +.include "audio/common/sfx/bin/circling.s" +.include "audio/common/sfx/bin/dig.s" .ifdef BUILD_VANILLA .dsb 4 $ff @@ -230,28 +239,28 @@ bank3bChannelFallback: .redefine MUSIC_CHANNEL_FALLBACK bank3bChannelFallback -.include "audio/seasons/mus/horonVillage.s" -.include "audio/common/mus/minigame.s" -.include "audio/common/mus/fileSelect.s" -.include "audio/common/mus/fairyFountain.s" -.include "audio/common/mus/overworld.s" -.include "audio/seasons/mus/hideAndSeek.s" -.include "audio/seasons/mus/sunkenCity.s" -.include "audio/common/mus/essenceRoom.s" -.include "audio/seasons/mus/templeRemains.s" -.include "audio/seasons/mus/unused1.s" -.include "audio/seasons/mus/tarmRuins.s" -.include "audio/seasons/mus/carnival.s" -.include "audio/common/mus/ganon.s" -.include "audio/seasons/mus/samasaDesert.s" -.include "audio/common/sfx/splash.s" -.include "audio/common/sfx/text2.s" -.include "audio/common/sfx/filledHeartContainer.s" -.include "audio/common/sfx/seedShooter.s" -.include "audio/common/sfx/unknown7.s" -.include "audio/seasons/sfx/8e.s" ; TODO -.include "audio/common/sfx/enemyJump.s" -.include "audio/common/sfx/galeSeed.s" +.include "audio/seasons/mus/bin/horonVillage.s" +.include "audio/common/mus/bin/minigame.s" +.include "audio/common/mus/bin/fileSelect.s" +.include "audio/common/mus/bin/fairyFountain.s" +.include "audio/common/mus/bin/overworld.s" +.include "audio/seasons/mus/bin/hideAndSeek.s" +.include "audio/seasons/mus/bin/sunkenCity.s" +.include "audio/common/mus/bin/essenceRoom.s" +.include "audio/seasons/mus/bin/templeRemains.s" +.include "audio/seasons/mus/bin/unused1.s" +.include "audio/seasons/mus/bin/tarmRuins.s" +.include "audio/seasons/mus/bin/carnival.s" +.include "audio/common/mus/bin/ganon.s" +.include "audio/seasons/mus/bin/samasaDesert.s" +.include "audio/common/sfx/bin/splash.s" +.include "audio/common/sfx/bin/text2.s" +.include "audio/common/sfx/bin/filledHeartContainer.s" +.include "audio/common/sfx/bin/seedShooter.s" +.include "audio/common/sfx/bin/unknown7.s" +.include "audio/seasons/sfx/bin/unknown8e.s" ; TODO +.include "audio/common/sfx/bin/enemyJump.s" +.include "audio/common/sfx/bin/galeSeed.s" .ifdef BUILD_VANILLA .dsb 10 $ff @@ -271,25 +280,25 @@ bank3cChannelFallback: .redefine MUSIC_CHANNEL_FALLBACK bank3cChannelFallback -.include "audio/seasons/mus/makuTree.s" -.include "audio/seasons/mus/swordAndShieldMaze.s" -.include "audio/seasons/mus/gnarledRootDungeon.s" -.include "audio/seasons/mus/snakesRemains.s" -.include "audio/seasons/mus/herosCave.s" -.include "audio/seasons/mus/explorersCrypt.s" -.include "audio/seasons/mus/unicornsCave.s" -.include "audio/seasons/mus/poisonMothsLair.s" -.include "audio/seasons/mus/dancingDragonDungeon.s" -.include "audio/common/mus/onoxCastle.s" -.include "audio/seasons/mus/subrosianDance.s" -.include "audio/seasons/mus/ancientRuins.s" -.include "audio/common/mus/sadness.s" -.include "audio/common/mus/intro2.s" -.include "audio/common/sfx/goron.s" -.include "audio/common/sfx/ghost.s" -.include "audio/common/sfx/becomeBaby.s" -.include "audio/common/sfx/jingle.s" -.include "audio/common/sfx/strike.s" +.include "audio/seasons/mus/bin/makuTree.s" +.include "audio/seasons/mus/bin/swordAndShieldMaze.s" +.include "audio/seasons/mus/bin/gnarledRootDungeon.s" +.include "audio/seasons/mus/bin/snakesRemains.s" +.include "audio/seasons/mus/bin/herosCave.s" +.include "audio/seasons/mus/bin/explorersCrypt.s" +.include "audio/seasons/mus/bin/unicornsCave.s" +.include "audio/seasons/mus/bin/poisonMothsLair.s" +.include "audio/seasons/mus/bin/dancingDragonDungeon.s" +.include "audio/common/mus/bin/onoxCastle.s" +.include "audio/seasons/mus/bin/subrosianDance.s" +.include "audio/seasons/mus/bin/ancientRuins.s" +.include "audio/common/mus/bin/sadness.s" +.include "audio/common/mus/bin/intro2.s" +.include "audio/common/sfx/bin/goron.s" +.include "audio/common/sfx/bin/ghost.s" +.include "audio/common/sfx/bin/becomeBaby.s" +.include "audio/common/sfx/bin/jingle.s" +.include "audio/common/sfx/bin/strike.s" .ifdef BUILD_VANILLA .dsb 4 $ff @@ -309,8 +318,8 @@ mus24Channel6: .redefine MUSIC_CHANNEL_FALLBACK bank3dChannelFallback -.include "audio/common/mus/triumphant.s" -.include "audio/common/mus/disaster.s" +.include "audio/common/mus/bin/triumphant.s" +.include "audio/common/mus/bin/disaster.s" mus24Start: mus24Channel1: @@ -320,21 +329,29 @@ mus24Channel0: mus24Channel4: cmdff -.include "audio/common/mus/pirates.s" -.include "audio/common/mus/finalDungeon.s" -.include "audio/seasons/mus/subrosianShop.s" -.include "audio/common/mus/rosaDate.s" -.include "audio/common/mus/roomOfRites.s" -.include "audio/common/mus/blackTowerEntrance.s" -.include "audio/common/mus/zeldaSaved.s" -.include "audio/common/mus/mapleTheme.s" -.include "audio/common/mus/intro1.s" -.include "audio/common/mus/crazyDance.s" -.include "audio/seasons/sfx/93.s" -.include "audio/seasons/sfx/dodongoEat.s" -.include "audio/common/sfx/compass.s" -.include "audio/common/sfx/land.s" -.include "audio/common/sfx/switchHook.s" +.include "audio/seasons/mus/bin/pirates.s" +.include "audio/common/mus/bin/finalDungeon.s" +.include "audio/seasons/mus/bin/subrosianShop.s" +; dumpMusic.py's original dump used the "snd" (not "mus") label prefix for this song's +; sound-pointer entry -- mml2wla always emits "mus" (see emit_song), so alias to what +; soundPointers.s/soundChannelPointers.s already reference by name. +.define sndSubrosianShopStart musSubrosianShopStart EXPORT +.define sndSubrosianShopChannel0 musSubrosianShopChannel0 EXPORT +.define sndSubrosianShopChannel1 musSubrosianShopChannel1 EXPORT +.define sndSubrosianShopChannel4 musSubrosianShopChannel4 EXPORT +.define sndSubrosianShopChannel6 musSubrosianShopChannel6 EXPORT +.include "audio/common/mus/bin/rosaDate.s" +.include "audio/common/mus/bin/roomOfRites.s" +.include "audio/common/mus/bin/blackTowerEntrance.s" +.include "audio/common/mus/bin/zeldaSaved.s" +.include "audio/common/mus/bin/mapleTheme.s" +.include "audio/common/mus/bin/intro1.s" +.include "audio/common/mus/bin/crazyDance.s" +.include "audio/seasons/sfx/bin/unknown93.s" +.include "audio/seasons/sfx/bin/dodongoEat.s" +.include "audio/common/sfx/bin/compass.s" +.include "audio/common/sfx/bin/land.s" +.include "audio/common/sfx/bin/switchHook.s" .ifdef BUILD_VANILLA .dsb 4 $ff @@ -386,10 +403,10 @@ bank3eChannelFallback: .redefine MUSIC_CHANNEL_FALLBACK bank3eChannelFallback -.include "audio/seasons/sfx/danceMove.s" -.include "audio/common/sfx/dimitri.s" -.include "audio/common/sfx/whistle.s" -.include "audio/common/sfx/goronDanceB.s" +.include "audio/seasons/sfx/bin/danceMove.s" +.include "audio/common/sfx/bin/dimitri.s" +.include "audio/common/sfx/bin/whistle.s" +.include "audio/common/sfx/bin/goronDanceB.s" ; Undefined sounds sndd6Start: @@ -441,7 +458,7 @@ snddcChannel6: sndddChannel6: cmdff -.include "audio/common/mus/greatMoblin.s" +.include "audio/common/mus/bin/greatMoblin.s" mus37Channel1: cmdff @@ -455,12 +472,12 @@ mus30Channel1: mus30Channel0: cmdff -.include "audio/common/mus/ladxSideview.s" -.include "audio/common/mus/syrup.s" -.include "audio/seasons/mus/songOfStorms.s" -.include "audio/common/mus/goronCave.s" -.include "audio/common/mus/credits2.s" -.include "audio/common/mus/boss.s" +.include "audio/common/mus/bin/ladxSideview.s" +.include "audio/common/mus/bin/syrup.s" +.include "audio/seasons/mus/bin/songOfStorms.s" +.include "audio/common/mus/bin/goronCave.s" +.include "audio/common/mus/bin/credits2.s" +.include "audio/common/mus/bin/boss.s" mus3aChannel1: cmdff @@ -473,9 +490,9 @@ mus3aChannel4: .dsb 7 $ff .endif -.include "audio/seasons/mus/subrosia.s" -.include "audio/common/mus/credits1.s" -.include "audio/seasons/mus/unused2.s" +.include "audio/seasons/mus/bin/subrosia.s" +.include "audio/common/mus/bin/credits1.s" +.include "audio/seasons/mus/bin/unused2.s" .ifdef BUILD_VANILLA .dsb 10 $ff diff --git a/code/audio.s b/code/audio.s index f2b64941e..fa98c1393 100644 --- a/code/audio.s +++ b/code/audio.s @@ -357,7 +357,7 @@ func_39_41c2: ;; func_39_41f3: - ld hl,wc03f + ld hl,wChannelPitchSlide ld a,(wSoundChannel) ld e,a ld d,$00 @@ -377,7 +377,7 @@ func_39_41f3: ld d,$ff ++ push de - ld hl,wc03f + ld hl,wChannelPitchSlide ld a,(wSoundChannel) ld e,a ld d,$00 @@ -439,24 +439,18 @@ label_39_024: jp func_42d1 label_39_025: - ld a,$10 - ld hl,wc045 - push af ld a,(wSoundChannel) ld e,a ld d,$00 + ld hl,wc045 add hl,de - pop af - ld (hl),a - ld a,$00 - ld hl,wc051 - push af + ld (hl),$10 ld a,(wSoundChannel) ld e,a ld d,$00 + ld hl,wc051 add hl,de - pop af - ld (hl),a + ld (hl),$00 label_39_026: ld hl,wc051 ld a,(wSoundChannel) @@ -467,15 +461,12 @@ label_39_026: cp $08 jr nz,label_39_027 - ld a,$00 - ld hl,wc051 - push af ld a,(wSoundChannel) ld e,a ld d,$00 + ld hl,wc051 add hl,de - pop af - ld (hl),a + ld (hl),$00 ld a,$00 label_39_027: ld hl,data_4b40 @@ -684,23 +675,191 @@ doNextChannelCommand: .dw channelCmdf8 .dw channelCmdff .dw channelCmdf6 + .dw channelCmdf5 +.ifdef BUILD_VANILLA .dw channelCmdff - .dw channelCmdff +.else + .dw channelCmdf4 +.endif .dw channelCmdf3 .dw channelCmdf2 .dw channelCmdf1 .dw channelCmdf0 +;; +channelCmdf2: + jp doNextChannelCommand + +.ifndef BUILD_VANILLA +;; +; setDefaultLength $len -- sets wChannelDefaultLength[ch], used by short notes ($62-$c1 +; in @channel0To3/standardCmdChannels4To5/standardCmdChannel6) whenever they omit an +; explicit length byte. +channelCmdf4: + call getNextChannelByte + ld hl,wChannelDefaultLength + push af + ld a,(wSoundChannel) + ld e,a + ld d,$00 + add hl,de + pop af + ld (hl),a + jp doNextChannelCommand +.endif + +.ifdef BUILD_VANILLA ;; channelCmdf1: jp doNextChannelCommand ;; -channelCmdf2: +channelCmdf3: jp doNextChannelCommand +.else +; Channel -> pattern-call-slot lookup (indexed by wSoundChannel 0-7). Only the 4 music +; channels (square 1/2, wave, noise) get pattern-call RAM slots -- sfx are short one-shots +; that don't benefit, and RAM here is scarce. $ff marks a channel with no slot; using +; patternCall/patternEnd on one of those channels is undefined (mml2wla must never emit +; it there). +patternChannelSlotTable: + .db $00 $01 $ff $ff $02 $ff $03 $ff + ;; +; patternCall $addrLo $addrHi $count -- jumps the channel's read cursor to $addr, having +; first remembered where to come back to (the address right after this instruction) and +; how many times total to play the pattern before returning. Pairs with patternEnd, +; placed at the end of the pattern body. Not nestable: a pattern must not itself contain +; a patternCall, since there's only one RAM slot per channel, not a call stack. +channelCmdf1: + call getNextChannelByte + ld c,a ; c = pattern address, low byte + call getNextChannelByte + ld b,a ; b = pattern address, high byte (bc = pattern start address) + call getNextChannelByte + ld e,a ; e = repeat count + push bc ; stash the pattern start address for later + + ; d = slot = patternChannelSlotTable[wSoundChannel] + ld a,(wSoundChannel) + ld hl,patternChannelSlotTable + ld c,a + ld b,$00 + add hl,bc + ld d,(hl) + + ; wPatternRepeatRemaining[slot] = count + ld hl,wPatternRepeatRemaining + ld c,d + ld b,$00 + add hl,bc + ld (hl),e + + ; wPatternReturnAddr[slot] = current read cursor (already past this instruction -- + ; this is exactly where execution should resume once the pattern finishes repeating) + ld a,(wSoundChannel) + sla a + add frames relationship. +; +; W/HF/Q (whole/half/quarter) are each rounded independently -- they aren't fractions of +; a shared parent that need to sum exactly, so there's nothing to carry between them. +; Each finer subdivision family (E1/E2; S1-S4; T1-T8; R1-R3; Y1-Y6; W1-W12) does need +; this, though: every member of a family divides the same quarter note, so its members' +; lengths are computed with a carried remainder (reset to 0 at the start of that family) +; to guarantee they sum to the same total the quarter note itself resolves to, instead +; of letting independent rounding drift away from it. (This mirrors mml2wla's own +; error-carry technique for the exact same reason -- see timing.py.) +.macro tempo + .redefine tempoFramesPerTick (60 * 4194304) / (70224 * 48 * \1) + + .redefine W ROUND(192 * tempoFramesPerTick) + .redefine HF ROUND(96 * tempoFramesPerTick) + .redefine Q ROUND(48 * tempoFramesPerTick) + + ; Eighth notes (24 ticks each) + .redefine tempoCarry 0 + .redefine tempoNumer (24 * tempoFramesPerTick) + tempoCarry + .redefine E1 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - E1) + .redefine tempoNumer (24 * tempoFramesPerTick) + tempoCarry + .redefine E2 ROUND(tempoNumer) + + ; Sixteenth notes (12 ticks each) + .redefine tempoCarry 0 + .redefine tempoNumer (12 * tempoFramesPerTick) + tempoCarry + .redefine S1 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - S1) + .redefine tempoNumer (12 * tempoFramesPerTick) + tempoCarry + .redefine S2 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - S2) + .redefine tempoNumer (12 * tempoFramesPerTick) + tempoCarry + .redefine S3 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - S3) + .redefine tempoNumer (12 * tempoFramesPerTick) + tempoCarry + .redefine S4 ROUND(tempoNumer) + + ; Thirty-second notes (6 ticks each) + .redefine tempoCarry 0 + .redefine tempoNumer (6 * tempoFramesPerTick) + tempoCarry + .redefine T1 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - T1) + .redefine tempoNumer (6 * tempoFramesPerTick) + tempoCarry + .redefine T2 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - T2) + .redefine tempoNumer (6 * tempoFramesPerTick) + tempoCarry + .redefine T3 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - T3) + .redefine tempoNumer (6 * tempoFramesPerTick) + tempoCarry + .redefine T4 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - T4) + .redefine tempoNumer (6 * tempoFramesPerTick) + tempoCarry + .redefine T5 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - T5) + .redefine tempoNumer (6 * tempoFramesPerTick) + tempoCarry + .redefine T6 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - T6) + .redefine tempoNumer (6 * tempoFramesPerTick) + tempoCarry + .redefine T7 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - T7) + .redefine tempoNumer (6 * tempoFramesPerTick) + tempoCarry + .redefine T8 ROUND(tempoNumer) + + ; Quarter-note triplets (16 ticks each) + .redefine tempoCarry 0 + .redefine tempoNumer (16 * tempoFramesPerTick) + tempoCarry + .redefine R1 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - R1) + .redefine tempoNumer (16 * tempoFramesPerTick) + tempoCarry + .redefine R2 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - R2) + .redefine tempoNumer (16 * tempoFramesPerTick) + tempoCarry + .redefine R3 ROUND(tempoNumer) + + ; Eighth-note triplets (8 ticks each) + .redefine tempoCarry 0 + .redefine tempoNumer (8 * tempoFramesPerTick) + tempoCarry + .redefine Y1 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - Y1) + .redefine tempoNumer (8 * tempoFramesPerTick) + tempoCarry + .redefine Y2 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - Y2) + .redefine tempoNumer (8 * tempoFramesPerTick) + tempoCarry + .redefine Y3 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - Y3) + .redefine tempoNumer (8 * tempoFramesPerTick) + tempoCarry + .redefine Y4 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - Y4) + .redefine tempoNumer (8 * tempoFramesPerTick) + tempoCarry + .redefine Y5 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - Y5) + .redefine tempoNumer (8 * tempoFramesPerTick) + tempoCarry + .redefine Y6 ROUND(tempoNumer) + + ; Sixteenth-note triplets (4 ticks each) + .redefine tempoCarry 0 + .redefine tempoNumer (4 * tempoFramesPerTick) + tempoCarry + .redefine W1 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - W1) + .redefine tempoNumer (4 * tempoFramesPerTick) + tempoCarry + .redefine W2 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - W2) + .redefine tempoNumer (4 * tempoFramesPerTick) + tempoCarry + .redefine W3 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - W3) + .redefine tempoNumer (4 * tempoFramesPerTick) + tempoCarry + .redefine W4 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - W4) + .redefine tempoNumer (4 * tempoFramesPerTick) + tempoCarry + .redefine W5 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - W5) + .redefine tempoNumer (4 * tempoFramesPerTick) + tempoCarry + .redefine W6 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - W6) + .redefine tempoNumer (4 * tempoFramesPerTick) + tempoCarry + .redefine W7 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - W7) + .redefine tempoNumer (4 * tempoFramesPerTick) + tempoCarry + .redefine W8 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - W8) + .redefine tempoNumer (4 * tempoFramesPerTick) + tempoCarry + .redefine W9 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - W9) + .redefine tempoNumer (4 * tempoFramesPerTick) + tempoCarry + .redefine W10 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - W10) + .redefine tempoNumer (4 * tempoFramesPerTick) + tempoCarry + .redefine W11 ROUND(tempoNumer) + .redefine tempoCarry (tempoNumer - W11) + .redefine tempoNumer (4 * tempoFramesPerTick) + tempoCarry + .redefine W12 ROUND(tempoNumer) +.endm + ; Other values that can be use within note/beat macros .redefine od (-1) ; octave down .redefine ou (-2) ; octave up @@ -174,6 +315,22 @@ .endr .endm +; Editable-build-only (see setDefaultLength below and code/audio.s's @channel0To3 short- +; note dispatch): plays a pitch (square channels only for now) using the channel's +; current default length instead of an explicit one -- 1 byte total instead of 2. Set +; the default length first with setDefaultLength. +.ifndef BUILD_VANILLA +.macro shortNote + .db $62 + \1 +.endm + +; f4: sets the channel's default length, used by shortNote whenever it's called +; afterward (until changed again or the channel restarts). +.macro setDefaultLength + .db $f4 \1 +.endm +.endif + ; This is NOT used by the base game; it's an attempt to provide a more sane way to define music ; (multiple notes per line). Each pair of arguments is a note followed by a length. Can define ; "NOTE_END_WAIT" to set a certain amount of a note to be "rest" instead of being actually played. @@ -222,16 +379,31 @@ .endr .endm -; 60/61: set wait counters. - +; 60: cuts the channel off (immediate, clean silence -- see @cmd60/standardCmdChannel6 in +; code/audio.s). Use this for an actual audible rest. .macro rest .db $60 \1 .endm -.macro rest2 ; Unused? +; 61: extends the currently playing note/rest without retriggering or otherwise +; affecting it -- a tie/sustain, not a rest. (Named `rest2` prior to the `rest` fix +; above; renamed since a name implying "another kind of rest" was actively +; misleading for what's the opposite of one. Not named `wait`: that name is already +; taken by the unrelated cutscene-script `wait` macro in script_commands.s.) +.macro sust .db $61 \1 .endm +; f5: decays the currently playing note from its current volume at a fixed fast pace +; (square channels 0-3 only -- see channelCmdf5 in code/audio.s). This is what `rest` +; accidentally did before its fix, and turned out to be the actual note-release +; technique used by the vast majority of existing content, so it's kept available +; as its own command: a soft/decaying release, distinct from `rest` (hard cutoff) +; and `sust` (hold). +.macro release + .db $f5 \1 +.endm + ; d0-df: set volume .macro vol .if \1 > $f @@ -240,33 +412,48 @@ .db $d0 | \1 .endm -; e0-e7: set envelopes +; e0-e7: set envelope (\1 $0-$7: software-simulated attack pace, starting at volume 1 and +; snapping to the note's target volume after a fixed delay -- see func_39_464c) +; e8-ef: \1 $8-$f (i.e. $8 | pace): true hardware envelope fade-in, starting at volume 0 +; and increasing to volume 15 entirely in hardware at the given pace (\1 & $7) -- +; see hardwareAttackEnvelope in code/audio.s +; \2 ($0-$7 either way): decay pace -- an exact hardware envelope match in both cases, +; decreasing from the note's target volume to 0 .macro env - .if \1 > $7 + .if \1 > $f .fail .endif .db $e0 | \1 .db \2 .endm -; e8-ef: same as e0-e7 - ; f0: unknown ; Sometimes sets wc039 .macro cmdf0 .db $f0 \1 .endm -; f1-f3: does nothing -.macro cmdf1 +; f1/f3: pattern-call / pattern-end (editable-build only -- see code/audio.s). Confirmed +; unused as bare no-op bytes by every vanilla song, which is what let them be repurposed. +; Only valid on channels 0, 1, 4, and 6 (square 1/2, wave, noise -- see +; patternChannelSlotTable in code/audio.s); not nestable. +.ifndef BUILD_VANILLA +.macro patternCall .db $f1 + .dw \1 + .db \2 +.endm + +.macro patternEnd + .db $f3 + .dw \1 .endm +.endif + +; f2: does nothing .macro cmdf2 .db $f2 .endm -.macro cmdf3 - .db $f3 -.endm ; f4-f5: duplicates of ff? .macro cmdf4 @@ -283,8 +470,14 @@ ; f7: duplicate of ff? -; f8: sets wc03f (for channels 0-5) -.macro cmdf8 +; f8: continuous pitch slide (channels 0-5 only -- see func_39_41c2/func_39_41f3 +; in code/audio.s). \1 is a signed byte, re-added to the note's frequency every +; single frame for as long as it stays nonzero, so the pitch keeps sliding +; indefinitely rather than settling on a target -- matches mmlgb's `@s` +; (pitch slide), not `@p` (portamento, which glides toward and stops at a +; target note -- this engine has no equivalent of that). Use pitchSlide $00 +; to stop an ongoing slide. +.macro pitchSlide .db $f8 \1 .endm @@ -297,9 +490,13 @@ ; fa-fc: duplicates of ff? -; fd: sets wc033 -; Shifts pitch -.macro cmdfd +; fd: flat pitch offset (channels 0-5 only, i.e. square/wave, both the music +; and sfx slots -- see channelCmdfd/setSoundFrequency in code/audio.s; a +; no-op on noise, 6-7). \1 is a signed byte, added once to the frequency +; every time a note triggers on this channel and held constant for that +; note's whole duration -- matches mmlgb's `@po` (pitch offset) exactly. +; Use pitchOffset $00 to disable again. +.macro pitchOffset .db $fd \1 .endm diff --git a/include/wram.s b/include/wram.s index d7ac8fbca..c64413516 100644 --- a/include/wram.s +++ b/include/wram.s @@ -85,15 +85,24 @@ wc02d: ; $c02d dsb 6 wChannelPitchShift: ; $c033 -; An offset for wSoundFrequencyL,H +; A signed offset added to the note's own frequency once, at trigger time +; (see setSoundFrequency), and held constant for as long as the note plays -- +; a flat per-channel detune, not a slide (contrast wChannelPitchSlide below). +; Set by cmdfd (see musicMacros.s's pitchOffset macro). dsb 6 wc039: ; $c039 ; c039 might be related to the "counter" bit (NRx4) dsb 6 -wc03f: ; $c03f -; c03f might be related to sweep +wChannelPitchSlide: ; $c03f +; A signed per-frame delta continuously added to wSoundFrequencyL,H every frame +; while a note is sustaining (see func_39_41f3, called every frame from +; func_39_41c2) -- unlike wChannelPitchShift above (a flat, one-time offset +; re-applied at each note trigger), this accumulates indefinitely for as long +; as it stays nonzero, producing a continuous pitch slide. Set by cmdf8 +; (see musicMacros.s's pitchSlide macro); cleared to 0 whenever a channel is +; (re)initialized for a new sound. dsb 6 wc045: ; $c045 @@ -121,7 +130,23 @@ wChannelWaitCounters: ; $c075 wChannelVolumes: ; $c07d dsb 8 -; $c085-$c09f unused? +; Editable-build-only audio engine additions (see code/audio.s's patternCall/patternEnd +; and setDefaultLength). Not used by vanilla song data, so kept out of the vanilla build +; entirely -- bank $39 has no free space there. Slotted into what was previously unused +; space ($c085-$c09f, 27 bytes). +.ifndef BUILD_VANILLA +wPatternReturnAddr: ; $c085 -- one per pattern-call-capable channel (0,1,4,6 -> slot 0-3) + dsb 8 +wPatternRepeatRemaining: ; $c08d + dsb 4 +wChannelDefaultLength: ; $c091 -- one per channel (all 8) + dsb 8 +; A single shared flag, not per-channel: at most one channel's command is ever being +; processed at a time, so this only needs to survive between a short-note dispatch and +; setChannelWaitCounter's very next read, both within the same doNextChannelCommand call. +wUseChannelDefaultLength: ; $c099 + db +.endif .ENDS diff --git a/tools/audio/buildAudio.py b/tools/audio/buildAudio.py new file mode 100644 index 000000000..04cc1f251 --- /dev/null +++ b/tools/audio/buildAudio.py @@ -0,0 +1,103 @@ +#!/usr/bin/python3 +"""Build-time orchestrator for every .mml -> .s conversion in one game's +build, across every song and sound effect at once, sharing a single +WaveformAggregator -- this is what actually makes "a song's own newly +authored waveform" and "an existing named one from waveforms.json" compile +into one single, self-consistent audio/common/bin/waveforms.s, with every +song's `duty` reference landing on the right final entry. + +Running mml2wla once per .mml file (the naive approach) can't do this: each +invocation would get its own fresh WaveformAggregator, so a brand new +waveform a song defines locally (`@waveN = {...}`, not an id already in +waveforms.json) would only ever be written to a `_waveforms_new.s` side +file nobody's build actually includes -- a real song's real audio would be +silently missing that waveform's data. This script instead converts every +.mml in one pass, all sharing one aggregator seeded to start numbering new +entries right after the last id already in waveforms.json, and folds +whatever it collects directly into the generated waveforms.s alongside the +JSON-sourced entries -- so there is exactly one generated table, and it's +always complete. + +Usage: buildAudio.py --waveforms-json --noise-json + --waveforms-out ... +""" +import argparse +import json +import os +import sys + +sys.path.insert(0, os.path.dirname(__file__)) +from mml2wla.cli import convert_file, MmlError +from mml2wla.noise import load_noise_json +from mml2wla.waveforms import WaveformAggregator +from waveformsJsonToS import generate as generate_waveforms_s + + +def _unpack(packed_bytes): + """16 packed bytes -> 32 unpacked 0-15 samples, as a space-separated + string -- the same "data" format waveforms.json/waveformsJsonToS.py use + (see mml2wla/waveforms.py's pack_wave_samples for the inverse).""" + samples = [] + for b in packed_bytes: + samples.append(b >> 4) + samples.append(b & 0xf) + return ' '.join(str(s) for s in samples) + + +def main(): + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--waveforms-json', required=True) + ap.add_argument('--noise-json') + ap.add_argument('--waveforms-out', required=True) + ap.add_argument('mml_files', nargs='+') + args = ap.parse_args() + + with open(args.waveforms_json) as f: + json_entries = json.load(f) + json_waveforms = {e['id']: e['name'] for e in json_entries} + + noise_table, known_noise_frequencies = None, None + if args.noise_json: + noise_table, known_noise_frequencies, _names = load_noise_json(args.noise_json) + + waveform_agg = WaveformAggregator(next_free_id_hint=len(json_entries)) + + had_errors = False + for mml_path in args.mml_files: + out_path = os.path.join(os.path.dirname(mml_path), 'bin', + os.path.splitext(os.path.basename(mml_path))[0] + '.s') + os.makedirs(os.path.dirname(out_path), exist_ok=True) + try: + warnings = convert_file(mml_path, out_path, waveform_agg, + noise_table=noise_table, json_waveforms=json_waveforms, + known_noise_frequencies=known_noise_frequencies) + except MmlError as e: + print(f"error: {mml_path}: {e}", file=sys.stderr) + had_errors = True + continue + for w in warnings: + print(f"warning: {mml_path}: {w}", file=sys.stderr) + if had_errors: + return 1 + + # Fold whatever new waveforms this run discovered directly into the + # generated table -- see module docstring for why this can't just be a + # side file the user merges by hand. + new_entries = [ + {'id': len(json_entries) + i, 'name': e['name'], 'data': _unpack(e['packed'])} + for i, e in enumerate(waveform_agg.entries) + ] + all_entries = json_entries + new_entries + text = generate_waveforms_s(all_entries) + with open(args.waveforms_out, 'w') as f: + f.write(text) + if new_entries: + print(f"waveforms.s: {len(json_entries)} from waveforms.json + " + f"{len(new_entries)} newly authored in .mml (ids " + f"{len(json_entries)}-{len(all_entries) - 1}): " + + ', '.join(e['name'] for e in new_entries)) + return 0 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/tools/audio/checkAlignment.py b/tools/audio/checkAlignment.py new file mode 100644 index 000000000..58f0a7af1 --- /dev/null +++ b/tools/audio/checkAlignment.py @@ -0,0 +1,105 @@ +#!/usr/bin/python3 +"""Diagnostic: assumes every song is 4/4 (see tempoInfer.py/songConfig.py) +and reports which ones *don't* actually line up cleanly under that +assumption -- i.e. where a channel's intro (before its loop point) or loop +body (from the loop point to the end) isn't a near-whole number of +192-tick measures at the song's own inferred tempo. Those are exactly the +songs that need a TIME_SIG_OVERRIDES (a genuinely different time +signature) or ECHO_CHANNELS (a delayed-echo channel whose timing is +intentionally offset from the real grid) entry in songConfig.py. + +Run directly: reads every committed audio/*/mus/*.mml, decodes each +channel's own note lengths back out of its =N notation (no need to touch +ROM or .s data -- the committed .mml is already the source of truth), and +prints one line per misaligned channel. +""" +import glob +import os +import re +import sys + +sys.path.insert(0, os.path.dirname(__file__)) +import tempoInfer + +REPO = os.path.join(os.path.dirname(__file__), '..', '..') + +_CHANNEL_LINE_RE = re.compile(r'^([ABCD]) ') +# A note/rest/wait/release/noise-note occurrence, with an optional leading +# octave change (sToMml.py packs those onto the same note with no space -- +# see convert()'s note-building code), OR a standalone 'L' marker. +# Consecutive notes are also packed with no space between them (e.g. +# "c=4d=8"), so this has to scan the whole line with finditer rather than +# split on whitespace -- splitting would merge a run of packed notes into +# one unsplittable token. Anything else that happens to contain '=' (a +# vibrato delay's ",=N") is deliberately not matched here. +_LENGTH_TOKEN_RE = re.compile( + r'(?:o\d+)?(?:[a-g][+\-]?|n\$[0-9a-fA-F]+,|@rl|r|w)=(\d+)|(? +""" +import os +import sys + +sys.path.append(os.path.dirname(__file__) + '/..') # for common.py, matching dumpMusic.py's own convention +from common import read16, bankedAddress, romIsSeasons + +sys.path.insert(0, os.path.dirname(__file__)) +from sToMml import (NOTE_LETTER_MML, NOISE_NAMES, TITLE_OVERRIDES, + ENGINE_CH_TO_LETTER, _collapse_redundant_state, add_linebreaks, + render) +from songConfig import SONG_MANIFEST + +REPO = os.path.join(os.path.dirname(__file__), '..', '..') + +# c1=0 .. b8=95 -- matches include/musicMacros.s's .enum block exactly (the +# same ordering byteToNote()/dumpMusic.py's noteTable uses). +_NOTE_ORDER = ['c', 'cs', 'd', 'ds', 'e', 'f', 'fs', 'g', 'gs', 'a', 'as', 'b'] + + +def decode_channel(rom, start_address, engine_ch): + """Decodes one music channel's raw byte stream into the same (kind, + val) token list sToMml.py's convert() produces from .s text -- see its + per-opcode comments for why each byte maps the way it does (rest vs + sust vs release classification, env decay masking, the wave channel's + octave/volume/duty quirks, etc.); this mirrors that exactly, just + reading straight from ROM bytes instead of already-decoded .s text. + """ + # First pass: does this channel loop, and if so, to where? (a `goto` + # is always the very last real opcode in a channel -- see code/audio.s.) + # Total instruction size (including the opcode byte itself) per range, + # matching doNextChannelCommand's own dispatch exactly: + # $00-$5f (note), $60 (rest/release/sust register), $61 (sust), + # noise note (any byte, channel 6/7): opcode + 1 param = 2 + # $d0-$df (vol): opcode only, volume is in the low nibble = 1 + # $e0-$ef (env), $f0/$f6/$f8/$f9/$fd: opcode + 1 param = 2 + # anything else $f0-$ff (unused by real vanilla data): opcode only = 1 + # This ignores raw-frequency mode (see decode_channel's own raw_freq_mode + # below) -- once a $f0 on a square channel (engine_ch<4) has switched it + # on, a byte < $d0 here is actually 3 bytes (lo/hi/wait), not 2 -- so + # this scan tracks that same state itself rather than calling this + # helper blindly. + def _instruction_size(addr): + byte = rom[addr] + if byte in (0xf0, 0xf6, 0xf8, 0xf9, 0xfd) or byte < 0xd0 or 0xe0 <= byte < 0xf0: + return 2 + return 1 # $d0-$df (vol), or an unused-by-vanilla $f0-$ff opcode + + address = start_address + loop_target = None + scan_raw_freq_mode = False + while True: + b = rom[address] + if b == 0xff: + break + if b == 0xfe: + target = read16(rom, address + 1) + loop_target = bankedAddress((address + 1) // 0x4000, target) + break + if b == 0xf0: + if engine_ch < 4: + scan_raw_freq_mode = True + address += 2 + elif scan_raw_freq_mode and b < 0xd0: + address += 3 + else: + address += _instruction_size(address) + + tokens = [] + address = start_address + octave = 4 + decay = 0 + raw_freq_mode = False # see the $f0 and raw-frequency-note handling below + while True: + if loop_target is not None and address == loop_target: + tokens.append(('__label__', 'LOOP')) + + b = rom[address] + address += 1 + + if b == 0xff: + break + elif b == 0xfe: + tokens.append(('__goto__', 'LOOP')) + break + elif b == 0xf2: + continue # confirmed no-op (see musicMacros.s's cmdf2 comment) + elif b == 0xf6: + param = rom[address] + address += 1 + if engine_ch in (4, 5): + # Numeric @waveN, matching the waveforms.json table index + # directly (see mml2wla's unified @wave syntax) -- no name + # lookup needed at all. + tokens.append(('duty', f"@wave{param}")) + else: + tokens.append(('duty', f"@wd{param}")) + elif b == 0xf9: + param = rom[address] + address += 1 + wait_code, depth = param >> 4, param & 0xf + if wait_code == 0: + tokens.append(('vibrato', f"@v0,{depth}")) + else: + tokens.append(('vibrato', f"@v0,{depth},={wait_code * 2}")) + elif b == 0xf8: + param = rom[address] + address += 1 + signed = param if param < 128 else param - 256 + tokens.append(('pitchSlide', f"@s{signed}")) + elif b == 0xfd: + param = rom[address] + address += 1 + signed = param if param < 128 else param - 256 + tokens.append(('pitchOffset', f"@po{signed}")) + elif b == 0xf0: + # Sfx-only in practice (confirmed unused by any real vanilla + # music channel 0/1/4/6 data) -- overloaded per channel type, + # see channelCmdf0 in code/audio.s. Noise: a raw one-shot + # hardware envelope write (@er). Square: a one-way switch into + # raw-frequency mode (@fm), after which subsequent notes are + # literal hardware frequencies (@rf$), not note-table + # lookups -- see the raw_freq_mode branch below. + param = rom[address] + address += 1 + if engine_ch in (6, 7): + vol = (param >> 4) & 0xf + direction = (param >> 3) & 1 + pace = param & 0x7 + tokens.append(('noise_raw_env', f"@er{vol},{direction},{pace}")) + elif engine_ch < 4: + raw_freq_mode = True + tokens.append(('freq_mode', f"@fm{param}")) + else: + raise ValueError(f"unexpected cmdf0 on wave channel (engine_ch={engine_ch})") + elif b >= 0xf0: + pass # any other f0-ff: no known music usage + elif b >= 0xe0: + attack = b & 0xf + param = rom[address] + address += 1 + decay = param & 0x7 # cmde0Toef masks decay with & $07 at runtime + if attack == 0 and decay == 0: + tokens.append(('env', "@ve0")) + elif attack == 0: + tokens.append(('env', f"@ve-{decay}")) + else: + tokens.append(('env', f"@ea{attack},{decay}")) + elif b >= 0xd0: + vol = b & 0xf + if engine_ch in (4, 5): + tokens.append(('vol', f"@vr{vol}")) + else: + tokens.append(('vol', f"v{vol}")) + elif raw_freq_mode: + # See the $f0/@fm handling above: once set, this channel's + # dispatch (code/audio.s's @channel0To3) never checks for $60/ + # $61 again -- every byte here (any value 0-$cf, since $d0-$ff + # are always intercepted earlier regardless of this mode) is a + # literal raw hardware frequency's low byte instead. + hi = rom[address] + address += 1 + length = rom[address] + address += 1 + value = (hi << 8) | b + tokens.append(('note', f"@rf${value:04x}={length}")) + elif b == 0x60: + param = rom[address] + address += 1 + if engine_ch in (4, 5): + tokens.append(('note', f"r={param}")) + elif engine_ch not in (6, 7) and decay == 0: + tokens.append(('note', f"@rl={param}")) + else: + tokens.append(('note', f"w={param}")) + elif b == 0x61: + param = rom[address] + address += 1 + tokens.append(('note', f"w={param}")) + elif engine_ch in (6, 7): + wait = rom[address] + address += 1 + if b in NOISE_NAMES: + alias, _comment = NOISE_NAMES[b] + tokens.append(('note', f"@{alias}={wait}")) + else: + tokens.append(('note', f"n${b:02x},={wait}")) + else: + length = rom[address] + address += 1 + note_octave = b // 12 + 1 + note_idx = b % 12 + letter = NOTE_LETTER_MML[_NOTE_ORDER[note_idx]] + if engine_ch in (4, 5): + note_octave += 1 # see notes.py's NOTE_BYTE_ADJUST[2] == -12 + toks = [] + if note_octave != octave: + toks.append(f"o{note_octave}") + octave = note_octave + toks.append(f"{letter}={length}") + tokens.append(('note', ''.join(toks))) + + return _collapse_redundant_state(tokens) + + +def parse_sound_pointer_names(sound_pointers_s_path): + """index -> label name (e.g. "musAmbiPalace"), from the committed + soundPointers.s -- a plain index/address table with no music content + of its own, so (unlike the .mml this script produces) it's fine to + keep this committed and read it back here.""" + import re + names = {} + pat = re.compile(r'/\*\s*0x([0-9a-fA-F]+)\s*\*/\s*m_soundPointer\s+(\S+)') + for line in open(sound_pointers_s_path): + m = pat.search(line) + if m: + names[int(m.group(1), 16)] = m.group(2) + return names + + +def parse_channel_pointer_table(rom, address, bank): + """Reads the (channel, address) list for one song -- terminated by + $ff -- matching dumpMusic.py's own parseChannelPointers exactly. + `bank` is the *sound entry's own* computed bank (soundBaseBank + its + delta byte from the first-level pointer table), not one derived from + the current read position: the channel pointer table and the actual + channel data it points to can legitimately live in a different bank + than the first-level pointer table itself (that delta byte is exactly + what makes that possible), unlike a `goto` loop target, which always + stays within its own channel's bank and so *is* safe to derive from + the current position (see decode_channel).""" + entries = [] + while True: + b = rom[address] + address += 1 + if b == 0xff: + break + channel = b & 0xf + target = bankedAddress(bank, read16(rom, address)) + address += 2 + entries.append((channel, target)) + return entries + + +def _base_name(label): + """"musAmbiPalace" -> "ambiPalace", "sndSubrosianShop" -> "subrosianShop" + -- both real label prefixes seen in soundPointers.s (see sToMml.py's + CHANNEL_START_RE for the same "mus"/"snd" duality on the channel-data + side); both happen to be 3 characters, so one slice handles either. + A handful of real sfx labels are literally a bare hex index with no + real name at all (e.g. "snd7a") -- stripping the prefix there would + produce a name starting with a digit, invalid as an mml #TITLE/label + (see cli.py's _VALID_TITLE_RE), so the prefix is kept instead.""" + rest = label[3:] + base = rest[0].lower() + rest[1:] + if base[0].isdigit(): + return label[0].lower() + label[1:] + return base + + +def dump(rom_path): + rom = bytearray(open(rom_path, 'rb').read()) + seasons = romIsSeasons(rom) + game_dir = 'seasons' if seasons else 'ages' + sound_base_bank = 0x39 + sound_pointer_table = 0xe57cf if seasons else 0xe5748 + num_sound_indices = 0xdf + + names = parse_sound_pointer_names(os.path.join(REPO, f"audio/{game_dir}/soundPointers.s")) + + # Group indices sharing the exact same address -- e.g. sound index 0 + # ("musNone") and index 1 ("musTitlescreen") are the same title-screen + # theme twice (see dumpMusic.py's own identical dedup-by-address logic + # for confirmation this is the right equality check, not one this + # script invented). SONG_MANIFEST (songConfig.py) says which of a + # group's candidate names is the one to actually write a file for; + # non-primary names are meant to be reattached as build-time aliases + # in soundChannelData.s instead of dumped a second time (see the + # existing musNone/musTitlescreen and sndSubrosianShop aliases there + # for the pattern -- this script only produces the .mml, it doesn't + # touch those .s alias lines). + groups = {} # address -> (bank, [index, ...]) + for i in range(num_sound_indices): + bank = sound_base_bank + rom[sound_pointer_table + i * 3] + pointer = read16(rom, sound_pointer_table + i * 3 + 1) + address = bankedAddress(sound_base_bank, pointer) + if address not in groups: + groups[address] = (bank, []) + groups[address][1].append(i) + + written = 0 + for address, (bank, indices) in groups.items(): + candidate_bases = [_base_name(names[i]) for i in indices if i in names] + primary = next((b for b in candidate_bases if b in SONG_MANIFEST), None) + if primary is None: + continue # not a recognized music track (sfx marker, padding, etc.) + + is_gamespecific = SONG_MANIFEST[primary] == 'gamespecific' + out_dir = game_dir if is_gamespecific else SONG_MANIFEST[primary] + + channels = {} + for channel, target in parse_channel_pointer_table(rom, address, bank): + if channel not in ENGINE_CH_TO_LETTER: + continue + letter = ENGINE_CH_TO_LETTER[channel] + channels[letter] = decode_channel(rom, target, channel) + + extra_comment = None + title = primary + output_name = primary + if primary in TITLE_OVERRIDES: + output_name, title, extra_comment = TITLE_OVERRIDES[primary] + elif is_gamespecific: + extra_comment = ("This song is dumped separately per game (see SONG_MANIFEST in " + "songConfig.py): Ages and Seasons each have their own copy of it " + "in the ROM, which may or may not actually differ.") + add_linebreaks(channels, primary) + text = render(channels, title, extra_header_comment=extra_comment) + + out_path = os.path.join(REPO, f"audio/{out_dir}/mus/{output_name}.mml") + with open(out_path, 'w') as f: + f.write(text) + written += 1 + print(f"wrote {os.path.relpath(out_path, REPO)}") + + print(f"\n{written} songs written for {game_dir}") + + +if __name__ == '__main__': + if len(sys.argv) != 2: + print(f"Usage: {sys.argv[0]} ") + sys.exit(1) + dump(sys.argv[1]) diff --git a/tools/audio/dumpSfxMml.py b/tools/audio/dumpSfxMml.py new file mode 100644 index 000000000..8a402d82c --- /dev/null +++ b/tools/audio/dumpSfxMml.py @@ -0,0 +1,165 @@ +#!/usr/bin/python3 +"""Dumps every vanilla sound effect directly from a clean ROM into .mml -- +the sfx counterpart of dumpMusicMml.py (see its docstring for the overall +rationale). Reuses that module's decode_channel wholesale: sfx and music +share the exact same channel-data opcode format, just on a different set of +4 engine channel slots (see emitter.py's CHANNEL_NUM_SFX) -- decode_channel +already handles both. + +Unlike music, sfx entries carry no hand-curated name->directory manifest: +which of the ~140 vanilla sound effects is shared between both games versus +unique to one isn't recorded anywhere before this script decides it, so it +needs *both* ROMs at once to find out. Matching is done by each entry's +*table index* (soundPointers.s's own `/* 0xXX */` position), not by name -- +confirmed necessary, not just simpler: several real entries are named a +real word in one game (e.g. Ages' sndOpenGate) but only a generic +`sndUnknown7d`/bare `snd7a`-style placeholder in the other, at the exact +same index, because whoever filled in that game's table didn't know what +the sound was. Matching by name alone would treat those as two unrelated +sounds instead of the one shared effect they actually are. Once matched by +index: + - an index that only exists in one game's soundPointers.s -> that game's + audio//sfx/ only. + - an index in both games, with identical decoded content -> audio/common/sfx/. + - an index in both games, with genuinely different content -> both + audio/ages/sfx/ and audio/seasons/sfx/ (same treatment as music's + pirates.s/mml -- see sToMml.py's split_pirates docstring). +The filename itself always prefers whichever game's name for that index +isn't a generic placeholder (see _is_placeholder_name), so a real name in +either game wins over the other game's "unknownXX"/bare-hex guess. + +Run this against your own legally-owned ROMs to (re)generate the .mml files +locally; they're gitignored on purpose (see .gitignore) -- for legal reasons +this repo cannot distribute Nintendo's copyrighted audio data directly, only +the tooling to reconstruct it from ROMs you already own. + +Usage: dumpSfxMml.py +""" +import os +import re +import sys + +sys.path.append(os.path.dirname(__file__) + '/..') # for common.py +from common import read16, bankedAddress, romIsSeasons + +sys.path.insert(0, os.path.dirname(__file__)) +from sToMml import ENGINE_CH_TO_LETTER, add_sfx_linebreaks, render +from dumpMusicMml import (decode_channel, parse_sound_pointer_names, + parse_channel_pointer_table, _base_name) + +REPO = os.path.join(os.path.dirname(__file__), '..', '..') + +# The 4 engine channel numbers sfx use in place of music's 0/1/4/6 (see +# emitter.py's CHANNEL_NUM_SFX) -- an entry is a sound effect, not a song, +# iff any of its channels is one of these. +_SFX_ENGINE_CHANNELS = (2, 3, 5, 7) + +_PLACEHOLDER_NAME_RE = re.compile(r'^(?:[0-9a-f]+|unknown[0-9a-f]+)$') + + +def _is_placeholder_name(name): + """True for a table-index-derived guess ("7a", "unknownb5") rather than + a real descriptive name -- see module docstring.""" + return bool(_PLACEHOLDER_NAME_RE.match(name)) + + +def _collect(rom_path): + """Decodes every sfx-classified entry from one ROM. Returns {first_index: + (candidate_names, {letter: tokens})} -- keyed by table index (stable + across games), not name (isn't -- see module docstring).""" + rom = bytearray(open(rom_path, 'rb').read()) + seasons = romIsSeasons(rom) + game_dir = 'seasons' if seasons else 'ages' + sound_base_bank = 0x39 + sound_pointer_table = 0xe57cf if seasons else 0xe5748 + num_sound_indices = 0xdf + + names = parse_sound_pointer_names(os.path.join(REPO, f"audio/{game_dir}/soundPointers.s")) + + # Group indices sharing the exact same address -- see dumpMusicMml.py's + # dump() for why this (not (bank, address)) is the right dedup key. + groups = {} # address -> (bank, [index, ...]) + for i in range(num_sound_indices): + bank = sound_base_bank + rom[sound_pointer_table + i * 3] + pointer = read16(rom, sound_pointer_table + i * 3 + 1) + address = bankedAddress(sound_base_bank, pointer) + if address not in groups: + groups[address] = (bank, []) + groups[address][1].append(i) + + result = {} + for address, (bank, indices) in groups.items(): + entries = parse_channel_pointer_table(rom, address, bank) + if not entries: + continue + if not any(ch in _SFX_ENGINE_CHANNELS for ch, _ in entries): + continue # a music entry -- see dumpMusicMml.py instead + candidate_names = [_base_name(names[i]) for i in sorted(indices) if i in names] + if not candidate_names: + continue # unnamed/unreferenced entry + channels = {} + for channel, target in entries: + if channel not in ENGINE_CH_TO_LETTER: + continue + letter = ENGINE_CH_TO_LETTER[channel] + channels[letter] = decode_channel(rom, target, channel) + if not any(channels.values()): + continue # every channel immediately terminates -- a real, silent no-op entry + add_sfx_linebreaks(channels) + result[min(indices)] = (candidate_names, channels) + return result + + +def _choose_name(ages_names, seasons_names): + for names in (ages_names, seasons_names): + for name in names: + if not _is_placeholder_name(name): + return name + return (ages_names or seasons_names)[0] + + +def dump(ages_rom_path, seasons_rom_path): + ages_sfx = _collect(ages_rom_path) + seasons_sfx = _collect(seasons_rom_path) + + written = 0 + for index in sorted(set(ages_sfx) | set(seasons_sfx)): + ages_names, ages_ch = ages_sfx.get(index, ([], None)) + seasons_names, seasons_ch = seasons_sfx.get(index, ([], None)) + + if ages_ch is not None and seasons_ch is not None and ages_ch == seasons_ch: + # Genuinely the same sound in both games (identical decoded + # content) -- one shared file, named via whichever game's label + # isn't a placeholder guess (see module docstring). + out_dirs = [('common', _choose_name(ages_names, seasons_names), ages_ch)] + else: + # NOT necessarily "the same effect with per-game data" (unlike + # music's pirates.s): confirmed against real data that two + # completely unrelated sounds can coincidentally share a table + # index (e.g. Ages' sndMoveBlock2 and Seasons' + # sndDodongoOpenMouth both sit at index 0x7f) -- each game's own + # name is used for its own file rather than cross-picking one, + # since picking the other game's name here would silently + # mislabel this game's actual, unrelated sound. + out_dirs = [] + if ages_ch is not None: + out_dirs.append(('ages', ages_names[0], ages_ch)) + if seasons_ch is not None: + out_dirs.append(('seasons', seasons_names[0], seasons_ch)) + + for out_dir, name, channels in out_dirs: + text = render(channels, name, is_sfx=True) + out_path = os.path.join(REPO, f"audio/{out_dir}/sfx/{name}.mml") + with open(out_path, 'w') as f: + f.write(text) + written += 1 + print(f"wrote {os.path.relpath(out_path, REPO)}") + + print(f"\n{written} sound effect file(s) written") + + +if __name__ == '__main__': + if len(sys.argv) != 3: + print(f"Usage: {sys.argv[0]} ") + sys.exit(1) + dump(sys.argv[1], sys.argv[2]) diff --git a/tools/audio/mml2wla/__init__.py b/tools/audio/mml2wla/__init__.py new file mode 100644 index 000000000..78c80a330 --- /dev/null +++ b/tools/audio/mml2wla/__init__.py @@ -0,0 +1,7 @@ +"""mml2wla: convert mmlgb MML music into WLA-DX sound-engine channel data. + +See mml2wla_documentation.md at the repository root for the supported MML +dialect and a full description of how each command is translated. +""" + +__version__ = "0.2.0" diff --git a/tools/audio/mml2wla/__main__.py b/tools/audio/mml2wla/__main__.py new file mode 100644 index 000000000..fc2cb6b0d --- /dev/null +++ b/tools/audio/mml2wla/__main__.py @@ -0,0 +1,6 @@ +import sys + +from .cli import main + +if __name__ == '__main__': + sys.exit(main()) diff --git a/tools/audio/mml2wla/cli.py b/tools/audio/mml2wla/cli.py new file mode 100644 index 000000000..1f68b00f2 --- /dev/null +++ b/tools/audio/mml2wla/cli.py @@ -0,0 +1,267 @@ +"""Command-line entry point and single/batch file orchestration.""" + +import argparse +import os +import re +import sys +from typing import Dict, List, Optional, Tuple + +from .lexer import lex, MmlError +from .parser import Parser +from .emitter import emit_song +from .waveforms import WaveformAggregator, load_waveforms_json +from .noise import NoiseTable, load_noise_json +from .noise_envelope import NoiseEnvelopeAggregator + + +def label_name_from_base(file_base: str) -> str: + if not file_base: + return file_base + return file_base[0].upper() + file_base[1:] + + +# #TITLE/#COMPOSER/#SFX: file-level directives, not part of mmlgb's own +# grammar at all, so they're stripped out of the raw text before lexing +# rather than tokenized -- letting them reach the lexer would be actively +# wrong, not just unrecognized: e.g. the 'L' in "TITLE" or the 'C' in +# "COMPOSER" would be picked up as real tokens (the loop-marker command, a +# channel selector) once the rest of the line's letters get silently +# skipped as unmatched. +_TITLE_RE = re.compile(r'^#TITLE\b(.*)$', re.MULTILINE) +_COMPOSER_RE = re.compile(r'^#COMPOSER\b(.*)$', re.MULTILINE) +# Marks this file as a sound effect rather than music: A/B/C/D compile to +# this engine's separate sfx-override channel slots (2/3/5/7, see +# emitter.py's CHANNEL_NUM_SFX) instead of the music ones (0/1/4/6), and +# generated labels use the "snd" prefix (sndFooStart/...) instead of "mus" -- +# matching the reference disassembly's own mus/snd naming split for the two +# content types exactly (see audio/*/{mus,sfx}/*.s). +_SFX_RE = re.compile(r'^#SFX\b.*$', re.MULTILINE) +# Marks this file as a byte-accurate reproduction of real vanilla ROM data +# (see tools/audio/dumpMusicMml.py/dumpSfxMml.py -- every song/sfx dumped +# straight from a ROM gets this), which changes what `=X` means for the +# whole file: a raw, tempo-independent hardware frame count (what vanilla +# data actually is -- it has no tempo of its own) instead of a musical tick +# count (see parser.py's Parser.is_vanilla). Also switches on the +# automatic same-length-run detection for the shortNote/setDefaultLength +# space optimization (see emitter.py) -- a hand-authored file gets that +# same optimization too, but only for notes that already rely on `l` +# themselves, since which notes "share the same length" as a deliberate +# choice is something only the author actually knows. +_VANILLA_RE = re.compile(r'^#VANILLA\b.*$', re.MULTILINE) +# Obsolete: #FIX_REST_BLIP existed to work around a real audio.s bug where a +# chained `rest` retriggered an audible decay-to-silence envelope on every +# chunk. That's fixed now -- `rest` forces an instant, silent volume-0 write +# with no envelope stepping at all, so retriggering it produces no blip +# regardless of chaining. Kept recognized (and stripped, so it doesn't get +# misparsed as note data) purely so old .mml files with the directive don't +# suddenly fail to parse; it's a no-op now, and flagged as such below. +_FIX_REST_BLIP_RE = re.compile(r'^#FIX_REST_BLIP\b.*$', re.MULTILINE) +_VALID_TITLE_RE = re.compile(r'^[A-Za-z_][A-Za-z0-9_]*$') + + +def _extract_directives(text: str) -> Tuple[str, Optional[str], bool, bool, Optional[str]]: + """Strips file-level directive lines out of the source. Returns + (remaining_text, title_or_None, is_sfx, is_vanilla, + obsolete_directive_warning_or_None). #COMPOSER's value is recognized + and discarded -- it's documentation only, with no effect on the + output.""" + title: Optional[str] = None + + def _take_title(m: 're.Match') -> str: + nonlocal title + value = m.group(1).strip() + if title is None: + title = value + return '' + + text = _TITLE_RE.sub(_take_title, text) + text = _COMPOSER_RE.sub('', text) + is_sfx = _SFX_RE.search(text) is not None + text = _SFX_RE.sub('', text) + is_vanilla = _VANILLA_RE.search(text) is not None + text = _VANILLA_RE.sub('', text) + warning = None + if _FIX_REST_BLIP_RE.search(text) is not None: + warning = ("#FIX_REST_BLIP is obsolete and has no effect: the engine bug it worked " + "around (a chained `rest` audibly retriggering a decay envelope) is fixed " + "-- `rest` is now an instant, clean cutoff regardless of chaining. Safe to " + "remove this line.") + text = _FIX_REST_BLIP_RE.sub('', text) + + if title is not None and not _VALID_TITLE_RE.match(title): + raise MmlError( + f"Invalid #TITLE {title!r}: must be a valid label -- letters, digits, and " + f"underscore only, not starting with a digit -- since it's used directly in " + f"every generated label name (musTITLEStart/sndTITLEStart, musTITLEChannel0, " + f"etc).") + + return text, title, is_sfx, is_vanilla, warning + + +def convert_text(mml_text: str, file_base: str, waveform_agg: WaveformAggregator, + noise_envelope_agg: Optional[NoiseEnvelopeAggregator] = None, + noise_table: Optional[NoiseTable] = None, + json_waveforms: Optional[Dict[int, str]] = None, + known_noise_frequencies=None) -> Tuple[str, List[str]]: + """Parse+emit one MML source string. Returns (wla_text, warnings).""" + mml_text, title, is_sfx, is_vanilla, obsolete_directive_warning = _extract_directives(mml_text) + # #TITLE overrides every label/symbol this run would otherwise derive + # from the filename -- not just musStart/Channel/Loop, but also + # waveform_agg's/noise_envelope_agg's WF__.../"Used by" naming, + # since both are handed this same effective base. Useful whenever the + # filename itself isn't a valid or desired label component (spaces, + # dashes, or just a name you'd rather see in the generated asm). + effective_base = title if title is not None else file_base + tokens = lex(mml_text) + parser = Parser(tokens, json_waveforms=json_waveforms, + known_noise_frequencies=known_noise_frequencies, is_vanilla=is_vanilla) + song = parser.parse() + label_name = label_name_from_base(effective_base) + text = emit_song(song, label_name, effective_base, waveform_agg, noise_table=noise_table, + noise_envelope_agg=noise_envelope_agg, is_sfx=is_sfx, + json_waveforms=json_waveforms, is_vanilla=is_vanilla) + warnings = song.warnings + if obsolete_directive_warning: + warnings = [obsolete_directive_warning] + warnings + return text, warnings + + +def convert_file(input_path: str, output_path: str, waveform_agg: WaveformAggregator, + noise_envelope_agg: Optional[NoiseEnvelopeAggregator] = None, + noise_table: Optional[NoiseTable] = None, + json_waveforms: Optional[Dict[int, str]] = None, + known_noise_frequencies=None) -> List[str]: + with open(input_path, 'r') as f: + mml_text = f.read() + file_base = os.path.splitext(os.path.basename(output_path))[0] + text, warnings = convert_text(mml_text, file_base, waveform_agg, noise_envelope_agg, + noise_table=noise_table, json_waveforms=json_waveforms, + known_noise_frequencies=known_noise_frequencies) + with open(output_path, 'w') as f: + f.write(text) + return warnings + + +def _print_warnings(source_label: str, warnings: List[str]): + for w in warnings: + print(f"warning: {source_label}: {w}", file=sys.stderr) + + +def main(argv=None): + ap = argparse.ArgumentParser( + prog='mml2wla', + description='Convert mmlgb MML music into WLA-DX sound-engine channel data, as used ' + 'by the Zelda Oracle of Ages/Seasons disassembly and compatible projects.') + ap.add_argument('--batch', action='store_true', + help='Treat input/output as directories: convert every .mml file in ' + 'the input directory, with waveform deduplication shared across ' + 'the whole batch.') + ap.add_argument('--noise-envelope', action='store_true', + help="Give the noise channel exact @ve support by generating new " + "noise-table entries on the fly (deduplicated across a --batch run " + "the same way waveforms are) and referencing them directly in the " + "converted song, instead of dropping @ve on that channel. Writes " + "noise_new.s (or _noise_new.s without --batch) with the new " + "entries to merge into your project's noise table. See " + "mml2wla_documentation.md and noise_envelope.py for the alternative " + "of rewriting the song instead of extending the table.") + ap.add_argument('--waveforms-json', + help='Path to a waveforms.json manifest (see audio/common/waveforms.json ' + 'in the Zelda Oracle of Ages/Seasons disassembly): pre-existing named ' + 'waveforms a .mml file can reference by numeric id (@waveN) with no ' + 'local {...} definition of its own. Without this, every @waveN a ' + 'song uses must be locally defined in that same file.') + ap.add_argument('--noise-json', + help='Path to a noise.json manifest (see audio/common/noise.json in the ' + 'Zelda Oracle of Ages/Seasons disassembly): the target engine\'s ' + 'fixed noise-channel palette, replacing this tool\'s own compiled-in ' + 'reference copy (noise.py\'s REFERENCE_NOISE_ENTRIES) for ' + 'nearest-frequency matching, n$XX/alias validation, and noise-alias ' + 'definitions.') + ap.add_argument('input', help='Input .mml file, or input directory with --batch') + ap.add_argument('output', help='Output .s file, or output directory with --batch') + args = ap.parse_args(argv) + + had_warnings = False + noise_envelope_agg = NoiseEnvelopeAggregator() if args.noise_envelope else None + json_waveforms = load_waveforms_json(args.waveforms_json) if args.waveforms_json else None + if args.noise_json: + noise_table, known_noise_frequencies, _names = load_noise_json(args.noise_json) + else: + noise_table, known_noise_frequencies = None, None + + if args.batch: + if not os.path.isdir(args.input): + print(f"error: {args.input} is not a directory", file=sys.stderr) + return 1 + os.makedirs(args.output, exist_ok=True) + mml_files = sorted(f for f in os.listdir(args.input) if f.lower().endswith('.mml')) + if not mml_files: + print(f"warning: no .mml files found in {args.input}", file=sys.stderr) + waveform_agg = WaveformAggregator() + for fname in mml_files: + in_path = os.path.join(args.input, fname) + file_base = os.path.splitext(fname)[0] + out_path = os.path.join(args.output, file_base + '.s') + try: + warnings = convert_file(in_path, out_path, waveform_agg, noise_envelope_agg, + noise_table=noise_table, json_waveforms=json_waveforms, + known_noise_frequencies=known_noise_frequencies) + except MmlError as e: + print(f"error: {fname}: {e}", file=sys.stderr) + return 1 + if warnings: + had_warnings = True + _print_warnings(fname, warnings) + print(f"converted {fname} -> {os.path.relpath(out_path)}") + waveforms_text = waveform_agg.emit() + if waveforms_text: + wf_path = os.path.join(args.output, 'waveforms_new.s') + with open(wf_path, 'w') as f: + f.write(waveforms_text) + print(f"wrote {os.path.relpath(wf_path)} ({len(waveform_agg.entries)} new waveform(s))") + if noise_envelope_agg is not None: + noise_text = noise_envelope_agg.emit() + if noise_text: + ne_path = os.path.join(args.output, 'noise_new.s') + with open(ne_path, 'w') as f: + f.write(noise_text) + print(f"wrote {os.path.relpath(ne_path)} " + f"({len(noise_envelope_agg.entries)} new noise-table entr" + f"{'y' if len(noise_envelope_agg.entries) == 1 else 'ies'})") + else: + waveform_agg = WaveformAggregator() + try: + warnings = convert_file(args.input, args.output, waveform_agg, noise_envelope_agg, + noise_table=noise_table, json_waveforms=json_waveforms, + known_noise_frequencies=known_noise_frequencies) + except MmlError as e: + print(f"error: {args.input}: {e}", file=sys.stderr) + return 1 + if warnings: + had_warnings = True + _print_warnings(os.path.basename(args.input), warnings) + print(f"converted {args.input} -> {args.output}") + waveforms_text = waveform_agg.emit() + if waveforms_text: + base = os.path.splitext(args.output)[0] + wf_path = base + '_waveforms_new.s' + with open(wf_path, 'w') as f: + f.write(waveforms_text) + print(f"wrote {wf_path} ({len(waveform_agg.entries)} new waveform(s))") + if noise_envelope_agg is not None: + noise_text = noise_envelope_agg.emit() + if noise_text: + base = os.path.splitext(args.output)[0] + ne_path = base + '_noise_new.s' + with open(ne_path, 'w') as f: + f.write(noise_text) + print(f"wrote {ne_path} " + f"({len(noise_envelope_agg.entries)} new noise-table entr" + f"{'y' if len(noise_envelope_agg.entries) == 1 else 'ies'})") + + if had_warnings: + print("warning: some MML features had no equivalent in this engine's format and " + "were dropped or approximated; see warnings above.", file=sys.stderr) + + return 0 diff --git a/tools/audio/mml2wla/emitter.py b/tools/audio/mml2wla/emitter.py new file mode 100644 index 000000000..2994605c7 --- /dev/null +++ b/tools/audio/mml2wla/emitter.py @@ -0,0 +1,753 @@ +"""Walks a channel's structured event tree and produces WLA-DX text using +the target engine's real macros (note/rest/sust/vol/env/duty/vibrato/goto/ +cmdff), matching the reference disassembly's own mus/*.s conventions. +(`sust` -- a tie/sustain, extending the current note/rest without +retriggering -- was named `rest2` prior to a since-landed engine fix; see +musicMacros.s.) + +This is where tick lengths finally get resolved into frame counts (see +timing.py for why that has to happen here rather than during parsing): each +channel gets its own FrameResolver carrying rounding error forward so the +channel's cumulative timeline never drifts, no matter how many notes it has. + +Repeat blocks (`[...]n` in the source) get special handling for the same +reason. WLA's `.rept` duplicates literal bytes -- it cannot represent +"repeat this pattern, but round slightly differently each time to stay in +sync," which is what fully-accurate playback calls for whenever a block's +iterations don't round identically (they only do by coincidence: the real +Game Boy frame rate, 4194304/70224 Hz, reduces to a fraction with a +denominator of 3*7*11*19, so an exact repeat requires a fairly specific +relationship between a block's tick length and the current tempo). Rather +than approximate that away, every repeat block is unrolled: each iteration +is rendered independently with the carry evolving with full accuracy +across all of them, with no tolerance involved at all. (An earlier version +of this tool allowed a small, bounded amount of drift here in exchange for +more `.rept` output; that traded away exactly the guarantee this timing +model exists to provide; a converted song audibly sounding "off" in-game +after that change was the concrete signal that the tradeoff wasn't worth +it, so it's gone.) + +A second, independent, genuinely lossless pass (_collapse_repeated_lines) +then scans each channel's *fully rendered* output for any run of +literally-identical consecutive lines -- from repeat blocks whose +iterations happened to round identically anyway, from a repeated `@@` +macro call inlined at multiple sites, or from coincidentally-identical +default-length notes -- and merges it into `.rept`. Since it only ever +compares text that's already been computed with full accuracy, this one +involves no approximation at all. + +Separately, redundant `vol`/`duty`/`vibrato`/`env` assignments (re-issuing +a value a channel already has) are dropped outright, since they're +confirmed no-ops on real hardware (see _emit_env's comment for why this is +true of `env` too, despite looking at first glance like it should restart +something). This tracking resets at the loop point (see `_emit_ev`'s `loop` +case): a command there that looks redundant against the intro's history +isn't provably redundant against how the loop body itself left that state +on the previous lap, so the first occurrence of each kind after the loop +label is always kept. +""" + +import re +from typing import Dict, List, Optional, Tuple + +from .parser import Ev, RepeatBlock, Song, structure +from .timing import FrameResolver, chunk_length +from .notes import resolve_pitch, NOTE_ENUM +from .noise import DEFAULT_NOISE_TABLE, NoiseTable +from .waveforms import WaveformAggregator +from .envelope import best_attack_pace +from .noise_envelope import NoiseEnvelopeAggregator +from .tempo import resolve_tempo + +DEFAULT_VOLUME = 15 # matches mmlgb driver default (mus_volume1/2/4 = 0xF0) + +# MML channel index (0=A,1=B,2=C,3=D) -> target engine music channel number. +CHANNEL_NUM = {0: 0, 1: 1, 2: 4, 3: 6} +# Sfx files (see cli.py's #SFX directive) use a separate set of 4 engine +# channel slots for the exact same 4 physical channels -- letting a sound +# effect briefly override whatever music is already using 0/1/4/6 without +# clobbering it (confirmed by reading standardSoundCmd's dispatch table and +# channelCmdf0/standardCmdChannel6/7 in code/audio.s, which all treat +# 2/3/5/7 as the wave/noise/pulse counterparts of 0/1/4/6 exactly). +CHANNEL_NUM_SFX = {0: 2, 1: 3, 2: 5, 3: 7} +# Emission order matches the convention used by every real reference example +# (melody/square2 first, then square1, then wave, then noise). +CHANNEL_EMIT_ORDER = [1, 0, 2, 3] + + +# Max size (in lines) of a repeating chunk this pass will look for. Bounded +# purely to keep the O(lines * chunk_size) scan fast on large songs; the +# reference disassembly's own hand-written `.rept` blocks are a handful of +# lines, so this comfortably covers realistic musical phrases. +_COLLAPSE_MAX_CHUNK = 64 + + +def _is_hard_boundary(line: str) -> bool: + # Labels (e.g. a loop point) and existing .rept/.endr markers must never + # end up straddled or duplicated by a chunk from this pass. + return line.endswith(':') or line.startswith('.rept') or line == '.endr' + + +def _collapse_repeated_lines(lines: List[str]) -> List[str]: + """Replaces any run of literally-identical consecutive line-groups with + `.rept N ... .endr`. Purely a text-level exact-equality compression: it + never reinterprets or adjusts any already-computed value, so unlike the + tolerance-bounded repeat-block handling above, this never trades away + any timing accuracy -- it only ever merges output that was already + going to play back identically. This is what actually catches most + real-world compaction opportunities in practice, since it doesn't care + what produced the repetition: an explicit `[...]n` block, a repeated + `@@` macro call, or coincidentally-identical runs of same-length, + same-pitch notes are all found the same way. + """ + out: List[str] = [] + n = len(lines) + i = 0 + while i < n: + if _is_hard_boundary(lines[i]): + out.append(lines[i]) + i += 1 + continue + + best_chunk, best_reps, best_savings = None, None, 0 + max_chunk = min(_COLLAPSE_MAX_CHUNK, (n - i) // 2) + for chunk in range(1, max_chunk + 1): + if any(_is_hard_boundary(l) for l in lines[i:i + chunk]): + break # larger chunk sizes only include more of the same boundary + reps = 1 + while (i + (reps + 1) * chunk <= n and + lines[i + reps * chunk: i + (reps + 1) * chunk] == lines[i:i + chunk]): + reps += 1 + if reps >= 2: + savings = chunk * (reps - 1) - 2 # 2 lines of overhead: .rept/.endr + if savings > best_savings: + best_chunk, best_reps, best_savings = chunk, reps, savings + + if best_chunk is not None: + out.append(f".rept {best_reps}") + out.extend(lines[i:i + best_chunk]) + out.append(".endr") + i += best_chunk * best_reps + else: + out.append(lines[i]) + i += 1 + return out + + +_NOTE_LINE_RE = re.compile(r'^note (\S+) +\$([0-9a-f]{2})$') + + +def _apply_default_length(lines: List[str], loop_label: str) -> List[str]: + """Rewrites a run of 3+ consecutive single-trigger notes (no chained + `sust` -- see _emit_note) that all share the same length into + `setDefaultLength` (2 bytes, once) + one `shortNote` per note (1 byte + each, see musicMacros.s) instead of `note NAME $LEN` (2 bytes each). + 3 is the real breakeven point: 2 notes cost 4 bytes either way (2*2 + plain vs 2-byte setup + 2*1), so only 3+ actually saves anything. + + Purely a byte-count optimization -- every note's own audible length is + completely unchanged, this only changes how many bytes it takes to + request it. Conservative on purpose: only strictly consecutive note + lines are considered, so a vol/env/etc. change between two otherwise- + matching notes just means this pass doesn't merge across it, not a + correctness risk -- see ChannelEmitter.emit(), which only calls this + for the square channels (A/B), matching the engine's own current + support. + + shortNote/setDefaultLength are themselves `.ifndef BUILD_VANILLA` in + musicMacros.s (a genuinely new, non-vanilla-compatible opcode, unlike + e.g. release/pitchSlide, which are real vanilla opcodes this tool was + already using unconditionally) -- so every optimized run is wrapped in + the same guard here, with the untouched original notes as the + `.else` fallback, keeping a BUILD_VANILLA compile exactly byte-for-byte + what it already was.""" + out = [] + i, n = 0, len(lines) + current_default = None # the engine's actual wChannelDefaultLength, once known + while i < n: + if lines[i] == f"{loop_label}:": + # A fresh `goto`-driven pass through the loop body can't assume + # anything this pass decided during the (chronologically + # earlier, but textually-first) intro -- same reasoning as + # _emit_ev's own loop-reset comment for vol/env/etc. + current_default = None + out.append(lines[i]) + i += 1 + continue + m = _NOTE_LINE_RE.match(lines[i]) + if not m: + out.append(lines[i]) + i += 1 + continue + length_hex = m.group(2) + j = i + run = [] + while j < n: + m2 = _NOTE_LINE_RE.match(lines[j]) + if not m2 or m2.group(2) != length_hex: + break + run.append(m2.group(1)) + j += 1 + if len(run) >= 3: + out.append(".ifndef BUILD_VANILLA") + if current_default != length_hex: + out.append(f"setDefaultLength ${length_hex}") + current_default = length_hex + for note_name in run: + out.append(f"shortNote {NOTE_ENUM.index(note_name)}") + out.append(".else") + out.extend(lines[i:j]) + out.append(".endif") + else: + out.extend(lines[i:j]) + i = j + return out + + +class ChannelEmitter: + def __init__(self, song: Song, label_name: str, file_base: str, ch: int, + waveform_agg: WaveformAggregator, noise_table: NoiseTable, + noise_envelope_agg: Optional[NoiseEnvelopeAggregator] = None, + resolved_iter=None, is_sfx: bool = False, + json_waveforms: Optional[Dict[int, str]] = None, + is_vanilla: bool = False): + self.song = song + self.label_name = label_name + self.file_base = file_base + self.ch = ch + self.is_sfx = is_sfx + self.is_vanilla = is_vanilla + self.label_prefix = 'snd' if is_sfx else 'mus' + self.engine_ch = (CHANNEL_NUM_SFX if is_sfx else CHANNEL_NUM)[ch] + self.waveform_agg = waveform_agg + self.noise_table = noise_table + self.noise_envelope_agg = noise_envelope_agg + self.json_waveforms: Dict[int, str] = json_waveforms or {} + # Non-#VANILLA shortNote tracking only (see _emit_note) -- the + # #VANILLA automatic pass (_apply_default_length) tracks its own + # separately, as a text-level post-pass. + self._authored_default_length: Optional[int] = None + # One resolved value per tick-consuming/vibrato event on this + # channel, in playback order, from tempo.resolve_tempo -- NOT each + # event's own Ev.bpm field, which only reflects source-text order + # and is wrong whenever a tempo change lives on a different channel + # (or lands mid-note) than the one reading it (see tempo.py's + # module docstring). For note/noise_literal/rest/wait, the value is + # an *exact frame count* already blended across any tempo change + # that landed mid-event -- feed it to `resolver.resolve_exact`, not + # `resolver.resolve`. For vibrato, it's a plain bpm, unchanged. + self.resolved_iter = iter(resolved_iter) if resolved_iter is not None else None + self.lines: List[str] = [] + self.wave_id: Optional[int] = None + self.wave_is_const: bool = False # True after a @wave[LABEL] select + self.wave_vol: int = 3 # matches mmlgb driver default (100%) + self.cur_vol: int = DEFAULT_VOLUME # square/noise channels only + self.noise_pace: int = 0 # noise channel only, used only when noise_envelope_agg is set + self.noise_dir: Optional[str] = None + self._last_duty_key: Optional[Tuple] = None + # Redundant-assignment tracking (square/noise `vol`, square `duty`, + # `vibrato`, `env`, and pitchOffset/pitchSlide below): None until + # the first real command of that kind is seen, so the *first* one + # is always emitted regardless of its value -- we don't know what + # the engine's actual register state is before that (unlike mmlgb, + # nothing here guarantees it starts at any particular default). See + # _emit_env_bytes for why re-issuing an identical `env` is also + # safe to drop, despite looking at first glance like it should + # restart something. + self._last_emitted_vol: Optional[int] = None + self._last_emitted_wd: Optional[int] = None + self._last_emitted_vibrato_byte: Optional[int] = None + self._last_emitted_env: Optional[Tuple[int, int]] = None + self._last_emitted_pitch_offset: Optional[int] = None + self._last_emitted_pitch_slide: Optional[int] = None + self._loop_emitted = False + self.loop_label = f"{self.label_prefix}{label_name}Channel{self.engine_ch}Loop" + self.resolver = FrameResolver() + + def emit(self, tree: list) -> List[str]: + self._emit_nodes(tree) + if self.is_vanilla and self.ch in (0, 1): + # setDefaultLength/shortNote (see musicMacros.s) only exist on + # the square channels so far ("square channels only for now" -- + # its own comment) -- this applies equally to a music channel + # (engine 0/1) or an sfx one (engine 2/3), both of which + # dispatch through the same @channel0To3 short-note check. + # + # #VANILLA only: a byte-accurate ROM reproduction has no + # authored `l` defaults to go on (every note already carries + # its own exact length -- see #VANILLA's effect on `=X`), so + # this looks for same-length runs after the fact instead. A + # hand-authored file gets the equivalent optimization live, in + # _emit_note, keyed on Ev.used_default_length -- an explicit + # signal from the author (via `l`) rather than a guess. + self.lines = _apply_default_length(self.lines, self.loop_label) + return self.lines + + def _emit_nodes(self, nodes: list): + i, n = 0, len(nodes) + while i < n: + node = nodes[i] + if isinstance(node, RepeatBlock): + self._emit_repeat(node) + else: + self._emit_ev(node) + i += 1 + + def _emit_repeat(self, block: RepeatBlock): + # Renders one iteration, then checks FrameResolver's own carry + # (snapshot/restore -- see timing.py's own docstring, which names + # this exact use) before vs. after: if it comes back to the same + # value, every remaining iteration is mathematically guaranteed to + # round identically to the first (nothing else feeds into that + # rounding), so it's safe to emit one real WLA-DX `.rept` instead of + # unrolling -- zero timing/accuracy cost, since the text really is + # byte-for-byte what every iteration would have produced anyway. + # `=N` frame-exact lengths never touch carry at all, so a block + # built entirely from them is always carry-neutral and always + # collapses this way -- exactly the case a byte-accurate vanilla + # reproduction needs (see #VANILLA in mml_documentation.md). + # + # When it isn't carry-neutral, later iterations can legitimately + # round differently from the first (e.g. a tick length whose + # fractional remainder doesn't return to zero over one full pass) -- + # unrolling in full is the only way to keep every iteration's timing + # exact, so that's the fallback, same as before. Even then, + # _collapse_repeated_lines below may still separately find and merge + # a byte-identical run, just without this method's own guarantee. + if block.count < 2: + for _ in range(block.count): + self._emit_nodes(block.children) + return + + carry_before = self.resolver.snapshot() + first_iteration = self._render_once(block.children) + carry_after = self.resolver.snapshot() + + if abs(carry_after - carry_before) < 1e-9: + self.lines.append(f".rept {block.count}") + self.lines.extend(first_iteration) + self.lines.append(".endr") + # The remaining iterations' *text* is already proven identical + # and doesn't need re-emitting, but resolved_iter/self.resolver + # still need to land exactly where `count` real iterations would + # have left them, for whatever comes after this block. + for _ in range(block.count - 1): + self._render_once(block.children) + else: + self.lines.extend(first_iteration) + for _ in range(block.count - 1): + self._emit_nodes(block.children) + + def _render_once(self, nodes: list) -> List[str]: + saved = self.lines + self.lines = [] + self._emit_nodes(nodes) + rendered = self.lines + self.lines = saved + return rendered + + def _emit_ev(self, ev: Ev): + k = ev.kind + if k == 'note': + self._emit_note(ev) + elif k == 'noise_literal': + self._emit_noise_literal(ev) + elif k == 'raw_freq': + self._emit_raw_freq(ev) + elif k == 'noise_raw_env': + # @er: always a literal raw `cmdf0 $XX` hardware envelope write, + # re-issued verbatim on every occurrence -- see parser.py's + # handling for why this can't be deduped like vol/duty/env + # (each one is paired with the specific note event that follows + # it, observed in every real vanilla use). + byte = (ev.a << 4) | (ev.b << 3) | ev.c + self.lines.append(f"cmdf0 ${byte:02x}") + elif k == 'freq_mode': + # @fm: same underlying `cmdf0 $XX` command as @er, but on a + # square channel this byte means something entirely different + # (see channelCmdf0) -- a one-way switch into raw-frequency mode + # for the rest of this channel, not an envelope write. + self.lines.append(f"cmdf0 ${ev.a:02x}") + elif k == 'rest': + # A real, instant, clean cutoff regardless of chaining -- no + # workaround needed here (an earlier version of this engine had + # a chained-rest audible-blip bug; that's fixed now, see + # cli.py's #FIX_REST_BLIP handling). + exact_frames = next(self.resolved_iter) + frames = self.resolver.resolve_exact(exact_frames) + for chunk in chunk_length(frames): + self.lines.append(f"rest ${chunk:02x}") + elif k == 'wait': + exact_frames = next(self.resolved_iter) + frames = self.resolver.resolve_exact(exact_frames) + for chunk in chunk_length(frames): + self.lines.append(f"sust ${chunk:02x}") + elif k == 'release': + # @rl: a tool-specific extension with no mmlgb equivalent (see + # lexer.py) -- maps 1:1 to the engine's own `release` opcode + # ($f5), which decays from the channel's current volume at a + # fixed pace. Emitted plainly, chunk by chunk, the same as + # `wait`/sust above -- there's no blip concern here (that was + # only ever a `rest`-chaining bug, long since fixed) and nothing + # else to collapse or group. + exact_frames = next(self.resolved_iter) + frames = self.resolver.resolve_exact(exact_frames) + for chunk in chunk_length(frames): + self.lines.append(f"release ${chunk:02x}") + elif k == 'tempo': + pass # informational only -- already consumed by tempo.resolve_tempo + elif k == 'vol': + if self.ch == 2: + self.wave_vol = ev.a + if self.wave_is_const: + self.song.warn( + "volume (v) has no effect on a @wave[LABEL]-selected waveform in this " + "engine: volume is baked into the pre-scaled waveform data, and an " + "externally-defined label can't be re-scaled here; ignored", ev.line) + else: + self._maybe_emit_duty() + else: + self.cur_vol = ev.a + self._emit_vol_raw(ev.a) + elif k == 'vol_raw': + # @vr: always a literal `vol $N` engine command regardless of + # channel -- see parser.py's handling for why the wave channel + # needs this bypass around `v`'s own pre-scaled-waveform model. + self.cur_vol = ev.a + self._emit_vol_raw(ev.a) + elif k == 'env': + self._emit_env(ev) + elif k == 'env_raw': + self._emit_env_raw(ev) + elif k == 'pitch_offset': + if ev.a != self._last_emitted_pitch_offset: + self._last_emitted_pitch_offset = ev.a + self.lines.append(f"pitchOffset ${ev.a & 0xff:02x}") + elif k == 'pitch_slide': + if ev.a != self._last_emitted_pitch_slide: + self._last_emitted_pitch_slide = ev.a + self.lines.append(f"pitchSlide ${ev.a & 0xff:02x}") + elif k == 'wd': + if ev.a != self._last_emitted_wd: + self._last_emitted_wd = ev.a + self.lines.append(f"duty ${ev.a:x}") + elif k == 'wave_select': + if ev.a in self.json_waveforms: + # References a waveform that already exists elsewhere in the + # target project (e.g. audio/common/waveforms.json), by its + # numeric id -- as opposed to a locally `@waveN = {...}` + # -defined one, which names data defined in this .mml file + # and gets generated (and deduplicated) via + # WaveformAggregator. So no aggregator request here: the + # existing entry's name is emitted as-is, and no new + # waveform data is added to the output waveform list. + self.wave_id = None # numeric wave_id no longer applies + self.wave_is_const = True + self._maybe_emit_duty_const(self.json_waveforms[ev.a]) + elif ev.a not in self.song.waves: + self.song.warn(f"@wave{ev.a} was never defined; skipping duty change", ev.line) + return + else: + self.wave_id = ev.a + self.wave_is_const = False + self._maybe_emit_duty() + elif k == 'vibrato': + self._emit_vibrato(ev) + elif k == 'loop': + if not self._loop_emitted: + self.lines.append(f"{self.loop_label}:") + self._loop_emitted = True + # Redundant-assignment tracking (see __init__) reflects + # linear playback history, which is only valid for however + # the channel actually arrived here. On the first pass + # through, that's a straight fall-through from the intro; on + # every later pass, it's a `goto` from the *end* of the loop + # body -- a different, and from here unknowable, state. A + # command right after the loop point that happens to match + # the value already active at the *end of the intro* is + # therefore not provably redundant: it may be exactly what's + # needed to re-normalize state that the loop body left + # different by the time it jumps back. So every kind of + # redundant-assignment tracking resets here, forcing the + # next occurrence of each to be emitted regardless of its + # value. Once that's happened, normal deduping resumes for + # the rest of the loop body, which is safe: from that point + # on, every iteration replays the identical sequence of + # commands, so a repeat with nothing state-changing in + # between really is a no-op on every iteration alike. + self._last_emitted_vol = None + self._last_emitted_wd = None + self._last_emitted_vibrato_byte = None + self._last_emitted_env = None + self._last_duty_key = None + self._last_emitted_pitch_offset = None + self._last_emitted_pitch_slide = None + self._authored_default_length = None + elif k == 'comment': + self.lines.append(ev.a) # already includes the leading ';' + else: + raise ValueError(f"internal: unhandled event kind {k!r}") + + def _emit_env(self, ev: Ev): + if self.ch == 3: + if self.noise_envelope_agg is not None: + # --noise-envelope: track it instead of dropping it -- an + # envelope-affected note requests an exact new table entry + # in _emit_note below, rather than a nearest-frequency match. + self.noise_pace = abs(ev.a) + self.noise_dir = 'inc' if ev.a > 0 else ('dec' if ev.a < 0 else None) + return + self.song.warn( + "volume envelope (@ve) cannot be controlled on the noise channel in this " + "engine: its envelope pace is fixed per noise type (baked into the noise " + "table entry chosen for each note's frequency, not settable by command); " + "dropped. `vol` still works normally on this channel, or pass " + "--noise-envelope to generate exact new table entries instead.", ev.line) + return + + if ev.a > 0: + if self.cur_vol == 0: + # Exact match: this engine now has a real hardware envelope + # fade-in (env's attack param with bit 3 set), which starts + # at volume 0 and climbs to 15 entirely in hardware at the + # given pace -- identical to what mmlgb's own increasing + # @ve does whenever the current volume is already 0 (mmlgb + # always sweeps from the current `v`, so this is only an + # exact match at v=0; see the `else` below for other + # starting volumes, where no such hardware feature exists). + start = 0x8 | ev.a + end = 0 + else: + # Not a direct match (see envelope.py) -- this engine's + # only other attack option always starts at volume 1 and + # only climbs up to the target, never to 15, so it's + # approximated by matching real-world sweep duration + # instead. + pace, warning = best_attack_pace(self.cur_vol, ev.a) + if warning: + self.song.warn(warning, ev.line) + start = pace or 0 + end = 0 + else: + # Decreasing (or disabled) envelope: exact match, direct passthrough. + start = 0 + end = -ev.a if ev.a < 0 else 0 + # Safe to dedupe like vol/duty/vibrato: confirmed against + # code/audio.s that the `env` command handler (cmde0Toef) only + # stores the two values for whichever note triggers next -- it does + # not itself touch wChannelEnvelopeStates (that only resets, i.e. + # actually restarts the attack/decay sequence, in the note-trigger + # path), so re-issuing identical values has no effect to preserve. + self._emit_env_bytes(start, end) + + def _emit_env_raw(self, ev: Ev): + # @ea: same scope restriction as @ve (see _emit_env above) -- the + # noise channel's envelope pace is baked into its fixed noise-table + # entries, not settable by command. + if self.ch == 3: + if self.noise_envelope_agg is not None: + self.noise_pace = ev.b + self.noise_dir = 'inc' if ev.a & 0x8 else ('dec' if ev.b else None) + return + self.song.warn( + "volume envelope (@ea) cannot be controlled on the noise channel in this " + "engine: its envelope pace is fixed per noise type; dropped. `vol` still " + "works normally on this channel, or pass --noise-envelope to generate exact " + "new table entries instead.", ev.line) + return + self._emit_env_bytes(ev.a, ev.b) + + def _emit_env_bytes(self, start: int, end: int): + # Safe to dedupe like vol/duty/vibrato: confirmed against + # code/audio.s that the `env` command handler (cmde0Toef) only + # stores the two values for whichever note triggers next -- it does + # not itself touch wChannelEnvelopeStates (that only resets, i.e. + # actually restarts the attack/decay sequence, in the note-trigger + # path), so re-issuing identical values has no effect to preserve. + key = (start, end) + if key != self._last_emitted_env: + self._last_emitted_env = key + self.lines.append(f"env ${start:x} ${end:x}") + + def _emit_vol_raw(self, value: int): + if value != self._last_emitted_vol: + self._last_emitted_vol = value + self.lines.append(f"vol ${value:x}") + + def _emit_vibrato(self, ev: Ev): + depth = max(0, min(15, ev.a)) + delay_ticks = ev.b + bpm = next(self.resolved_iter) + wait_code = 0 + if delay_ticks is not None: + if ev.frame_exact: + # mmlgb's `=X` syntax: delay_ticks is already an exact frame + # count, not ticks -- see Ev.frame_exact. + delay_frames = delay_ticks + else: + delay_frames = self.resolver.resolve_no_carry(delay_ticks, bpm) + wait_code = round(delay_frames / 2) + if wait_code > 15: + self.song.warn( + f"vibrato delay ({delay_frames} frames) exceeds this engine's " + f"representable range (max 30 frames); clamped", ev.line) + wait_code = 15 + byte = (wait_code << 4) | depth + if byte != self._last_emitted_vibrato_byte: + self._last_emitted_vibrato_byte = byte + self.lines.append(f"vibrato ${byte:02x}") + + def _maybe_emit_duty(self): + if self.wave_id is None: + return + key = ('id', self.wave_id, self.wave_vol) + if key == self._last_duty_key: + return + self._last_duty_key = key + symbol = self.waveform_agg.request( + self.song.waves[self.wave_id], self.wave_vol, self.file_base, self.wave_id) + self.lines.append(f"duty {symbol}") + + def _maybe_emit_duty_const(self, label: str): + key = ('const', label) + if key == self._last_duty_key: + return + self._last_duty_key = key + self.lines.append(f"duty {label}") + + def _emit_note(self, ev: Ev): + note_idx, octave = ev.a, ev.b + exact_frames = next(self.resolved_iter) + frames = self.resolver.resolve_exact(exact_frames) + chunks = chunk_length(frames) + if not chunks: + return + if self.ch == 3: + if self.noise_envelope_agg is not None and self.noise_pace > 0 and self.noise_dir: + byte = self.noise_envelope_agg.request( + octave, note_idx, self.noise_pace, self.noise_dir, self.file_base, ev.line) + else: + byte = self.noise_table.nearest(octave, note_idx) + self.lines.append(f"note ${byte:02x} ${chunks[0]:02x}") + else: + name, warning = resolve_pitch(self.ch, octave, note_idx) + if warning: + self.song.warn(warning, ev.line) + if (not self.is_vanilla and self.ch in (0, 1) + and ev.used_default_length and len(chunks) == 1): + # The author already opted into this length being "the + # default" by omitting it (relying on `l`) -- see + # Ev.used_default_length's own docstring for why that's the + # right signal here instead of guessing from same-length + # runs (which is what the #VANILLA path below does + # instead). len(chunks) == 1 excludes a note long enough to + # need chained `sust` continuations, same restriction as + # the #VANILLA path. + self.lines.append(".ifndef BUILD_VANILLA") + if self._authored_default_length != chunks[0]: + self.lines.append(f"setDefaultLength ${chunks[0]:02x}") + self._authored_default_length = chunks[0] + self.lines.append(f"shortNote {NOTE_ENUM.index(name)}") + self.lines.append(".else") + self.lines.append(f"note {name:<4}${chunks[0]:02x}") + self.lines.append(".endif") + else: + self.lines.append(f"note {name:<4}${chunks[0]:02x}") + for c in chunks[1:]: + self.lines.append(f"sust ${c:02x}") + + def _emit_noise_literal(self, ev: Ev): + # An explicitly-chosen noise pitch byte (n$XX / @alias), bypassing + # noise_table.nearest()/noise_envelope_agg entirely -- the whole + # point is picking one of the fixed table entries exactly, so there + # is nothing to nearest-match or generate a new entry for here. + byte = ev.a + exact_frames = next(self.resolved_iter) + frames = self.resolver.resolve_exact(exact_frames) + chunks = chunk_length(frames) + if not chunks: + return + if self.noise_envelope_agg is not None and self.noise_pace > 0 and self.noise_dir: + self.song.warn( + "volume envelope (@ve) has no effect on an explicitly-chosen noise pitch " + "(n$XX/@alias): it selects a fixed, existing noise table entry with its own " + "baked-in envelope, rather than requesting a new one; ignored here", ev.line) + self.lines.append(f"note ${byte:02x} ${chunks[0]:02x}") + for c in chunks[1:]: + self.lines.append(f"sust ${c:02x}") + + def _emit_raw_freq(self, ev: Ev): + # @rf: a literal raw hardware frequency (see @fm/parser.py), emitted + # as the plain `.db lo hi wait` triple this engine's raw-frequency + # mode actually reads -- matching every real vanilla use (there's no + # named engine macro for this triple; it's always written as raw + # .db bytes in the reference disassembly too). Overflow past one + # byte's length re-emits the *same* frequency triple for each + # remaining chunk rather than chaining `sust` like a regular note: + # once this channel is in raw-frequency mode, a literal $61 byte is + # no longer dispatched as sust at all -- it would just be consumed + # as another raw frequency's low byte instead (confirmed by reading + # @channel0To3 in code/audio.s, which only checks for $60/$61 in the + # *non*-raw-frequency branch) -- so re-triggering the identical + # frequency is the only correct way to hold it past 255 frames. + value = ev.a + lo, hi = value & 0xff, (value >> 8) & 0xff + exact_frames = next(self.resolved_iter) + frames = self.resolver.resolve_exact(exact_frames) + for chunk in chunk_length(frames): + self.lines.append(f".db ${lo:02x} ${hi:02x} ${chunk:02x}") + +def emit_song(song: Song, label_name: str, file_base: str, waveform_agg: WaveformAggregator, + noise_table: NoiseTable = None, + noise_envelope_agg: Optional[NoiseEnvelopeAggregator] = None, + is_sfx: bool = False, + json_waveforms: Optional[Dict[int, str]] = None, + is_vanilla: bool = False) -> str: + noise_table = noise_table or DEFAULT_NOISE_TABLE + channel_num = CHANNEL_NUM_SFX if is_sfx else CHANNEL_NUM + label_prefix = 'snd' if is_sfx else 'mus' + out = [] + out.append(f"{label_prefix}{label_name}Start:") + out.append("") + + used = [ch for ch in range(4) if song.channels[ch]] + + # Tempo is global and must be resolved chronologically across all four + # channels together, not per-channel -- e.g. a dedicated "tempo + # control" channel's `t` commands have to affect every other channel + # starting at the real-time moment *that* channel's own playback + # reaches them, regardless of which channel's line they were written + # on or where that falls in the source text. See tempo.py. + trees = [structure(song.channels[ch]) for ch in range(4)] + resolved_bpms = resolve_tempo(trees) + + for ch in CHANNEL_EMIT_ORDER: + engine_ch = channel_num[ch] + if ch not in used: + continue + events = song.channels[ch] + has_loop = any(e.kind == 'loop' for e in events) + tree = trees[ch] + + out.append(f"{label_prefix}{label_name}Channel{engine_ch}:") + emitter = ChannelEmitter(song, label_name, file_base, ch, waveform_agg, noise_table, + noise_envelope_agg, resolved_bpms[ch], is_sfx=is_sfx, + json_waveforms=json_waveforms, is_vanilla=is_vanilla) + body_lines = [] + body_lines.extend(emitter.emit(tree)) + body_lines = _collapse_repeated_lines(body_lines) + for line in body_lines: + out.append("\t" + line) + if has_loop: + out.append(f"\tgoto {emitter.loop_label}") + out.append("\tcmdff") + out.append("") + + for ch in CHANNEL_EMIT_ORDER: + engine_ch = channel_num[ch] + if ch not in used: + out.append(f".define {label_prefix}{label_name}Channel{engine_ch} " + f"MUSIC_CHANNEL_FALLBACK EXPORT") + + text = '\n'.join(out).rstrip() + '\n' + return text diff --git a/tools/audio/mml2wla/envelope.py b/tools/audio/mml2wla/envelope.py new file mode 100644 index 000000000..12742e959 --- /dev/null +++ b/tools/audio/mml2wla/envelope.py @@ -0,0 +1,93 @@ +"""Volume envelope translation for the square channels. + +mmlgb's `@ve[n]` writes straight to the real Game Boy hardware envelope +register (verified against mmlgb-src/driver/music.c: `NRx2_REG = mus_volume +| mus_env`, with `mus_env` being exactly the signed pace byte from `@ve`). +On real hardware this means: the note starts at whatever volume `v` set, +and the hardware envelope steps it toward 15 (increasing) or 0 (decreasing) +once every `pace/64` seconds, entirely in hardware, no software involved. + +The target engine's `env` command drives the *same* real hardware envelope +register. Its second argument (decay) is an *exact* match for mmlgb's +decreasing `@ve` in every case: it writes the hardware envelope directly, +starting at the note's target volume, decreasing at the given pace, and +lets it run to completion in hardware with no further software +involvement -- structurally identical to what mmlgb does. + +Its first argument (attack) has two distinct modes now (code/audio.s's +`env0-e7` vs `e8-ef`, i.e. bit 3 of the attack nibble): + +- When the current volume is 0, `e8-ef` is a genuine hardware fade-in -- + starts at volume 0, climbs to 15 entirely in hardware at the given pace. + This is an *exact* match for mmlgb's increasing `@ve`, which also always + sweeps from the current `v` (here, 0) to 15. +- At any other current volume, no engine feature reproduces mmlgb's + (v -> 15) sweep -- the only other attack option (`e0-e7`, the original, + software-orchestrated one, traced through `handleEnvelopes`/ + `getWaitTimeForEnvelope`) hard-codes its *starting* volume to 1 (not + whatever `vol` last set) and only ramps *up to* the target volume, using + its own `envelopeWaitTable` (indexed by target volume, capped at 13 -- + volumes 14 and 15 have no table row at all, a real limitation in the + reference engine itself) to decide how long that takes before forcing + the exact target. The closest available approximation here is to pick + whichever attack pace makes this engine's own (1 -> target) sweep take + about the same real-world *duration* as mmlgb's (v -> 15) sweep would + have, so the swell's speed reads similarly even though its range and + starting point don't match. This is what the rest of this module (still) + computes; see emitter.py's `_emit_env` for which mode gets picked. +""" + +from typing import Optional, Tuple + +from .timing import GB_FRAME_RATE + +GB_ENVELOPE_HZ = 64.0 # real Game Boy envelope sweep clock, fixed in hardware + +# Reference engine's envelopeWaitTable (code/audio.s): wait time, in ~frames, +# for the attack phase to climb from volume 1 to the target volume (rows, +# 0-13) at a given hardware envelope pace (columns, 0-7). Column 0 (pace 0) +# is unused -- a zero attack pace never triggers the attack phase at all. +ENVELOPE_WAIT_TABLE = [ + [0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07], + [0x00, 0x02, 0x04, 0x06, 0x07, 0x09, 0x0b, 0x0d], + [0x00, 0x03, 0x06, 0x08, 0x0b, 0x0e, 0x11, 0x14], + [0x00, 0x04, 0x07, 0x0b, 0x0f, 0x13, 0x16, 0x1a], + [0x00, 0x05, 0x09, 0x0e, 0x13, 0x17, 0x1c, 0x21], + [0x00, 0x06, 0x0b, 0x11, 0x16, 0x1c, 0x22, 0x27], + [0x00, 0x07, 0x0d, 0x14, 0x1a, 0x21, 0x27, 0x2e], + [0x00, 0x07, 0x0f, 0x16, 0x1e, 0x25, 0x2d, 0x34], + [0x00, 0x08, 0x11, 0x19, 0x22, 0x2a, 0x32, 0x3b], + [0x00, 0x09, 0x13, 0x1c, 0x25, 0x2f, 0x38, 0x41], + [0x00, 0x0a, 0x15, 0x1f, 0x29, 0x33, 0x3e, 0x48], + [0x00, 0x0b, 0x16, 0x22, 0x2d, 0x38, 0x43, 0x4e], + [0x00, 0x0c, 0x18, 0x24, 0x31, 0x3d, 0x49, 0x55], + [0x00, 0x0d, 0x1a, 0x27, 0x34, 0x41, 0x4e, 0x5b], +] + + +def best_attack_pace(target_vol: int, mmlgb_pace: int) -> Tuple[Optional[int], Optional[str]]: + """Returns (engine_attack_pace, warning_or_None). `engine_attack_pace` + is None when no attack should be emitted at all: either because mmlgb's + own envelope would have had nothing left to climb (target_vol == 15, + silently skipped, matching mmlgb exactly), or because target_vol is 14 + and the engine's own timing table has no row for it (warned).""" + if target_vol >= 15: + return None, None + if target_vol == 14: + return None, ( + "increasing volume envelope requested at volume 14, but this engine's " + "envelope-timing table has no row for volumes 14-15 (a limitation in the " + "reference engine itself); envelope dropped for this note") + + steps = 15 - target_vol + mmlgb_seconds = steps * (mmlgb_pace / GB_ENVELOPE_HZ) + mmlgb_frames = mmlgb_seconds * GB_FRAME_RATE + + row = ENVELOPE_WAIT_TABLE[target_vol] + best_pace, best_dist = None, None + for pace in range(1, 8): + dist = abs(row[pace] - mmlgb_frames) + if best_dist is None or dist < best_dist: + best_dist = dist + best_pace = pace + return best_pace, None diff --git a/tools/audio/mml2wla/lexer.py b/tools/audio/mml2wla/lexer.py new file mode 100644 index 000000000..38fd6ed4a --- /dev/null +++ b/tools/audio/mml2wla/lexer.py @@ -0,0 +1,134 @@ +"""Tokenizer for mmlgb MML source. + +Mirrors mmlgb-src/parser/src/Lexer.cs's token grammar. Comments are kept +(not discarded) so the parser can carry them through into the generated +output at their original position. +""" + +import re +from dataclasses import dataclass +from typing import List + + +class MmlError(Exception): + def __init__(self, msg, line=None): + self.line = line + super().__init__(f"line {line}: {msg}" if line else msg) + + +TOKEN_SPECS = [ + ('COMMENT', r';.*'), + # Another tool-specific extension: a literal noise-channel pitch byte, + # e.g. "n34" (decimal) or "n$22" (hex, using the target engine's own $ + # notation rather than mmlgb's 0x) -- both spellings can name the same + # byte. Lets a song pick one of the noise channel's fixed hardware + # frequencies exactly, instead of via nearest-frequency matching from an + # arbitrary chromatic note. Unlike a note letter (unambiguously one + # character), the value here can be 1-3 decimal or hex digits, so a + # length written straight after with no separator ("n$224") would be + # genuinely ambiguous -- is that byte $22 length 4, or byte $224 (out of + # range) with no explicit length? Bracket/brace-wrapping the value was + # considered, but ppmck (a well-established predecessor MML compiler) + # already solves this exact problem for its own analogous "direct note + # number" syntax with a required comma before the length ("n0,4") -- + # matching that convention (see parser.py usage-site handling) instead + # of inventing a new one. + ('NOISE_LITERAL', r'n(\$[0-9a-fA-F]+|[0-9]+)'), + # Sfx-only extension: a literal raw hardware frequency value (see + # parser.py's RAWFREQ handling and emitter.py's _emit_raw_freq) -- only + # meaningful on a channel a prior `@fm` has switched into raw-frequency + # mode. Always hex (a raw 16-bit register value has no "closest note" + # reading worth expressing in decimal, unlike NOISE_LITERAL's fixed, + # nameable table entries), and self-contained in one token the same way + # NOISE_LITERAL is, so it needs no separate ambiguity-avoiding separator. + ('RAWFREQ', r'@rf\$[0-9a-fA-F]+'), + ('HEXNUMBER', r'0x[0-9a-fA-F]+'), + ('BINNUMBER', r'0b[01]+'), + ('NUMBER', r'[0-9]+'), + ('CHANNEL', r'[ABCD]'), + ('NOTE', r'[cdefgab]'), + ('SHARP', r'[#+]'), + ('DASH', r'-'), + ('COMMAND', r'[rwo<>lvtysL]'), + ('DOT', r'\.'), + ('COMMA', r','), + ('TIE', r'\^'), + # @rl ("release"), @ea ("env attack,decay"), @vr ("raw volume"), @er + # ("raw noise envelope, sfx-only"), and @fm ("raw frequency-mode switch, + # sfx-only"): tool-specific extensions with no mmlgb equivalent at all -- + # see parser.py's handling for what each maps to. @vr must come before @v + # so it isn't shadowed by @v's own (unrelated) vibrato prefix match. + # The trailing (?![a-zA-Z_]) keeps every one of these from also + # matching as a bare prefix of a longer user-defined noise alias (e.g. + # without it, "@sn" -- a perfectly good alias name -- would tokenize as + # MACRO "@s" (pitch slide) followed by a stray "n", since regex + # alternation takes the first alternative that matches, not the + # longest); digits, "-", "=", "," and "[" can still follow immediately, + # which is all every real macro argument ever starts with. + ('MACRO', r'(?:@@|@po|@p|@ns|@ve|@vr|@v|@wave|@wd|@rl|@ea|@er|@fm|@s)(?![a-zA-Z_])'), + # A user-defined noise pitch alias (e.g. "@k", "@snare", "@hhc") -- must + # come after MACRO above so the fixed macro names still win when they + # match; this catches any other "@word", meaningful only via a prior + # "@word = n$XX" definition elsewhere in the same file (see parser.py). + # Letters/underscore only, deliberately no digits: usage is written + # like a note ("@k4"), so a digit right after the name has to be + # unambiguously the length that follows, not part of the alias itself. + ('NOISE_ALIAS', r'@[a-zA-Z_]+'), + ('ASSIGN', r'='), + ('LCURLY', r'\{'), + ('RCURLY', r'\}'), + ('LBRACKET', r'\['), + ('RBRACKET', r'\]'), + ('NEWLINE', r'\n'), + ('WHITESPACE', r'[ \t\f\r]+'), +] + +_TOKEN_RE = re.compile('|'.join(f'(?P<{name}>{pat})' for name, pat in TOKEN_SPECS)) + + +@dataclass +class Token: + type: str + data: str + line: int = 0 + + def __repr__(self): + return f"({self.type}, {self.data!r})" + + +def lex(text: str) -> List[Token]: + """Tokenizes `text`, matching mmlgb's own lexer (parser/src/Lexer.cs) + exactly, including a real quirk in its behavior: it scans for matches + with .NET's `Regex.Matches`, a global "find every match anywhere in the + string" search, rather than requiring the whole input to be covered by + back-to-back matches. Any character (or run of characters) that doesn't + match *any* token pattern is therefore silently skipped rather than + rejected -- confirmed against the real compiler, which happily compiles + a file containing a stray non-MML character (e.g. a decorative line of + unicode box-drawing or other symbols with no leading `;`) with no error + and no effect on the parsed result. We match that with `finditer` + (Python's equivalent global search) instead of a strict, gap-free scan.""" + tokens = [] + line = 1 + for m in _TOKEN_RE.finditer(text): + kind = m.lastgroup + value = m.group() + if kind != 'WHITESPACE': + tokens.append(Token(kind, value, line)) + if kind == 'NEWLINE': + line += 1 + tokens.append(Token('EOF', '', line)) + return tokens + + +def parse_int(s: str) -> int: + neg = s.startswith('-') + if neg: + s = s[1:] + if s.startswith('0x'): + v = int(s[2:], 16) + elif s.startswith('0b'): + v = int(s[2:], 2) + else: + v = int(s) + return -v if neg else v diff --git a/tools/audio/mml2wla/noise.py b/tools/audio/mml2wla/noise.py new file mode 100644 index 000000000..60cb92aa9 --- /dev/null +++ b/tools/audio/mml2wla/noise.py @@ -0,0 +1,147 @@ +"""Noise channel frequency mapping. + +mmlgb treats the noise channel as a smooth, continuous 8-octave chromatic +scale (see mmlgb-src/scripts/gen_noise.py / driver/noisefreq.c), computing a +standard Game Boy noise-channel NR43 byte directly via +bitmask(r,s) = (s<<4)|r, for r = 8-octave, s = 15-note_index. + +The target WLA sound engine's noise channel (verified against the reference +audio/common/noise.s) instead only has a small, fixed palette of hand-tuned +noise "notes" -- specific (envelope, NR43) pairs picked for particular drum +sounds (crash, snare, dash noise, digging, etc.), not derived from any +smooth scale. We map any mmlgb noise pitch to whichever of those fixed +entries has the closest *actual hardware frequency* -- both tables decode to +the same NR43 register format, so this is an apples-to-apples comparison, +using log-frequency distance for perceptual nearness. This is necessarily a +many-to-one quantization: nearby octaves can legitimately land on the same +output note, and there is no way to get a finer-grained noise "pitch" than +whatever the target engine's fixed table offers. +""" + +import math +from typing import List, Tuple + + +def _noise_freq(r: int, s: int) -> float: + if r == 0: + r = 0.5 + return 524228.0 / r / (2 ** (s + 1)) + + +def _mmlgb_noise_rs(octave: int, note_index: int): + """Returns (r, s) for a given noise "octave" (1-10) and note index + (0-11), matching mmlgb's noisefreq table construction exactly.""" + if 1 <= octave <= 8: + return 8 - octave, 15 - note_index + if octave == 9: + # Extended table: values 55,54,...,20 stepping across 3 groups of 4. + i, j = divmod(note_index, 4) + byte = 56 - i * 16 - j - 1 + return None, byte # raw NR43 byte, not a clean (r,s) pair + if octave == 10: + byte = max(1, 7 - note_index) + return None, byte + raise ValueError(f"noise octave {octave} out of range") + + +def mmlgb_noise_exact_nr43(octave: int, note_index: int) -> int: + """The exact NR43 byte mmlgb itself would use for this noise pitch (not + a nearest-match against a fixed palette -- used when proposing brand + new noise-table entries, which can represent any (r,s) pair exactly).""" + octave = max(1, min(10, octave)) + r, s_or_byte = _mmlgb_noise_rs(octave, note_index) + if r is None: + return s_or_byte + return (s_or_byte << 4) | r + + +def mmlgb_noise_target_freq(octave: int, note_index: int) -> float: + octave = max(1, min(10, octave)) + r, s_or_byte = _mmlgb_noise_rs(octave, note_index) + if r is None: + byte = s_or_byte + return _noise_freq(byte & 0x7, byte >> 4) + return _noise_freq(r, s_or_byte) + + +class NoiseTable: + """A target engine's fixed noise-note palette: (note_byte, nr43_byte) + pairs, decoded to their real hardware frequency for nearest-match + lookup. Populate from whatever reference noise.s the target project + uses.""" + + def __init__(self, entries: List[Tuple[int, int]]): + # entries: (note_byte, nr43_byte) + self._freqs = [(note, _noise_freq(nr43 & 0x7, nr43 >> 4)) for note, nr43 in entries] + + def nearest(self, octave: int, note_index: int) -> int: + target = mmlgb_noise_target_freq(octave, note_index) + log_target = math.log(target) if target > 0 else -999.0 + best_note, best_dist = None, None + for note, freq in self._freqs: + d = abs((math.log(freq) if freq > 0 else -999.0) - log_target) + if best_dist is None or d < best_dist: + best_dist = d + best_note = note + return best_note + + +# Reference noise table decoded directly from audio/common/noise.s in the +# Zelda Oracle of Ages/Seasons disassembly: (note_byte, envelope_nibble, nr43_byte). +# The envelope nibble isn't used for frequency matching (it's a fixed, +# non-adjustable part of each entry -- see mml2wla_documentation.md) but is +# kept here for reference/documentation purposes. +REFERENCE_NOISE_ENTRIES = [ + (0x24, 0x01, 0x47), + (0x22, 0x00, 0x47), + (0x23, 0x02, 0x46), + (0x26, 0x02, 0x26), + (0x28, 0x00, 0x35), + (0x27, 0x02, 0x14), + (0x2a, 0x01, 0x14), + (0x2e, 0x06, 0x07), + (0x52, 0x03, 0x17), + (0x32, 0x02, 0x37), + (0x2f, 0x02, 0x45), + (0x29, 0x02, 0x47), + (0x30, 0x00, 0x07), + # Increasing-envelope (fade-in) variants added alongside the engine's new + # hardware envelope support -- see audio/common/noise.s. Editable-build + # only (not present in vanilla ROM data), but real entries the noise + # channel can select once compiled through that build. + (0x25, 0x09, 0x47), + (0x2c, 0x09, 0x47), + (0x2b, 0x0a, 0x37), +] + +DEFAULT_NOISE_TABLE = NoiseTable([(note, nr43) for note, _env, nr43 in REFERENCE_NOISE_ENTRIES]) + +# The complete set of documented, hand-tuned noise pitch bytes this engine's +# noise channel actually supports (from s_file_documentation.mediawikipage's +# "Pitch Macros" section, and matching REFERENCE_NOISE_ENTRIES above exactly). +# Used to sanity-check explicit `n$XX`/alias noise-literal selections in +# parser.py -- not to restrict them, since we can't rule out an undocumented +# byte being intentional, but a value outside this set is unusual enough to +# be worth flagging. +KNOWN_NOISE_FREQUENCIES = frozenset(note for note, _env, _nr43 in REFERENCE_NOISE_ENTRIES) + + +def load_noise_json(path: str): + """Loads a noise.json manifest (see audio/common/noise.json in the + Zelda Oracle of Ages/Seasons disassembly) -- the single source of truth + REFERENCE_NOISE_ENTRIES above used to be a hand-maintained duplicate of. + Returns (NoiseTable, known_frequencies, names) -- names maps alias name + -> note byte, for whoever needs to emit `@alias = n$XX` definitions + (see sToMml.py's render()); an entry with no "name" field just + contributes to the table/known-frequencies set, not to that dict. + `editableOnly` entries (the hardware fade-in variants, not present in + vanilla ROM data) are included here unconditionally -- it's only + tools/audio/noiseJsonToS.py's generated noise.s that actually needs to + gate them behind `.ifndef BUILD_VANILLA`.""" + import json + with open(path) as f: + entries = json.load(f) + table_entries = [(e['note'], e['nr43']) for e in entries] + known = frozenset(e['note'] for e in entries) + names = {e['name']: e['note'] for e in entries if 'name' in e} + return NoiseTable(table_entries), known, names diff --git a/tools/audio/mml2wla/noise_envelope.py b/tools/audio/mml2wla/noise_envelope.py new file mode 100644 index 000000000..0bff5c961 --- /dev/null +++ b/tools/audio/mml2wla/noise_envelope.py @@ -0,0 +1,541 @@ +"""Working around the noise channel's lack of `@ve` support (see +mml2wla_documentation.md's Noise channel and Volume envelopes sections): +the target engine bakes a fixed envelope pace into each noise-table entry, +so `@ve` on the noise channel has nothing to attach to and is dropped by +the main converter. + +This module implements two independent ways to recover the intended +envelope, operating on a fully-parsed channel D event stream: + +- `compute_new_table_entries`: for every distinct (frequency, envelope) + combination the noise channel actually asks for, propose a brand new + noise-table row with an *exact* match for both (not a nearest-match + against the fixed palette) -- analogous to how waveforms.py proposes new + waveform-table entries. This is the more faithful fix, but requires + merging new rows into the target project's noise table. + +- `expand_with_retrigger`: simulates the real hardware envelope per note + (mmlgb writes `NRx2 = volume | envelope` directly to hardware -- see + envelope.py's module docstring for the full derivation) and "samples" the + resulting volume curve by retriggering the note at each envelope step + with an explicit `v` write, using only already-supported commands. This + needs no changes to the target project's noise table, at the cost of a + much more verbose (and slightly less faithful, since retriggering restarts + the noise LFSR phase each step) channel D. +""" + +from dataclasses import dataclass +from typing import Dict, List, Optional, Tuple + +from .lexer import Token, MmlError +from .parser import Ev, RepeatBlock, Parser, TokenStream, structure +from .timing import real_seconds_per_tick, chunk_length +from .notes import NOTE_NAMES +from .noise import mmlgb_noise_exact_nr43, REFERENCE_NOISE_ENTRIES + +GB_ENVELOPE_HZ = 64.0 +DEFAULT_VOLUME = 15 + + +def _direction_of(ve_signed: int) -> Optional[str]: + if ve_signed > 0: + return 'inc' + if ve_signed < 0: + return 'dec' + return None + + +# --------------------------------------------------------------------------- +# Default mode: propose new noise-table entries +# --------------------------------------------------------------------------- + +@dataclass +class NewNoiseEntry: + nr43: int + env_byte: int + octave: int + note_idx: int + pace: int + direction: str + line: int + + +def _walk_flat(nodes: list): + """Yields Ev leaves in order, treating repeat blocks as visited once + (sufficient for the *set* of distinct combinations used -- repeating a + block doesn't introduce any new combination, just reuses one).""" + for node in nodes: + if isinstance(node, RepeatBlock): + yield from _walk_flat(node.children) + else: + yield node + + +def compute_new_table_entries(events: List[Ev]) -> List[NewNoiseEntry]: + tree = structure(events) + existing_pairs = {(env & 0x0F, nr43) for (_note, env, nr43) in REFERENCE_NOISE_ENTRIES} + + cur_pace, cur_dir = 0, None + seen: Dict[Tuple[int, int], NewNoiseEntry] = {} + order: List[Tuple[int, int]] = [] + + for ev in _walk_flat(tree): + if ev.kind == 'env': + cur_pace, cur_dir = abs(ev.a), _direction_of(ev.a) + elif ev.kind == 'note': + if cur_pace <= 0 or cur_dir is None: + continue + note_idx, octave = ev.a, ev.b + nr43 = mmlgb_noise_exact_nr43(octave, note_idx) + env_byte = cur_pace | (0x08 if cur_dir == 'inc' else 0) + key = (env_byte, nr43) + if key in existing_pairs: + continue + if key not in seen: + seen[key] = NewNoiseEntry(nr43, env_byte, octave, note_idx, + cur_pace, cur_dir, ev.line) + order.append(key) + + return [seen[k] for k in order] + + +def format_table_entries(entries: List[NewNoiseEntry], start_note_byte: int = 0x60) -> str: + if not entries: + return "" + used_bytes = {note for note, _env, _nr43 in REFERENCE_NOISE_ENTRIES} + lines = [] + lines.append("; Auto-generated by noise_envelope.py. These are new noise-table entries") + lines.append("; needed to give the source song exact per-note envelope control on the") + lines.append("; noise channel, which the fixed palette in your project's noise table") + lines.append("; (e.g. audio/common/noise.s) can't already provide -- this engine bakes") + lines.append("; envelope pace directly into which fixed noise type gets picked, so getting") + lines.append("; the envelope right requires a table entry with that exact combination of") + lines.append("; frequency AND envelope pace/direction already baked in. See") + lines.append("; mml2wla_documentation.md's \"Volume envelopes\" and \"Noise channel\" sections.") + lines.append(";") + lines.append("; Merge the rows below into your project's noise table, before its") + lines.append("; terminating `.db $ff` sentinel row. The placeholder note-byte values (b0,") + lines.append(f"; the lookup key) start at ${start_note_byte:02x} to avoid colliding with the reference") + lines.append("; table's existing entries -- verify against your project's current table and") + lines.append("; renumber if needed. Row format matches the reference table exactly:") + lines.append("; b0: note byte (arbitrary, must be unique in the table)") + lines.append("; b1: envelope byte (bit3: 0=decreasing/1=increasing; bits2-0: pace 0-7)") + lines.append("; b2: NR43 byte (exact frequency match for the source pitch)") + lines.append(";") + lines.append("; After merging, also add matching entries to REFERENCE_NOISE_ENTRIES in") + lines.append("; src/mml2wla/noise.py so future mml2wla conversions of this song (or any other") + lines.append("; using the same noise pitch/envelope combination) pick these up automatically") + lines.append("; via the normal nearest-match lookup, instead of only an approximate match.") + lines.append("") + + note_byte = start_note_byte + for entry in entries: + while note_byte in used_bytes: + note_byte += 1 + name = f"{NOTE_NAMES[entry.note_idx]}{entry.octave}" + dir_word = "increasing" if entry.direction == 'inc' else "decreasing" + lines.append(f"; source: o{entry.octave} {name} with envelope pace {entry.pace} ({dir_word}), line {entry.line}") + lines.append(f"\t.db ${note_byte:02x} ${entry.env_byte:02x} ${entry.nr43:02x}") + used_bytes.add(note_byte) + note_byte += 1 + return '\n'.join(lines) + '\n' + + +# --------------------------------------------------------------------------- +# Live aggregator used by mml2wla.py itself (the --noise-envelope flag): the +# same "propose an exact new entry" logic as compute_new_table_entries above, +# but called incrementally during normal conversion so the generated song +# can reference the new entries directly, deduplicated across a whole +# --batch run the same way waveforms.WaveformAggregator dedupes waveform +# variants. +# --------------------------------------------------------------------------- + +class NoiseEnvelopeAggregator: + def __init__(self, start_note_byte: int = 0x60): + self.entries = [] # [{nr43, env_byte, note_byte, users:set(...)}] + self.by_key: Dict[Tuple[int, int], int] = {} + self.used_bytes = {note for note, _env, _nr43 in REFERENCE_NOISE_ENTRIES} + self._next_byte = start_note_byte + + def request(self, octave: int, note_idx: int, pace: int, direction: str, + song_name: str, line: int) -> int: + """Returns the note byte to use for a noise note at (octave, + note_idx) with an active envelope (pace, direction), creating a new + table entry if this exact combination hasn't been requested yet.""" + nr43 = mmlgb_noise_exact_nr43(octave, note_idx) + env_byte = pace | (0x08 if direction == 'inc' else 0) + key = (env_byte, nr43) + if key in self.by_key: + idx = self.by_key[key] + self.entries[idx]['users'].add((song_name, octave, note_idx, line)) + return self.entries[idx]['note_byte'] + + while self._next_byte in self.used_bytes: + self._next_byte += 1 + note_byte = self._next_byte + self.used_bytes.add(note_byte) + self._next_byte += 1 + + idx = len(self.entries) + self.entries.append({ + 'nr43': nr43, + 'env_byte': env_byte, + 'note_byte': note_byte, + 'pace': pace, + 'direction': direction, + 'users': {(song_name, octave, note_idx, line)}, + }) + self.by_key[key] = idx + return note_byte + + def emit(self) -> str: + if not self.entries: + return "" + lines = [] + lines.append("; Auto-generated by mml2wla.py (--noise-envelope). These are new") + lines.append("; noise-table entries needed to give the converted song(s) below exact") + lines.append("; per-note envelope control on the noise channel, which the fixed palette") + lines.append("; in your project's noise table (e.g. audio/common/noise.s) doesn't already") + lines.append("; provide -- this engine bakes envelope pace directly into which fixed") + lines.append("; noise type gets picked, so getting the envelope right requires a table") + lines.append("; entry with that exact combination of frequency AND envelope pace/") + lines.append("; direction already baked in. See mml2wla_documentation.md's \"Volume") + lines.append("; envelopes\" and \"Noise channel\" sections.") + lines.append(";") + lines.append("; The converted song(s) already reference these entries by the note byte") + lines.append("; values below (b0) -- merge the rows into your project's noise table,") + lines.append("; before its terminating `.db $ff` sentinel row, using those exact byte") + lines.append("; values (don't renumber b0 without also updating the generated .s files).") + lines.append("; Row format matches the reference table exactly:") + lines.append("; b0: note byte (lookup key, matches `note $XX ...` in the generated .s)") + lines.append("; b1: envelope byte (bit3: 0=decreasing/1=increasing; bits2-0: pace 0-7)") + lines.append("; b2: NR43 byte (exact frequency match for the source pitch)") + lines.append("") + for entry in self.entries: + users = sorted(entry['users']) + lines.append("; Used by:") + for song_name, octave, note_idx, line in users: + name = f"{NOTE_NAMES[note_idx]}{octave}" + lines.append(f"; {song_name}.s (source o{octave} {name}, line {line})") + lines.append(f"\t.db ${entry['note_byte']:02x} ${entry['env_byte']:02x} ${entry['nr43']:02x}") + lines.append("") + return '\n'.join(lines) + '\n' + + +# --------------------------------------------------------------------------- +# --expand mode: retrigger simulation +# --------------------------------------------------------------------------- + +def _env_steps(total_ticks: int, bpm: float, pace: int, direction: Optional[str], + start_vol: int) -> List[Tuple[int, int]]: + """Returns [(vol, ticks), ...] segments approximating the real hardware + envelope curve for a note/hold of `total_ticks`, by retriggering with an + explicit volume at each real envelope step boundary.""" + if pace <= 0 or direction is None: + return [(start_vol, total_ticks)] + + step_ticks_exact = (pace / GB_ENVELOPE_HZ) / real_seconds_per_tick(bpm) + segments: List[Tuple[int, int]] = [] + vol = start_vol + remaining = total_ticks + carry = 0.0 + + while remaining > 0: + at_limit = (direction == 'inc' and vol >= 15) or (direction == 'dec' and vol <= 0) + if at_limit: + segments.append((vol, remaining)) + break + total = step_ticks_exact + carry + seg = max(1, round(total)) + if seg >= remaining: + segments.append((vol, remaining)) + break + segments.append((vol, seg)) + carry = total - seg + remaining -= seg + vol = min(15, vol + 1) if direction == 'inc' else max(0, vol - 1) + + return segments + + +class _OpenNote: + __slots__ = ('note_idx', 'octave', 'vol', 'pace', 'direction', 'carry') + + def __init__(self, note_idx, octave, vol, pace, direction): + self.note_idx = note_idx + self.octave = octave + self.vol = vol + self.pace = pace + self.direction = direction + self.carry = 0.0 + + def step(self, total_ticks: int, bpm: float) -> List[Tuple[int, int]]: + """Consumes `total_ticks` starting from this note's current position + in its envelope curve (continuing, not resetting -- for standalone + ties/waits that extend an already-sounding note).""" + if self.pace <= 0 or self.direction is None: + return [(self.vol, total_ticks)] + step_ticks_exact = (self.pace / GB_ENVELOPE_HZ) / real_seconds_per_tick(bpm) + segments = [] + remaining = total_ticks + while remaining > 0: + at_limit = (self.direction == 'inc' and self.vol >= 15) or \ + (self.direction == 'dec' and self.vol <= 0) + if at_limit: + segments.append((self.vol, remaining)) + break + total = step_ticks_exact + self.carry + seg = max(1, round(total)) + if seg >= remaining: + segments.append((self.vol, remaining)) + break + segments.append((self.vol, seg)) + self.carry = total - seg + remaining -= seg + self.vol = min(15, self.vol + 1) if self.direction == 'inc' else max(0, self.vol - 1) + return segments + + +def expand_with_retrigger(events: List[Ev]) -> List[Ev]: + """Flattens (fully unrolling repeats) and rewrites channel D's event + stream, replacing every envelope-affected note/hold with explicit + volume writes + retriggers, so the result no longer needs `@ve`/`env` + at all on this channel.""" + tree = structure(events) + out: List[Ev] = [] + cur_vol = DEFAULT_VOLUME + cur_pace, cur_dir = 0, None + open_note: Optional[_OpenNote] = None + + def emit_segments(note_idx, octave, segments, line): + for vol, ticks in segments: + out.append(Ev('vol', line, vol)) + for chunk in chunk_length_mml(ticks): + out.append(Ev('note', line, note_idx, octave, chunk, None)) + + def walk(nodes): + nonlocal cur_vol, cur_pace, cur_dir, open_note + for node in nodes: + if isinstance(node, RepeatBlock): + for _ in range(node.count): + walk(node.children) + continue + ev = node + if ev.kind == 'vol': + cur_vol = ev.a + if open_note is not None: + open_note.vol = cur_vol + out.append(Ev('vol', ev.line, cur_vol)) + elif ev.kind == 'env': + cur_pace, cur_dir = abs(ev.a), _direction_of(ev.a) + elif ev.kind == 'note': + note_idx, octave, ticks, bpm = ev.a, ev.b, ev.c, ev.d + if cur_pace > 0 and cur_dir is not None: + open_note = _OpenNote(note_idx, octave, cur_vol, cur_pace, cur_dir) + segments = open_note.step(ticks, bpm) + emit_segments(note_idx, octave, segments, ev.line) + else: + open_note = None + out.append(Ev('vol', ev.line, cur_vol)) + for chunk in chunk_length_mml(ticks): + out.append(Ev('note', ev.line, note_idx, octave, chunk, None)) + elif ev.kind == 'wait': + ticks, bpm = ev.a, ev.b + if open_note is not None: + segments = open_note.step(ticks, bpm) + emit_segments(open_note.note_idx, open_note.octave, segments, ev.line) + else: + out.append(ev) + elif ev.kind == 'rest': + open_note = None + out.append(ev) + elif ev.kind == 'loop': + out.append(ev) + elif ev.kind == 'tempo': + # Passed through unchanged: this only reorders/rewrites + # channel D's own note/envelope events, and D always saw + # its own `t` commands in correct chronological order + # already (they're declared on D itself) -- the cross- + # channel tempo bug tempo.py fixes is specifically about + # *other* channels not seeing D's tempo changes, which + # doesn't apply within this single-channel rewrite. + out.append(ev) + elif ev.kind == 'comment': + # Dropped, not reproduced: the surrounding text-surgery + # (rewrite_with_expanded_noise) already preserves every + # comment at its original position untouched. Since a + # comment on its own line gets attached to channel D's + # event stream whenever D is the *next* channel line + # (matching the main converter's behavior), reproducing it + # here too would duplicate it -- once at its original + # position, once in the regenerated D block. + pass + else: + raise ValueError(f"internal: unhandled event kind {ev.kind!r}") + + walk(tree) + return _dedup_consecutive_vol(out) + + +def _dedup_consecutive_vol(events: List[Ev]) -> List[Ev]: + """Drops a `vol` event that's immediately followed by another `vol` + event of the same value (e.g. an explicit `v10` in the source directly + followed by an envelope-triggered note whose first segment is also + volume 10) -- cosmetic only, doesn't change the resulting sound.""" + out: List[Ev] = [] + for i, ev in enumerate(events): + if ev.kind == 'vol' and i + 1 < len(events) and \ + events[i + 1].kind == 'vol' and events[i + 1].a == ev.a: + continue + out.append(ev) + return out + + +def chunk_length_mml(total_ticks: int) -> List[int]: + """MML's `=N` explicit-length form is capped at 255 (see the mmlgb + grammar) -- split anything longer into multiple same-volume segments.""" + if total_ticks <= 0: + return [] + chunks = [] + remaining = total_ticks + while remaining > 255: + chunks.append(255) + remaining -= 255 + if remaining > 0: + chunks.append(remaining) + return chunks + + +# --------------------------------------------------------------------------- +# MML serialization for the expanded channel D stream +# --------------------------------------------------------------------------- + +def _note_token(note_idx: int) -> str: + """MML has no two-letter note tokens -- a sharp is the base letter plus + a separate `+` modifier, e.g. index 1 (NOTE_NAMES[1] == "cs") is written + `c+`, not `cs`.""" + name = NOTE_NAMES[note_idx] + return name[0] + '+' if name.endswith('s') else name + + +def serialize_channel_d(events: List[Ev]) -> List[str]: + """Renders an expanded channel D event stream (from expand_with_retrigger) + back into MML source lines, prefixed with `D `.""" + lines = [] + cur_octave = None + tokens: List[str] = [] + + def flush(): + nonlocal tokens + if tokens: + lines.append('D ' + ' '.join(tokens)) + tokens = [] + + for ev in events: + if ev.kind == 'comment': + flush() + lines.append(ev.a) + continue + if ev.kind == 'loop': + tokens.append('L') + continue + if ev.kind == 'tempo': + tokens.append(f"t{ev.a}") + continue + if ev.kind == 'rest': + tokens.extend(f"r={c}" for c in chunk_length_mml(ev.a)) + elif ev.kind == 'wait': + tokens.extend(f"^={c}" for c in chunk_length_mml(ev.a)) + elif ev.kind == 'vol': + tokens.append(f"v{ev.a}") + elif ev.kind == 'note': + note_idx, octave, ticks = ev.a, ev.b, ev.c + if octave != cur_octave: + tokens.append(f"o{octave}") + cur_octave = octave + tokens.append(f"{_note_token(note_idx)}={ticks}") + else: + raise ValueError(f"internal: unexpected kind {ev.kind!r} in expanded channel D stream") + + if len(tokens) >= 24: + flush() + + flush() + return lines + + +# --------------------------------------------------------------------------- +# --expand mode: text surgery (only channel D's lines are touched; every +# other line -- including channels A/B/C, their comments, and any @@ macros +# they rely on -- is left byte-for-byte untouched) +# --------------------------------------------------------------------------- + +def scan_channel_d_lines(tokens: List[Token]) -> Tuple[List[int], List[int]]: + """Returns (d_only_lines, mixed_lines): source line numbers of + statements that select channel D alone, and ones that combine D with + another channel on the same line (not supported -- MML has no way to + give different channels on a shared line different replacement text).""" + ts = TokenStream(tokens) + d_lines: List[int] = [] + mixed_lines: List[int] = [] + while ts.cur.type != 'EOF': + if ts.cur.type == 'CHANNEL': + line = ts.cur.line + letters = [] + while ts.cur.type == 'CHANNEL': + letters.append(ts.eat().data) + while ts.cur.type not in ('NEWLINE', 'EOF'): + ts.eat() + if ts.cur.type == 'NEWLINE': + ts.eat() + if 'D' in letters: + (mixed_lines if len(letters) > 1 else d_lines).append(line) + elif ts.cur.type == 'MACRO' and ts.cur.data in ('@wave', '@@'): + # Skip the whole definition block without needing to fully + # parse it -- it can't contain a top-level channel line. + while ts.cur.type not in ('RCURLY', 'EOF'): + ts.eat() + if ts.cur.type == 'RCURLY': + ts.eat() + if ts.cur.type == 'NEWLINE': + ts.eat() + else: + ts.eat() + return d_lines, mixed_lines + + +def rewrite_with_expanded_noise(mml_text: str) -> str: + """Returns a full copy of `mml_text` with channel D's lines replaced by + an envelope-expanded rewrite (see expand_with_retrigger), and every + other line left completely untouched.""" + from .lexer import lex + + tokens = lex(mml_text) + d_lines, mixed_lines = scan_channel_d_lines(tokens) + if mixed_lines: + where = ', '.join(str(l) for l in sorted(mixed_lines)) + raise MmlError( + f"channel D is combined with another channel on line(s) {where}; " + f"put channel D on its own dedicated line(s) before running this script " + f"(MML has no way to give one channel different replacement text than " + f"another on a shared line).") + if not d_lines: + raise MmlError("no noise channel (D) content found in this file") + + parser = Parser(tokens) + song = parser.parse() + expanded = expand_with_retrigger(song.channels[3]) + new_lines = serialize_channel_d(expanded) + + src_lines = mml_text.split('\n') + d_line_set = set(d_lines) + first_d_line = min(d_lines) + out_lines = [] + for i, line in enumerate(src_lines, start=1): + if i in d_line_set: + if i == first_d_line: + out_lines.extend(new_lines) + continue # other D lines: dropped, merged into the first D position + out_lines.append(line) + trailing_newline = '\n' if mml_text.endswith('\n') else '' + return '\n'.join(out_lines) + trailing_newline diff --git a/tools/audio/mml2wla/notes.py b/tools/audio/mml2wla/notes.py new file mode 100644 index 000000000..0c6e191df --- /dev/null +++ b/tools/audio/mml2wla/notes.py @@ -0,0 +1,50 @@ +"""Pitched-note (square/wave channel) name resolution. + +Both mmlgb and the target WLA sound engine share the same absolute pitch +encoding in principle: octave 1-8, 12 semitones each, C at the bottom. The +target engine's musicMacros.s exposes this as a flat `.enum` (c1=0 .. b8=95) +usable as a `note` argument on any of its pitched channels. + +However: the reference engine's own frequency-lookup code (code/audio.s) +does NOT treat the wave channel the same as the square channels. The square +channel path (`@cmdFrequency`) subtracts 12 from the note byte before +indexing into `soundFrequencyTable`; the wave channel path (`@freqCommand`) +does not subtract anything. Since both paths index the *same* table, a wave +note written with the same enum value as an equivalent square note ends up +12 table entries higher, i.e. exactly one octave sharp. This is a real +asymmetry in that engine's code (confirmed by reading both code paths), not +a rounding or timing artifact -- so the wave channel needs every note +pre-shifted down by 12 (one octave) to land on the intended pitch. +""" + +from typing import Optional, Tuple + +NOTE_NAMES = ['c', 'cs', 'd', 'ds', 'e', 'f', 'fs', 'g', 'gs', 'a', 'as', 'b'] + +# musicMacros.s .enum labels, c1..b8 (96 entries, indices 0-95). +NOTE_ENUM = [f"{n}{o}" for o in range(1, 9) for n in NOTE_NAMES] + +# MML channel index (0=A,1=B,2=C,3=D) -> per-channel note-byte adjustment. +# Only the wave channel (C, index 2) needs the -12 compensation described +# above; the noise channel doesn't use this table at all (see noise.py). +NOTE_BYTE_ADJUST = {0: 0, 1: 0, 2: -12, 3: 0} + + +def resolve_pitch(ch: int, octave: int, note_idx: int) -> Tuple[str, Optional[str]]: + """Returns (enum_name, warning_or_None) for a square/wave channel note. + + `ch` is the MML channel index (0=A/square1, 1=B/square2, 2=C/wave). + Not valid for the noise channel (3) -- see noise.nearest_noise_note. + """ + absolute = (octave - 1) * 12 + note_idx + NOTE_BYTE_ADJUST[ch] + warning = None + if absolute < 0 or absolute > 95: + clamped = max(0, min(95, absolute)) + extra = "" + if ch == 2: + extra = (" (the wave channel's usable range is one octave " + "narrower than square/noise -- see mml2wla_documentation.md)") + warning = (f"note at octave {octave} is outside this engine's representable " + f"range (C1-B8){extra}; clamped") + absolute = clamped + return NOTE_ENUM[absolute], warning diff --git a/tools/audio/mml2wla/parser.py b/tools/audio/mml2wla/parser.py new file mode 100644 index 000000000..ea7f5f8f5 --- /dev/null +++ b/tools/audio/mml2wla/parser.py @@ -0,0 +1,948 @@ +"""Recursive-descent parser mirroring mmlgb-src/parser/src/Parser.cs. + +Produces a flat per-channel event stream (`Ev`). Note/rest/wait/vibrato-delay +lengths are stored as (ticks, bpm) rather than pre-resolved frame counts -- +frame resolution happens later in emitter.py, once repeat-block structure is +known, so that timing stays exactly in sync across every channel (see +timing.py for why this has to happen after structuring). + +Two deliberate departures from mmlgb's own compiler: + +1. Macro bodies (`@@N`) are fully re-parsed/inlined at each call site against + the calling channel's *live* octave/default-length state, and continue to + mutate that state afterwards. This matches real mmlgb *playback* behavior + (register state leaks across a macro call/return -- several of the + example songs even end their macros with `<<`/`>>` specifically to undo + an octave shift before returning) more faithfully than mmlgb's own + compiler, which parses macro bodies in isolation at compile time. + +2. A confirmed mmlgb compiler bug is fixed rather than reproduced: a bare + dot with no preceding digit (`c.`, `c^.`, `w.`) crashes the real parser, + including the documentation's own suggested workaround (`c+w.` -- also + verified to crash against the real compiler). We instead apply the + dot(s) to the channel's current default length, matching the obviously + intended behavior. + +Comments (`;...`) are preserved as `Ev('comment', ...)` nodes at their +original position in the stream, so the emitter can reproduce them in the +generated output. A comment on a line with channel selector(s) is attached +to each of those channels (matching the source exactly for one channel and +duplicating for multiple, as the source itself does for real commands). A +comment on its own line (no channel selector) is queued and attached to +whichever channel(s) the next channel line targets. +""" + +from dataclasses import dataclass, field +from typing import Dict, List, Optional, Tuple + +from .lexer import Token, MmlError, parse_int +from .noise import KNOWN_NOISE_FREQUENCIES + +NOTE_NAMES = ['c', 'cs', 'd', 'ds', 'e', 'f', 'fs', 'g', 'gs', 'a', 'as', 'b'] + +BAR_STEPS = 192 # ticks per whole note +DEFAULT_OCTAVE = 4 +DEFAULT_LENGTH_TICKS = 48 # matches mmlgb driver mus_length default +DEFAULT_TEMPO_BPM = 120 # used only if a channel emits notes before any + # 't' command is ever seen anywhere in the file + + +def _parse_noise_literal_value(data: str) -> int: + """Parses a NOISE_LITERAL token's text ("n34" or "n$22") into its raw + byte value. Note the '$' hex prefix here, not mmlgb's own '0x' -- this + matches the *target engine's* hex notation, since the value is a literal + engine command byte, not an mmlgb-side quantity.""" + body = data[1:] # strip leading 'n' + if body.startswith('$'): + return int(body[1:], 16) + return int(body) + + +@dataclass +class Ev: + """A single parsed MML event. `kind` tags which fields are meaningful + (see module docstrings in parser.py/emitter.py for the field layout + used by each kind). + + `frame_exact`: only meaningful for the tick-consuming kinds (note/ + noise_literal/rest/wait). False (the normal case) means the length + field (see tempo.py's _TICKS_FIELD) holds a tick count, resolved to + frames via the tempo active when it plays. True means it came from + `=X` syntax in a `#VANILLA`-flagged file (an explicit, tempo-independent + frame count) and the *same* field instead holds that frame count + directly, verbatim, completely bypassing tempo/tick conversion -- see + tempo.py and Parser.is_vanilla. + + `used_default_length`: 'note' kind only. True when this note omitted + its own length entirely, i.e. it's playing at whatever the channel's + current `l` default is -- see emitter.py's non-#VANILLA shortNote + handling, which treats this as the author's own explicit opt-in signal + for the shortNote optimization (as opposed to a #VANILLA file, where + the compiler looks for same-length runs on its own instead).""" + kind: str + line: int = 0 + a: object = None + b: object = None + c: object = None + d: object = None + frame_exact: bool = False + used_default_length: bool = False + + +@dataclass +class RepeatBlock: + """Structured node produced by the bracket-matching pass (structure()).""" + count: int + children: list = field(default_factory=list) + line: int = 0 + + +# Node = Ev | RepeatBlock in the structured per-channel tree. + + +class TokenStream: + def __init__(self, tokens: List[Token]): + self.tokens = tokens + self.pos = 0 + + @property + def cur(self) -> Token: + return self.tokens[self.pos] + + def eat(self) -> Token: + t = self.tokens[self.pos] + if self.pos < len(self.tokens) - 1: + self.pos += 1 + return t + + def expect(self, ttype: str, msg: str) -> Token: + if self.cur.type != ttype: + raise MmlError(f"Found token {self.cur.data!r}. Expected {msg}.", self.cur.line) + return self.eat() + + +class Song: + """Holds everything parsed out of one .mml file.""" + + def __init__(self): + # channel index 0..3 -> A,B,C,D -> flat list of Ev + self.channels: List[List[Ev]] = [[], [], [], []] + self.waves: Dict[int, List[int]] = {} # id -> 32 samples 0-15 + self.warnings: List[str] = [] + + def warn(self, msg, line=None): + self.warnings.append(f"line {line}: {msg}" if line else msg) + + +@dataclass +class ChannelState: + octave: int = DEFAULT_OCTAVE + default_length: int = DEFAULT_LENGTH_TICKS # ticks, unless default_length_frame_exact + default_length_frame_exact: bool = False # see Ev.frame_exact + raw_freq_mode: bool = False # see @fm's handling in _parse_macro_command + + +class Parser: + def __init__(self, tokens: List[Token], json_waveforms: Optional[Dict[int, str]] = None, + known_noise_frequencies=None, is_vanilla: bool = False): + self.tokens = tokens + self.song = Song() + self.macro_tokens: Dict[int, List[Token]] = {} + self.noise_aliases: Dict[str, int] = {} + self.channel_state = [ChannelState() for _ in range(4)] + self.current_bpm = DEFAULT_TEMPO_BPM + self.tempo_ever_set = False + self._warned_no_tempo = False + self.pending_comments: List[Token] = [] + # Pre-existing named waveforms (e.g. from the target project's own + # waveforms.json), keyed by the same numeric id used in-song -- + # replaces the old bracket syntax (`@wave[LABEL]`): every @wave + # reference now uses one plain numeric id space, whether it names an + # already-existing entry from here or a freshly `@waveN = {...}` + # -defined one (see _parse_wave_data/@wave usage below). + self.json_waveforms: Dict[int, str] = json_waveforms or {} + # Overridable so a target project's own noise.json (see noise.py's + # load_noise_json) is what actually gets checked against, instead of + # this module's own compiled-in reference copy. + self.known_noise_frequencies = ( + known_noise_frequencies if known_noise_frequencies is not None + else KNOWN_NOISE_FREQUENCIES) + # See #VANILLA in cli.py/mml_documentation.md: controls what `=X` + # means for this whole file (raw frames vs. musical ticks). + self.is_vanilla = is_vanilla + + # -- top level ------------------------------------------------------- + + def parse(self) -> Song: + ts = TokenStream(self.tokens) + while ts.cur.type != 'EOF': + if ts.cur.type == 'CHANNEL': + self._parse_channel_line(ts) + elif ts.cur.type == 'MACRO' and ts.cur.data in ('@wave', '@@'): + self._parse_definition(ts) + elif ts.cur.type == 'NOISE_ALIAS': + self._parse_noise_alias_definition(ts) + elif ts.cur.type == 'COMMENT': + self.pending_comments.append(ts.eat()) + if ts.cur.type == 'NEWLINE': + ts.eat() + elif ts.cur.type == 'NEWLINE': + ts.eat() + else: + raise MmlError(f"Unexpected token {ts.cur.data!r}.", ts.cur.line) + + # Any comments left over at EOF (trailing comments with no further + # channel line to attach to) get attached to whichever channels + # already have real content, so we don't spuriously mark an unused + # channel as "used" just because of a floating comment. + for ch in range(4): + if self.song.channels[ch]: + for tok in self.pending_comments: + self.song.channels[ch].append(Ev('comment', tok.line, tok.data)) + self.pending_comments = [] + + return self.song + + def _parse_definition(self, ts: TokenStream): + if ts.cur.data == '@wave': + self._parse_wave_data(ts) + else: + self._parse_macro_definition(ts) + + def _parse_wave_data(self, ts: TokenStream): + ts.eat() # @wave + if ts.cur.type != 'NUMBER': + raise MmlError("Expected wave data id.", ts.cur.line) + line = ts.cur.line + wave_id = parse_int(ts.eat().data) + if wave_id in self.json_waveforms: + raise MmlError( + f"@wave{wave_id} = {{...}} conflicts with the existing waveform " + f"{self.json_waveforms[wave_id]!r} (id {wave_id}) -- pick an id that isn't " + f"already in waveforms.json.", line) + ts.expect('ASSIGN', '=') + ts.expect('LCURLY', '{') + samples = [] + for _ in range(32): + while ts.cur.type in ('NEWLINE', 'COMMENT'): + ts.eat() + if ts.cur.type != 'NUMBER': + raise MmlError("Invalid wave sample. Expected number.", ts.cur.line) + v = parse_int(ts.eat().data) + if v < 0 or v > 15: + raise MmlError(f"Invalid wave sample {v}. Expected 0-15.", ts.cur.line) + samples.append(v) + while ts.cur.type in ('NEWLINE', 'COMMENT'): + ts.eat() + ts.expect('RCURLY', '}') + if ts.cur.type == 'NEWLINE': + ts.eat() + self.song.waves[wave_id] = samples + + def _parse_macro_definition(self, ts: TokenStream): + ts.eat() # @@ + if ts.cur.type != 'NUMBER': + raise MmlError("Expected macro id.", ts.cur.line) + macro_id = parse_int(ts.eat().data) + ts.expect('ASSIGN', '=') + ts.expect('LCURLY', '{') + body: List[Token] = [] + while ts.cur.type != 'RCURLY': + while ts.cur.type == 'NEWLINE': + ts.eat() + body.append(ts.eat()) + while ts.cur.type == 'NEWLINE': + ts.eat() + body.append(Token('NEWLINE', '\n', ts.cur.line)) + ts.expect('RCURLY', '}') + if ts.cur.type == 'NEWLINE': + ts.eat() + self.macro_tokens[macro_id] = body + + def _parse_noise_alias_definition(self, ts: TokenStream): + # A tool-specific extension letting a song define its own short, + # friendly names for noise-channel pitch bytes (e.g. "@k = n$22" + # for a kick drum), entirely within the .mml source -- deliberately + # not built into this tool, so a song's own choice of names/mapping + # travels with the file wherever it's shared, and can be freely + # redefined per song without touching any code. + t = ts.eat() # e.g. "@k" + name = t.data[1:] + ts.expect('ASSIGN', '=') + if ts.cur.type != 'NOISE_LITERAL': + raise MmlError(f"Expected a noise pitch literal (e.g. n$22) after '@{name} ='.", + ts.cur.line) + value = _parse_noise_literal_value(ts.eat().data) + if ts.cur.type == 'NEWLINE': + ts.eat() + self.noise_aliases[name] = value + + def _parse_channel_line(self, ts: TokenStream): + active = [] + while ts.cur.type == 'CHANNEL': + active.append('ABCD'.index(ts.eat().data)) + + # Flush any comments queued up since the last channel line into + # every channel this line targets, before this line's own content. + if self.pending_comments: + for ch in active: + for tok in self.pending_comments: + self.song.channels[ch].append(Ev('comment', tok.line, tok.data)) + self.pending_comments = [] + + # Collect the token span for this line's commands (up to NEWLINE). + start = ts.pos + depth_end = start + while ts.tokens[depth_end].type not in ('NEWLINE', 'EOF'): + depth_end += 1 + span = ts.tokens[start:depth_end] + [Token('NEWLINE', '\n', ts.tokens[depth_end].line)] + # Advance the outer stream past this line. + ts.pos = depth_end + if ts.cur.type == 'NEWLINE': + ts.eat() + + for ch in active: + sub = TokenStream(span) + self._parse_commands(sub, ch) + + # -- shared command parsing (channel lines AND macro bodies) -------- + + def _parse_commands(self, ts: TokenStream, ch: int): + state = self.channel_state[ch] + out = self.song.channels[ch] + while ts.cur.type != 'NEWLINE': + t = ts.cur + if t.type == 'NOTE': + out.append(self._parse_note(ts, ch, state)) + elif t.type == 'COMMAND': + self._parse_command(ts, ch, state, out) + elif t.type == 'TIE': + line = t.line + ts.eat() + ticks, frame_exact = self._parse_length(ts, state, False) + if ticks == 0: + ticks = state.default_length + frame_exact = state.default_length_frame_exact + out.append(Ev('wait', line, ticks, self.current_bpm, frame_exact=frame_exact)) + elif t.type == 'MACRO': + self._parse_macro_command(ts, ch, state, out) + elif t.type == 'NOISE_LITERAL': + ts.eat() + value = _parse_noise_literal_value(t.data) + # ppmck-style required comma before the length (matching its + # own analogous "direct note number" syntax) -- see the + # lexer's NOISE_LITERAL comment for why a separator is + # needed here at all, unlike a normal note. + ts.expect('COMMA', "',' before the length (e.g. n34,4)") + out.append(self._parse_noise_note_tail(ts, ch, state, value, t.line)) + elif t.type == 'RAWFREQ': + ts.eat() + out.append(self._parse_raw_freq_tail(ts, ch, state, t.data, t.line)) + elif t.type == 'NOISE_ALIAS': + ts.eat() + name = t.data[1:] + # "=" here is ambiguous on its own: a genuine top-level + # definition ("@k = n$22", rejected below) and a valid + # mid-channel use with an exact-frame length ("@k=4", a + # completely ordinary use of the =X syntax every other + # note/rest/wait already supports) both start with + # NOISE_ALIAS then ASSIGN. They're only distinguishable by + # what follows the "=": a NOISE_LITERAL (n$XX) means + # definition, anything else (a plain number) means length. + next_i = min(ts.pos + 1, len(ts.tokens) - 1) + if ts.cur.type == 'ASSIGN' and ts.tokens[next_i].type == 'NOISE_LITERAL': + raise MmlError( + f"'@{name} = ...' noise alias definitions must be written at the top " + f"level, not inside a channel's data.", t.line) + if name not in self.noise_aliases: + raise MmlError(f"Noise alias @{name} not defined.", t.line) + value = self.noise_aliases[name] + out.append(self._parse_noise_note_tail(ts, ch, state, value, t.line)) + elif t.type == 'LBRACKET': + ts.eat() + out.append(Ev('rep_start', t.line)) + elif t.type == 'RBRACKET': + ts.eat() + if ts.cur.type != 'NUMBER': + raise MmlError("Expected repetition count.", ts.cur.line) + reps = parse_int(ts.eat().data) + if reps < 2: + raise MmlError("Invalid repetition count. Must be >= 2.", t.line) + out.append(Ev('rep_end', t.line, reps)) + elif t.type == 'COMMENT': + ts.eat() + out.append(Ev('comment', t.line, t.data)) + elif t.type == 'EOF': + return + else: + raise MmlError(f"Unexpected token {t.data!r}.", t.line) + + def _note_tempo_check(self, line: int): + if not self.tempo_ever_set and not self._warned_no_tempo: + self._warned_no_tempo = True + self.song.warn( + f"no 't' (tempo) command found before this point; assuming " + f"{DEFAULT_TEMPO_BPM} BPM", line) + + # -- length parsing (with the bare-dot bugfix) ----------------------- + + def _parse_length(self, ts: TokenStream, state: ChannelState, required: bool) -> Tuple[int, bool]: + """Returns (length, frame_exact) -- see Ev.frame_exact's docstring. + `length` is 0 (frame_exact False) only when no length was written + at all and `required` is False; callers fall back to the channel's + current default length (also a (value, frame_exact) pair -- see + ChannelState) in that case.""" + length = 0 + frame_exact = False + line = ts.cur.line + if ts.cur.type == 'NUMBER': + n = parse_int(ts.eat().data) + if n < 1 or n > BAR_STEPS: + raise MmlError(f"Invalid note length {n}. Expected 1-{BAR_STEPS}.", line) + if (BAR_STEPS // n) * n != BAR_STEPS: + raise MmlError(f"Invalid note length {n}. Not enough precision.", line) + length = BAR_STEPS // n + dot = length // 2 + while ts.cur.type == 'DOT': + if dot <= 0: + raise MmlError("Too many dots in length. Not enough precision.", ts.cur.line) + ts.eat() + length += dot + dot //= 2 + elif ts.cur.type == 'ASSIGN': + # `=X`'s meaning depends on #VANILLA (see cli.py/ + # mml_documentation.md): in a #VANILLA file it's a raw, + # tempo-independent hardware frame count (e.g. `c+=4` is exactly + # 4 frames -- what a byte-accurate ROM reproduction needs, since + # vanilla data has no tempo of its own, only literal frame + # counts). Otherwise it's a raw musical *tick* count instead + # (still 192 ticks per whole note, same as every other length + # here) -- an exact alternative to the named fractions (1, 4, 8, + # ...) above for a length that doesn't reduce cleanly to one of + # them, but still fully tempo-relative like any other note. + ts.eat() + n = parse_int(ts.eat().data) + if self.is_vanilla: + if n < 1 or n > 255: + raise MmlError(f"Invalid note frame length {n}. Expected 1-255.", line) + length = n + frame_exact = True + else: + if n < 1: + raise MmlError(f"Invalid note tick length {n}. Expected a positive number.", + line) + length = n + frame_exact = False + elif ts.cur.type == 'DOT': + # Fix for the confirmed mmlgb bug: apply the dot(s) to the + # channel's current default length instead of crashing. + length = state.default_length + frame_exact = state.default_length_frame_exact + dot = length // 2 + while ts.cur.type == 'DOT': + if dot <= 0: + raise MmlError("Too many dots in length. Not enough precision.", ts.cur.line) + ts.eat() + length += dot + dot //= 2 + elif required: + raise MmlError("Expected note length.", line) + + if ts.cur.type == 'TIE': + ts.eat() + # Second fix in the same spirit as the bare-dot fix above (also + # confirmed against the real compiler: a tie with genuinely + # nothing after it -- not even a dot -- crashes there too, + # e.g. a note at the very end of a line like `g6^` with the + # continuation's length meant to be implicit). Falls back to + # the channel's current default length, matching how a bare + # standalone tie (`^` with nothing after it, handled in + # _parse_commands) already behaves. + tie_length, tie_frame_exact = self._parse_length(ts, state, False) + if tie_length == 0: + tie_length = state.default_length + tie_frame_exact = state.default_length_frame_exact + if frame_exact == tie_frame_exact: + length += tie_length + else: + # Mixing an exact-frame length with a tick-based one in the + # same tie: there's no unit both halves already share, so + # this converts the tick-based half to frames at whatever + # tempo is active right now (not a full chronological + # resolution the way tempo.py normally does it -- a + # reasonable approximation for what's already an unusual + # construct, since ticks and exact frames aren't naturally + # comparable at parse time). + from .timing import ticks_to_frames_exact + if frame_exact: + length += round(ticks_to_frames_exact(tie_length, self.current_bpm)) + else: + length = round(ticks_to_frames_exact(length, self.current_bpm)) + tie_length + frame_exact = True + return length, frame_exact + + # -- notes ------------------------------------------------------------- + + def _parse_note(self, ts: TokenStream, ch: int, state: ChannelState) -> Ev: + line = ts.cur.line + if state.raw_freq_mode: + raise MmlError( + "A regular note can't be used here: `@fm` earlier on this channel switched it " + "into raw-frequency mode, so every event from there on is read as a literal " + "hardware frequency, not a note-table lookup -- use @rf$ instead (see " + "@fm's own error/docs).", line) + letter = ts.eat().data + idx = NOTE_NAMES.index(letter) + if ts.cur.type == 'SHARP': + idx += 1 + ts.eat() + elif ts.cur.type == 'DASH': + idx -= 1 + ts.eat() + if idx == -1: + idx = 11 + elif idx == 12: + idx = 0 + + ticks, frame_exact = self._parse_length(ts, state, False) + used_default_length = (ticks == 0) + if used_default_length: + ticks = state.default_length + frame_exact = state.default_length_frame_exact + self._note_tempo_check(line) + return Ev('note', line, idx, state.octave, ticks, self.current_bpm, + frame_exact=frame_exact, used_default_length=used_default_length) + + def _parse_noise_note_tail(self, ts: TokenStream, ch: int, state: ChannelState, + value: int, line: int) -> Ev: + """Shared by NOISE_LITERAL ('n$22') and NOISE_ALIAS ('@k') usage: an + explicit, exact noise-channel pitch byte, chosen directly rather + than approximated via nearest-frequency matching from a chromatic + note+octave. Length parses exactly like a regular note's.""" + if ch != 3: + raise MmlError( + "Noise pitch literals/aliases (n$XX, @alias) can only be used on channel D " + "(noise) -- square/wave channels use regular note letters instead.", line) + if value not in self.known_noise_frequencies: + self.song.warn( + f"noise pitch ${value:02x} is not one of this engine's documented noise " + f"frequency table entries; using it as-is", line) + ticks, frame_exact = self._parse_length(ts, state, False) + if ticks == 0: + ticks = state.default_length + frame_exact = state.default_length_frame_exact + self._note_tempo_check(line) + return Ev('noise_literal', line, value, ticks, self.current_bpm, frame_exact=frame_exact) + + def _parse_raw_freq_tail(self, ts: TokenStream, ch: int, state: ChannelState, + token_data: str, line: int) -> Ev: + """@rf$: a literal raw hardware frequency value, only valid + after `@fm` has switched this channel into raw-frequency mode (see + that macro's handling below) -- see musicMacros.s/audio.s's + channelCmdf0 for why this mode exists and what it bypasses. Length + parses exactly like a regular note's.""" + if ch not in (0, 1): + raise MmlError( + "@rf (raw frequency) is only valid on the square channels (A/B) -- the " + "engine's raw-frequency mode (see @fm) only exists on those channels.", line) + if not state.raw_freq_mode: + raise MmlError( + "@rf (raw frequency) used before this channel was switched into raw-frequency " + "mode -- put an `@fm` earlier on this channel first.", line) + value = int(token_data[len('@rf$'):], 16) + if value > 0xffff: + raise MmlError(f"Invalid @rf value ${value:x}. Expected $0-$ffff.", line) + ticks, frame_exact = self._parse_length(ts, state, False) + if ticks == 0: + ticks = state.default_length + frame_exact = state.default_length_frame_exact + self._note_tempo_check(line) + return Ev('raw_freq', line, value, ticks, self.current_bpm, frame_exact=frame_exact) + + # -- simple commands ----------------------------------------------------- + + def _parse_command(self, ts: TokenStream, ch: int, state: ChannelState, out: List[Ev]): + t = ts.eat() + line = t.line + cmd = t.data + + if cmd == 'r': + ticks, frame_exact = self._parse_length(ts, state, False) + if ticks == 0: + ticks = state.default_length + frame_exact = state.default_length_frame_exact + self._note_tempo_check(line) + out.append(Ev('rest', line, ticks, self.current_bpm, frame_exact=frame_exact)) + + elif cmd == 'w': + ticks, frame_exact = self._parse_length(ts, state, False) + if ticks == 0: + ticks = state.default_length + frame_exact = state.default_length_frame_exact + self._note_tempo_check(line) + out.append(Ev('wait', line, ticks, self.current_bpm, frame_exact=frame_exact)) + + elif cmd == 'o': + if ts.cur.type != 'NUMBER': + raise MmlError("Expected number after octave command.", ts.cur.line) + state.octave = parse_int(ts.eat().data) + + elif cmd == '<': + state.octave -= 1 + + elif cmd == '>': + state.octave += 1 + + elif cmd == 'l': + length_line = ts.cur.line + length, frame_exact = self._parse_length(ts, state, True) + if length > 255: + raise MmlError("Length overflow. Lengths more than 255 frames not allowed for l command.", length_line) + state.default_length = length + state.default_length_frame_exact = frame_exact + + elif cmd == 'v': + if ts.cur.type != 'NUMBER': + raise MmlError("Invalid volume. Expected number.", ts.cur.line) + vol = parse_int(ts.eat().data) + if ch == 2 and (vol < 0 or vol > 3): + raise MmlError("Invalid volume for wave channel. Expected 0-3.", line) + if vol < 0 or vol > 15: + raise MmlError("Invalid volume value. Expected 0-15.", line) + out.append(Ev('vol', line, vol)) + + elif cmd == 't': + if ts.cur.type != 'NUMBER': + raise MmlError("Invalid tempo command. Expected number.", ts.cur.line) + bpm = parse_int(ts.eat().data) + self.current_bpm = bpm + self.tempo_ever_set = True + # `t` is global -- real mmlgb hardware has one shared tempo + # clock for all four channels (see mmlgb-src/driver/music.c), + # so this must take effect for every channel at the real-time + # moment *this* channel's own playback reaches it, not just for + # whatever gets parsed later in the source text (which is what + # merely updating self.current_bpm here would do -- wrong + # whenever a tempo change is written on a channel whose block + # comes before another channel's in the file, e.g. a dedicated + # "tempo control" channel positioned after the melody). Recorded + # positionally in this channel's own stream; tempo.resolve_tempo + # does the actual cross-channel, chronological resolution later. + out.append(Ev('tempo', line, bpm)) + + elif cmd == 'y': + if ts.cur.type == 'DASH': + ts.eat() + if ts.cur.type != 'NUMBER': + raise MmlError("Invalid panning command. Expected number.", ts.cur.line) + parse_int(ts.eat().data) + self.song.warn("panning (y) has no equivalent in this engine's channel-data " + "format; dropped", line) + + elif cmd == 'L': + out.append(Ev('loop', line)) + + else: + raise MmlError(f"Unknown command {cmd!r}.", line) + + # -- macro-prefixed commands (@wave recall, @ve, @wd, @p, @po, @v, @ns, @@) -- + + def _parse_macro_command(self, ts: TokenStream, ch: int, state: ChannelState, out: List[Ev]): + t = ts.eat() + line = t.line + cmd = t.data + + if cmd == '@wave': + if ts.cur.type != 'NUMBER': + raise MmlError("Expected wave data id.", ts.cur.line) + wave_id = parse_int(ts.eat().data) + if wave_id not in self.song.waves and wave_id not in self.json_waveforms: + raise MmlError(f"Wave {wave_id} not defined.", line) + out.append(Ev('wave_select', line, wave_id)) + + elif cmd == '@ve': + increasing = True + if ts.cur.type == 'DASH': + ts.eat() + increasing = False + if ts.cur.type != 'NUMBER': + raise MmlError("Invalid volume envelope. Expected number.", ts.cur.line) + env = parse_int(ts.eat().data) + if env > 7: + raise MmlError("Invalid volume envelope. Expected values from -7 to 7.", line) + out.append(Ev('env', line, env if increasing else -env)) + + elif cmd == '@ea': + # Tool-specific extension, not part of upstream mmlgb at all: + # raw, direct passthrough of this engine's own two-parameter + # `env $attack $decay` command (see musicMacros.s), bypassing + # @ve's semantic translation entirely. @ve alone can only ever + # request an attack *or* a decay in one command (real mmlgb + # hardware envelopes only ever sweep one direction per trigger, + # which is exactly why @ve is single-valued -- see emitter.py's + # _emit_env), but this engine's own attack/decay pair is + # actually two independent software-tracked values: attack + # governs the note's initial software-simulated (or, with bit 3 + # set via $8-$f, true hardware) ramp-up, and decay separately + # configures the real hardware envelope pace that continues + # decaying *after* that ramp finishes -- a combination no single + # @ve value can express. Vanilla data overwhelmingly uses one or + # the other (mapped fine by plain @ve), but a handful of real + # sites set both simultaneously, needing this exact escape hatch + # for a byte-accurate round trip. + if ts.cur.type != 'NUMBER': + raise MmlError("Invalid @ea. Expected attack,decay.", ts.cur.line) + attack = parse_int(ts.eat().data) + if attack > 15: + raise MmlError("Invalid @ea attack. Expected values from 0 to 15.", line) + ts.expect('COMMA', 'comma') + if ts.cur.type != 'NUMBER': + raise MmlError("Invalid @ea. Expected decay after comma.", ts.cur.line) + decay = parse_int(ts.eat().data) + if decay > 7: + raise MmlError("Invalid @ea decay. Expected values from 0 to 7.", line) + out.append(Ev('env_raw', line, attack, decay)) + + elif cmd == '@wd': + if ts.cur.type != 'NUMBER': + raise MmlError("Invalid wave duty. Expected number.", ts.cur.line) + duty = parse_int(ts.eat().data) + if duty < 0 or duty > 3: + raise MmlError("Invalid wave duty. Expected values 0-3.", line) + out.append(Ev('wd', line, duty)) + + elif cmd == '@rl': + # Tool-specific extension, not part of upstream mmlgb at all: a + # "soft release" -- decays the currently playing note from + # whatever volume it's already at, at a fixed hardware pace, + # instead of cutting it off (`r`) or holding it (`w`). Maps + # directly to this engine's own `release` command (see + # channelCmdf5 in code/audio.s), which has no mmlgb equivalent + # to translate from -- it exists because it's what a real, + # pre-fix engine bug in `rest` actually did, and turned out to + # be the dominant note-release technique in existing vanilla + # content, so it was kept as a real, intentionally-available + # command rather than discarded. Square channels only (A/B), + # matching channelCmdf5's own scope. + if ch not in (0, 1): + raise MmlError( + "@rl (a decaying release -- see mml2wla_documentation.md) is only valid " + "on the square channels (A/B); the engine command it maps to has no " + "effect elsewhere.", line) + length, frame_exact = self._parse_length(ts, state, False) + if length == 0: + length = state.default_length + frame_exact = state.default_length_frame_exact + self._note_tempo_check(line) + out.append(Ev('release', line, length, self.current_bpm, frame_exact=frame_exact)) + + elif cmd == '@p': + if ts.cur.type != 'NUMBER': + raise MmlError("Expected speed after @p macro.", ts.cur.line) + parse_int(ts.eat().data) + self.song.warn("portamento (@p) has no equivalent in this engine's channel-data " + "format; dropped", line) + + elif cmd == '@po': + # mmlgb's flat pitch offset: a signed value added once to a + # note's frequency at trigger time and held constant for that + # note's whole duration -- an exact match for this engine's own + # cmdfd/pitchOffset (see musicMacros.s), which was confirmed to + # do exactly this by reading its handler in code/audio.s + # (setSoundFrequency). Only square/wave channels support it on + # this engine (channelCmdfd is a no-op on noise); mmlgb's own + # driver additionally excludes noise for the same command, so + # this isn't a new restriction relative to real mmlgb. + if ch == 3: + raise MmlError( + "@po (pitch offset) has no effect on the noise channel (D) in this " + "engine or in real mmlgb.", line) + neg = False + if ts.cur.type == 'DASH': + ts.eat() + neg = True + if ts.cur.type != 'NUMBER': + raise MmlError("Expected number after @po macro.", ts.cur.line) + val = parse_int(ts.eat().data) + if val > 127: + raise MmlError("Invalid @po value. Expected -127 to 127.", line) + out.append(Ev('pitch_offset', line, -val if neg else val)) + + elif cmd == '@s': + # mmlgb's pitch slide: a signed value re-added to the channel's + # frequency every single frame for as long as it stays nonzero, + # producing a continuous, unbounded slide (distinct from `@p` + # portamento, which glides toward and settles on a specific + # target note -- this engine has nothing resembling that, so + # `@p` stays dropped above). Matches this engine's own + # cmdf8/pitchSlide exactly (confirmed via func_39_41c2/ + # func_39_41f3 in code/audio.s: called every frame, accumulates + # into the live frequency in place). Same channel scope as @po. + if ch == 3: + raise MmlError( + "@s (pitch slide) has no effect on the noise channel (D) in this " + "engine.", line) + neg = False + if ts.cur.type == 'DASH': + ts.eat() + neg = True + if ts.cur.type != 'NUMBER': + raise MmlError("Expected speed after @s macro.", ts.cur.line) + val = parse_int(ts.eat().data) + if val > 127: + raise MmlError("Invalid @s value. Expected -127 to 127.", line) + out.append(Ev('pitch_slide', line, -val if neg else val)) + + elif cmd == '@vr': + # Tool-specific extension, not part of upstream mmlgb at all: a + # raw, direct passthrough of this engine's own `vol $N` command + # (see musicMacros.s), for any channel including the wave + # channel -- bypassing `v`'s own per-channel semantics entirely. + # On the wave channel, plain `v` (0-3) doesn't emit a runtime + # engine command at all: it bakes the level into a pre-scaled + # waveform table entry instead (see emitter.py's + # _maybe_emit_duty), which is the right authoring model for new + # content but isn't what existing vanilla wave-channel data + # actually does -- vanilla writes a literal runtime `vol $0-$f` + # command there instead (confirmed against every committed + # audio/*/mus/*.s: values well outside 0-3 appear on the wave + # channel), which this exists to reproduce exactly. + if ts.cur.type != 'NUMBER': + raise MmlError("Invalid @vr. Expected a number 0-15.", ts.cur.line) + vol = parse_int(ts.eat().data) + if vol < 0 or vol > 15: + raise MmlError("Invalid @vr value. Expected 0-15.", line) + out.append(Ev('vol_raw', line, vol)) + + elif cmd == '@er': + # Sfx-only extension, not part of upstream mmlgb: a raw, direct + # passthrough of this engine's own noise-channel `cmdf0 $XX` + # command (see channelCmdf0's label_39_038 in code/audio.s), + # which writes straight to the hardware envelope register + # (NR42) once, immediately -- distinct from @ea/@ve's env + # command, which only *stages* a value the software envelope + # simulation applies on the *next* note-trigger. This one has no + # software simulation at all: it's an instant hardware write, + # observed in real sfx data issued right before (and re-issued + # for) every single note it's meant to affect. vol (0-15), + # dir (0=decrease, 1=increase -- the increasing direction has no + # equivalent via @ea/@ve at all, since the software-simulated + # envelope only ever decays), pace (0-7) -- packed into one byte + # as (vol<<4)|(dir<<3)|pace, matching the real NR42 bit layout. + if ch != 3: + raise MmlError( + "@er (raw noise envelope) is only valid on the noise channel (D) -- it " + "maps directly to a noise-channel-only engine command.", line) + if ts.cur.type != 'NUMBER': + raise MmlError("Invalid @er. Expected vol,dir,pace.", ts.cur.line) + vol = parse_int(ts.eat().data) + if vol < 0 or vol > 15: + raise MmlError("Invalid @er vol. Expected 0-15.", line) + ts.expect('COMMA', 'comma') + if ts.cur.type != 'NUMBER': + raise MmlError("Invalid @er. Expected dir after first comma.", ts.cur.line) + direction = parse_int(ts.eat().data) + if direction not in (0, 1): + raise MmlError("Invalid @er dir. Expected 0 or 1.", line) + ts.expect('COMMA', 'comma') + if ts.cur.type != 'NUMBER': + raise MmlError("Invalid @er. Expected pace after second comma.", ts.cur.line) + pace = parse_int(ts.eat().data) + if pace < 0 or pace > 7: + raise MmlError("Invalid @er pace. Expected 0-7.", line) + out.append(Ev('noise_raw_env', line, vol, direction, pace)) + + elif cmd == '@fm': + # Sfx-only extension, not part of upstream mmlgb: a raw, direct + # passthrough of this engine's own square-channel `cmdf0 $XX` + # command (see channelCmdf0 in code/audio.s), which switches + # this channel permanently (for the rest of this sound effect -- + # there's no way back) into raw-frequency mode: every event from + # here on is a literal hardware frequency (@rf$), not a + # note-table lookup. Confirmed against every vanilla sfx file + # that this is only ever issued once, near the very start of a + # channel, never mid-stream. See @rf's own docs for the paired + # event syntax. + if ch not in (0, 1): + raise MmlError( + "@fm (raw frequency-mode switch) is only valid on the square channels " + "(A/B) -- the engine's raw-frequency mode only exists on those channels.", + line) + if ts.cur.type != 'NUMBER': + raise MmlError("Invalid @fm. Expected a byte value 0-255.", ts.cur.line) + byte = parse_int(ts.eat().data) + if byte < 0 or byte > 255: + raise MmlError("Invalid @fm value. Expected 0-255.", line) + state.raw_freq_mode = True + out.append(Ev('freq_mode', line, byte)) + + elif cmd == '@v': + if ts.cur.type != 'NUMBER': + raise MmlError("Expected vibrato speed after @v macro.", ts.cur.line) + speed = parse_int(ts.eat().data) + ts.expect('COMMA', 'comma') + if ts.cur.type != 'NUMBER': + raise MmlError("Expected vibrato depth after @v macro.", ts.cur.line) + depth = parse_int(ts.eat().data) + delay_ticks = None + delay_frame_exact = False + if ts.cur.type == 'COMMA': + ts.eat() + delay_ticks, delay_frame_exact = self._parse_length(ts, state, True) + if speed != 0: + self.song.warn( + "vibrato speed has no equivalent in this engine (its vibrato oscillation " + "rate is fixed); only depth and delay are used", line) + out.append(Ev('vibrato', line, depth, delay_ticks, self.current_bpm, + frame_exact=delay_frame_exact)) + + elif cmd == '@ns': + if ts.cur.type != 'NUMBER': + raise MmlError("Expected 0 or 1 after @ns macro.", ts.cur.line) + parse_int(ts.eat().data) + self.song.warn("noise counter step (@ns) has no equivalent in this engine's " + "channel-data format; dropped", line) + + elif cmd == '@@': + if ts.cur.type != 'NUMBER': + raise MmlError("Expected macro id.", ts.cur.line) + macro_id = parse_int(ts.eat().data) + if macro_id not in self.macro_tokens: + raise MmlError(f"Macro @@{macro_id} not found.", line) + sub = TokenStream(self.macro_tokens[macro_id]) + self._parse_commands(sub, ch) + + else: + raise MmlError(f"Unknown macro command {cmd!r}.", line) + + +# --------------------------------------------------------------------------- +# Structurer: flat Ev stream -> tree of Ev/RepeatBlock nodes, by matching +# rep_start/rep_end markers. +# --------------------------------------------------------------------------- + +def structure(events: List[Ev]) -> list: + root: list = [] + stack = [root] + open_lines = [] + for ev in events: + if ev.kind == 'rep_start': + block = RepeatBlock(count=0, children=[], line=ev.line) + stack[-1].append(block) + stack.append(block.children) + open_lines.append(ev.line) + elif ev.kind == 'rep_end': + if len(stack) == 1: + raise MmlError("Unmatched ']' (no open '[').", ev.line) + stack.pop() + open_lines.pop() + parent = stack[-1] + for node in reversed(parent): + if isinstance(node, RepeatBlock) and node.count == 0: + node.count = ev.a + break + else: + stack[-1].append(ev) + if len(stack) != 1: + raise MmlError("Unmatched '[' (missing ']').", open_lines[-1]) + return root diff --git a/tools/audio/mml2wla/tempo.py b/tools/audio/mml2wla/tempo.py new file mode 100644 index 000000000..09f8a4665 --- /dev/null +++ b/tools/audio/mml2wla/tempo.py @@ -0,0 +1,195 @@ +"""Cross-channel, chronological tempo resolution. + +mmlgb's `t` (tempo) command is global: real hardware has exactly one shared +tempo clock (a single programmable timer interrupt -- see +mmlgb-src/driver/music.c's `mus_init`/TAC setup) driving all four channels' +countdowns at once. A `t` command compiles into a byte in whichever +channel's own data stream it was written on (confirmed against +mmlgb-src/parser/src/Parser.cs: `song.AddData(active, ...)` only touches the +channel(s) active on that line), and takes effect for every channel starting +at the real-time moment *that* channel's own playback reaches it -- not +wherever it happens to sit in the source text, and not just for whichever +channel wrote it. + +That has a consequence beyond simple ordering: since every channel's note +countdown ticks against the *same* clock, a tempo change on one channel can +land in the middle of another channel's still-playing note. On real +hardware that note's remaining ticks genuinely play out at the new rate -- +there's no such thing as "this note's tempo," only "the tempo, whatever it +is at each tick." So resolving a note to one flat bpm for its whole +duration is only an approximation; if a tempo change falls inside that +note's span, the correct frame count is a *blend*: part of the note's ticks +converted at the old rate, the rest at the new one, summed together. + +This module handles both problems with one discrete-event simulation: walk +all four channels' fully-unrolled event streams together, always advancing +toward whichever channel's own elapsed real time is currently smallest, +applying `tempo` events the instant they're chronologically reached +(regardless of which channel wrote them) -- and whenever one lands inside +another channel's already-started note, checkpointing that note's progress +so its eventual frame count correctly blends every tempo that was active +across its span. +""" + +from typing import List, Optional, Tuple + +from .parser import Ev, RepeatBlock, DEFAULT_TEMPO_BPM +from .timing import real_seconds_per_tick, GB_FRAME_RATE + +# Event kinds whose `ticks` field advances that channel's own real-time +# cursor (they occupy real playback time on that channel). +_TICK_KINDS = {'note', 'noise_literal', 'rest', 'wait', 'release', 'raw_freq'} +# Field index (Ev.a/.b/.c/.d) holding the ticks value, per kind. +_TICKS_FIELD = {'note': 'c', 'noise_literal': 'b', 'rest': 'a', 'wait': 'a', 'release': 'a', + 'raw_freq': 'b'} + + +def flatten_tree(tree: list) -> List[Ev]: + """Fully unrolls RepeatBlocks (respecting `.count`), returning every + leaf Ev in true playback order -- the same order `ChannelEmitter`'s own + tree walk visits them in, which is what makes it safe to hand this + function's output (or values derived from it) to the emitter as a + plain, in-order queue.""" + out: List[Ev] = [] + for node in tree: + if isinstance(node, RepeatBlock): + for _ in range(node.count): + out.extend(flatten_tree(node.children)) + else: + out.append(node) + return out + + +def resolve_tempo(trees: List[list]) -> List[List[float]]: + """Given the 4 channels' structured (unroll-ready) trees, in A/B/C/D + order, returns one resolved value per tick-consuming event + (note/noise_literal/rest/wait) and per vibrato event, per channel, in + that channel's own playback order -- ready to be consumed as a plain + queue (one `next()` per such event) by the emitter, in place of the bpm + each event's own Ev carries (which only reflects source-text order, not + real chronological order -- see module docstring). + + For a tick-consuming event, the value is an *exact frame count* + (float, not yet rounded -- feed it to FrameResolver.resolve_exact), + already blended across any tempo change(s) that occurred mid-event. For + a vibrato event, the value is a plain bpm (its delay isn't part of the + channel's additive timeline -- see timing.py -- so there's nothing to + blend; it just needs whatever tempo is chronologically current). + """ + flat = [flatten_tree(t) for t in trees] + cursors = [0, 0, 0, 0] + real_time = [0.0, 0.0, 0.0, 0.0] + # None, or ('ticks'|'seconds', remaining, accumulated_exact_frames) for + # a tick-consuming event that's been partially resolved already because + # some other channel's tempo change landed inside it. A frame-exact + # event (mmlgb's `=X` syntax -- see Ev.frame_exact) has a real-world + # duration that's completely independent of tempo, so it's tracked as + # remaining *seconds* rather than remaining *ticks*; a tempo change + # landing inside one doesn't change how long it takes at all, it just + # needs its already-elapsed portion converted to seconds like anything + # else for cross-channel chronology. + in_progress: List[Optional[Tuple[str, float, float]]] = [None, None, None, None] + resolved: List[List[float]] = [[], [], [], []] + global_bpm = DEFAULT_TEMPO_BPM + + def fresh_state(ev) -> Tuple[str, float, float]: + if ev.frame_exact: + frames = getattr(ev, _TICKS_FIELD[ev.kind]) + return ('seconds', frames / GB_FRAME_RATE, 0.0) + return ('ticks', getattr(ev, _TICKS_FIELD[ev.kind]), 0.0) + + def projected_completion(mode: str, remaining: float) -> float: + if mode == 'seconds': + return remaining + return remaining * real_seconds_per_tick(global_bpm) + + def checkpoint(other: int, at_time: float): + """Partially advances `other`'s current (fresh or in-progress) + tick-consuming event up to `at_time`, at the tempo active up to + now, folding the covered portion into its accumulated frame total. + No-op if `other`'s current event isn't a tick-consuming one, or + hasn't started yet.""" + if cursors[other] >= len(flat[other]) or real_time[other] >= at_time: + return + if in_progress[other] is not None: + mode, remaining, accum = in_progress[other] + else: + oev = flat[other][cursors[other]] + if oev.kind not in _TICK_KINDS: + return + mode, remaining, accum = fresh_state(oev) + elapsed_time = at_time - real_time[other] + if mode == 'seconds': + coverable = min(remaining, elapsed_time) + frames_partial = coverable * GB_FRAME_RATE + else: + spt = real_seconds_per_tick(global_bpm) + coverable = min(remaining, elapsed_time / spt) + frames_partial = coverable * spt * GB_FRAME_RATE + in_progress[other] = (mode, remaining - coverable, accum + frames_partial) + real_time[other] = at_time + + while True: + active = [ch for ch in range(4) if cursors[ch] < len(flat[ch])] + if not active: + break + + boundaries = [] # (projected_time, ch, is_instant) + for ch in active: + if in_progress[ch] is not None: + mode, remaining, _ = in_progress[ch] + t = real_time[ch] + projected_completion(mode, remaining) + boundaries.append((t, ch, False)) + continue + ev = flat[ch][cursors[ch]] + if ev.kind in _TICK_KINDS: + mode, remaining, _ = fresh_state(ev) + t = real_time[ch] + projected_completion(mode, remaining) + boundaries.append((t, ch, False)) + else: + # tempo, vibrato, or any other instantaneous kind (vol/env/ + # wd/wave_select(_const)/loop/comment): zero duration. + boundaries.append((real_time[ch], ch, True)) + + min_t = min(b[0] for b in boundaries) + at_min = [b for b in boundaries if b[0] == min_t] + # Among ties, an instant event must go first -- see module + # docstring and _emit_ev's `loop`-reset comment for the same + # principle applied elsewhere: nothing tick-consuming may advance + # past a chronologically-simultaneous instant event. + instants = [b for b in at_min if b[2]] + _, ch, is_instant = instants[0] if instants else at_min[0] + ev = flat[ch][cursors[ch]] + + if is_instant: + if ev.kind == 'tempo': + new_bpm = ev.a + if new_bpm != global_bpm: + for other in range(4): + if other != ch: + checkpoint(other, min_t) + global_bpm = new_bpm + elif ev.kind == 'vibrato': + resolved[ch].append(global_bpm) + cursors[ch] += 1 + continue + + # A tick-consuming event reaching its own (uninterrupted) natural + # completion: this boundary is the global minimum, so nothing else + # is chronologically due before it -- safe to finish it now. + if in_progress[ch] is not None: + mode, remaining, accum = in_progress[ch] + else: + mode, remaining, accum = fresh_state(ev) + if mode == 'seconds': + exact_frames = accum + remaining * GB_FRAME_RATE + real_time[ch] += remaining + else: + spt = real_seconds_per_tick(global_bpm) + exact_frames = accum + remaining * spt * GB_FRAME_RATE + real_time[ch] += remaining * spt + resolved[ch].append(exact_frames) + in_progress[ch] = None + cursors[ch] += 1 + + return resolved diff --git a/tools/audio/mml2wla/timing.py b/tools/audio/mml2wla/timing.py new file mode 100644 index 000000000..b1878ba44 --- /dev/null +++ b/tools/audio/mml2wla/timing.py @@ -0,0 +1,144 @@ +"""Tick/frame timing conversion. + +mmlgb expresses note lengths in a tempo-independent tick unit: 192 ticks per +whole note (BAR_STEPS), 48 ticks per quarter note/beat (BEAT_STEPS) -- this +is where the `l`/length-denominator table in the MML docs comes from, and it +never changes regardless of the `t` (tempo) command. + +Target WLA-DX sound engines of the kind this tool generates for (e.g. the +Zelda Oracle of Ages/Seasons disassembly's audio engine) have no such tick +concept at all: every length byte in the channel data *is* a literal count +of game frames (~59.7Hz on real Game Boy hardware) to hold a note/rest for, +with no runtime tempo register. So converting means resolving mmlgb's +tempo-independent ticks into an absolute frame count for whatever `t` (BPM) +is active at that point in the source. + +Two things make this trickier than a single multiply-and-round: + +1. mmlgb's own tempo command does not produce an exact BPM on real hardware. + `t` sets a Game Boy hardware timer (TAC clock = 4096Hz) reload value that + must be a whole number, so the real tick rate it produces is quantized + and comes out slightly different from the requested BPM (e.g. `t140` + plays at ~134.7 BPM, not 140). We replicate that exact quantization + (verified against mmlgb-src/driver/music.c's `mus_init` and + mmlgb-src/parser/src/Parser.cs's tempo command) so a converted song's + overall pace matches how mmlgb actually played it, not an idealized BPM. + +2. Rounding each note's length independently to the nearest frame introduces + up to ±0.5 frames of error *per note*. Do that with no correction and the + error accumulates without bound over a whole song -- on a channel with + many short notes this becomes audible, and because different channels + have different rhythms, their accumulated errors diverge from each + other, so the channels drift out of sync with each other over time (this + is what caused a reported "channels playing horribly out of sync" bug). + The fix is a standard error-carry technique: track the leftover + fractional frame after each rounding decision and fold it into the next + one, so error never accumulates past +-1 frame no matter how long the + sequence runs. See `FrameResolver` below. +""" + +import math + +BAR_STEPS = 192 # ticks per whole note +BEAT_STEPS = 48 # ticks per quarter note / beat (mmlgb "BEAT_STEPS") +TIMA_SPEED = 4096.0 # Game Boy TAC clock selected by the mmlgb driver (TAC=$04) + +# Real Game Boy frame rate: one frame = 154 scanlines * 456 T-cycles, at the +# 4194304Hz system clock. +GB_FRAME_RATE = 4194304.0 / 70224.0 # ~59.7275 Hz + +MAX_CMD_LENGTH = 255 # max single-byte length ever emitted (never emit the + # $00-means-256 underflow trick -- see chunk_length) + + +def real_seconds_per_tick(bpm: float) -> float: + """How long one mmlgb tick (1/48 of a beat) actually lasts on real + hardware for a given `t` (BPM) command, including the same integer + timer-reload quantization mmlgb-src/parser/src/Parser.cs performs: + + ups = (bpm/60) * BEAT_STEPS # requested ticks/sec + mod = round(TIMA_SPEED / ups) # integer TMA reload distance + real_ticks_per_sec = TIMA_SPEED / (mod + 1) + + The `+ 1` matters: mmlgb stores `255 - mod` into the hardware TMA + register (an 8-bit timer-modulo). TIMA counts up from TMA and fires an + interrupt on overflow past 255, i.e. after (256 - TMA) = (mod + 1) + ticks of the base clock -- not `mod` ticks. + """ + ups = (bpm / 60.0) * BEAT_STEPS + mod = round(TIMA_SPEED / ups) + real_ticks_per_sec = TIMA_SPEED / (mod + 1) + return 1.0 / real_ticks_per_sec + + +def ticks_to_frames_exact(ticks: float, bpm: float) -> float: + """Exact (unrounded) frame count for `ticks` mmlgb ticks at `bpm`.""" + seconds = ticks * real_seconds_per_tick(bpm) + return seconds * GB_FRAME_RATE + + +def chunk_length(total: int): + """Split a frame count into a sequence of <=255 chunks (never emitting + the $00-means-256 underflow trick), matching real disassembly usage + (e.g. a long rest written by hand as `rest $ff` + `rest $25`).""" + if total <= 0: + return [] + chunks = [] + remaining = total + while remaining > MAX_CMD_LENGTH: + chunks.append(MAX_CMD_LENGTH) + remaining -= MAX_CMD_LENGTH + if remaining > 0: + chunks.append(remaining) + return chunks + + +class FrameResolver: + """Per-channel error-carry rounder: converts a sequence of (ticks, bpm) + lengths into frame counts whose cumulative timeline tracks the exact + (unrounded) timeline to within +-1 frame forever, instead of drifting. + + Must be fed lengths *in playback order* for one channel. Two independent + FrameResolver instances (or two independently-ordered passes through the + same one, see `snapshot`/`restore`) will not necessarily produce the + same rounding decisions partway through if their carry states differ -- + this is expected and is exactly what lets `.rept`-vs-literal-expansion + be decided correctly (see emitter.py). + """ + + __slots__ = ('carry',) + + def __init__(self, carry: float = 0.0): + self.carry = carry + + def resolve(self, ticks: float, bpm: float) -> int: + exact = ticks_to_frames_exact(ticks, bpm) + total = exact + self.carry + frames = max(1, round(total)) + self.carry = total - frames + return frames + + def resolve_exact(self, exact_frames: float) -> int: + """Like `resolve`, but takes an already-computed exact (unrounded) + frame value directly, for callers that need to blend more than one + tempo across a single event's duration (see tempo.py -- a note can + span a tempo change declared on a different channel partway + through its own length) instead of one (ticks, bpm) pair.""" + total = exact_frames + self.carry + frames = max(1, round(total)) + self.carry = total - frames + return frames + + def resolve_no_carry(self, ticks: float, bpm: float) -> int: + """Plain rounding with no error-carry bookkeeping, for values that + aren't part of a channel's additive timeline (e.g. a vibrato + delay -- it doesn't extend how long the channel is "busy", so + folding its rounding error into the next note's carry would leak + timing debt into an unrelated parameter).""" + return max(1, round(ticks_to_frames_exact(ticks, bpm))) + + def snapshot(self) -> float: + return self.carry + + def restore(self, carry: float): + self.carry = carry diff --git a/tools/audio/mml2wla/waveforms.py b/tools/audio/mml2wla/waveforms.py new file mode 100644 index 000000000..ee93d2a25 --- /dev/null +++ b/tools/audio/mml2wla/waveforms.py @@ -0,0 +1,130 @@ +"""Wave channel (channel C) sample scaling, packing, and cross-file dedup. + +Real Game Boy wave-channel hardware only supports four output levels: mute, +100%, 50%, 25% (NR32 bits 6-5, applied as a 0/1/2-bit right shift of each +4-bit sample as it's read from Wave RAM). mmlgb exposes this directly as +`v0`-`v3`, changeable per note. + +The target WLA sound engine's `vol` command is wired to do nothing on the +wave channel -- volume has to be baked into the waveform sample data itself +(this is confirmed both by s_file_documentation.mediawikipage and by the +reference engine's own code, which skips the wave channel in `cmdVolume`). +The reference waveforms.s does exactly this by hand, with families like +`WF_SQUARE_50_VOL_1`..`VOL_9` at different hand-picked amplitudes. + +So: for every (waveform, volume level) pair actually used by a song's wave +channel, we generate a scaled variant of that waveform's 32 samples using +the same shift amounts real hardware would apply, and let the channel data +select between them with `duty`. Variants are deduplicated by their final +packed byte content, so identical (waveform, volume) pairs -- even across +different songs in a batch run -- share one table entry. +""" + +import json +from typing import Dict, List, Tuple + +WAVE_VOLUME_SHIFT = {0: None, 1: 2, 2: 1, 3: 0} # None = fully muted + + +def load_waveforms_json(path: str) -> Dict[int, str]: + """Loads a waveforms.json manifest (see audio/common/waveforms.json in + the Zelda Oracle of Ages/Seasons disassembly) into {id: name} -- the + catalog of already-existing, named waveforms a .mml file can reference + directly by numeric id (see parser.py's Parser.json_waveforms), with no + bracket syntax and no new data of its own. Each entry's own "data" field + (32 space-separated 0-15 samples, the same format as a local `@waveN = + {...}` definition) isn't needed here -- only for actually generating + waveforms.s from the JSON (see tools/audio/waveformsJsonToS.py), which + this project's build does as a separate step.""" + with open(path) as f: + entries = json.load(f) + return {entry['id']: entry['name'] for entry in entries} +VOL_LABEL = {0: 'MUTE', 1: '25', 2: '50', 3: '100'} + + +def scale_wave_samples(samples: List[int], vol_level: int) -> List[int]: + shift = WAVE_VOLUME_SHIFT[vol_level] + if shift is None: + return [0] * 32 + return [s >> shift for s in samples] + + +def pack_wave_samples(samples: List[int]) -> List[int]: + """32 4-bit samples -> 16 bytes, high nibble first. Verified against + both mmlgb's own Song.EmitC() packing (parser/src/Song.cs) and the + reference waveforms.s: a hand-authored triangle wave (WF_TRIANGLE_MEDIUM, + `.db $11 $22 $33 $44 $55 $66 $78 $9a $a9 $88 ...`) only unpacks into a + smooth, monotonic ramp with this nibble order; the reverse order breaks + the ramp into a small zigzag at the peak, which would be an implausible + shape for a hand-authored "triangle" waveform.""" + out = [] + for i in range(0, 32, 2): + out.append(((samples[i] & 0xF) << 4) | (samples[i + 1] & 0xF)) + return out + + +class WaveformAggregator: + """Collects scaled waveform variants across one or more converted + songs, deduplicated by exact packed byte content, with usage tracked + per (song, source wave id, volume level) for the generated comments.""" + + def __init__(self, next_free_id_hint: int = 0x2e): + self.entries = [] # [{packed, name, users:set((song,waveid,vol))}] + self.by_bytes: Dict[tuple, int] = {} + self.by_name: set = set() + self.next_free_id_hint = next_free_id_hint + + def request(self, raw_samples: List[int], vol_level: int, song_name: str, base_wave_id: int) -> str: + scaled = scale_wave_samples(raw_samples, vol_level) + packed = tuple(pack_wave_samples(scaled)) + if packed in self.by_bytes: + idx = self.by_bytes[packed] + self.entries[idx]['users'].add((song_name, base_wave_id, vol_level)) + return self.entries[idx]['name'] + + base_name = f"WF_{song_name.upper()}_WAVE{base_wave_id}_{VOL_LABEL[vol_level]}" + name = base_name + suffix = 1 + while name in self.by_name: + suffix += 1 + name = f"{base_name}_{suffix}" + self.by_name.add(name) + + idx = len(self.entries) + self.entries.append({ + 'packed': packed, + 'name': name, + 'users': {(song_name, base_wave_id, vol_level)}, + }) + self.by_bytes[packed] = idx + return name + + def emit(self) -> str: + if not self.entries: + return "" + lines = [] + lines.append("; Auto-generated by mml2wla. These waveforms are new and are NOT yet") + lines.append("; part of your project's waveform table (e.g. audio/common/waveforms.s in") + lines.append("; the Zelda Oracle of Ages/Seasons disassembly) -- merge the m_waveform") + lines.append("; blocks below into that file (in the m_waveform-referenced section, not") + lines.append("; any orphaned/unused blocks), assign each a real free index, and bump") + lines.append("; its waveform-count constant accordingly. The placeholder indices below") + lines.append(f"; start at ${self.next_free_id_hint:02x} (the next free slot as of when this tool's") + lines.append("; reference copy of that table was captured) -- verify against your") + lines.append("; project's current table before merging, and renumber if it has moved on.") + lines.append("; The channel-data files reference these waveforms by symbolic name (e.g.") + lines.append("; `duty WF_SONGNAME_WAVE0_100`), so renumbering here is safe.") + lines.append("") + next_id = self.next_free_id_hint + for entry in self.entries: + users = sorted(entry['users']) + lines.append("; Used by:") + for song_name, wave_id, vol in users: + lines.append(f"; {song_name}.s (source @wave{wave_id}, volume level {vol} = " + f"{VOL_LABEL[vol]}%)") + lines.append(f"m_waveform ${next_id:02x}, {entry['name']}") + byte_strs = ' '.join(f"${b:02x}" for b in entry['packed']) + lines.append(f"\t.db {byte_strs}") + lines.append("") + next_id += 1 + return '\n'.join(lines) + '\n' diff --git a/tools/audio/noiseJsonToS.py b/tools/audio/noiseJsonToS.py new file mode 100644 index 000000000..c38b364e9 --- /dev/null +++ b/tools/audio/noiseJsonToS.py @@ -0,0 +1,85 @@ +#!/usr/bin/python3 +"""Generates audio/common/noise.s from audio/common/noise.json -- the noise +channel's fixed hardware "note" palette is now authored as JSON (note byte, +envelope byte, NR43 byte, and an optional name/description for whichever +entries get a real MML alias -- see sToMml.py's use of these same names for +`@alias = n$XX` definitions), with this script doing the table-generation +work that used to be done by hand in the committed .s file. + +An entry with "editableOnly": true (the hardware envelope fade-in variants +-- see code/audio.s's engine support for the increasing-envelope direction +bit) is emitted inside a `.ifndef BUILD_VANILLA` guard, exactly matching +the original hand-written noise.s: real entries the noise channel can +select once compiled through the editable build, but never present in +vanilla ROM data (bank $39 has no free space there for them). + +Usage: noiseJsonToS.py +""" +import json +import sys + + +def generate(entries): + out = [] + out.append("; Generated by tools/audio/noiseJsonToS.py from noise.json -- do not edit " + "directly.") + out.append(";") + out.append("; This table defines the types of noises the noise channel can make.") + out.append(";") + out.append("; Data format:") + out.append("; b0: \"Note\", aka the value passed to the \"note\" macro, used as a lookup " + "index for this table") + out.append("; b1: Controls volume envelope, NR42 register (should always leave upper " + "nybble as $0)") + out.append("; b2: Value written directly to NR43 register (determines most " + "characteristics of the sound)") + out.append("") + out.append("noiseFrequencyTable:") + + def emit_row(e): + comment = e.get('description') or e.get('comment') + name = e.get('name') + label = f" ; {name}: {comment}" if name and comment else ( + f" ; {comment}" if comment else (f" ; {name}" if name else "")) + out.append(f"\t.db ${e['note']:02x} ${e['env']:02x} ${e['nr43']:02x}{label}") + + vanilla = [e for e in entries if not e.get('editableOnly')] + editable_only = [e for e in entries if e.get('editableOnly')] + for e in vanilla: + emit_row(e) + + if editable_only: + out.append("") + out.append(".ifndef BUILD_VANILLA") + out.append("\t; Increasing-envelope (fade-in) variants: same NR43 characteristics as an " + "existing") + out.append("\t; entry above, but with the envelope byte's bit 3 set (direction = " + "increase instead") + out.append("\t; of decrease). Guarded out of the vanilla build since bank $39 has no " + "free space") + out.append("\t; there and vanilla data never references these note bytes.") + for e in editable_only: + emit_row(e) + out.append(".endif") + + out.append("") + out.append("\t.db $ff") + out.append("") + return '\n'.join(out) + + +def main(): + if len(sys.argv) != 3: + print(f"Usage: {sys.argv[0]} ") + sys.exit(1) + json_path, out_path = sys.argv[1], sys.argv[2] + with open(json_path) as f: + entries = json.load(f) + text = generate(entries) + with open(out_path, 'w') as f: + f.write(text) + print(f"wrote {out_path} ({len(entries)} noise entr{'y' if len(entries)==1 else 'ies'})") + + +if __name__ == '__main__': + main() diff --git a/tools/audio/sToMml.py b/tools/audio/sToMml.py new file mode 100644 index 000000000..5b225603d --- /dev/null +++ b/tools/audio/sToMml.py @@ -0,0 +1,688 @@ +#!/usr/bin/python3 +"""One-time migration prototype: transpiles an already-committed, already +ROM-decoded audio/*/mus/*.s channel-data file into an equivalent .mml file, +for validating the mml2wla round trip before porting this same mapping into +dumpMusic.py's real ROM->MML decode path. + +This deliberately does NOT touch ROM bytes at all -- it works off the .s +text that a prior, legitimate dumpMusic.py run (against the real clean ROM) +already produced, and which already carries the correct rest/release/sust +classification (see code/audio.s's channelCmdf5 and dumpMusic.py's own +parseChannelData comments). That's a valid one-time bootstrap of the .mml +corpus; it is not a substitute for dumpMusic.py itself eventually emitting +.mml directly from ROM bytes. + +Usage: sToMml.py + sToMml.py --pirates +""" +import json +import os +import re +import sys + +import tempoInfer +from songConfig import ECHO_CHANNELS + +_REPO = os.path.join(os.path.dirname(__file__), '..', '..') + +NOTE_RE = re.compile(r'^\tnote ([a-g]s?)(\d) +\$([0-9a-fA-F]+)$') +NOISE_NOTE_RE = re.compile(r'^\tnote \$([0-9a-fA-F]+) \$([0-9a-fA-F]+)$') +REST_RE = re.compile(r'^\trest \$([0-9a-fA-F]+)$') +SUST_RE = re.compile(r'^\tsust \$([0-9a-fA-F]+)$') +RELEASE_RE = re.compile(r'^\trelease \$([0-9a-fA-F]+)$') +VOL_RE = re.compile(r'^\tvol \$([0-9a-fA-F]+)$') +ENV_RE = re.compile(r'^\tenv \$([0-9a-fA-F]+) \$([0-9a-fA-F]+)$') +DUTY_RE = re.compile(r'^\tduty \$([0-9a-fA-F]+)$') +VIBRATO_RE = re.compile(r'^\tvibrato \$([0-9a-fA-F]+)$') +PITCH_OFFSET_RE = re.compile(r'^\tpitchOffset \$([0-9a-fA-F]+)$') +PITCH_SLIDE_RE = re.compile(r'^\tpitchSlide \$([0-9a-fA-F]+)$') +CMDF0_RE = re.compile(r'^\tcmdf0 \$([0-9a-fA-F]+)$') +RAWFREQ_DB_RE = re.compile(r'^\t\.db \$([0-9a-fA-F]+) \$([0-9a-fA-F]+) \$([0-9a-fA-F]+)$') +GOTO_RE = re.compile(r'^\tgoto (\S+)$') +LABEL_RE = re.compile(r'^(music[0-9a-fA-F]+):$') +CHANNEL_START_RE = re.compile(r'^(?:mus|snd)\w+Channel(\d+):$') +DROP_EXACT = {'\tcmdf2', '\tcmdff'} + +# engine channel index -> mml channel letter (see emitter.py: ch 0=A/1=B/2=C/3=D +# internally, matching engine WRAM channel numbers 0,1,4,6 in that order). Sfx +# files (see emitter.py's CHANNEL_NUM_SFX) reuse the same 4 letters via a +# separate set of engine channel numbers (2,3,5,7) for the exact same 4 +# physical channels, so both map onto the same letter here. +ENGINE_CH_TO_LETTER = {0: 'A', 1: 'B', 4: 'C', 6: 'D', 2: 'A', 3: 'B', 5: 'C', 7: 'D'} + +CHANNEL_LABELS = { + 'A': '; pulse channel 1', + 'B': '; pulse channel 2', + 'C': '; wavetable channel', + 'D': '; noise channel', +} + +# '+' preferred over '#' for sharps -- both are accepted by the lexer (see +# lexer.py's SHARP token, r'[#+]'), but '+' is the more idiomatic mmlgb +# convention (see mmlgb_documentation.md's own examples). +NOTE_LETTER_MML = {'c': 'c', 'cs': 'c+', 'd': 'd', 'ds': 'd+', 'e': 'e', 'f': 'f', + 'fs': 'f+', 'g': 'g', 'gs': 'g+', 'a': 'a', 'as': 'a+', 'b': 'b'} + +# Loaded from audio/common/noise.json (the single source of truth this used +# to be a hand-maintained duplicate of -- see tools/audio/noiseJsonToS.py, +# which generates the actual noise.s from the same file). Only entries with +# a "name" field become an alias here; an unnamed entry can still be +# selected via a raw n$XX literal, just without a friendly alias. +def _load_noise_names(): + with open(os.path.join(_REPO, 'audio/common/noise.json')) as f: + entries = json.load(f) + return {e['note']: (e['name'], e.get('description', '')) for e in entries if 'name' in e} + + +NOISE_NAMES = _load_noise_names() + +# file_base -> (#TITLE override, header comment). This song's real internal +# ROM-derived primary name (see dumpMusicMml.py's _base_name -- also the +# SONG_MANIFEST/lookup key, so this dict's own keys must match it exactly) +# -> (nicer output filename, #TITLE to restore the label +# soundChannelPointers.s actually expects, optional header comment). +# soundPointers.s's raw label is "musPrecredits" (lowercase c), so +# _base_name derives "precredits" -- an awkward filename. This renames the +# output file to the nicer camelCase "preCredits" while #TITLE keeps the +# compiled label exactly "musPrecredits", matching soundChannelPointers.s's +# own reference with no build-affecting change at all. +TITLE_OVERRIDES = { + 'precredits': ('preCredits', 'Precredits', ( + "soundPointers.s's raw label is \"musPrecredits\" (lowercase c); this renames " + "the output file to the nicer \"preCredits\" while #TITLE keeps the compiled " + "label exactly \"musPrecredits\", matching soundChannelPointers.s's own " + "reference.")), +} + +# Commands that only take effect the next time a note/rest/wait/noise-note +# triggers (see emitter.py/code/audio.s for each): re-issuing one of these +# with nothing that actually triggers in between means the earlier issue is +# never observed and can be dropped outright. pitchOffset and pitchSlide +# are kept as distinct kinds (not merged) since they're independent engine +# state (wChannelPitchShift vs wChannelPitchSlide) -- superseding one must +# never drop a pending write to the other. +STATE_KINDS = {'vol', 'env', 'duty', 'vibrato', 'pitchOffset', 'pitchSlide'} +TRANSPARENT_KINDS = {'__label__', '__linebreak__', '__goto__'} + + +def _expand_rept(raw_lines): + """Some committed .s files already hand-apply WLA's `.rept N ... .endr` + (a source-level space optimization -- see Makefile/README) to a few + vanilla songs -- including, in at least one case, a `.rept` nested + directly inside another. Expanding it back into literal copies here + (rather than teaching the rest of this script to understand it) is + lossless and keeps everything downstream simple; mml2wla's own + _collapse_repeated_lines re-compacts identical runs on the way back out + anyway, so nothing about the final ROM-space savings is lost by + expanding here first.""" + def expand(lines, i): + """Expands lines[i:] up to (and consuming) the .endr matching the + block this call is inside, or to the end of the list at the top + level. Returns (expanded_lines, index_just_past_the_matching_endr).""" + out = [] + n = len(lines) + while i < n: + s = lines[i].strip() + if s == '.endr': + return out, i + 1 + m = re.match(r'^\.rept (\d+)', s) + if not m: + out.append(lines[i]) + i += 1 + continue + count = int(m.group(1)) + body, i = expand(lines, i + 1) + out.extend(body * count) + return out, i + + expanded, _ = expand(raw_lines, 0) + return expanded + + +def split_pirates(lines): + """pirates.s is the one confirmed case in the whole corpus of a genuine + per-game content fork (different noise-channel data for Ages vs + Seasons, not just a wrapped no-op) -- see the .ifdef ROM_SEASONS / + .else / .endif around its Channel6 data. Splits the raw line list into + (ages_lines, seasons_lines), each with the fork resolved to just that + game's own branch, so the rest of this script can treat each as an + ordinary single-variant file.""" + ifdef_i = next(i for i, l in enumerate(lines) if l.strip().startswith('.ifdef ROM_SEASONS')) + else_i = next(i for i, l in enumerate(lines) if l.strip().startswith('.else')) + endif_i = next(i for i, l in enumerate(lines) if l.strip().startswith('.endif')) + before, seasons_branch, ages_branch, after = ( + lines[:ifdef_i], lines[ifdef_i + 1:else_i], lines[else_i + 1:endif_i], lines[endif_i + 1:]) + return before + ages_branch + after, before + seasons_branch + after + + +def convert(lines): + """`lines` is a raw list of source lines (already .rept-expanded). + Returns (channels, is_sfx) -- is_sfx is True iff any channel header used + one of the sfx-only engine channel numbers (2/3/5/7), so callers know + whether the file needs a `#SFX` directive when rendering it back out.""" + channels = {} # letter -> list of (kind, val) tokens + cur_letter = None + cur_engine_ch = None + octave = {} # letter -> last emitted octave (mmlgb default octave is 4) + channel_ended = {} # letter -> True once cmdff/goto seen (see below) + raw_freq_mode = {} # letter -> True once @fm (cmdf0 on a square channel) seen + is_sfx = False + + for raw_line in lines: + line = raw_line.rstrip('\n') + # Strip a trailing inline comment (e.g. "sust $2e ;$18 + $16") -- + # but not a leading one (a whole-line comment, handled below by its + # own dedicated check, since some, like "; Measure 1", are meant to + # stay readable as section/line-break markers rather than silently + # vanish mid-parse). ';' never appears inside a real command's own + # syntax, so a naive split is unambiguous here. + if ';' in line and not line.strip().startswith(';'): + line = line.split(';', 1)[0] + line = line.rstrip() + if not line.strip(): + continue + if line[:1] in ('\t', ' '): + # Normalize to exactly one leading tab: a command nested inside + # a (possibly doubly-nested) hand-written `.rept` block carries + # extra indentation in the source that has no bearing on the + # command itself -- see _expand_rept, which preserves each + # body line's original indentation verbatim when it copies it + # out N times. + line = '\t' + line.lstrip('\t ') + + m = CHANNEL_START_RE.match(line.strip()) + if m: + cur_engine_ch = int(m.group(1)) + if cur_engine_ch not in ENGINE_CH_TO_LETTER: + raise ValueError(f"unexpected channel index {cur_engine_ch}") + if cur_engine_ch in (2, 3, 5, 7): + is_sfx = True + cur_letter = ENGINE_CH_TO_LETTER[cur_engine_ch] + channels[cur_letter] = [] + octave[cur_letter] = 4 + raw_freq_mode[cur_letter] = False + continue + + if (line.startswith('mus') or line.startswith('snd')) and line.endswith('Start:'): + continue + if '.define' in line and 'MUSIC_CHANNEL_FALLBACK' in line: + continue + stripped_full = line.strip() + if stripped_full.startswith(';'): + # Any plain comment, including hand-added "; Measure N" markers + # some committed .s files have -- line breaks are now inferred + # algorithmically instead (see tempoInfer.py/insert_linebreaks), + # so these don't need to be preserved or acted on. + continue + if re.match(r'^\.else\b', stripped_full): + raise ValueError( + "'.else' found -- this file has real per-game content differences; " + "use split_pirates (or handle manually), not this function directly.") + if re.match(r'^\.(ifdef|ifndef|endif)\b', stripped_full): + # Every other .ifdef/.endif found in committed music data (with + # no .else, ruled out above) wraps nothing but a `cmdf2` + # (confirmed no-op -- see DROP_EXACT) or post-terminator filler + # bytes -- an artifact of the two ROMs' sound data not laying + # out byte-identically, not a real musical difference. Skipping + # the directive itself and letting the rest of this loop handle + # whatever's inside (including the channel_ended skip below) is + # safe: anything both unexpected AND still musically live still + # hits the "unhandled line" error rather than being silently + # swallowed. + continue + + if cur_letter is None: + continue # header/blank noise before the first channel block + + if channel_ended.get(cur_letter): + # Past this channel's own cmdff/goto: real committed data has a + # few cases of raw `.db`/`.dsb` filler bytes here (BUILD_VANILLA + # padding to match the original ROM's exact layout) -- dead, + # unreachable, and irrelevant to audio output either way, so + # everything here is simply ignored until the next channel. + continue + + stripped = line.strip('\t') + + m = LABEL_RE.match(stripped) + if m: + channels[cur_letter].append(('__label__', m.group(1))) + continue + + if line in DROP_EXACT: + if line == '\tcmdff': + channel_ended[cur_letter] = True + continue + + m = GOTO_RE.match(line) + if m: + channels[cur_letter].append(('__goto__', m.group(1))) + channel_ended[cur_letter] = True + continue + + m = NOTE_RE.match(line) + if m: + letter, oct_str, len_hex = m.groups() + oct_n = int(oct_str) + if cur_letter == 'C': + # notes.py's resolve_pitch applies a -12 (one octave) + # correction on the wave channel only (NOTE_BYTE_ADJUST[2] = + # -12): it's a genuine hardware quirk (the wave channel's + # usable range sits one octave lower than the same raw byte + # would mean on square/noise), deliberately compensated for + # so *new* MML input's octave numbers name the pitch that's + # actually heard. But the octave digit here came straight + # from this engine's own raw byte-constant label (e.g. "e3" + # names one specific, uncorrected byte value in + # musicMacros.s's .enum table) -- feeding that digit + # straight through would get the correction applied *again* + # on top of an already-raw value. Adding 1 here cancels it + # out so mml2wla's own correction reconstructs the exact + # original byte. + oct_n += 1 + length = int(len_hex, 16) + mml_letter = NOTE_LETTER_MML[letter] + toks = [] + if oct_n != octave[cur_letter]: + toks.append(f"o{oct_n}") + octave[cur_letter] = oct_n + toks.append(f"{mml_letter}={length}") + # No space between an octave change and the note it applies to + # -- "o3c4" is the normal, idiomatic way to write that in MML, + # not "o3 c4". + channels[cur_letter].append(('note', ''.join(toks))) + continue + + m = NOISE_NOTE_RE.match(line) + if m: + byte_hex, len_hex = m.groups() + byte = int(byte_hex, 16) + length = int(len_hex, 16) + if byte in NOISE_NAMES: + alias, _comment = NOISE_NAMES[byte] + channels[cur_letter].append(('note', f"@{alias}={length}")) + else: + channels[cur_letter].append(('note', f"n${byte_hex},={length}")) + continue + + m = REST_RE.match(line) + if m: + length = int(m.group(1), 16) + channels[cur_letter].append(('note', f"r={length}")) + continue + + m = SUST_RE.match(line) + if m: + length = int(m.group(1), 16) + channels[cur_letter].append(('note', f"w={length}")) + continue + + m = RELEASE_RE.match(line) + if m: + length = int(m.group(1), 16) + channels[cur_letter].append(('note', f"@rl={length}")) + continue + + m = VOL_RE.match(line) + if m: + val = int(m.group(1), 16) + if cur_letter == 'C': + channels[cur_letter].append(('vol', f"@vr{val}")) + else: + channels[cur_letter].append(('vol', f"v{val}")) + continue + + m = ENV_RE.match(line) + if m: + attack, decay_raw = int(m.group(1), 16), int(m.group(2), 16) + # cmde0Toef masks the decay byte with & $07 at runtime (only the + # attack param's mask was widened to $0f for the hardware-fade + # feature -- see musicMacros.s's env macro comment); the decay + # macro parameter itself is emitted unchecked, so a handful of + # real vanilla bytes have upper bits set that are silently + # ignored on real hardware. Masking here matches actual runtime + # behavior, not just the literal committed byte. + decay = decay_raw & 0x7 + if attack == 0 and decay == 0: + channels[cur_letter].append(('env', "@ve0")) + elif attack == 0: + # Exact, unconditional match (see emitter.py _emit_env's + # decreasing-envelope branch: no cur_vol dependency at all). + channels[cur_letter].append(('env', f"@ve-{decay}")) + else: + # Any nonzero attack: @ve+n's *exact* match depends on + # emitter.py's runtime cur_vol being 0 at that exact point + # (picking the true-hardware-fade branch vs an approximated + # one) -- not something this script can safely predict + # without re-simulating the whole engine's volume state. + # @ea is a raw, unconditional passthrough of the same two + # bytes regardless of cur_vol, so it's used for every + # nonzero-attack case, matching real vanilla data exactly + # every time. + channels[cur_letter].append(('env', f"@ea{attack},{decay}")) + continue + + m = DUTY_RE.match(line) + if m: + val = int(m.group(1), 16) + if cur_letter == 'C': + # Numeric @waveN, matching the waveforms.json table index + # directly (see mml2wla's unified @wave syntax) -- no name + # lookup needed at all. + channels[cur_letter].append(('duty', f"@wave{val}")) + else: + channels[cur_letter].append(('duty', f"@wd{val}")) + continue + + m = VIBRATO_RE.match(line) + if m: + byte = int(m.group(1), 16) + wait_code = byte >> 4 + depth = byte & 0xf + if wait_code == 0: + # No delay clause at all -- omitting it (rather than =0, + # which _parse_length rejects: frame lengths must be >=1) + # is what naturally makes the emitter compute wait_code=0 + # itself (see emitter.py's _emit_vibrato: delay_ticks is + # None -> wait_code stays 0). + channels[cur_letter].append(('vibrato', f"@v0,{depth}")) + else: + channels[cur_letter].append(('vibrato', f"@v0,{depth},={wait_code * 2}")) + continue + + m = PITCH_OFFSET_RE.match(line) + if m: + byte = int(m.group(1), 16) + signed = byte if byte < 128 else byte - 256 + channels[cur_letter].append(('pitchOffset', f"@po{signed}")) + continue + + m = PITCH_SLIDE_RE.match(line) + if m: + byte = int(m.group(1), 16) + signed = byte if byte < 128 else byte - 256 + channels[cur_letter].append(('pitchSlide', f"@s{signed}")) + continue + + m = CMDF0_RE.match(line) + if m: + # Sfx-only command, overloaded per channel type -- see + # channelCmdf0 in code/audio.s. On the noise channel (D), a raw + # one-shot hardware envelope write (@er); on a square channel + # (A/B), a one-way switch into raw-frequency mode (@fm), after + # which subsequent `.db lo hi wait` triples (see RAWFREQ_DB_RE + # below) are literal hardware frequencies (@rf$), not + # note-table lookups. + byte = int(m.group(1), 16) + if cur_letter == 'D': + vol, direction, pace = (byte >> 4) & 0xf, (byte >> 3) & 1, byte & 0x7 + channels[cur_letter].append(('noise_raw_env', f"@er{vol},{direction},{pace}")) + else: + raw_freq_mode[cur_letter] = True + channels[cur_letter].append(('freq_mode', f"@fm{byte}")) + continue + + m = RAWFREQ_DB_RE.match(line) + if m and raw_freq_mode.get(cur_letter): + lo, hi, length = int(m.group(1), 16), int(m.group(2), 16), int(m.group(3), 16) + value = (hi << 8) | lo + channels[cur_letter].append(('note', f"@rf${value:04x}={length}")) + continue + + raise ValueError(f"unhandled line: {line!r}") + + for letter in channels: + channels[letter] = _collapse_redundant_state(channels[letter]) + return channels, is_sfx + + +def _collapse_redundant_state(tokens): + """vol/env/duty/vibrato/pitchOffset/pitchSlide only take effect at the + next note/rest/wait/noise-note trigger (see STATE_KINDS' docstring + above) -- so if one of these is immediately followed by another of the + *same* kind with nothing that actually triggers in between, the + earlier one was never observed and is dead weight. This is stronger + than mml2wla's own redundant-value dedup (which only drops an + *identical* reissue): here the values don't need to match, since the + earlier one never had a chance to apply to anything regardless. + Confirmed against real vanilla data: e.g. boss.s's noise channel opens + with a `vol $5` immediately overwritten by `vol $8` before any note.""" + pending = {} # kind -> index of the last not-yet-observed instance + remove = set() + for i, (kind, _val) in enumerate(tokens): + if kind in STATE_KINDS: + if kind in pending: + remove.add(pending[kind]) + pending[kind] = i + elif kind not in TRANSPARENT_KINDS: + pending.clear() # a note/rest/wait/noise-note observes everything pending + return [t for i, t in enumerate(tokens) if i not in remove] + + +# Prefixes of a 'note'-kind token's string that should NOT pack against a +# neighboring note with no space (see _is_packable_note): an octave change +# ("o3c+=4") and a noise literal/alias note ("n$27,=5", "@sn=1") both read +# better set off on their own, even though they're still tick-consuming +# 'note'-kind events for collapse/linebreak purposes. Plain notes and +# rest/sust/release are the only ones that pack. +_OCTAVE_PREFIX_RE = re.compile(r'^o\d') +_NOISE_ALIAS_PREFIXES = tuple(f"@{alias}=" for alias, _comment in NOISE_NAMES.values()) + + +def _is_packable_note(val: str) -> bool: + if _OCTAVE_PREFIX_RE.match(val): + return False + if val.startswith('n$') or val.startswith('@rf$') or val.startswith(_NOISE_ALIAS_PREFIXES): + return False + return True + + +def _note_frame_length(val: str) -> int: + """Every 'note' kind token's string ends in "=N" regardless of its + exact shape (a plain note, an octave-prefixed one, a noise literal or + alias, or @rl) -- the frame length is always whatever's after the last + '='.""" + return int(val.rsplit('=', 1)[1]) + + +def add_linebreaks(channels, file_base): + """Inserts '__linebreak__' markers (pure whitespace to the parser -- + see render()) into each channel's token list at inferred measure + boundaries, so a converted song doesn't render as one giant line per + channel. See tempoInfer.py for how the tempo/measure length is + estimated and songConfig.py for per-song overrides and known-echo + channels this deliberately skips.""" + all_lengths = [_note_frame_length(val) for toks in channels.values() + for kind, val in toks if kind == 'note'] + if not all_lengths: + return + bpm, fpt = tempoInfer.estimate_tempo(all_lengths) + measure_frames = tempoInfer.measure_length_frames(fpt, file_base) + echo_channels = set(ECHO_CHANNELS.get(file_base, ())) + + for letter, toks in channels.items(): + if letter in echo_channels: + continue + lengths = [] + loop_index = None + goto_targets = [v for k, v in toks if k == '__goto__'] + loop_target = goto_targets[0] if goto_targets else None + for kind, val in toks: + if kind == 'note': + lengths.append(_note_frame_length(val)) + elif kind == '__label__' and val == loop_target: + loop_index = len(lengths) + break_after = tempoInfer.insert_linebreaks(lengths, measure_frames, loop_index) + new_toks = [] + note_i = 0 + for kind, val in toks: + new_toks.append((kind, val)) + if kind == 'note': + if note_i in break_after: + new_toks.append(('__linebreak__', None)) + note_i += 1 + channels[letter] = new_toks + + +# Sfx line-breaking doesn't try to infer a tempo/measure grid at all -- +# unlike a song, a one-shot sound effect isn't written on a musical beat, +# and most of its events (raw-frequency sweeps, per-note noise envelope +# triggers) aren't "notes" in any tempo-relevant sense to begin with. This +# just chunks by a fixed, arbitrary frame count purely for readability (see +# tempoInfer._forward_breaks, reused as-is with a fixed boundary instead of +# an inferred measure length). +SFX_CHUNK_FRAMES = 96 + + +def add_sfx_linebreaks(channels, chunk_frames=SFX_CHUNK_FRAMES): + """Same '__linebreak__'-insertion mechanics as add_linebreaks, but + chunked by a fixed frame count instead of an inferred measure length -- + see module comment above.""" + for letter, toks in channels.items(): + lengths = [_note_frame_length(val) for kind, val in toks if kind == 'note'] + if not lengths: + continue + break_after = tempoInfer._forward_breaks(lengths, chunk_frames) + new_toks = [] + note_i = 0 + for kind, val in toks: + new_toks.append((kind, val)) + if kind == 'note': + if note_i in break_after: + new_toks.append(('__linebreak__', None)) + note_i += 1 + channels[letter] = new_toks + + +def render(channels, title, extra_header_comment=None, is_sfx=False, is_vanilla=True): + out = [f"#TITLE {title}"] + if is_sfx: + out.append("#SFX") + if is_vanilla: + # Every song/sfx this renders is decoded straight from real ROM + # data (or, for sToMml.py's legacy bootstrap path, from a .s file + # that itself was) -- every length below is an exact, literal frame + # count (`=N`), not a musical tick count, since vanilla data has no + # tempo of its own to derive one from. #VANILLA tells mml2wla to + # interpret `=N` that way (see mml_documentation.md) instead of its + # normal, tempo-relative meaning for hand-authored music. + out.append("#VANILLA") + if extra_header_comment: + out.append(f"; {extra_header_comment}") + out.append("") + + used_letters = [l for l in ['A', 'B', 'C', 'D'] if channels.get(l)] + out.append(''.join(used_letters) + " t120 l8") + out.append("") + + for letter in used_letters: + toks = channels[letter] + goto_targets = [t[1] for t in toks if t[0] == '__goto__'] + assert len(goto_targets) <= 1, "more than one goto per channel unsupported" + loop_target = goto_targets[0] if goto_targets else None + + out.append(CHANNEL_LABELS[letter]) + + if letter == 'D': + used_aliases = {byte for kind, v in toks if kind == 'note' + for byte, (alias, _c) in NOISE_NAMES.items() + if v.startswith(f"@{alias}=")} + for byte in sorted(used_aliases): + alias, comment = NOISE_NAMES[byte] + out.append(f"@{alias} = n${byte:02x} ; {comment}") + if used_aliases: + out.append("") + + line_toks = [] # (kind, str) pairs -- kind decides spacing, see flush() + lines_for_channel = [] + + def flush(): + if not line_toks: + return + pieces = [letter, ' '] + prev_packable = False + for kind, s in line_toks: + # No space needed between two consecutive plain notes (also + # rest/sust/release) -- the grammar doesn't need one there, + # and packing them together reads like normal hand-written + # MML (e.g. "cdefg"). An octave change or a noise + # literal/alias note are still 'note'-kind events but read + # better set off on their own (see _is_packable_note), same + # as every other command (including the 'L' loop marker). + cur_packable = kind == 'note' and _is_packable_note(s) + if pieces[-1] != ' ' and not (prev_packable and cur_packable): + pieces.append(' ') + pieces.append(s) + prev_packable = cur_packable + lines_for_channel.append(''.join(pieces)) + line_toks.clear() + + for kind, val in toks: + if kind == '__goto__': + continue # implicit: emit_song auto-adds goto+cmdff from the 'L' marker + elif kind == '__label__': + if val == loop_target: + line_toks.append(('__label__', "L")) + # else: an unreferenced mid-stream label -- shouldn't occur given + # vanilla's one-loop-per-channel convention; if it does, this + # silently drops the label, which is safe (nothing points to it). + elif kind == '__linebreak__': + flush() + else: + line_toks.append((kind, val)) + flush() + + out.extend(lines_for_channel) + out.append("") + out.append("") + # Drop the extra trailing blank line after the very last channel. + while out and out[-1] == "": + out.pop() + return '\n'.join(out) + '\n' + + +def main(): + import os + if len(sys.argv) >= 2 and sys.argv[1] == '--pirates': + _, _flag, s_path, ages_mml, seasons_mml = sys.argv + ages_lines, seasons_lines = split_pirates(open(s_path).readlines()) + for lines, mml_path, game in [(ages_lines, ages_mml, 'Ages'), (seasons_lines, seasons_mml, 'Seasons')]: + channels, is_sfx = convert(_expand_rept(lines)) + add_linebreaks(channels, os.path.splitext(os.path.basename(mml_path))[0]) + text = render(channels, 'Pirates', + extra_header_comment=("This differs between Ages and Seasons: the noise " + "channel's percussion pattern is unique to each " + "game (see the original audio/common/mus/pirates.s " + "for the shared square/wave channels this used to " + "include alongside it)."), + is_sfx=is_sfx) + with open(mml_path, 'w') as f: + f.write(text) + print(f"wrote {mml_path} ({game})") + return + + if len(sys.argv) != 3: + print(f"Usage: {sys.argv[0]} ") + print(f" {sys.argv[0]} --pirates ") + sys.exit(1) + s_path, mml_path = sys.argv[1:3] + channels, is_sfx = convert(_expand_rept(open(s_path).readlines())) + file_base = os.path.splitext(os.path.basename(mml_path))[0] + if is_sfx: + add_sfx_linebreaks(channels) + else: + add_linebreaks(channels, file_base) + title = file_base + extra_comment = None + if title in TITLE_OVERRIDES: + # This legacy bootstrap path already takes the output filename as an + # explicit CLI arg, so the override's filename half is irrelevant here. + _output_name, title, extra_comment = TITLE_OVERRIDES[title] + text = render(channels, title, extra_header_comment=extra_comment, is_sfx=is_sfx) + with open(mml_path, 'w') as f: + f.write(text) + print(f"wrote {mml_path}") + + +if __name__ == '__main__': + main() diff --git a/tools/audio/songConfig.py b/tools/audio/songConfig.py new file mode 100644 index 000000000..a6bbeea23 --- /dev/null +++ b/tools/audio/songConfig.py @@ -0,0 +1,71 @@ +"""Per-song hand-tuned overrides for sToMml.py's measure/line-break +heuristic (see tempoInfer.py). Everything here defaults to empty -- +populate an entry only once you've actually confirmed (by listening, or +from check_alignment.py's report) that a specific song needs it. Neither +override changes a single byte of the converted output; both only affect +where line breaks land in the generated .mml. +""" + +# Song name (the same one used for its .mml filename) -> which +# audio//mus/ directory it belongs in. Needed because a raw ROM dump +# (see dumpMusicMml.py) has no notion of "shared between both games" on +# its own -- only committed-file history does. 'gamespecific' means write +# it under whichever game is currently being dumped (audio/ages/mus/ or +# audio/seasons/mus/) rather than a fixed directory -- pirates.mml is the +# one song with genuinely different data per game (see sToMml.py's +# split_pirates docstring from when it was bootstrapped from committed +# .s history); dumping straight from each game's own ROM produces the +# right per-game content automatically, with no splitting logic needed at +# all this time. +SONG_MANIFEST = { + 'ambiPalace': 'ages', 'ancientTomb': 'ages', 'blackTower': 'ages', 'crescent': 'ages', + 'crownDungeon': 'ages', 'fairyForest': 'ages', 'jabuJabusBelly': 'ages', 'lynnaCity': 'ages', + 'lynnaVillage': 'ages', 'makuPath': 'ages', 'mermaidsCave': 'ages', 'moonlitGrotto': 'ages', + 'nayru': 'ages', 'overworldPast': 'ages', 'ralph': 'ages', 'skullDungeon': 'ages', + 'spiritsGrave': 'ages', 'symmetryPast': 'ages', 'symmetryPresent': 'ages', 'tokayHouse': 'ages', + 'underwater': 'ages', 'wingDungeon': 'ages', 'zoraVillage': 'ages', + + 'ancientRuins': 'seasons', 'carnival': 'seasons', 'dancingDragonDungeon': 'seasons', + 'explorersCrypt': 'seasons', 'gnarledRootDungeon': 'seasons', 'herosCave': 'seasons', + 'hideAndSeek': 'seasons', 'horonVillage': 'seasons', + 'poisonMothsLair': 'seasons', 'samasaDesert': 'seasons', 'snakesRemains': 'seasons', + 'songOfStorms': 'seasons', 'subrosia': 'seasons', 'subrosianDance': 'seasons', + 'subrosianShop': 'seasons', 'sunkenCity': 'seasons', 'swordAndShieldMaze': 'seasons', + 'tarmRuins': 'seasons', 'templeRemains': 'seasons', 'unicornsCave': 'seasons', + 'unused1': 'seasons', 'unused2': 'seasons', + + # Both games happen to have their own, genuinely different "Maku Tree" + # theme under the exact same label name (audio/ages/soundPointers.s + # and audio/seasons/soundPointers.s both define musMakuTree + # independently) -- same situation as pirates above, not a typo. + 'makuTree': 'gamespecific', + + 'blackTowerEntrance': 'common', 'boss': 'common', 'cave': 'common', 'crazyDance': 'common', + 'credits1': 'common', 'credits2': 'common', 'disaster': 'common', 'essence': 'common', + 'essenceRoom': 'common', 'fairyFountain': 'common', 'fileSelect': 'common', + 'finalBoss': 'common', 'finalDungeon': 'common', 'gameover': 'common', 'ganon': 'common', + 'getEssence': 'common', 'goronCave': 'common', 'greatMoblin': 'common', 'indoors': 'common', + 'intro1': 'common', 'intro2': 'common', 'ladxSideview': 'common', 'mapleGame': 'common', + 'mapleTheme': 'common', 'miniboss': 'common', 'minigame': 'common', 'onoxCastle': 'common', + 'overworld': 'common', 'precredits': 'common', 'roomOfRites': 'common', 'rosaDate': 'common', + 'sadness': 'common', 'syrup': 'common', 'titlescreen': 'common', 'triumphant': 'common', + 'twinrova': 'common', 'zeldaSaved': 'common', + + 'pirates': 'gamespecific', +} + +# file_base -> ticks per measure, for a song whose real time signature +# isn't 4/4 (192 ticks/measure, the default every song is assumed to use +# otherwise). Run tools/dump/checkAlignment.py to see which songs don't +# line up cleanly under that default assumption. +TIME_SIG_OVERRIDES = {} + +# file_base -> list of channel letters ('A'/'B'/'C'/'D') that run a +# delayed-echo effect (notes shifted slightly behind another channel, +# played back at reduced volume) -- e.g. horonVillage, snakesRemains, +# rosaDate. That channel's own note grouping is intentionally offset from +# the song's real measure grid, so measure-based line breaks on it would +# be misleading rather than helpful; it's left as one unbroken line +# instead. Known cases only -- there's no way to detect this from frame +# lengths alone, so add to this by ear as you find more. +ECHO_CHANNELS = {} diff --git a/tools/audio/tempoInfer.py b/tools/audio/tempoInfer.py new file mode 100644 index 000000000..7e2b9e303 --- /dev/null +++ b/tools/audio/tempoInfer.py @@ -0,0 +1,165 @@ +"""Infers a plausible tempo (and, from it, a measure length in frames) for +a vanilla song's raw frame-length data, purely so sToMml.py can insert +readable line breaks at measure boundaries instead of emitting one giant +line per channel. + +Vanilla data has no tempo concept at all -- every length byte already is a +literal frame count (see code/audio.s). There's no way to recover the +composer's *actual* intended tempo from that alone. What this does instead +is search the Game Boy hardware timer's own discrete quantization steps +(see mml2wla/timing.py's real_seconds_per_tick) for whichever one makes the +most of a song's observed frame lengths line up closely with a musically +clean number of 192-ticks-per-whole-note ticks -- i.e., the tempo grid the +song most plausibly would have been authored on. This is a readability +heuristic only: line breaks are pure whitespace to the parser, so getting +this approximately right (not byte-exact) is all that's needed. Every note +still keeps its own exact frame length via `=N` regardless of where the +line breaks fall -- this module never changes what a note sounds like. + +Time signature: assumed 4/4 (one measure = 192 ticks, i.e. exactly one +whole note) by default; TIME_SIG_OVERRIDES lets specific songs be told +otherwise once someone's actually listened and confirmed it, rather than +trying to auto-detect a time signature from frame lengths alone. +""" +from mml2wla.timing import GB_FRAME_RATE, TIMA_SPEED, BEAT_STEPS + +BAR_STEPS = 192 # ticks per whole note == ticks per measure in 4/4 + +# value -> ticks, per mmlgb_documentation.md's "Note length" table -- used +# only to define what counts as a "musically clean" tick value for scoring +# candidate tempos, not for note notation (every note still emits =N). +BASE_LENGTHS = {1: 192, 2: 96, 3: 64, 4: 48, 6: 32, 8: 24, 12: 16, 16: 12, 24: 8, 32: 6} +_CLEAN_TICKS = [] +for _ticks in BASE_LENGTHS.values(): + _CLEAN_TICKS.append(_ticks) + half = _ticks // 2 + if half * 2 == _ticks: + _CLEAN_TICKS.append(_ticks + half) # dotted + +from songConfig import TIME_SIG_OVERRIDES, ECHO_CHANNELS # noqa: E402 + +# Real game music tempos live in roughly this range; searching outside it +# is actively counterproductive, not just unnecessary -- a tiny enough +# frames-per-tick blows every raw length up into a huge tick count, and +# rounding error trivially (and meaninglessly) looks great for *any* data +# once ticks are in the thousands. Bounding the search to musically real +# tempos is what keeps the fit meaningful. +MIN_BPM, MAX_BPM = 40, 300 + + +def mod_to_bpm(mod: int) -> float: + """The exact BPM that reproduces this integer TMA-reload distance when + fed back through real_seconds_per_tick's own round(TIMA_SPEED/ups) + quantization -- see timing.py's real_seconds_per_tick docstring.""" + ups = TIMA_SPEED / mod + return ups * 60.0 / BEAT_STEPS + + +def frames_per_tick_for_mod(mod: int) -> float: + real_ticks_per_sec = TIMA_SPEED / (mod + 1) + return GB_FRAME_RATE / real_ticks_per_sec + + +def _nearest_clean_tick_distance(ticks: float) -> float: + """Relative distance from `ticks` to whichever musically clean tick + value is closest -- this is what actually distinguishes a plausible + tempo from an implausible one; distance to the nearest *integer* can't + tell them apart, since every tempo rounds equally well to some integer.""" + best = None + for t in _CLEAN_TICKS: + d = abs(ticks - t) / t + if best is None or d < best: + best = d + return best + + +def estimate_tempo(all_frame_lengths): + """Returns (bpm, frames_per_tick) for whichever hardware timer setting + (restricted to a musically plausible tempo range) makes the most of + this song's frame lengths land closest to a musically clean tick + value, scored by relative (not absolute) distance so a quarter note + landing 0.4 frames off isn't drowned out by a 32nd note landing 0.4 + frames off (proportionally far worse for the latter).""" + lo_ups = (MIN_BPM / 60.0) * BEAT_STEPS + hi_ups = (MAX_BPM / 60.0) * BEAT_STEPS + mod_hi = max(1, round(TIMA_SPEED / lo_ups)) + mod_lo = max(1, round(TIMA_SPEED / hi_ups)) + best = None + for mod in range(mod_lo, mod_hi + 1): + fpt = frames_per_tick_for_mod(mod) + score = 0.0 + for length in all_frame_lengths: + score += _nearest_clean_tick_distance(length / fpt) + if best is None or score < best[0]: + best = (score, mod, fpt) + _, mod, fpt = best + return mod_to_bpm(mod), fpt + + +def measure_length_frames(fpt: float, file_base: str) -> float: + ticks_per_measure = TIME_SIG_OVERRIDES.get(file_base, BAR_STEPS) + return ticks_per_measure * fpt + + +def check_alignment(total_frames: float, measure_frames: float, tolerance: float = 0.05): + """Whether a segment's total length divides evenly into whole measures + at the given measure length, within `tolerance` relative error. + Returns (is_aligned, nearest_whole_measure_count, relative_error) -- + used by checkAlignment.py to flag songs whose real time signature (or + an echoing channel -- see songConfig.py) doesn't match the 4/4 + default, for a human to confirm and record an override.""" + if measure_frames <= 0 or total_frames <= 0: + return True, 0, 0.0 + measures = total_frames / measure_frames + rounded = max(1, round(measures)) + error = abs(measures - rounded) / rounded + return error <= tolerance, rounded, error + + +def _forward_breaks(lengths, measure_frames: float): + breaks = set() + total = 0.0 + next_boundary = measure_frames + for i, length in enumerate(lengths): + total += length + if total >= next_boundary: + breaks.add(i) + while next_boundary <= total: + next_boundary += measure_frames + return breaks + + +def insert_linebreaks(lengths, measure_frames: float, loop_index=None): + """Given one channel's tick-consuming events' raw frame lengths (in + playback order), returns the set of indices *after* which a line break + reads best -- i.e. wherever cumulative elapsed frames first reaches or + passes each successive measure boundary. Purely a readability grouping + -- an event's own frame length is never touched by this. + + `loop_index`, if given, is the position of this channel's own loop + point (the 'L' marker) in `lengths`: the segment from there to the end + is measure-aligned forward from the loop point itself (0 there), and + the segment before it (the intro) is aligned *backward* from the loop + point instead of forward from the very start. This matters because the + loop point -- not the very first note -- is the one boundary + guaranteed to land on a real measure line (the loop has to tile + cleanly to repeat correctly); a song's intro very often leads into it + with an anacrusis (a pickup phrase shorter than a full measure), which + forward-from-0 alignment would otherwise cut at the wrong points.""" + if loop_index is None or loop_index == 0: + return _forward_breaks(lengths, measure_frames) + + intro, loop = lengths[:loop_index], lengths[loop_index:] + # A break at reversed-index k means "the last (k+1) original elements + # sum to a measure" -- i.e. the boundary falls right before original + # index n-1-k, so (using this function's own "break after index i" + # convention) at original index n-2-k. k == n-1 (everything consumed) + # maps to index -1, meaning "break before the very first element", + # which isn't a real break -- that's the anacrusis remainder, left + # untouched. + intro_breaks_from_end = _forward_breaks(list(reversed(intro)), measure_frames) + n = len(intro) + breaks = {n - 2 - k for k in intro_breaks_from_end if k != n - 1} + loop_breaks = _forward_breaks(loop, measure_frames) + breaks |= {loop_index + i for i in loop_breaks} + return breaks diff --git a/tools/audio/waveformsJsonToS.py b/tools/audio/waveformsJsonToS.py new file mode 100644 index 000000000..68b8da80b --- /dev/null +++ b/tools/audio/waveformsJsonToS.py @@ -0,0 +1,125 @@ +#!/usr/bin/python3 +"""Generates audio/common/waveforms.s from audio/common/waveforms.json -- +the wave channel's waveform table is now authored as JSON (id, name, and 32 +space-separated 0-15 samples -- the same unpacked-nibble format a .mml +file's own `@waveN = {...}` uses, see mml2wla/parser.py), with this script +doing the packing (2 samples/byte, high nibble first) and table-generation +work that used to be done by hand in the committed .s file. + +Ids must be exactly 0..N-1 with no gaps -- they're used directly as the +wave channel's `duty $XX` value, so the generated waveformTable has to be +dense. Run tools/audio/dumpMusicMml.py/dumpSfxMml.py first if you want to +add or renumber an entry that existing .mml songs already reference by +name; this script only ever regenerates waveforms.s from whatever +waveforms.json currently says. + +The 8 anonymous, never-referenced "Unused" data blocks in the original +vanilla waveforms.s (dead bytes physically present in the real cartridge +between named entries, confirmed by the fact that every real index 0-45 is +*already* densely covered by named entries alone -- see the exploration +that found this) aren't part of waveforms.json at all: they carry no name, +no id, and aren't reachable via any `duty` value, so there's nothing for a +song to author. They're reproduced here verbatim, appended after the real +table and gated to BUILD_VANILLA only, purely so a from-scratch vanilla +build still has the same total ROM byte count in this bank as the real +cartridge -- editable builds don't carry this dead weight at all, a small, +genuine ROM-space win in line with this whole migration's goal. + +Usage: waveformsJsonToS.py +""" +import json +import sys + +# Verbatim from the original vanilla waveforms.s (see the exploration that +# confirmed these 8 blocks are unreferenced by any `duty` value or the +# waveformTable's own dense 0-45 index range) -- vanilla-only ROM-space +# filler, not real editable-build content. See this module's docstring. +_VANILLA_UNUSED_BLOCKS = [ + "00 00 00 00 66 77 88 88 88 88 88 88 88 77 66 55", + "00 00 00 00 88 88 88 88 88 88 88 88 88 88 88 88", + "ff ee cc bb 99 88 66 55 cc aa 99 77 66 44 22 00", + "88 aa cc ee ff ee dd cc bb aa 99 88 66 44 22 00", + "ff f6 db ae 80 4f 25 0a 00 0a 25 4f 80 ae db f6", + "c0 db c0 80 40 25 40 80 c0 db c0 80 40 25 40 80", + "20 37 40 37 20 0a 00 0a 20 37 40 37 20 0a 00 0a", + "01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10", +] + + +def pack(samples): + """32 4-bit samples -> 16 bytes, high nibble first -- see + mml2wla/waveforms.py's pack_wave_samples for the same packing, verified + there against a hand-authored reference waveform's actual shape.""" + out = [] + for i in range(0, 32, 2): + out.append(((samples[i] & 0xf) << 4) | (samples[i + 1] & 0xf)) + return out + + +def generate(entries): + entries = sorted(entries, key=lambda e: e['id']) + expected_ids = list(range(len(entries))) + actual_ids = [e['id'] for e in entries] + if actual_ids != expected_ids: + raise ValueError( + f"waveforms.json ids must be exactly 0..{len(entries) - 1} with no gaps or " + f"duplicates (got {actual_ids}) -- the wave channel's `duty $XX` dispatch needs " + f"a dense table.") + + out = [] + out.append("; Generated by tools/audio/waveformsJsonToS.py from waveforms.json -- do not " + "edit directly.") + out.append(";") + out.append("; These are the waveforms available on the wave channel. Using the command " + "\"duty $XX\" will") + out.append("; use waveform number XX in this table.") + out.append("") + out.append(f".define NUM_WAVEFORMS ${len(entries):02x}") + out.append("") + out.append("; Table of pointers to waveform data") + out.append("waveformTable:") + out.append("\t.rept NUM_WAVEFORMS index i") + out.append("\t\t.dw @waveform{%.2x{i}}") + out.append("\t.endr") + out.append("") + out.append("") + for entry in entries: + samples = [int(s) for s in entry['data'].split()] + if len(samples) != 32: + raise ValueError(f"waveform id {entry['id']} ({entry['name']}): expected 32 " + f"samples, got {len(samples)}") + for s in samples: + if s < 0 or s > 15: + raise ValueError(f"waveform id {entry['id']} ({entry['name']}): sample {s} " + f"out of range 0-15") + packed = pack(samples) + out.append(f"m_waveform ${entry['id']:02x}, {entry['name']}") + out.append("\t.db " + ' '.join(f"${b:02x}" for b in packed)) + out.append("") + + out.append(".ifdef BUILD_VANILLA") + out.append("\t; Dead, unreferenced filler bytes -- see this script's own docstring for why " + "these are") + out.append("\t; reproduced here instead of in waveforms.json.") + for block in _VANILLA_UNUSED_BLOCKS: + out.append("\t.db " + ' '.join(f"${b}" for b in block.split())) + out.append(".endif") + out.append("") + return '\n'.join(out) + + +def main(): + if len(sys.argv) != 3: + print(f"Usage: {sys.argv[0]} ") + sys.exit(1) + json_path, out_path = sys.argv[1], sys.argv[2] + with open(json_path) as f: + entries = json.load(f) + text = generate(entries) + with open(out_path, 'w') as f: + f.write(text) + print(f"wrote {out_path} ({len(entries)} waveform(s))") + + +if __name__ == '__main__': + main() diff --git a/tools/dump/dumpMusic.py b/tools/dump/dumpMusic.py index 4e7608b62..778bbcedc 100755 --- a/tools/dump/dumpMusic.py +++ b/tools/dump/dumpMusic.py @@ -162,6 +162,9 @@ def parseChannelPointers(address, ptr, bank, dataOutput): def parseChannelData(address, channel, chanOut): global labelAddresses c039 = 0 + decay = 0 # wChannelEnvelopes2's simulated value -- see the $e0-$ef and $60 cases + # below. Persists across notes (only `env` changes it), and resets to 0 + # here matching playSound's own reset when a sound/song is first started. while True: if address in labelAddresses: chanOut.write('music' + myhex(address) + ':\n') @@ -190,22 +193,50 @@ def parseChannelData(address, channel, chanOut): chanOut.write('\tcmdf0 ' + wlahex(param,2) + '\n') if channel != 7: c039 = 1 - elif b == 0xf0 or b == 0xf6 or b == 0xf8 or b == 0xf9 or b == 0xfd: + elif b == 0xf8: param = rom[address] address+=1 - chanOut.write('\tcmd' + myhex(b) + ' ' + wlahex(param,2) + '\n') + chanOut.write('\tpitchSlide ' + wlahex(param,2) + '\n') + elif b == 0xfd: + param = rom[address] + address+=1 + chanOut.write('\tpitchOffset ' + wlahex(param,2) + '\n') elif b >= 0xf0: chanOut.write('\tcmd' + myhex(b) + '\n') elif b >= 0xe0: param = rom[address] address+=1 + decay = param & 0x7 chanOut.write('\tenv ' + wlahex(b&0x7) + ' ' + wlahex(param,2) + '\n') elif b >= 0xd0 and b < 0xe0: chanOut.write('\tvol ' + wlahex(b&0xf) + '\n') elif b == 0x60: param = rom[address] address+=1 - chanOut.write('\trest ' + wlahex(param,2) + '\n') + if channel == 4 or channel == 5: + # The wave channel's $60 handler (standardCmdChannels4To5) already did a + # clean, non-retriggering NR32 mute even before the engine fix -- it was + # never buggy, so it decodes to a real `rest` unchanged. + chanOut.write('\trest ' + wlahex(param,2) + '\n') + elif channel < 4 and decay == 0: + # Square channels' $60, when no decay envelope was already running + # (the vast majority of occurrences -- confirmed empirically at ~90% + # across every vanilla song, not a rare edge case), didn't cut the note + # off at all on the original hardware: it retriggered a real hardware + # envelope that decayed from whatever volume was already playing at a + # fixed pace (a pre-fix audio.s bug). That decay *was* the actual + # note-release technique this content used, so it decodes to `release` + # (a new command that reproduces exactly this, byte for byte) rather + # than `sust`, which does nothing to the envelope at all and would just + # hold the note indefinitely instead of decaying it. + chanOut.write('\trelease ' + wlahex(param,2) + '\n') + else: + # Square channels with a decay envelope already running (the other + # ~10%) and both noise channels (which never special-cased $60 at all, + # a pure no-op) already sound the same whether $60 does nothing further + # or is treated as a plain tie -- `sust` (tie/sustain, $61 -- see + # musicMacros.s) is an exact, lossless match for these. + chanOut.write('\tsust ' + wlahex(param,2) + '\n') elif channel >= 6: # Noise channels @@ -222,7 +253,7 @@ def parseChannelData(address, channel, chanOut): elif b == 0x61: param = rom[address] address+=1 - chanOut.write('\trest2 ' + wlahex(param,2) + '\n') + chanOut.write('\tsust ' + wlahex(param,2) + '\n') elif b >= 0 and b <= 0x58: # and b >= 0xc l = rom[address] address+=1