@echo off
rmdir /s /q .\temp
rmdir /s /q .\WAVs
mkdir .\temp
mkdir .\WAVs
cls
echo #####################################
echo # E-mu Drumulator ROM Decoder v0.60 # (Electronic Drums 1 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 A101.BIN, B101.BIN, C101.BIN, and D101.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\A101.BIN + .\temp\B101.BIN + .\temp\C101.BIN + .\temp\D101.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 0xA43E 0xB31F .\temp\CLAVE.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xBC91 0xC801 .\temp\COWBELL.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xA43E 0xB31F .\temp\CLAPS.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x9ABC 0xA43E .\temp\OPENHAT.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x9ABC 0xA43E .\temp\CL_HAT.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xC814 0xF516 .\temp\CYMBAL.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x6CEA 0x79A8 .\temp\KICK.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x79A8 0x9AA9 .\temp\SNARE.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0xB31F 0xBC91 .\temp\RIMSHOT.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x0011 0x2313 .\temp\HI_TOM.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x2313 0x47F5 .\temp\MID_TOM.RAW -quiet -yes
.\tools\sfk partcopy .\temp\DRUMULAW.RAW -fromto 0x4808 0x6CEA .\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