@echo off
rmdir /s /q .\temp
rmdir /s /q .\WAVs
mkdir .\temp
mkdir .\WAVs
cls
echo #####################################
echo # E-mu Drumulator ROM Decoder v0.60 # (Latin 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 A103.BIN, B103.BIN, C103.BIN, and D103.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\A103.BIN + .\temp\B103.BIN + .\temp\C103.BIN + .\temp\D103.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 0xB234 0xC735 .\temp\CLAVE.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xC748 0xDA8A .\temp\COWBELL.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x0011 0x0B0C .\temp\CLAPS.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xDA8A 0xE18B .\temp\OPENHAT.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xE18B 0xE78D .\temp\CL_HAT.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xE78D 0xF78A .\temp\CYMBAL.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x0B0C 0x2FFE .\temp\KICK.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x2FFE 0x54FE .\temp\SNARE.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x5511 0x74F3 .\temp\RIMSHOT.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xA3C4 0xB234 .\temp\HI_TOM.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x8F02 0xA3C4 .\temp\MID_TOM.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x74F2 0x8EEF .\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