Skip to content

Conversation

@techmetx11
Copy link
Contributor

@techmetx11 techmetx11 commented May 10, 2025

This is based off of reverse-engineered knowledge and may not be complete or accurate.

Only supports VGE files exported with VGM Music Maker v1.1 (file must start with VGEfmtV3) as of now.
Supports VGE files exported with any versions of VGM Music Maker.

  • VGEv1: VGMMM v1.0, v1.01, v1.02 (Pre-Release)
  • VGEv2: VGMMM v1.02
  • VGEv3: VGMMM v1.1
  • Samples (gain for VGEv1, gain+pitch for the rest of the versions)
  • PSG ADSR envelope and volumes
  • Special case for notes in PSG noise channel

@techmetx11
Copy link
Contributor Author

Samples cannot be implemented due to the fact that Furnace cannot handle the possible amount of samples + FM instruments. VGM Music Maker has 256 FM instruments and 255 samples, and plays those samples using a special effect in FM 6 (while Furnace requires you to make a sample instrument for each sample, taking up space in the instrument list). In the case of a VGE file having more than (for example) 127 FM instruments and 127 sample instruments, it would cause the instrument list to overflow

@freq-mod
Copy link
Collaborator

is it alive?

@techmetx11
Copy link
Contributor Author

techmetx11 commented Oct 30, 2025

is it alive?

PR blocked because I don't know how to handle 1) Calculating PSG envelope from FM ADSR 2) If there are a combined more samples and FM instruments than the 256 instruments that Furnace can support

@nikku4211
Copy link
Contributor

nikku4211 commented Dec 14, 2025

PR blocked because I don't know how to handle

  1. Calculating PSG envelope from FM ADSR

Doesn't Furnace support ADSR-format envelopes for PSG natively now? Or is it difficult to convert from VGM Music Maker's PSG ADSR envelope format to Furnace's?

  1. If there are a combined more samples and FM instruments than the 256 instruments that Furnace can support

Why not just have a tighter limit on instruments than VGM MM has? I think it's not too likely for a VGM Music Maker song to use over 127 instruments or 127 samples anyway. I would be happy if it was just limited to 127 instruments and 127 samples or even just 64-ish instruments with 64-ish sampled instruments as long as I can import songs from VGM Music Maker at all.

Though I am not familiar with Tilde's standards, so I don't know if he would want to be all-or-nothing when it comes to support for VGM MM modules.

@techmetx11
Copy link
Contributor Author

techmetx11 commented Dec 14, 2025

Doesn't Furnace support ADSR-format envelopes for PSG natively now? Or is it difficult to convert from VGM Music Maker's PSG ADSR envelope format to Furnace's?

Furnace's ADSR is a bit messy. I can't figure out how to make the envelope stay indefinitely within the sustain phase as long as the note is being held (because when it goes over SusTime, it'll automatically decay)
Also no second decay unlike the VGMMM ADSR

Why not just have a tighter limit on instruments than VGM MM has? I think it's not too likely for a VGM Music Maker song to use over 127 instruments or 127 samples anyway. I would be happy if it was just limited to 127 instruments and 127 samples or even just 64-ish instruments with 64-ish sampled instruments as long as I can import songs from VGM Music Maker at all.

Well, that could work.

@Eknous-P
Copy link
Collaborator

Eknous-P commented Dec 14, 2025

I can't figure out how to make the envelope stay indefinitely within the sustain phase as long as the note is being held (because when it goes over SusTime, it'll automatically decay)

SusTime and SusDecay of 0 will sustain it

Also no second decay unlike the VGMMM ADSR

SusDecay?

@techmetx11
Copy link
Contributor Author

techmetx11 commented Dec 15, 2025

I can't figure out how to make the envelope stay indefinitely within the sustain phase as long as the note is being held (because when it goes over SusTime, it'll automatically decay)

SusTime and SusDecay of 0 will sustain it

Also no second decay unlike the VGMMM ADSR

SusDecay?

I'll get back to working on this soon. Thanks

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.

4 participants