pinobatch / pently

Scalable music engine for NES games
zlib License
72 stars 4 forks source link

Makefile integration with ft2pently #36

Closed pinobatch closed 5 years ago

pinobatch commented 5 years ago

It'd be convenient to have an example that converts FamiTracker modules using @NovaSquirrel's ft2pently. This way whenever the FTM file changes, Make will re-convert it. I made the following recipes for the makefile of @adrian0901's port of sylviefluff's Mega Mountain. (#3 and #4 are already part of the present makefile.)

# 1. Convert FamiTracker binary module to text form
$(objdir)/%.txt: audio/%.ftm
    /path/to/famitracker.exe $< -export $@
# 2. Convert FamiTracker text module to Pently score
$(srcdir)/%.pently: $(objdir)/%.txt audio/sfx.pently
    /path/to/ft2p -i $< -o $@
# 3. Convert Pently score to assembler-ready bytecode
$(objdir)/%.s: tools/pentlyas.py audio/%.pently
    $(PY) $^ -o $@ --periods 76
# 4. Generate optimized RAM map based on enabled driver features
$(objdir)/pentlybss.inc: tools/pentlybss.py $(srcdir)/pentlyconfig.inc
    $(PY) $^ pentlymusicbase -o $@