Skip to content

Program that converts deflemask project files to a neogeo M1ROM running the Mezz'Estate audio driver

License

Notifications You must be signed in to change notification settings

neogeo-mzs/dmf2mlm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dmf2mlm

Program that converts deflemask project files to a neogeo M1ROM running the Mezz'Estate audio driver

freem's adpcma encoder MUST be in $PATH as adpcma.

Conversion steps

  1. Parse the DMF modules (dmf.py)

  2. Convert the merged modules into a mlm.SoundData instance (mzs/*.py)

  3. Compile said instance into an m1rom (mzs/*.py)

Limitations

  • Only 255 instruments per song can be used, since one instrument is used for ADPCM-A samples

  • SSG Noise tone macros will be ignored because I don't know how they'd work (there's a single Noise channel shared inbetween all three channels)

  • Do not use FM instruments with SSG channels, create an empty SSG instrument instead.

Conversion info

  • Each pattern is converted into a sub event list, and the pattern matrix is converted into a series of "Jump to sub event list" commands.

  • If the used patterns in a pattern matrix channel are $00, $01, $10, and $03 then they will be respectively converted into the channel's sub-EL 0, 1, 3, and 2. first the unique used patterns are found (list(set(pat_matrix))), then they're sorted (unique_pats.sort()); the sub-EL id is found from said unique pattern list (unique_pats.find(pattern))

TODO

  • Find a way to merge samples, since it's likely that the songs will share samples

About

Program that converts deflemask project files to a neogeo M1ROM running the Mezz'Estate audio driver

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages