@echo off
rmdir /s /q .\temp
rmdir /s /q .\WAVs
mkdir .\temp
mkdir .\WAVs
cls
echo #####################################
echo # E-mu Drumulator ROM Decoder v0.60 # (African Percussion ROMs)
echo #####################################
echo.
echo Input files must be Drumulator sound ROM binaries placed within the 
echo [Drumulator_ROMS] folder. All ROMs must have a *.bin file extension!
echo.
echo There must be four sound ROM binaries per kit and must be named as 
echo A104.BIN, B104.BIN, C104.BIN, and D104.BIN exactly.
echo.
echo New WAV files will appear in the WAVS folder when the decoding task 
echo is finished.
echo.
echo Note: 3rd party ROMs often do not have 12 unique instruments sounds, so some 
echo decoded WAVs may be redundant and identical to other instruments. This is 
echo not an error in the decoding process.
echo.
pause
echo.
echo Copying needed files into temp directory for processing...
copy .\[Drumulator_ROMS]\*.* .\temp >NUL
echo.
echo Merging sound ROMs...
copy /B .\temp\A104.BIN + .\temp\B104.BIN + .\temp\C104.BIN + .\temp\D104.BIN .\temp\DRUMUINV.BIN >NUL
echo.
echo Inverting mu-Law values for proper signing...
.\tools\srec_cat .\temp\DRUMUINV.BIN -raw -xor 0xFF -o .\temp\DRUMULAW.RAW -raw
echo.
echo Splitting sound ROM into individual instruments...
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x482A 0x542C .\temp\CLAVE.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x3715 0x4817 .\temp\COWBELL.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xC152 0xD854 .\temp\CLAPS.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x9F3C 0xB53D .\temp\OPENHAT.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xB53D 0xC13F .\temp\CL_HAT.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x6B2E 0x8830 .\temp\CYMBAL.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x9243 0x9F3C .\temp\KICK.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x8843 0x9243 .\temp\SNARE.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x542C 0x6B2E .\temp\RIMSHOT.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x2013 0x3715 .\temp\HI_TOM.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xD854 0xF956 .\temp\MID_TOM.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x0011 0x2013 .\temp\LOW_TOM.RAW -quiet -yes
echo.
echo Converting mu-Law to 16-bit WAV...
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\CLAVE.RAW -b 16 -c 1 -e signed-integer .\WAVS\CLAVE.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\COWBELL.RAW -b 16 -c 1 -e signed-integer .\WAVS\COWBELL.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\CLAPS.RAW -b 16 -c 1 -e signed-integer .\WAVS\CLAPS.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\OPENHAT.RAW -b 16 -c 1 -e signed-integer .\WAVS\OPENHAT.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\CL_HAT.RAW -b 16 -c 1 -e signed-integer .\WAVS\CL_HAT.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\CYMBAL.RAW -b 16 -c 1 -e signed-integer .\WAVS\CYMBAL.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\KICK.RAW -b 16 -c 1 -e signed-integer .\WAVS\KICK.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\SNARE.RAW -b 16 -c 1 -e signed-integer .\WAVS\SNARE.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\RIMSHOT.RAW -b 16 -c 1 -e signed-integer .\WAVS\RIMSHOT.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\HI_TOM.RAW -b 16 -c 1 -e signed-integer .\WAVS\HI_TOM.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\MID_TOM.RAW -b 16 -c 1 -e signed-integer .\WAVS\MID_TOM.WAV
.\tools\sox\sox.exe -r 22050 -c 1 -e mu-law -t raw .\temp\LOW_TOM.RAW -b 16 -c 1 -e signed-integer .\WAVS\LOW_TOM.WAV
echo.
echo Process complete.
echo.
pause
rmdir /s /q .\temp