@Override
	public void randomizeHiddenHollowPokemon() {
		if (romEntry.romType != Type_BW2) {
			return;
		}
		int[] allowedUnovaPokemon = new int[] { 505, 507, 510, 511, 513, 515,
				519, 523, 525, 527, 529, 531, 533, 535, 538, 539, 542, 545,
				546, 548, 550, 553, 556, 558, 559, 561, 564, 569, 572, 575,
				578, 580, 583, 587, 588, 594, 596, 601, 605, 607, 610, 613,
				616, 618, 619, 621, 622, 624, 626, 628, 630, 631, 632, };
		int randomSize = 493 + allowedUnovaPokemon.length;
		try {
			NARCContents hhNARC = this.readNARC(romEntry
					.getString("HiddenHollows"));
			for (byte[] hhEntry : hhNARC.files) {
				for (int version = 0; version < 2; version++) {
					for (int rarityslot = 0; rarityslot < 3; rarityslot++) {
						for (int group = 0; group < 4; group++) {
							int pokeChoice = RandomSource.nextInt(randomSize) + 1;
							if (pokeChoice > 493) {
								pokeChoice = allowedUnovaPokemon[pokeChoice - 494];
							}
							writeWord(hhEntry, version * 78 + rarityslot * 26
									+ group * 2, pokeChoice);
							int genderRatio = RandomSource.nextInt(101);
							hhEntry[version * 78 + rarityslot * 26 + 16 + group] = (byte) genderRatio;
							hhEntry[version * 78 + rarityslot * 26 + 20 + group] = 0; // forme
						}
					}
				}
				// the rest of the file is items
			}
			this.writeNARC(romEntry.getString("HiddenHollows"), hhNARC);
		} catch (IOException e) {
		}
	}