Author Topic: How to encode MP3 files into a MO3 one using another MO3 as sample sequence?  (Read 2415 times)

KouGenmei

  • Posts: 2
Hello, I'm making a modded version of Plants vs Zombies, and I want to change the BGMs. They are stored in an MO3 file, and after some hours struggling, I managed to decode it into MP3 files. However I don't know how to encode edited MP3 files into a MO3 one with the same sequence as the original one (in order to keep the game as stable as possible). May you help me with this, please?

Ian @ un4seen

  • Administrator
  • Posts: 25778
It isn't really possible to go from MO3 to MP3 and then back to MO3, at least not efficiently, ie. the resulting MO3 file will be much bigger than the original because it will basically just be wrapping the MP3 file. Depending on what you want to change, you could try loading the original MO3 file in OpenMPT and making the changes in that.

KouGenmei

  • Posts: 2
It isn't really possible to go from MO3 to MP3 and then back to MO3, at least not efficiently, ie. the resulting MO3 file will be much bigger than the original because it will basically just be wrapping the MP3 file. Depending on what you want to change, you could try loading the original MO3 file in OpenMPT and making the changes in that.
I tried it before using XMPlay to decode MO3 as I said, however I just don't get how to use it; moreover the MO3 of PvZ seems to have looped parts, and some parts overlap with other ones. Those things made my progress even harder. May you suggest some guides to work with it easier?

Ian @ un4seen

  • Administrator
  • Posts: 25778
You can check the OpenMPT manual for info:

   https://wiki.openmpt.org/Main_Page

The main pages of interest for you will probably be the "Patterns" and "Effect Reference" pages:

   https://wiki.openmpt.org/Manual:_Patterns
   https://wiki.openmpt.org/Manual:_Effect_Reference

I don't think OpenMPT supports saving in MO3 format, in which case you will need to save your modified file in IT or XM format (whichever it suggests) and then rename it to what the game expects.