- (void)loadTilesEnemies		// needs overhaul
{
	[tilesEnemies removeAllObjects];
	
	int max = 46;
	
	NSImage *tileFinal;
	NSMutableArray *tsa = [NSMutableArray arrayWithCapacity:6];
	NSMutableArray *tilesTemp = [NSMutableArray arrayWithCapacity:32];
	
	int offset;
	const unsigned char *palPtr;
	const unsigned char *bitPtr;
	
	unsigned short palType[4] = { 0x409E , 0x40A2 , 0x40A6 , 0x40BA };
	
	max = 0x25;		// 0x25 = 37 Decimal
	int i,x;
	for (i=0; i<max; i++) {
		
		//palPtr = [rom bytes] + 0x40B2;  // Palette Pointer
		bitPtr = [rom bytes] + 0x5431 + 0xB4 + tmePalOffset[i]; //NSLog(@"bitType : %X",*bitPtr);
		palPtr = [rom bytes] + palType[((*bitPtr & 0xC0) >> 6)] + 0x10;
		if (i == 1) palPtr = [rom bytes] + 0x40A6 + 0x10;
		//NSLog(@"palType : %X",((*bitPtr & 0xC0) >> 6));
		//NSLog(@"----");
		
		struct sCol tp[4];				// Palette Array
		for (x=0; x<4; x++) {
			if (*(palPtr + x) == 0xFF) tp[x] = nesPal[0x40];
			else tp[x] = nesPal[*(palPtr + x)];
		}
		
		for (x=0; x<4; x++) {
			offset = 0x20010 + (0x2000 * 1) + (tme[(i*4)+x] * 0x10);  // Set? Bank?
			
			if (tme[(i*4)+x] == 0) {
				[tsa addObject:[self emptyTile]];	//NSLog(@"Empty");
			} else {
				[tsa addObject:[self tileWithOffset:offset palette:tp]];	//NSLog(@"%X",offset);
			}
			
			// Conditions here...
			
			if ((i == 4) && (x == 3)) [self flipTile:[tsa lastObject] type:1];		// Myu
			if ((i == 5) && (x >= 2)) [self flipTile:[tsa lastObject] type:1];		// Bit
			if ((i == 6) && (x >= 2)) [self flipTile:[tsa lastObject] type:1];		// Bot
			if ((i == 8) && (x >= 2)) [self flipTile:[tsa lastObject] type:1];		// Ache
		}
		
		tileFinal = [self tileBlockWithTiles:tsa];
		[tilesTemp addObject:tileFinal];
		[tsa removeAllObjects];
	}
	
	for (i=0; i<0x23; i++) {
		[tsa removeAllObjects];
		switch (i) {
			case 0x00: [tilesEnemies addObject:[tilesTemp objectAtIndex:0]]; break;  // Fairy
			case 0x01: [tilesEnemies addObject:[tilesTemp objectAtIndex:1]]; break;  // Jar
			
			case 0x02:
			[tsa addObject:[tilesTemp objectAtIndex:2]];
			[tsa addObject:[tilesTemp objectAtIndex:3]];
			[tsa addObject:[tilesTemp objectAtIndex:2]];
			[tilesEnemies addObject:[self graphicWithBlocks:tsa type:0x31]]; break;		// Locked Door (3 x 1)
			
			case 0x03: [tilesEnemies addObject:[tilesTemp objectAtIndex:4]]; break;		// Myu
			case 0x04: [tilesEnemies addObject:[tilesTemp objectAtIndex:5]]; break;		// Bit
			case 0x05: [tilesEnemies addObject:[tilesTemp objectAtIndex:6]]; break;		// Bot
			case 0x06: [tilesEnemies addObject:[tilesTemp objectAtIndex:7]]; break;		// Moa
			case 0x07: [tilesEnemies addObject:[tilesTemp objectAtIndex:8]]; break;		// Ache
			
			case 0x08: [tilesEnemies addObject:[NSImage imageNamed:@"Null"]]; break;	// Null
			case 0x09: [tilesEnemies addObject:[NSImage imageNamed:@"Null"]]; break;	// Null
			
			case 0x0A:
			[tsa addObject:[tilesTemp objectAtIndex:9]];
			[tsa addObject:[tilesTemp objectAtIndex:0xA]];
			[tilesEnemies addObject:[self graphicWithBlocks:tsa type:0x21]]; break;		// Acheman (2 x 1)
			
			case 0x0B: [tilesEnemies addObject:[NSImage imageNamed:@"BubbleGenerator"]]; break; // Bubble Generator
			case 0x0C: [tilesEnemies addObject:[NSImage imageNamed:@"RockGenerator"]]; break;   // Rock Generator
			
			case 0x0D: [tilesEnemies addObject:[tilesTemp objectAtIndex:0xB]]; break;	// Deeler Red
			case 0x0E: [tilesEnemies addObject:[tilesTemp objectAtIndex:0xC]]; break;	// Deeler Blue
			
			case 0x0F: [tilesEnemies addObject:[tilesTemp objectAtIndex:0xD]]; break;	// Bago Generator
			case 0x10: [tilesEnemies addObject:[tilesTemp objectAtIndex:0xD]]; break;	// Bago Bago
			
			case 0x11: [tilesEnemies addObject:[tilesTemp objectAtIndex:0xE]]; break;	// Octorok Jumping
			case 0x12: [tilesEnemies addObject:[tilesTemp objectAtIndex:0xE]]; break;	// Octorok Moving
			
			case 0x13:
			for (x=0; x<2; x++) {
				[tsa addObject:[tilesTemp objectAtIndex:0xF]];
				[tsa addObject:[tilesTemp objectAtIndex:0x10]];
				[tsa addObject:[tilesTemp objectAtIndex:0x11]];
			}
			[tilesEnemies addObject:[self graphicWithBlocks:tsa type:0x32]]; break; // Elevator (3 x 2)
			
			case 0x14:
			[tsa addObject:[tilesTemp objectAtIndex:0x12]];
			[tsa addObject:[tilesTemp objectAtIndex:0x15]];
			[tilesEnemies addObject:[self graphicWithBlocks:tsa type:0x21]]; break; // Moblin Orange (2 x 1)
			
			case 0x15:
			[tsa addObject:[tilesTemp objectAtIndex:0x13]];
			[tsa addObject:[tilesTemp objectAtIndex:0x16]];
			[tilesEnemies addObject:[self graphicWithBlocks:tsa type:0x21]]; break; // Moblin Red (2 x 1)
			
			case 0x16:
			[tsa addObject:[tilesTemp objectAtIndex:0x14]];
			[tsa addObject:[tilesTemp objectAtIndex:0x17]];
			[tilesEnemies addObject:[self graphicWithBlocks:tsa type:0x21]]; break; // Moblin Blue (2 x 1)
			
			case 0x17:
			[tsa addObject:[tilesTemp objectAtIndex:0x18]];
			[tsa addObject:[tilesTemp objectAtIndex:0x1D]];
			[tilesEnemies addObject:[self graphicWithBlocks:tsa type:0x21]]; break; // Daira Orange (2 x 1)
			
			case 0x18:
			[tsa addObject:[tilesTemp objectAtIndex:0x19]];
			[tsa addObject:[tilesTemp objectAtIndex:0x1E]];
			[tilesEnemies addObject:[self graphicWithBlocks:tsa type:0x21]]; break; // Daira Red (2 x 1)
			
			case 0x19:
			[tsa addObject:[tilesTemp objectAtIndex:0x1A]];
			[tsa addObject:[tilesTemp objectAtIndex:0x1D]];
			[tilesEnemies addObject:[self graphicWithBlocks:tsa type:0x21]]; break; // Daira Red (2 x 1)
			
			case 0x1A:
			[tsa addObject:[tilesTemp objectAtIndex:0x1B]];
			[tsa addObject:[tilesTemp objectAtIndex:0x1E]];
			[tilesEnemies addObject:[self graphicWithBlocks:tsa type:0x21]]; break; // Daira Red (2 x 1)
			
			case 0x1B:
			[tsa addObject:[tilesTemp objectAtIndex:0x1C]];
			[tsa addObject:[tilesTemp objectAtIndex:0x1F]];
			[tilesEnemies addObject:[self graphicWithBlocks:tsa type:0x21]]; break; // Daira Red (2 x 1)
			
			case 0x1C: [tilesEnemies addObject:[tilesTemp objectAtIndex:0x20]]; break;	// Lowder
			
			case 0x1D: [tilesEnemies addObject:[tilesTemp objectAtIndex:0x21]]; break;	// Moby Generator
			case 0x1E: [tilesEnemies addObject:[tilesTemp objectAtIndex:0x21]]; break;	// Moby
			
			case 0x1F: [tilesEnemies addObject:[tilesTemp objectAtIndex:0x22]]; break;	// Megmet
			
			case 0x20:
			[tsa addObject:[tilesTemp objectAtIndex:0x23]];
			[tsa addObject:[tilesTemp objectAtIndex:0x24]];
			[tsa addObject:[tilesTemp objectAtIndex:0x24]];
			[tsa addObject:[tilesTemp objectAtIndex:0x24]];
			[tsa addObject:[tilesTemp objectAtIndex:0x24]];
			[tilesEnemies addObject:[self graphicWithBlocks:tsa type:0x51]]; break;		// Geldarm (5 x 1)
			
			case 0x21:
			[tsa addObject:[tilesTemp objectAtIndex:0x12]];
			[tsa addObject:[tilesTemp objectAtIndex:0x15]];
			[tilesEnemies addObject:[self graphicWithBlocks:tsa type:0x21]]; break;		// Dumb Moblin Generator
			
			case 0x22:
			[tsa addObject:[tilesTemp objectAtIndex:0x12]];
			[tsa addObject:[tilesTemp objectAtIndex:0x15]];
			[tilesEnemies addObject:[self graphicWithBlocks:tsa type:0x21]]; break;		// Dumb Moblin
			
			break;
		}
	}
	/*
	NSString *path;
	NSData *ddd;
	for (i=0; i<[tilesEnemies count]; i++) {
		path = [[NSString stringWithFormat:@"~/Desktop/TestTiles/enemy%d.tiff",i] stringByExpandingTildeInPath];
		ddd = [[tilesEnemies objectAtIndex:i] TIFFRepresentationUsingCompression:NSTIFFCompressionLZW factor:1.0];
		[ddd writeToFile:path atomically:YES];
	}
	*/
}