diff -ur scummvm-20030221/scummvm/backends/sdl/sdl-common.cpp scummvm-20030221_dot/scummvm/backends/sdl/sdl-common.cpp
--- scummvm-20030221/scummvm/backends/sdl/sdl-common.cpp	Tue Jan 28 07:53:28 2003
+++ scummvm-20030221_dot/scummvm/backends/sdl/sdl-common.cpp	Sat Feb 22 00:59:18 2003
@@ -503,9 +503,9 @@
 					quit();
 					break;
 				}
-				// Ctr-Alt-1 till Ctrl-Alt-8 will change the GFX mode
+				// Ctr-Alt-1 till Ctrl-Alt-9 will change the GFX mode
 				if (b == (KBD_CTRL|KBD_ALT) && 
-				    (ev.key.keysym.sym>='1') && (ev.key.keysym.sym<='8')) {
+				    (ev.key.keysym.sym>='1') && (ev.key.keysym.sym<='9')) {
 					Property prop;
 					prop.gfx_mode = ev.key.keysym.sym - '1';
 					property(PROP_SET_GFX_MODE, &prop);
diff -ur scummvm-20030221/scummvm/backends/sdl/sdl.cpp scummvm-20030221_dot/scummvm/backends/sdl/sdl.cpp
--- scummvm-20030221/scummvm/backends/sdl/sdl.cpp	Fri Jan 17 18:11:56 2003
+++ scummvm-20030221_dot/scummvm/backends/sdl/sdl.cpp	Sat Feb 22 00:59:28 2003
@@ -103,6 +103,10 @@
 		_scaleFactor = 2;
 		_scaler_proc = TV2x;
 		break;
+	case GFX_DOTMATRIX:
+		_scaleFactor = 2;
+		_scaler_proc = DotMatrix;
+		break;
 
 	case GFX_DOUBLESIZE:
 		_scaleFactor = 2;
@@ -345,7 +349,7 @@
 #endif
 		return 1;
 	} else if (param == PROP_SET_GFX_MODE) {
-		if (value->gfx_mode >= 8)
+		if (value->gfx_mode >= 9)
 			return 0;
 
 		_mode = value->gfx_mode;
diff -ur scummvm-20030221/scummvm/common/gameDetector.cpp scummvm-20030221_dot/scummvm/common/gameDetector.cpp
--- scummvm-20030221/scummvm/common/gameDetector.cpp	Thu Feb 20 22:22:38 2003
+++ scummvm-20030221_dot/scummvm/common/gameDetector.cpp	Sat Feb 22 00:57:20 2003
@@ -47,7 +47,7 @@
 	"\t-p<path>   - look for game in <path>\n"
 	"\t-x[<num>]  - load this savegame (default: 0 - autosave)\n"
 	"\t-f         - fullscreen mode\n"
-	"\t-g<mode>   - graphics mode (normal,2x,3x,2xsai,super2xsai,supereagle,advmame2x,tv2x)\n"
+	"\t-g<mode>   - graphics mode (normal,2x,3x,2xsai,super2xsai,supereagle,advmame2x,tv2x,dotmatrix)\n"
 	"\t-e<mode>   - set music engine (see README for details)\n"
 	"\t-a         - specify game is amiga version\n"
 	"\t-q<lang>   - specify language (en,de,fr,it,pt,es,ja,zh,ko,hb)\n"
@@ -194,6 +194,7 @@
 	{"supereagle", "SuperEagle", GFX_SUPEREAGLE},
 	{"advmame2x", "AdvMAME2x", GFX_ADVMAME2X},
 	{"tv2x", "TV2x", GFX_TV2X},
+	{"dotmatrix", "DotMatrix", GFX_DOTMATRIX},
 	{0, 0}
 };
 
diff -ur scummvm-20030221/scummvm/common/scaler.cpp scummvm-20030221_dot/scummvm/common/scaler.cpp
--- scummvm-20030221/scummvm/common/scaler.cpp	Mon Jan 20 12:36:06 2003
+++ scummvm-20030221_dot/scummvm/common/scaler.cpp	Sat Feb 22 00:55:16 2003
@@ -32,6 +32,20 @@
 static uint32 redblueMask = 0xF81F;
 static uint32 greenMask = 0x7E0;
 
+static const uint16 dotmatrix_565[16] = {
+  0x01E0, 0x0007, 0x3800, 0x0000,
+  0x39E7, 0x0000, 0x39E7, 0x0000,
+  0x3800, 0x0000, 0x01E0, 0x0007,
+  0x39E7, 0x0000, 0x39E7, 0x0000
+};
+static const uint16 dotmatrix_555[16] = {
+  0x00E0, 0x0007, 0x1C00, 0x0000,
+  0x1CE7, 0x0000, 0x1CE7, 0x0000,
+  0x1C00, 0x0000, 0x00E0, 0x0007,
+  0x1CE7, 0x0000, 0x1CE7, 0x0000
+};
+static const uint16 *dotmatrix;
+
 int Init_2xSaI(uint32 BitFormat)
 {
 	if (BitFormat == 565) {
@@ -41,6 +55,7 @@
 		qlowpixelMask = 0x18631863;
 		redblueMask = 0xF81F;
 		greenMask = 0x7E0;
+		dotmatrix = dotmatrix_565;
 	} else if (BitFormat == 555) {
 		colorMask = 0x7BDE7BDE;
 		lowPixelMask = 0x04210421;
@@ -48,6 +63,7 @@
 		qlowpixelMask = 0x0C630C63;
 		redblueMask = 0x7C1F;
 		greenMask = 0x3E0;
+		dotmatrix = dotmatrix_555;
 	} else {
 		return 0;
 	}
@@ -825,6 +841,32 @@
 			*(q + j + 1) = p1;
 			*(q + j + nextlineDst) = (uint16)pi;
 			*(q + j + nextlineDst + 1) = (uint16)pi;
+		}
+		p += nextlineSrc;
+		q += nextlineDst << 1;
+	}
+}
+
+static inline uint16 DOT_16(uint16 c, int j, int i) {
+  return c - ((c >> 2) & *(dotmatrix + ((j & 3) << 2) + (i & 3)));
+}
+
+void DotMatrix(uint8 *srcPtr, uint32 srcPitch, uint8 *null, uint8 *dstPtr, uint32 dstPitch,
+					int width, int height)
+{
+	unsigned int nextlineSrc = srcPitch / sizeof(uint16);
+	uint16 *p = (uint16 *)srcPtr;
+
+	unsigned int nextlineDst = dstPitch / sizeof(uint16);
+	uint16 *q = (uint16 *)dstPtr;
+
+	for (int j = 0, jj = 0; j < height; ++j, jj += 2) {
+		for (int i = 0, ii = 0; i < width; ++i, ii += 2) {
+			uint16 c = *(p + i);
+			*(q + ii) = DOT_16(c, jj, ii);
+			*(q + ii + 1) = DOT_16(c, jj, ii + 1);
+			*(q + ii + nextlineDst) = DOT_16(c, jj + 1, ii);
+			*(q + ii + nextlineDst + 1) = DOT_16(c, jj + 1, ii + 1);
 		}
 		p += nextlineSrc;
 		q += nextlineDst << 1;
diff -ur scummvm-20030221/scummvm/common/scaler.h scummvm-20030221_dot/scummvm/common/scaler.h
--- scummvm-20030221/scummvm/common/scaler.h	Fri Jan 17 18:10:58 2003
+++ scummvm-20030221_dot/scummvm/common/scaler.h	Sat Feb 22 00:56:00 2003
@@ -38,5 +38,7 @@
 								uint8 *dstPtr, uint32 dstPitch, int width, int height);
 extern void TV2x(uint8 *srcPtr, uint32 srcPitch, uint8 *null,
 								uint8 *dstPtr, uint32 dstPitch, int width, int height);
+extern void DotMatrix(uint8 *srcPtr, uint32 srcPitch, uint8 *null,
+								uint8 *dstPtr, uint32 dstPitch, int width, int height);
 
 #endif
diff -ur scummvm-20030221/scummvm/common/system.h scummvm-20030221_dot/scummvm/common/system.h
--- scummvm-20030221/scummvm/common/system.h	Thu Jan 30 11:19:14 2003
+++ scummvm-20030221_dot/scummvm/common/system.h	Sat Feb 22 00:56:46 2003
@@ -223,7 +223,8 @@
 	GFX_SUPER2XSAI = 4,
 	GFX_SUPEREAGLE = 5,
 	GFX_ADVMAME2X = 6,
-	GFX_TV2X = 7
+	GFX_TV2X = 7,
+	GFX_DOTMATRIX = 8
 };
 
 
diff -ur scummvm-20030221/scummvm/gui/options.cpp scummvm-20030221_dot/scummvm/gui/options.cpp
--- scummvm-20030221/scummvm/gui/options.cpp	Fri Jan 17 18:11:04 2003
+++ scummvm-20030221_dot/scummvm/gui/options.cpp	Sat Feb 22 00:56:32 2003
@@ -70,6 +70,7 @@
 	gfxPopUp->appendEntry("SuperEagle");
 	gfxPopUp->appendEntry("AdvMAME2x");
 	gfxPopUp->appendEntry("TV2x");
+	gfxPopUp->appendEntry("DotMatrix");
 	gfxPopUp->setSelected(0);
 
 	// The MIDI mode popup & a label
Only in scummvm-20030221_dot/scummvm: scumm___MP3_Enabled_Release
Only in scummvm-20030221_dot/scummvm: scummvm.ncb
Only in scummvm-20030221_dot/scummvm: scummvm.opt
Only in scummvm-20030221_dot/scummvm: scummvm___MP3_Enabled_Release
Only in scummvm-20030221_dot/scummvm: simon___MP3_Enabled_Release
