diff --git a/changelog.txt b/changelog.txt
index 84d473da..d6768fa6 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,4 +1,5 @@
 ---version 2.0.4 yet to be released---
+22-mar-2009 - shinydoofy - sdl - added commandline options for sound channels' volumes
 22-mar-2009 - shinydoofy - sdl - updated window title
 19-mar-2009 - adelikat - Win32 - make Video - windowed mode - disable hardware accel the default setting.  Made high quality sound the default setting.
 16-mar-2009 - adelikat - Win32 - GUI Dialog - added an option to disable the context menu
diff --git a/src/drivers/sdl/config.cpp b/src/drivers/sdl/config.cpp
index 4435dd4c..59692e78 100644
--- a/src/drivers/sdl/config.cpp
+++ b/src/drivers/sdl/config.cpp
@@ -116,6 +116,11 @@ InitConfig()
     // sound options
     config->addOption('s', "sound", "SDL.Sound", 1);
     config->addOption("volume", "SDL.SoundVolume", 100);
+    config->addOption("trianglevol", "SDL.TriangleVolume", 100);
+    config->addOption("square1vol", "SDL.Square1Volume", 100);
+    config->addOption("square2vol", "SDL.Square2Volume", 100);
+    config->addOption("noisevol", "SDL.NoiseVolume", 100);
+    config->addOption("pcmvol", "SDL.PCMVolume", 100);
     config->addOption("soundrate", "SDL.SoundRate", 11000);
     config->addOption("soundq", "SDL.SoundQuality", 1);
     config->addOption("soundrecord", "SDL.SoundRecordFile", "");
diff --git a/src/drivers/sdl/sdl-sound.cpp b/src/drivers/sdl/sdl-sound.cpp
index 4e71056d..46b1c69a 100644
--- a/src/drivers/sdl/sdl-sound.cpp
+++ b/src/drivers/sdl/sdl-sound.cpp
@@ -79,7 +79,7 @@ fillaudio(void *udata,
 int
 InitSound(FCEUGI *gi)
 {
-    int sound, soundrate, soundbufsize, soundvolume, soundq;
+    int sound, soundrate, soundbufsize, soundvolume, soundtrianglevolume, soundsquare1volume, soundsquare2volume, soundnoisevolume, soundpcmvolume, soundq;
     SDL_AudioSpec spec;
 
     g_config->getOption("SDL.Sound", &sound);
@@ -99,6 +99,11 @@ InitSound(FCEUGI *gi)
     g_config->getOption("SDL.SoundBufSize", &soundbufsize);
     g_config->getOption("SDL.SoundVolume", &soundvolume);
     g_config->getOption("SDL.SoundQuality", &soundq);
+    g_config->getOption("SDL.TriangleVolume", &soundtrianglevolume);
+    g_config->getOption("SDL.Square1Volume", &soundsquare1volume);
+    g_config->getOption("SDL.Square2Volume", &soundsquare2volume);
+    g_config->getOption("SDL.NoiseVolume", &soundnoisevolume);
+    g_config->getOption("SDL.PCMVolume", &soundpcmvolume);
 
     spec.freq = soundrate;
     spec.format = AUDIO_S16SYS;
@@ -128,6 +133,11 @@ InitSound(FCEUGI *gi)
     FCEUI_SetSoundVolume(soundvolume);
     FCEUI_SetSoundQuality(soundq);
     FCEUI_Sound(soundrate);
+    FCEUI_SetTriangleVolume(soundtrianglevolume);
+    FCEUI_SetSquare1Volume(soundsquare1volume);
+    FCEUI_SetSquare2Volume(soundsquare2volume);
+    FCEUI_SetNoiseVolume(soundnoisevolume);
+    FCEUI_SetPCMVolume(soundpcmvolume);
     return(1);
 }
 
diff --git a/src/drivers/sdl/sdl.cpp b/src/drivers/sdl/sdl.cpp
index cc7b855a..9b129195 100644
--- a/src/drivers/sdl/sdl.cpp
+++ b/src/drivers/sdl/sdl.cpp
@@ -80,10 +80,10 @@ char *DriverUsage="\
 --fullscreen   {0|1}   Enables full screen mode.\n\
 --clipsides    {0|1}   Clips left and rightmost 8 columns of pixels.\n\
 --noframe      {0|1}   Hides title bar and window decorations.\n\
---slstart    {0 - 239} Sets the first drawn emulated scanline.\n\
---special     {1 - 4}  Use special video scaling filters\n\
+--slstart    {0-239}   Sets the first drawn emulated scanline.\n\
+--special     {1-4}    Use special video scaling filters\n\
                           (1 = hq2x 2 = Scale2x 3 = hq3x 4 = Scale3x)\n\
---slend      {0 - 239} Sets the last drawn emulated scanline.\n\
+--slend      {0-239}   Sets the last drawn emulated scanline.\n\
 --ntsccolor    {0|1}   Emulates an NTSC TV's colors.\n\
 --hue           x      Sets hue for NTSC color emulation.\n\
 --tint          x      Sets tint for NTSC color emulation.\n\
@@ -92,7 +92,12 @@ char *DriverUsage="\
 --soundrate     x      Sets sound playback rate to x Hz.\n\
 --soundq       {0|1}   Enables high sound quality.\n\
 --soundbufsize  x      Sets sound buffer size to x ms.\n\
---volume     {0 - 100} Sets volume.\n\
+--volume      {0-100}  Sets volume.\n\
+--trianglevol {0-100}  Sets Triangle volume.\n\
+--square1vol  {0-100}  Sets Square 1 volume.\n\
+--square2vol  {0-100}  Sets Square 2 volume.\n\
+--noisevol    {0-100}  Sets Noise volume.\n\
+--pcmvol      {0-100}  Sets PCM volume.\n\
 --lowpass      {0|1}   Enables low-pass filter if x is nonzero.\n\
 --soundrecord   f      Records sound to file f.\n\
 --input(1,2)    d      Set the input device for input 1 or 2.\n\