解析2 キャラ決定

重み付き抽選、アイテム枠、昇格、特殊コード

日本語 | English | Français | Español | Italiano | 한국어

最初の2ビット:アイテム枠の判定

ビット列の最初の2ビットは d7のb0 と d12のb0、つまり「d7が奇数か」「d12が奇数か」である。両方とも奇数ならアイテム枠になり、キャラクターではなく回復カプセル・仙豆・ドラゴンボールなどが出る。それ以外(4分の3)はキャラ枠。

アイテム枠でも次の8ビットを使った同型の重み付き抽選(重み合計60)が行われ、仙豆・カイオウ・一〜七星球などが選ばれる。アイテムにはステータスがないため、以降の計算は行われない。

次の8ビット:キャラクターの重み付き抽選

続く8ビットを1バイトの値(0〜255)として読み、60で割った余りを求める。この余り(0〜59)を、合計60の「重み表」に頭から当てはめて基礎キャラクターが決まる。くじ引き60本のうち何本がどのキャラに割り当てられているか、という構造である:

基礎キャラ重み(/60)基礎キャラ重み(/60)
悟空516号3
ヤムチャ517号3
トランクス418号3
悟飯419号3
天津飯4ラディッツ2
餃子4ギニュー2
ピッコロ4ザーボン2
ベジータ4栽培マン2
クリリン4フリーザ(第1形態)1
セル(第1形態)1

S悟空やフリーザ第2〜4形態がこの表に居ないことに注目。それらは抽選では出ず、次の「昇格」でしか生まれない。

昇格:ステータスが強いと変身する

ステータス計算(解析3)が終わったあと、基礎キャラごとに決められた閾値と比較され、HP・BP・DPの3つ全てが閾値以上なら上位形態に置き換わる。

基礎キャラ閾値(HP / BP / DP)昇格先
悟空55000 / 30000 / 30000S悟空
ピッコロ52000 / 27000 / 27000Sピッコロ
悟飯50000 / 30000 / 20000S悟飯
ベジータ55000 / 30000 / 28000Sベジータ
トランクス56000 / 29000 / 21000Sトランクス
フリーザ第1形態40000 / 22000 / 20000フリーザ第2形態
50000 / 26000 / 25000フリーザ第3形態
60000 / 30000 / 30000フリーザ第4形態
セル第1形態32000 / 20000 / 20000セル第2形態
60000 / 30000 / 30000セル第3形態

フリーザとセルは多段判定で、通った最高段の形態になる。この構造から、たとえば「セル第2形態のまま最強」を作るには DPを30000未満に抑えて第3形態への昇格をわざと外す必要がある、といった逆算もできる(実際の逆算結果は最強バーコードにまとめた)。フリーザ第3形態が極端に出にくい理由は小ネタで。

特殊コード:あらかじめ用意された固定結果

散布後のレジスタが特定のパターンに一致した場合だけ、抽選もステータス計算も行われず固定の結果が返される。該当する有効10桁の並びはこの1パターンだけで、そこに当てはまるコードとして実測データに商品名つきで記録されているのが、スーパーファミコン『ドラゴンボールZ 超武闘伝』の商品コード 4902425373737。結果は S悟空・HP59000・BP49990・DP49990・必殺技Lv.4。

ただし先頭2桁とチェックデジットは結果に影響しない(解析1)ので、 4502425373739 のように先頭を差し替えたコードからも同じS悟空が出る。「同じ結果になる有効なEAN-13」は先頭2桁の100通りぶん存在する計算になる。

BP/DPの49990という値は通常の計算では絶対に作れない(通常はBP・DPに半減処理が入るため上限が48750/49750になる)。自社ソフトを買った子どもへのご褒美——と考えたくなるが、開発側の意図までは分からない。分かるのは、自社ソフトのコードにだけ特別扱いが仕込まれていたという事実である。

→ 解析3 ステータス計算へ