@Override
	public Map<Pokemon, boolean[]> getMoveTutorCompatibility() {
		if (!hasMoveTutors()) {
			return new TreeMap<Pokemon, boolean[]>();
		}
		Map<Pokemon, boolean[]> compat = new TreeMap<Pokemon, boolean[]>();
		int moveCount = romEntry.getValue("MoveTutorMoves");
		int offset = romEntry.getValue("MoveTutorData") + moveCount * 2;
		int bytesRequired = ((moveCount + 7) & ~7) / 8;
		for (int i = 1; i <= 386; i++) {
			int compatOffset = offset + pokeNumTo3GIndex(i) * moveCount;
			Pokemon pkmn = pokes[i];
			boolean[] flags = new boolean[moveCount + 1];
			for (int j = 0; j < bytesRequired; j++) {
				readByteIntoFlags(flags, j * 8 + 1, compatOffset + j);
			}
			compat.put(pkmn, flags);
		}
		return compat;
	}