private void saveBasicPokeStats(Pokemon pkmn, int offset) {
		rom[offset] = (byte) pkmn.hp;
		rom[offset + 1] = (byte) pkmn.attack;
		rom[offset + 2] = (byte) pkmn.defense;
		rom[offset + 3] = (byte) pkmn.speed;
		rom[offset + 4] = (byte) pkmn.spatk;
		rom[offset + 5] = (byte) pkmn.spdef;
		rom[offset + 6] = typeToByte(pkmn.primaryType);
		if (pkmn.secondaryType == null) {
			rom[offset + 7] = rom[offset + 6];
		} else {
			rom[offset + 7] = typeToByte(pkmn.secondaryType);
		}
		rom[offset + 8] = (byte) pkmn.catchRate;
		rom[offset + 19] = pkmn.growthCurve.toByte();

		rom[offset + 22] = (byte) pkmn.ability1;
		if (pkmn.ability2 == 0) {
			// required to not break evos with random ability
			rom[offset + 23] = (byte) pkmn.ability1;
		} else {
			rom[offset + 23] = (byte) pkmn.ability2;
		}

		// Held items
		if (pkmn.guaranteedHeldItem > 0) {
			writeWord(offset + 12, pkmn.guaranteedHeldItem);
			writeWord(offset + 14, pkmn.guaranteedHeldItem);
		} else {
			writeWord(offset + 12, pkmn.commonHeldItem);
			writeWord(offset + 14, pkmn.rareHeldItem);
		}
	}