IDはID、SVはSVとして別々に認識してる人が多いので、SVはIDから計算できるよ、ってことを書きます。すでに仕組みを知っている人には大したことはないです。
IDは色違い判定に使われています。TIDを前回の記事で説明に使った0xC9E184C0、PIDを0x00004E86として説明します。
計算が面倒なら関数電卓に10進数と16進数の切り替えやXORがあるので、それでも求まります。その際はわざわざ2進数に直す必要もないです。
C9E184C0(16進数)
=11001001111000011000010011000000(2進数)
内部的なTIDがこのように記録されているとして、
1100100111100001 | 1000010011000000
と半分に分けます。
さらに、上位と下位の16bitでXOR(排他的論理和)をとります。XORとは、
0+0=0
0+1=1
1+0=1
1+1=0
と、双方が一致するなら0、異なるなら1となる計算です。上位と下位の同じ位同士でそれぞれこの計算を行うと、
1100100111100001⊕1000010011000000
=0100110100100001 ...①
が求まります。(⊕はXORの演算子です。)
同様にして、PIDも計算します。
00004E86(16進数)
=00000000000000000100111010000110(2進数)
0000000000000000⊕0100111010000110
=0100111010000110 ...②
さらに、TIDとPIDから求めた値でXORをとります。
①⊕②
=0000001110100111(2進数)
=935(10進数)
計算結果の16bitの数が、第5世代までは8未満(⇒上位13bitが0)、第6世代以降では16未満(⇒上位12bitが0)になると、そのポケモンは色違いであるとされます。今回は935なのでどちらであっても色違いにはなりません。
これらの計算を色違い判定の都度計算し直すのは面倒です。そのため、わかりやすく表現するのにSVと呼ばれる値が利用されます。
ビット毎のXORが0になることは、その桁の値が一致しているということのため、TID、PIDから得られる値の上位12(あるいは13)bitが一致すれば色違いになる、と言い換えられます。そこで、IDから計算できる16bitの値からそれらを取り出し、10進数に直したものがSVと呼ばれるものになります。
今回のTIDから求まった①でいえば
0100110100100001
⇒010011010010
=1234(10進数)
となり、SVは1234です。(12bitを取り出したので、第6世代以降の場合。)
SVもIDのように、トレーナーのものをTSV、ポケモンのものをPSVと言うことが多いです。TSVと一致するPSVを持ったポケモンが出現や孵化することで、色違いが入手できます。
なお、剣盾で★ではなく◇のエフェクトが出るには、先ほどのTID⊕PIDが完全に0となる必要があります。この場合SVには使わなかった下位4(または3)bitを16進数にしたものがRVと呼ばれ、SVと共にRVも一致することで◇であるという扱い方をするようです。
計算自体は大したことはないですが、わかりやすい形にするのは大事ですね。