Index: /Daodan/src/Daodan.c
===================================================================
--- /Daodan/src/Daodan.c	(revision 339)
+++ /Daodan/src/Daodan.c	(revision 340)
@@ -116,5 +116,5 @@
 //	DDrPatch_MakeJump(gl_platform_initialize, daodangl_platform_initialize);
 	
-//	init_daodan_gl();
+	init_daodan_gl();
 	
 	ONiMain(argc, argv);
Index: /Daodan/src/daodan_gl.c
===================================================================
--- /Daodan/src/daodan_gl.c	(revision 339)
+++ /Daodan/src/daodan_gl.c	(revision 340)
@@ -20,4 +20,5 @@
 	{ 768 , 480,  0, 0 },
 	{ 800 , 480,  0, 0 },
+	{ 800 , 600,  0, 0 },
 	{ 852 , 480,  0, 0 },
 	{ 856 , 480,  0, 0 },
@@ -41,4 +42,5 @@
 	{ 1600, 1200, 0, 0 },
 	{ 1920, 1080, 0, 0 },
+	{ 1920, 1200, 0, 0 },
 	{ 1920, 1440, 0, 0 },
 };
@@ -86,4 +88,6 @@
 	for (i = 0; i < builtin_depths; i ++)
 	{
+		bool scrInsert = false;
+		
 		modes[vmodes].Width  = 640;
 		modes[vmodes].Height = 480;
@@ -97,4 +101,16 @@
 				((daodan_reslist[j].Width < screen_x && daodan_reslist[j].Height < screen_y) || daodan_testmode(daodan_reslist[j])))
 			{
+				if (!scrInsert && (daodan_reslist[j].Width > screen_x || (daodan_reslist[j].Width == screen_x &&  daodan_reslist[j].Height > screen_y)))
+				{
+					modes[vmodes].Width  = screen_x;
+					modes[vmodes].Height = screen_y;
+					modes[vmodes].Depth  = daodan_resdepths[i];
+					
+					if (++vmodes == max_modes - builtin_modes + i)
+						goto modesfull;
+					
+					scrInsert = true;
+				}
+				
 				modes[vmodes].Width  = daodan_reslist[j].Width;
 				modes[vmodes].Height = daodan_reslist[j].Height;
@@ -105,10 +121,13 @@
 			}
 		
-		modes[vmodes].Width  = screen_x;
-		modes[vmodes].Height = screen_y;
-		modes[vmodes].Depth  = daodan_resdepths[i];
-		
-		if (++vmodes == max_modes - builtin_modes + i)
-			goto modesfull;
+		if (!scrInsert)
+		{
+			modes[vmodes].Width  = screen_x;
+			modes[vmodes].Height = screen_y;
+			modes[vmodes].Depth  = daodan_resdepths[i];
+			
+			if (++vmodes == max_modes - builtin_modes + i)
+				goto modesfull;
+		}
 	}
 	
@@ -128,5 +147,5 @@
 	devmode.dmPelsHeight = mode.Height;
 	
-	return (ChangeDisplaySettings(&devmode, CDS_TEST) == DISP_CHANGE_SUCCESSFUL);
+	return (ChangeDisplaySettings(&devmode, CDS_TEST | CDS_FULLSCREEN) == DISP_CHANGE_SUCCESSFUL);
 }
 
