News: 11 March 2016 - Forum Rules

Author Topic: Request for Comments: Metroid Music Format Spec  (Read 1246 times)

Quantam

  • Jr. Member
  • **
  • Posts: 54
    • View Profile
    • Q's Retro Docs
Request for Comments: Metroid Music Format Spec
« on: May 16, 2022, 11:45:22 pm »
First draft is done. I would appreciate it if you guys could proof-read it before I officially publish it, looking for accuracy about the NES APU and whether composers find it complete and understandable.

https://github.com/TheRealQuantam/RetroDocs/raw/main/Metroid%20Music%20Format.txt

There is also a patch for romhackers to make Metroid use a table of timbre values for tracks rather than hard-code them in an obnoxious way:
https://github.com/TheRealQuantam/RetroDocs/raw/main/Metroid%20(USA)%20Music%20Table%20Patch.zip

UPDATE: Data tables and addresses for Kid Icarus now available:
https://github.com/TheRealQuantam/RetroDocs/raw/main/Kid%20Icarus%20Music%20Format%20Addendum.txt

And the same track table patch for Kid Icarus:
https://github.com/TheRealQuantam/RetroDocs/raw/main/Kid%20Icarus%20(USA%2C%20Europe)%20Music%20Table%20Patch.zip

5/31: Updated to v0.3 (release candidate). Changes can be found here (in hindsight I probably shouldn't have uploaded the Metroid and Mother updates at the same time).
« Last Edit: June 01, 2022, 06:56:37 am by Quantam »

Mindflower

  • Full Member
  • ***
  • Posts: 132
    • View Profile
Re: Request for Comments: Metroid Music Format Spec
« Reply #1 on: May 17, 2022, 05:57:51 am »
Interesting!
As i am hacking Metroid, and chose to replace the vanilla sound engine with a custom one.
I noticed some oddities of how the Vanilla Engine is implemented, especially regarding SoundFX.
will follow your project.
also not sure if you're familiar with snarfblam's MetroidTuner, basically bumbs and inserts song data.
http://snarfblam.com/words/?p=282
i used it initially to a huge extent.

i also skim-read your document, and regarding the things that i know / am aware of, it seemed correct.
and you're definitely right about the engine's inflexibility, hence why i chose to replace it. Especially since the hack has a much larger rom / mapper (mmc1->mmc3) to work with.

There is also a patch for romhackers to make Metroid use a table of timbre values for tracks rather than hard-code them in an obnoxious way:
https://github.com/TheRealQuantam/RetroDocs/raw/main/Metroid%20(USA)%20Music%20Table%20Patch.zip
that's also interesting as i manually hex-edited those values in the past to get the desired timbre, sometimes also changing the address pointer to another set (and yes, that IS obnoxious lol); there are settings that define the same timbre for both square waves (which can be what you don't want), and some with distinct values for sq1 and sq2. (but you also got that right)
« Last Edit: May 17, 2022, 06:18:07 am by Mindflower »

Quantam

  • Jr. Member
  • **
  • Posts: 54
    • View Profile
    • Q's Retro Docs
Re: Request for Comments: Metroid Music Format Spec
« Reply #2 on: May 17, 2022, 06:39:51 am »
I saw MetroidTuner on MetConst, but I haven't looked at it at all.

Which engine did you replace Metroid's with?

Mindflower

  • Full Member
  • ***
  • Posts: 132
    • View Profile
Re: Request for Comments: Metroid Music Format Spec
« Reply #3 on: May 17, 2022, 07:13:18 am »
I saw MetroidTuner on MetConst, but I haven't looked at it at all.

Which engine did you replace Metroid's with?
https://github.com/nesdoug/famitone5.0
It's a relative new fork of Famitone, and has a few more options (resp. famitracker effects), compared to the default 2.0.
replacing the music is a trivial task, whereas changing the sound effects is quite involved.

Quantam

  • Jr. Member
  • **
  • Posts: 54
    • View Profile
    • Q's Retro Docs
Re: Request for Comments: Metroid Music Format Spec
« Reply #4 on: May 17, 2022, 09:32:14 pm »
Just updated the original post with info for Kid Icarus.

Quantam

  • Jr. Member
  • **
  • Posts: 54
    • View Profile
    • Q's Retro Docs
Re: Request for Comments: Metroid Music Format Spec
« Reply #5 on: June 01, 2022, 06:57:00 am »
Updated to v0.3 (release candidate).