Skip to content

Enhanced music engine - #39

Open
mysterypaintwo wants to merge 8 commits into
Stewmath:masterfrom
mysterypaintwo:enhanced-music-engine
Open

Enhanced music engine#39
mysterypaintwo wants to merge 8 commits into
Stewmath:masterfrom
mysterypaintwo:enhanced-music-engine

Conversation

@mysterypaintwo

Copy link
Copy Markdown

With the help of AI, the following was done:

  • Audio engine was modified to treat "rest" as a true note cut; All vanilla songs now remapped to utilize rest2 in place of the original rest command, which is actually "release" and is the true behavior of rest2: Audibly, it is indistinguishable from vanilla, but the bytes are slightly different as a result.
  • Label looping now exists as local, definable macros: Looping mml with [<data>]<number of times to loop> now genuinely saves ROM space. Unfortunately, the vanilla audio assets are untouched at risk of breaking anything...
  • Default note lengths have been implemented into the audio engine too; Vanilla songs automatically apply where sensical at compile-time; If a song is not using the #VANILLA flag then it is custom, and default note length must manually be defined.
  • All vanilla songs and sfx are now converted to this mmlgb/ppmck-inspired syntax; Documentation for the mml2wla syntax is provided at /audio/mml_documentation.md
  • Discovered that pitch offset is indeed a command that exists in the vanilla audio engine; supported it in MML as @po<value>; documentation talks about this more
  • mml2wla has been hooked and modified to integrate directly with the oracles-disasm Makefile, living at /tools/audio/. All the .mml files get compiled into .s WLA source files in the relative /bin/ directory next to their respective .mml files.

I've tested this fork for both games and it works great; at the very least, this solution now exists and can be used (or at least studied) to develop even cooler things for the games' audio!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant