@Override
	public void setTMHMCompatibility(Map<Pokemon, boolean[]> compatData) {
		for (Map.Entry<Pokemon, boolean[]> compatEntry : compatData.entrySet()) {
			Pokemon pkmn = compatEntry.getKey();
			boolean[] flags = compatEntry.getValue();
			int baseStatsOffset = romEntry.getValue("PokemonStatsOffset")
					+ (pkmn.number - 1) * 0x20;
			for (int j = 0; j < 8; j++) {
				if (!romEntry.isCrystal || j != 7) {
					rom[baseStatsOffset + 0x18 + j] = getByteFromFlags(flags,
							j * 8 + 1);
				} else {
					// Move tutor data
					// bits 1,2,3 of byte 7
					int changedByte = getByteFromFlags(flags, j * 8 + 1) & 0xFF;
					int currentByte = rom[baseStatsOffset + 0x18 + j];
					changedByte |= ((currentByte >> 1) & 0x01) << 1;
					changedByte |= ((currentByte >> 2) & 0x01) << 2;
					changedByte |= ((currentByte >> 3) & 0x01) << 3;
					rom[baseStatsOffset + 0x18 + j] = (byte) changedByte;
				}
			}
		}
	}