v0.05wip10
This is a fairly big release that brings Pently 5 toward completion after the development cycle of Nova the Squirrel and Mega Mountain.
Driver
- Grace note durations no longer reduced by 1 frame
- Always write period high byte for triangle, fixing problem with zero volume in instruments (#32, reported by NovaSquirrel)
- Suppress linker warnings for export/import address size mismatch
- Overhaul names and scope of internal subroutines
- Rearrange conductor processing based on bytecode order
- Move sustain phase processing above pitch effects
- Remove redundant checks for attack injection in pitch effects
- Fix misbehavior when music and a slowed-down sound effect are played at once
- C bindings for commonly used functions (requested by adrian09_01)
- pentlyseq.inc: don't truncate patdef at 7 bits (reported and fixed by NovaSquirrel)
- mkrammap.py: rename to pentlybss.py to encourage remembering to include it when vendoring Pently
pentlyas.py
- A score can include other files, such as an instrument set (#29)
- o0 through o7 to set reference pitch (requested by zzo38)
- Allow grace notes in drum patterns
- Playing a pattern with only rests or waits is nonfatal
- Fix warnings for missing "fine" or "dal segno"
- Order of objects in the output is explicit, the same order in which they appear in the score (requested by NovaSquirrel)
- Error if no songs are defined (reported by NovaSquirrel)
- -A means --period-tuning; --output means -o
Packaging and demo
- Profiler: don't overreport CPU use if the shell has a lag frame
- Document how to skip the makefile's default autoplay (#30)
- makefile: Allow building from an arbitrarily named score by giving the name of the corresponding .nes or .nsf
- Add pseudocode to aid in porting to non-6502 platforms
- Add Travis CI build script
- Sample songs: Include the soundtrack of all games by Damian Yerrick that have appeared in Action 53. These are Concentration Room, Thwaite, Zap Ruder, and RHDE: Furniture Fight.