@Override
	public List<Evolution> getEvolutions() {
		// Read NARC
		List<Evolution> evos = new ArrayList<Evolution>();
		List<Evolution> evosForThisPoke = new ArrayList<Evolution>();
		try {
			NARCContents evoNARC = readNARC(romEntry
					.getString("PokemonEvolutions"));
			for (int i = 1; i <= 493; i++) {
				evosForThisPoke.clear();
				byte[] evoEntry = evoNARC.files.get(i);
				for (int evo = 0; evo < 7; evo++) {
					int method = readWord(evoEntry, evo * 6);
					int species = readWord(evoEntry, evo * 6 + 4);
					if (method >= 1 && method <= 26 && species >= 1) {
						Evolution evol = new Evolution(i, species, true);
						if (!evos.contains(evol)) {
							evos.add(evol);
							evosForThisPoke.add(evol);
						}
					}
				}
				// split evos don't carry stats
				if (evosForThisPoke.size() > 1) {
					for (Evolution e : evosForThisPoke) {
						e.carryStats = false;
					}
				}
			}
		} catch (IOException e) {
			// can't do anything
		}
		return evos;
	}