December 29, 2005
Downloaded from http://www.geocities.com/eiennarufuyu

mmdpz80.bin ----- This is the Z80 port of the of music driver MMDP for Sega Megadrive/Genesis.
            It now supports 6 fm channels, and 3 psg channels.  Pitch bends are also supported
	    It should work with any MMD format music file.  
            It also requires a instrument bank no larger than 8192 bytes, and is placed at the 
	    beginning of any rom bank.  The number of the rom bank is written as a single byte 
	    to 0028h in z80 memory before starting up the z80.  Each rom bank is 32KB in size.

	    For example:  003F8000h / 8000h = 7Fh
	    This would be the very last bank in a 4 megabyte sized rom.

	    The song files are placed after the instrument bank starting at A000h.
	    Writing a value to 002Ah before playing selects which 1024 byte block to load from.  
	    Thus, if the first song (at block 0) is over 2KB but under 3KB, then the second song is loaded 
	    starting at block 3 (write 3 to 002Ah).  This way there is no size limit on song files,
	    as long as it is within the 24kilobytes of space available for music data.

	    To play music, first select the rom bank by writing to 0028h, then select the song at 002Ah
	    then start the song by writing FFh to the z80 address 0029h. Stop it by writing FEh to 0029h


mmdpz80.s ------- Source code, compiled with SNASMZ80, I suppose it should work with other assemblers.

mmdptest.bin ---- Genesis binary.  Loads the driver and music data into z80 memory and runs it.


extff.exe ------- Program to extract voices from one instrument bank and inject them to a new one.
	  Perhaps no longer necessary....
          Usage:  extff file.txt
          Check example.txt for the format of the text file.