Index: /branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/include/fakeastro.h
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/include/fakeastro.h	(revision 37620)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/include/fakeastro.h	(revision 37621)
@@ -88,4 +88,5 @@
 int    VERBOSE2;
 int    TESTING;
+int    ONE_BIG_CHIP;
 
 int    FORCE;
Index: /branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/args.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/args.c	(revision 37620)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/args.c	(revision 37621)
@@ -30,4 +30,9 @@
     remove_argument (N, argc, argv);
     TESTING = TRUE;
+  }
+  ONE_BIG_CHIP = FALSE;
+  if ((N = get_argument (*argc, argv, "-one-big-chip"))) {
+    remove_argument (N, argc, argv);
+    ONE_BIG_CHIP = TRUE;
   }
 
Index: /branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/make_fake_images.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/make_fake_images.c	(revision 37620)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/fakeastro/src/make_fake_images.c	(revision 37621)
@@ -23,58 +23,97 @@
   int N = 1;
 
-  int ix, iy;
-  for (ix = 0; ix < 8; ix++) {
-    for (iy = 0; iy < 8; iy++) {
+  if (ONE_BIG_CHIP) {
+    fakeImage[N] = fakeImage[0];
+
+    // coords map relative to image center:
+    fakeImage[N].coords.crval1 = 0.0;
+    fakeImage[N].coords.crval2 = 0.0;
+
+    fakeImage[N].coords.crpix1 = 0.5*8*5000;
+    fakeImage[N].coords.crpix2 = 0.5*8*5000;
+    fakeImage[N].coords.pc1_1 = 1.0;
+    fakeImage[N].coords.pc2_2 = 1.0;
+
+    fakeImage[N].coords.cdelt1 = 1.0;
+    fakeImage[N].coords.cdelt2 = 1.0;
+
+    fakeImage[N].coords.pc1_2 = 0.0;
+    fakeImage[N].coords.pc2_1 = 0.0;
+
+    strcpy (fakeImage[N].coords.ctype, "DEC--WRP");
+    fakeImage[N].coords.Npolyterms = 1;
+
+    fakeImage[N].coords.mosaic = &fakeImage[0].coords;
+
+    fakeImage[N].NX = 8*5000;
+    fakeImage[N].NY = 8*5000;
+
+    fakeImage[N].imageID = IMAGE_ID;
+    IMAGE_ID ++;
+
+    // gpc1-specific (assumes grizy map to 10101, etc)
+    fakeImage[N].photcode = fakeImage[0].photcode + 01;
+
+    char *ptr = strstr (fakeImage[N].name, "[PHU]");
+    if (ptr) {
+      snprintf (ptr, 7, "[XY01]");
+    }
+    N++;
+  } else {
+    int ix, iy;
+    for (ix = 0; ix < 8; ix++) {
+      for (iy = 0; iy < 8; iy++) {
       
-      if ((ix == 0) && (iy == 0)) continue;
-      if ((ix == 7) && (iy == 0)) continue;
-      if ((ix == 0) && (iy == 7)) continue;
-      if ((ix == 7) && (iy == 7)) continue;
+	if ((ix == 0) && (iy == 0)) continue;
+	if ((ix == 7) && (iy == 0)) continue;
+	if ((ix == 0) && (iy == 7)) continue;
+	if ((ix == 7) && (iy == 7)) continue;
 
-      fakeImage[N] = fakeImage[0];
+	fakeImage[N] = fakeImage[0];
 
-      // coords map relative to image center:
-      fakeImage[N].coords.crval1 = 0.0;
-      fakeImage[N].coords.crval2 = 0.0;
+	// coords map relative to image center:
+	fakeImage[N].coords.crval1 = 0.0;
+	fakeImage[N].coords.crval2 = 0.0;
 
-      if (ix < 4) {
-	fakeImage[N].coords.crpix1 = (ix - 3)*5000;
-	fakeImage[N].coords.crpix2 = (iy - 3)*5100;
-	fakeImage[N].coords.pc1_1 = 1.0;
-	fakeImage[N].coords.pc2_2 = 1.0;
-      } else {
-	fakeImage[N].coords.crpix1 = (4 - ix)*5000;
-	fakeImage[N].coords.crpix2 = (4 - iy)*5100;
-	fakeImage[N].coords.pc1_1 = -1.0;
-	fakeImage[N].coords.pc2_2 = -1.0;
-      } 
+	if (ix < 4) {
+	  fakeImage[N].coords.crpix1 = (ix - 3)*5000;
+	  fakeImage[N].coords.crpix2 = (iy - 3)*5100;
+	  fakeImage[N].coords.pc1_1 = 1.0;
+	  fakeImage[N].coords.pc2_2 = 1.0;
+	} else {
+	  fakeImage[N].coords.crpix1 = (4 - ix)*5000;
+	  fakeImage[N].coords.crpix2 = (4 - iy)*5100;
+	  fakeImage[N].coords.pc1_1 = -1.0;
+	  fakeImage[N].coords.pc2_2 = -1.0;
+	} 
 
-      fakeImage[N].coords.cdelt1 = 1.0;
-      fakeImage[N].coords.cdelt2 = 1.0;
+	fakeImage[N].coords.cdelt1 = 1.0;
+	fakeImage[N].coords.cdelt2 = 1.0;
 
-      fakeImage[N].coords.pc1_2 = 0.0;
-      fakeImage[N].coords.pc2_1 = 0.0;
+	fakeImage[N].coords.pc1_2 = 0.0;
+	fakeImage[N].coords.pc2_1 = 0.0;
 
-      strcpy (fakeImage[N].coords.ctype, "DEC--WRP");
-      fakeImage[N].coords.Npolyterms = 1;
+	strcpy (fakeImage[N].coords.ctype, "DEC--WRP");
+	fakeImage[N].coords.Npolyterms = 1;
 
-      // XXX add higher order polynomials or imagemaps here
+	// XXX add higher order polynomials or imagemaps here
 
-      fakeImage[N].coords.mosaic = &fakeImage[0].coords;
+	fakeImage[N].coords.mosaic = &fakeImage[0].coords;
 
-      fakeImage[N].NX = 4850;
-      fakeImage[N].NY = 4850;
+	fakeImage[N].NX = 4850;
+	fakeImage[N].NY = 4850;
 
-      fakeImage[N].imageID = IMAGE_ID;
-      IMAGE_ID ++;
+	fakeImage[N].imageID = IMAGE_ID;
+	IMAGE_ID ++;
 
-      // gpc1-specific (assumes grizy map to 10101, etc)
-      fakeImage[N].photcode = fakeImage[0].photcode + iy*10 + ix;
+	// gpc1-specific (assumes grizy map to 10101, etc)
+	fakeImage[N].photcode = fakeImage[0].photcode + iy*10 + ix;
 
-      char *ptr = strstr (fakeImage[N].name, "[PHU]");
-      if (ptr) {
-	snprintf (ptr, 7, "[XY%d%d]", ix, iy);
+	char *ptr = strstr (fakeImage[N].name, "[PHU]");
+	if (ptr) {
+	  snprintf (ptr, 7, "[XY%d%d]", ix, iy);
+	}
+	N++;
       }
-      N++;
     }
   }
