public IndirectFrame[][] makeTiles(int num_across, int num_down) {
		IndirectFrame[][] tiles = new IndirectFrame[num_across][num_down];

		int tile_width = getWidth()/num_across;
		int width_remainder = getWidth()%num_across;
		int tile_height = getHeight()/num_down;
		int height_remainder = getHeight()%num_down;

		int tile_x = 0;
		for (int c=0; c < num_across; c++) {
			int extra_width = 0;
			if (c < width_remainder) {
				extra_width = 1;
			}

			int tile_y = 0;
			for (int r=0; r<num_down; r++) {
				int extra_height = 0;
				if (r < height_remainder) {
					extra_height = 1;
				}

				tiles[c][r] = crop(tile_x, tile_y, tile_width+extra_width, tile_height+extra_height);
				tile_y += tile_height+extra_height;
			}

			tile_x += tile_width+extra_width;
		}
		return tiles;
	}