diff -ur /home/mogami/c/angband.orig/angband-3.0.0/src/angband.rc /home/mogami/c/angband/angband-3.0.0/src/angband.rc
--- /home/mogami/c/angband.orig/angband-3.0.0/src/angband.rc	Sat Aug  5 23:59:30 2000
+++ /home/mogami/c/angband/angband-3.0.0/src/angband.rc	Sat May 11 03:01:36 2002
@@ -110,6 +110,7 @@
 			MENUITEM "&None", 400
 			MENUITEM "&Old tiles", 401
 			MENUITEM "&Adam Bolt's tiles", 402
+                        MENUITEM "&Bigtile mode", 409
 		}
 
 		MENUITEM "&Sound", 410
diff -ur /home/mogami/c/angband.orig/angband-3.0.0/src/cave.c /home/mogami/c/angband/angband-3.0.0/src/cave.c
--- /home/mogami/c/angband.orig/angband-3.0.0/src/cave.c	Sat May 11 01:27:31 2002
+++ /home/mogami/c/angband/angband-3.0.0/src/cave.c	Sat May 11 07:06:56 2002
@@ -1039,6 +1039,9 @@
 	/* Location in window */
 	vx = kx + COL_MAP;
 
+	if (use_bigtile)
+		vx += kx;
+
 	/* Go there */
 	Term_gotoxy(vx, vy);
 }
@@ -1077,8 +1080,19 @@
 	/* Location in window */
 	vx = kx + COL_MAP;
 
+	if (use_bigtile)
+		vx += kx;
+
 	/* Hack -- Queue it */
 	Term_queue_char(vx, vy, a, c, 0, 0);
+
+	if (use_bigtile)
+	{
+                if (a & 0x80)
+			Term_draw(vx+1, vy, 255, (byte)255);
+                else
+			Term_draw(vx+1, vy, TERM_WHITE, ' ');
+	}
 }
 
 
@@ -1196,6 +1210,9 @@
 	/* Location in window */
 	vx = kx + COL_MAP;
 
+	if (use_bigtile)
+		vx += kx;
+
 	/* Hack -- redraw the grid */
 	map_info(y, x, &a, &c, &ta, &tc);
 
@@ -1224,13 +1241,13 @@
 	int ty, tx;
 
 	/* Assume screen */
-	ty = ROW_MAP + SCREEN_HGT;
-	tx = COL_MAP + SCREEN_WID;
+	ty = p_ptr->wy + SCREEN_HGT;
+	tx = p_ptr->wx + SCREEN_WID;
 
 	/* Dump the map */
-	for (y = p_ptr->wy, vy = ROW_MAP; vy < ty; vy++, y++)
+	for (y = p_ptr->wy, vy = ROW_MAP; y < ty; vy++, y++)
 	{
-		for (x = p_ptr->wx, vx = COL_MAP; vx < tx; vx++, x++)
+		for (x = p_ptr->wx, vx = COL_MAP; x < tx; vx++, x++)
 		{
 			/* Check bounds */
 			if (!in_bounds(y, x)) continue;
@@ -1240,6 +1257,17 @@
 
 			/* Hack -- Queue it */
 			Term_queue_char(vx, vy, a, c, ta, tc);
+
+			if (use_bigtile)
+			{
+				vx++;
+
+				/* Mega-Hack : Queue dummy char */
+				if (a & 0x80)
+					Term_queue_char(vx, vy, 255, 255, 0, 0);
+				else
+					Term_queue_char(vx, vy, TERM_WHITE, ' ', TERM_WHITE, ' ');
+			}
 		}
 	}
 }
@@ -1447,6 +1475,9 @@
 			row = (y * map_hgt / dungeon_hgt);
 			col = (x * map_wid / dungeon_wid);
 
+			if (use_bigtile)
+				col = col & ~1;
+
 			/* Get the attr/char at that map location */
 			map_info(y, x, &ta, &tc, &ta, &tc);
 
@@ -1459,6 +1490,14 @@
 				/* Add the character */
 				Term_putch(col + 1, row + 1, ta, tc);
 
+				if (use_bigtile)
+				{
+					if (ta & 0x80)
+						Term_putch(col + 2, row + 1, 255, (byte)255);
+					else
+						Term_putch(col + 2, row + 1, TERM_WHITE, ' ');
+				}
+
 				/* Save priority */
 				mp[row][col] = tp;
 			}
@@ -1470,6 +1509,8 @@
 	row = (py * map_hgt / dungeon_hgt);
 	col = (px * map_wid / dungeon_wid);
 
+	if (use_bigtile)
+		col = col & ~1;
 
 	/*** Make sure the player is visible ***/
 
diff -ur /home/mogami/c/angband.orig/angband-3.0.0/src/defines.h /home/mogami/c/angband/angband-3.0.0/src/defines.h
--- /home/mogami/c/angband.orig/angband-3.0.0/src/defines.h	Sat May 11 01:27:47 2002
+++ /home/mogami/c/angband/angband-3.0.0/src/defines.h	Sat May 11 01:59:31 2002
@@ -96,7 +96,7 @@
  * Number of grids in each panel (horizontally)
  * Must be a multiple of BLOCK_WID
  */
-#define PANEL_WID	33
+#define PANEL_WID	(use_bigtile ? 16 : 33)
 
 #define ROW_MAP			1
 #define COL_MAP			13
@@ -112,7 +112,7 @@
  * Number of grids in each screen (horizontally)
  * Must be a multiple of PANEL_WID (at least 2x)
  */
-#define SCREEN_WID	(Term->wid - COL_MAP - 1)
+#define SCREEN_WID	((Term->wid - COL_MAP - 1) / (use_bigtile ? 2 : 1))
 
 
 /*
diff -ur /home/mogami/c/angband.orig/angband-3.0.0/src/externs.h /home/mogami/c/angband/angband-3.0.0/src/externs.h
--- /home/mogami/c/angband.orig/angband-3.0.0/src/externs.h	Sat Apr 27 21:29:24 2002
+++ /home/mogami/c/angband/angband-3.0.0/src/externs.h	Sat May 11 03:12:28 2002
@@ -99,6 +99,7 @@
 extern s32b old_turn;
 extern bool use_sound;
 extern bool use_graphics;
+extern bool use_bigtile;
 extern s16b signal_count;
 extern bool msg_flag;
 extern bool inkey_base;
diff -ur /home/mogami/c/angband.orig/angband-3.0.0/src/main-mac.c /home/mogami/c/angband/angband-3.0.0/src/main-mac.c
--- /home/mogami/c/angband.orig/angband-3.0.0/src/main-mac.c	Sat Feb 23 04:35:00 2002
+++ /home/mogami/c/angband/angband-3.0.0/src/main-mac.c	Sat May 11 05:20:07 2002
@@ -1667,6 +1667,8 @@
 	r.right = r.left + td->tile_wid;
 	r.top = y * td->tile_hgt + td->size_oh1;
 	r.bottom = r.top + td->tile_hgt;
+	if (use_bigtile && x + 1 < Term->wid && Term->old->a[y][x+1] == 255)
+		r.right += td->tile_wid;
 	FrameRect(&r);
 
 	/* Success */
@@ -1743,7 +1745,6 @@
 
 	/* Destination rectangle */
 	r2.left = x * td->tile_wid + td->size_ow1;
-	r2.right = r2.left + td->tile_wid;
 	r2.top = y * td->tile_hgt + td->size_oh1;
 	r2.bottom = r2.top + td->tile_hgt;
 
@@ -1758,6 +1759,18 @@
 		byte ta = tap[i];
 		char tc = tcp[i];
 
+		/* Second byte of bigtile */
+		if (use_bigtile && a == 255)
+		{
+			/* Advance */
+			r2.left += td->tile_wid;
+
+			continue;
+		}
+
+		/* Prepare right of rectangle now */
+		r2.right = r2.left + td->tile_wid;
+
 #ifdef ANGBAND_LITE_MAC
 
 		/* Nothing */
@@ -1797,6 +1810,8 @@
 			BackColor(whiteColor);
 			ForeColor(blackColor);
 
+			if (use_bigtile) r2.right += td->tile_wid;
+
 			/* Draw the picture */
 			CopyBits((BitMap*)frameP->framePix,
 					 &(td->w->portBits),
@@ -1844,7 +1859,6 @@
 
 		/* Advance */
 		r2.left += td->tile_wid;
-		r2.right += td->tile_wid;
 	}
 
 	/* Success */
@@ -2755,6 +2769,7 @@
 	/* Next 2 lines for AB tile graphics */
 	AppendMenu(m, "\p-");
 	AppendMenu(m, "\parg_transparency");
+	AppendMenu(m, "\pBigtile Mode");
 
 
 	/* Make the "TileWidth" menu */
@@ -3038,6 +3053,10 @@
 	EnableItem(m, 7);
 	CheckItem(m, 7, use_transparency);
 
+	/* Item Bigtile Mode */
+	EnableItem(m, 8);
+	CheckItem(m, 8, big_bigtile);
+
 	/* Item "Hack" */
 	/* EnableItem(m, 9); */
 
@@ -3523,6 +3542,27 @@
 
 					break;
 				}
+
+                                case 8: /* bigtile mode */
+				{
+					term_data *td = &data[0];
+
+					if (!can_save){
+						plog("You may not do that right now.");
+						break;
+					}
+
+					/* Toggle "use_bigtile" */
+					use_bigtile = !use_bigtile;
+
+					/* Activate */
+					Term_activate(td->t);
+
+					/* Resize the term */
+					Term_resize(td->cols, td->rows);
+
+					break;
+				}
 			}
 
 			break;
diff -ur /home/mogami/c/angband.orig/angband-3.0.0/src/main-win.c /home/mogami/c/angband/angband-3.0.0/src/main-win.c
--- /home/mogami/c/angband.orig/angband-3.0.0/src/main-win.c	Sat Mar  9 03:17:54 2002
+++ /home/mogami/c/angband/angband-3.0.0/src/main-win.c	Sat May 11 05:27:45 2002
@@ -187,6 +187,7 @@
 #define IDM_OPTIONS_NO_GRAPHICS     400
 #define IDM_OPTIONS_OLD_GRAPHICS    401
 #define IDM_OPTIONS_NEW_GRAPHICS    402
+#define IDM_OPTIONS_BIGTILE         409
 #define IDM_OPTIONS_SOUND           410
 #define IDM_OPTIONS_LOW_PRIORITY    420
 #define IDM_OPTIONS_SAVER           430
@@ -1026,6 +1027,10 @@
 	sprintf(buf, "%d", arg_graphics);
 	WritePrivateProfileString("Angband", "Graphics", buf, ini_file);
 
+	/* Save the "use_bigtile" flag */
+	strcpy(buf, use_bigtile ? "1" : "0");
+	WritePrivateProfileString("Angband", "Bigtile", buf, ini_file);
+
 	/* Save the "arg_sound" flag */
 	strcpy(buf, arg_sound ? "1" : "0");
 	WritePrivateProfileString("Angband", "Sound", buf, ini_file);
@@ -1092,6 +1097,9 @@
 	/* Extract the "arg_graphics" flag */
 	arg_graphics = GetPrivateProfileInt("Angband", "Graphics", GRAPHICS_NONE, ini_file);
 
+	/* Extract the "use_bigtile" flag */
+	use_bigtile = GetPrivateProfileInt("Angband", "Bigtile", FALSE, ini_file);
+
 	/* Extract the "arg_sound" flag */
 	arg_sound = (GetPrivateProfileInt("Angband", "Sound", 0, ini_file) != 0);
 
@@ -2159,6 +2167,9 @@
 	rc.top = y * tile_hgt + td->size_oh1;
 	rc.bottom = rc.top + tile_hgt;
 
+	if (use_bigtile && x + 1 < Term->wid && Term->old->a[y][x+1] == 255)
+		rc.right += td->tile_wid;
+
 	/* Cursor is done as a yellow "box" */
 	hdc = GetDC(td->w);
 	FrameRect(hdc, &rc, hbrYellow);
@@ -2311,7 +2322,7 @@
 
 	int i;
 	int x1, y1, w1, h1;
-	int x2, y2, w2, h2;
+	int x2, y2, w2, h2, tw2;
 	int x3, y3;
 
 	HDC hdcMask;
@@ -2342,6 +2353,10 @@
 		h2 = td->tile_hgt;
 	}
 
+	/* big tile mode */
+	if (use_bigtile) tw2 = 2 * w2;
+	else tw2 = w2;
+
 	/* Location of window cell */
 	x2 = x * w2 + td->size_ow1;
 	y2 = y * h2 + td->size_oh1;
@@ -2383,16 +2398,16 @@
 			y3 = (tap[i] & 0x7F) * h1;
 
 			/* Perfect size */
-			if ((w1 == w2) && (h1 == h2))
+			if ((w1 == tw2) && (h1 == h2))
 			{
 				/* Copy the terrain picture from the bitmap to the window */
-				BitBlt(hdc, x2, y2, w2, h2, hdcSrc, x3, y3, SRCCOPY);
+				BitBlt(hdc, x2, y2, tw2, h2, hdcSrc, x3, y3, SRCCOPY);
 
 				/* Mask out the tile */
-				BitBlt(hdc, x2, y2, w2, h2, hdcMask, x1, y1, SRCAND);
+				BitBlt(hdc, x2, y2, tw2, h2, hdcMask, x1, y1, SRCAND);
 
 				/* Draw the tile */
-				BitBlt(hdc, x2, y2, w2, h2, hdcSrc, x1, y1, SRCPAINT);
+				BitBlt(hdc, x2, y2, tw2, h2, hdcSrc, x1, y1, SRCPAINT);
 			}
 
 			/* Need to stretch */
@@ -2402,26 +2417,26 @@
 				SetStretchBltMode(hdc, COLORONCOLOR);
 
 				/* Copy the terrain picture from the bitmap to the window */
-				StretchBlt(hdc, x2, y2, w2, h2, hdcSrc, x3, y3, w1, h1, SRCCOPY);
+				StretchBlt(hdc, x2, y2, tw2, h2, hdcSrc, x3, y3, w1, h1, SRCCOPY);
 
 				/* Only draw if terrain and overlay are different */
 				if ((x1 != x3) || (y1 != y3))
 				{
 					/* Mask out the tile */
-					StretchBlt(hdc, x2, y2, w2, h2, hdcMask, x1, y1, w1, h1, SRCAND);
+					StretchBlt(hdc, x2, y2, tw2, h2, hdcMask, x1, y1, w1, h1, SRCAND);
 
 					/* Draw the tile */
-					StretchBlt(hdc, x2, y2, w2, h2, hdcSrc, x1, y1, w1, h1, SRCPAINT);
+					StretchBlt(hdc, x2, y2, tw2, h2, hdcSrc, x1, y1, w1, h1, SRCPAINT);
 				}
 			}
 		}
 		else
 		{
 			/* Perfect size */
-			if ((w1 == w2) && (h1 == h2))
+			if ((w1 == tw2) && (h1 == h2))
 			{
 				/* Copy the picture from the bitmap to the window */
-				BitBlt(hdc, x2, y2, w2, h2, hdcSrc, x1, y1, SRCCOPY);
+				BitBlt(hdc, x2, y2, tw2, h2, hdcSrc, x1, y1, SRCCOPY);
 			}
 
 			/* Need to stretch */
@@ -2431,7 +2446,7 @@
 				SetStretchBltMode(hdc, COLORONCOLOR);
 
 				/* Copy the picture from the bitmap to the window */
-				StretchBlt(hdc, x2, y2, w2, h2, hdcSrc, x1, y1, w1, h1, SRCCOPY);
+				StretchBlt(hdc, x2, y2, tw2, h2, hdcSrc, x1, y1, w1, h1, SRCCOPY);
 			}
 		}
 	}
@@ -2984,6 +2999,8 @@
 	               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
 	EnableMenuItem(hm, IDM_OPTIONS_NEW_GRAPHICS,
 	               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
+	EnableMenuItem(hm, IDM_OPTIONS_BIGTILE,
+	               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
 	EnableMenuItem(hm, IDM_OPTIONS_SOUND,
 	               MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
 	EnableMenuItem(hm, IDM_OPTIONS_SAVER,
@@ -3005,6 +3022,8 @@
 	              (arg_graphics == GRAPHICS_ORIGINAL ? MF_CHECKED : MF_UNCHECKED));
 	CheckMenuItem(hm, IDM_OPTIONS_NEW_GRAPHICS,
 	              (arg_graphics == GRAPHICS_ADAM_BOLT ? MF_CHECKED : MF_UNCHECKED));
+	CheckMenuItem(hm, IDM_OPTIONS_BIGTILE,
+	              (use_bigtile ? MF_CHECKED : MF_UNCHECKED));
 	CheckMenuItem(hm, IDM_OPTIONS_SOUND,
 	              (arg_sound ? MF_CHECKED : MF_UNCHECKED));
 #ifdef USE_SAVER
@@ -3024,6 +3043,8 @@
 		EnableMenuItem(hm, IDM_OPTIONS_OLD_GRAPHICS, MF_ENABLED);
 		/* Menu "Options", Item "Graphics" */
 		EnableMenuItem(hm, IDM_OPTIONS_NEW_GRAPHICS, MF_ENABLED);
+		/* Menu "Options", Item "Graphics" */
+		EnableMenuItem(hm, IDM_OPTIONS_BIGTILE, MF_ENABLED);
 	}
 #endif /* USE_GRAPHICS */
 
@@ -3706,6 +3727,26 @@
 
 			break;
 		}
+
+		case IDM_OPTIONS_BIGTILE:
+		{
+			term_data *td = &data[0];
+
+			/* Paranoia */
+			if (!inkey_flag || !initialized)
+			{
+				plog("You may not do that right now.");
+				break;
+			}
+
+			/* Toggle "arg_sound" */
+			use_bigtile = !use_bigtile;
+
+			/* Mega-Hack : Redraw screen */
+			Term_key_push(KTRL('R'));
+
+			break;
+		}
 
 		case IDM_OPTIONS_SOUND:
 		{
diff -ur /home/mogami/c/angband.orig/angband-3.0.0/src/main-x11.c /home/mogami/c/angband/angband-3.0.0/src/main-x11.c
--- /home/mogami/c/angband.orig/angband-3.0.0/src/main-x11.c	Sat May 11 01:27:52 2002
+++ /home/mogami/c/angband/angband-3.0.0/src/main-x11.c	Sat May 11 06:36:21 2002
@@ -319,6 +319,7 @@
 	cptr name;
 
 	s16b wid;
+	s16b twid;
 	s16b hgt;
 	s16b asc;
 
@@ -1232,6 +1233,11 @@
 	ifnt->wid = cs->width;
 #endif
 
+	if (use_bigtile)
+		ifnt->twid = 2 * cs->width;
+	else
+		ifnt->twid = cs->width;
+
 	/* Success */
 	return (0);
 }
@@ -1927,10 +1933,15 @@
  */
 static errr Term_curs_x11(int x, int y)
 {
+	int wid = Infofnt->wid;
+
+	if (use_bigtile && x + 1 < Term->wid && Term->old->a[y][x+1] == 255)
+		wid = Infofnt->twid;
+
 	XDrawRectangle(Metadpy->dpy, Infowin->win, xor->gc,
 			 x * Infofnt->wid + Infowin->ox,
 			 y * Infofnt->hgt + Infowin->oy,
-			 Infofnt->wid - 1, Infofnt->hgt - 1);
+			 wid - 1, Infofnt->hgt - 1);
 
 	/* Success */
 	return (0);
@@ -2003,19 +2014,22 @@
 		a = *ap++;
 		c = *cp++;
 
+		if (a == 255 && (byte)c == 255) continue;
+
 		/* For extra speed - cache these values */
-		x1 = (c&0x7F) * td->fnt->wid;
+		x1 = (c&0x7F) * td->fnt->twid;
 		y1 = (a&0x7F) * td->fnt->hgt;
 
 		ta = *tap++;
 		tc = *tcp++;
 
 		/* For extra speed - cache these values */
-		x2 = (tc&0x7F) * td->fnt->wid;
+		x2 = (tc&0x7F) * td->fnt->twid;
 		y2 = (ta&0x7F) * td->fnt->hgt;
 
 		/* Optimise the common case */
-		if ((x1 == x2) && (y1 == y2))
+		if (((x1 == x2) && (y1 == y2)) ||
+		    !(((byte)ta & 0x80) && ((byte)tc & 0x80)))
 		{
 			/* Draw object / terrain */
 			XPutImage(Metadpy->dpy, td->win->win,
@@ -2023,7 +2037,7 @@
 		  	        td->tiles,
 		  	        x1, y1,
 		  	        x, y,
-		  	        td->fnt->wid, td->fnt->hgt);
+		  	        td->fnt->twid, td->fnt->hgt);
 		}
 		else
 		{
@@ -2031,7 +2045,7 @@
 			/* Mega Hack^2 - assume the top left corner is "black" */
 			blank = XGetPixel(td->tiles, 0, td->fnt->hgt * 6);
 
-			for (k = 0; k < td->fnt->wid; k++)
+			for (k = 0; k < td->fnt->twid; k++)
 			{
 				for (l = 0; l < td->fnt->hgt; l++)
 				{
@@ -2054,7 +2068,7 @@
 		    	      clr[0]->gc,
 		     	     td->TmpImage,
 		     	     0, 0, x, y,
-		     	     td->fnt->wid, td->fnt->hgt);
+		     	     td->fnt->twid, td->fnt->hgt);
 		}
 
 		x += td->fnt->wid;
@@ -2268,7 +2282,7 @@
 
 const char help_x11[] = "Basic X11, subopts -d<display> -n<windows>"
 #ifdef USE_GRAPHICS
-                        " -s(moothRescale)"
+                        " -s(moothRescale) -b(Bigtile)"
 #endif
                         ;
 
@@ -2311,6 +2325,13 @@
 			smoothRescaling = FALSE;
 			continue;
 		}
+
+		if (prefix(argv[i], "-b"))
+		{
+			use_bigtile = TRUE;
+			continue;
+		}
+
 #endif /* USE_GRAPHICS */
 
 		if (prefix(argv[i], "-n"))
@@ -2453,7 +2474,7 @@
 			td->tiles =
 			ResizeImage(dpy, tiles_raw,
 			            pict_wid, pict_hgt,
-			            td->fnt->wid, td->fnt->hgt);
+			            td->fnt->twid, td->fnt->hgt);
 		}
 
 		/* Initialize the transparency masks */
@@ -2470,14 +2491,14 @@
 			ii = 1;
 			jj = (depth - 1) >> 2;
 			while (jj >>= 1) ii <<= 1;
-			total = td->fnt->wid * td->fnt->hgt * ii;
+			total = td->fnt->twid * td->fnt->hgt * ii;
 
 
 			TmpData = (char *)malloc(total);
 
 			td->TmpImage = XCreateImage(dpy,visual,depth,
 				ZPixmap, 0, TmpData,
-				td->fnt->wid, td->fnt->hgt, 32, 0);
+				td->fnt->twid, td->fnt->hgt, 32, 0);
 
 		}
 
diff -ur /home/mogami/c/angband.orig/angband-3.0.0/src/main-xaw.c /home/mogami/c/angband/angband-3.0.0/src/main-xaw.c
--- /home/mogami/c/angband.orig/angband-3.0.0/src/main-xaw.c	Sat Feb 23 04:35:00 2002
+++ /home/mogami/c/angband/angband-3.0.0/src/main-xaw.c	Sat May 11 06:36:08 2002
@@ -194,6 +194,7 @@
 	XFontStruct *fnt;
 	Dimension fontheight;
 	Dimension fontwidth;
+	Dimension tilewidth;
 	Dimension fontascent;
 
 	/* Color info for GC's */
@@ -444,19 +445,22 @@
 		a = *ap++;
 		c = *cp++;
 
+		if (a == 255 && (byte)c == 255) continue;
+
 		/* For extra speed - cache these values */
-		x1 = (c&0x7F) * widget->angband.fontwidth;
+		x1 = (c&0x7F) * widget->angband.tilewidth;
 		y1 = (a&0x7F) * widget->angband.fontheight;
 
 		ta = *tap++;
 		tc = *tcp++;
 
 		/* For extra speed - cache these values */
-		x2 = (tc&0x7F) * widget->angband.fontwidth;
+		x2 = (tc&0x7F) * widget->angband.tilewidth;
 		y2 = (ta&0x7F) * widget->angband.fontheight;
 
 		/* Optimise the common case */
-		if ((x1 == x2) && (y1 == y2))
+		if (((x1 == x2) && (y1 == y2)) ||
+		    !(((byte)ta & 0x80) && ((byte)tc & 0x80)))
 		{
 			/* Draw object / terrain */
 			XPutImage(XtDisplay(widget), XtWindow(widget),
@@ -464,7 +468,7 @@
 		    	      widget->angband.tiles,
 		    	      x1, y1,
 		    	      x, y,
-		    	      widget->angband.fontwidth,
+		    	      widget->angband.tilewidth,
 		 	      widget->angband.fontheight);
 		}
 		else
@@ -473,7 +477,7 @@
 			blank = XGetPixel(widget->angband.tiles,
 				 0, widget->angband.fontheight * 6);
 
-			for (k = 0; k < widget->angband.fontwidth; k++)
+			for (k = 0; k < widget->angband.tilewidth; k++)
 			{
 				for (l = 0; l < widget->angband.fontheight; l++)
 				{
@@ -502,7 +506,7 @@
 			          widget->angband.TmpImage,
 			          0, 0,
 			          x, y,
-			          widget->angband.fontwidth,
+			          widget->angband.tilewidth,
 			          widget->angband.fontheight);
 		}
 
@@ -558,6 +562,12 @@
 	wnew->angband.fontheight = wnew->angband.fnt->ascent +
 		wnew->angband.fnt->descent;
 	wnew->angband.fontwidth = wnew->angband.fnt->max_bounds.width;
+
+	if (use_bigtile)
+		wnew->angband.tilewidth = 2 * wnew->angband.fontwidth;
+	else
+		wnew->angband.tilewidth = wnew->angband.fontwidth;
+
 	wnew->angband.fontascent = wnew->angband.fnt->ascent;
 
 	/* Create and initialize the graphics contexts */ /* GXset? */
@@ -811,6 +821,12 @@
 			wnew->angband.fontheight = wnew->angband.fnt->ascent +
 				wnew->angband.fnt->descent;
 			wnew->angband.fontwidth = wnew->angband.fnt->max_bounds.width;
+
+			if (use_bigtile)
+				wnew->angband.tilewidth = 2 * wnew->angband.fontwidth;
+			else
+				wnew->angband.tilewidth = wnew->angband.fontwidth;
+
 			wnew->angband.fontascent = wnew->angband.fnt->ascent;
 		}
 	}
@@ -1390,6 +1406,10 @@
 static errr Term_curs_xaw(int x, int y)
 {
 	term_data *td = (term_data*)(Term->data);
+	int wid = td->widget->angband.fontwidth;
+
+	if (use_bigtile && x + 1 < Term->wid && Term->old->a[y][x+1] == 255)
+		wid = td->widget->angband.tilewidth;
 
 	/* Hilite the cursor character with a box */
 	XDrawRectangle(XtDisplay(td->widget), XtWindow(td->widget),
@@ -1398,7 +1418,7 @@
 			td->widget->angband.internal_border,
 		y * td->widget->angband.fontheight +
 			td->widget->angband.internal_border,
-		td->widget->angband.fontwidth - 1, td->widget->angband.fontheight - 1);
+		wid - 1, td->widget->angband.fontheight - 1);
 
 	/* Success */
 	return (0);
@@ -1568,6 +1588,12 @@
 			/* Update font information */
 			td->widget->angband.fontheight = fnt->ascent + fnt->descent;
 			td->widget->angband.fontwidth = fnt->max_bounds.width;
+
+			if (use_bigtile)
+				td->widget->angband.tilewidth = 2 * td->widget->angband.fontwidth;
+			else
+				td->widget->angband.tilewidth = td->widget->angband.fontwidth;
+
 			td->widget->angband.fontascent = fnt->ascent;
 
 			for (i = 0; i < NUM_COLORS; i++)
@@ -1615,7 +1641,7 @@
 
 const char help_xaw[] = "X11 Athena Widget, subopts -d<display> -n<windows>"
 #ifdef USE_GRAPHICS
-                        " -s(moothRescale)"
+                        " -s(moothRescale) -b(Bigtile)"
 #endif
                         "\n           and standard X11 toolkit options"
                         ;
@@ -1661,6 +1687,13 @@
 			smoothRescaling = FALSE;
 			continue;
 		}
+
+		if (prefix(argv[i], "-b"))
+		{
+			use_bigtile = TRUE;
+			continue;
+		}
+
 #endif /* USE_GRAPHICS */
 
 		if (prefix(argv[i], "-n"))
@@ -1783,7 +1816,7 @@
 			td->widget->angband.tiles =
 			ResizeImage(dpy, tiles_raw,
 			            pict_wid, pict_hgt,
-			            td->widget->angband.fontwidth,
+			            td->widget->angband.tilewidth,
 			            td->widget->angband.fontheight);
 		}
 
@@ -1801,7 +1834,7 @@
 			ii = 1;
 			jj = (depth - 1) >> 2;
 			while (jj >>= 1) ii <<= 1;
-			total = td->widget->angband.fontwidth *
+			total = td->widget->angband.tilewidth *
 				 td->widget->angband.fontheight * ii;
 
 
@@ -1810,7 +1843,7 @@
 			td->widget->angband.TmpImage = XCreateImage(dpy,
 				visual,depth,
 				ZPixmap, 0, TmpData,
-				td->widget->angband.fontwidth,
+				td->widget->angband.tilewidth,
 			        td->widget->angband.fontheight, 8, 0);
 
 		}
diff -ur /home/mogami/c/angband.orig/angband-3.0.0/src/variable.c /home/mogami/c/angband/angband-3.0.0/src/variable.c
--- /home/mogami/c/angband.orig/angband-3.0.0/src/variable.c	Sun Dec  2 02:39:21 2001
+++ /home/mogami/c/angband/angband-3.0.0/src/variable.c	Sat May 11 03:12:26 2002
@@ -85,6 +85,7 @@
 
 bool use_sound;			/* The "sound" mode is enabled */
 bool use_graphics;		/* The "graphics" mode is enabled */
+bool use_bigtile = FALSE;
 
 s16b signal_count;		/* Hack -- Count interrupts */
 
diff -ur /home/mogami/c/angband.orig/angband-3.0.0/src/xtra2.c /home/mogami/c/angband/angband-3.0.0/src/xtra2.c
--- /home/mogami/c/angband.orig/angband-3.0.0/src/xtra2.c	Sat May 11 01:28:01 2002
+++ /home/mogami/c/angband/angband-3.0.0/src/xtra2.c	Sat May 11 05:40:36 2002
@@ -2273,12 +2273,12 @@
 bool modify_panel(int wy, int wx)
 {
 	/* Verify wy, adjust if needed */
-	if (p_ptr->depth == 0) wy = 0;
+	if (p_ptr->depth == 0 && !use_bigtile) wy = 0;
 	else if (wy > DUNGEON_HGT - SCREEN_HGT) wy = DUNGEON_HGT - SCREEN_HGT;
 	else if (wy < 0) wy = 0;
 
 	/* Verify wx, adjust if needed */
-	if (p_ptr->depth == 0) wx = 0;
+	if (p_ptr->depth == 0 && !use_bigtile) wx = 0;
 	else if (wx > DUNGEON_WID - SCREEN_WID) wx = DUNGEON_WID - SCREEN_WID;
 	else if (wx < 0) wx = 0;
 
diff -ur /home/mogami/c/angband.orig/angband-3.0.0/src/z-term.c /home/mogami/c/angband/angband-3.0.0/src/z-term.c
--- /home/mogami/c/angband.orig/angband-3.0.0/src/z-term.c	Sat May 11 00:47:47 2002
+++ /home/mogami/c/angband/angband-3.0.0/src/z-term.c	Sat May 11 03:15:21 2002
@@ -769,6 +769,9 @@
 		/* Handle high-bit attr/chars */
 		if ((na & 0x80) && (nc & 0x80))
 		{
+			/* 2nd byte of bigtile */
+			if (na == 255 && (byte)nc == 255) continue;
+
 			/* Flush */
 			if (fn)
 			{
@@ -1591,6 +1594,12 @@
 	scr_taa = Term->scr->ta[y];
 	scr_tcc = Term->scr->tc[y];
 
+        if (n > 0 && (byte)scr_cc[x] == 255 && scr_aa[x] == 255)
+        {
+                x--;
+                n++;
+        }
+
 	/* Scan every column */
 	for (i = 0; i < n; i++, x++)
 	{
