@Override
	public int getMetricInternal() {
		if(initialMove != 0)
			Util.runToNextInputFrame();
		Util.runToAddressNoLimit(0, initialMove, curGb.pokemon.afterDVGenerationAddress);
		int bc = curGb.getRegister(Register.BC);
		int atk = (bc >> 12) & 0xF;
		int def = (bc >> 8) & 0xF;
		int spd = (bc >> 4) & 0xF;
		int spc = (bc >> 0) & 0xF;

//		System.out.println("DVs: atk "+atk+", def "+def+", spd "+spd+", spc "+spc);

		if(atk < minAtkDV) return 0;
		if(def < minDefDV) return 0;
		if(spd < minSpdDV) return 0;
		if(spc < minSpcDV) return 0;

		if(whitelist.length > 0 && !Arrays.asList(whitelist).contains(bc)) return 0;

		System.out.println("DVs: " + Util.toHex(bc, 4));

		return 1;
	}