← [ FRONT / 辺境部 ] に戻る
OBSERVATION · 其の4428 · 2026.05.15

ファミリーベーシックに眠る「占い」を今、解析する

ファミリーベーシックに眠る「占い」を今、解析する — ファミリベーシック, 占い, 生年月日

こんにちは、パレイド辺境部の橘です。

ファミリベーシックの連載で、わたしは起動直後に毎回 T キーで飛ばしてしまっていましたが、「コンピュータとの会話」には、”占い”が用意されています。

パレイド
LLMのためのFamily BASICリファレンス(7)|実機検証ベースに作り直してベータ配布する
こんにちは、パレイド技術部の橘です。 前回 (ep6) のベンチ実測で、リファレンスを 軽くしたい という気持ちが固まりました。154KB は 32k cont…

占いは V1.0 / V2.0A / V2.1A にだけ内蔵され、V3 で削除された隠し(?)機能です。手元の ROM (FamilyBasic.NES, v2.0A) は、ちょうど占いが入っている版でした。通常メニューには現れず、起動時の会話フローに付随する要素として眠っています。

シンプルなユーザーインターフェース

「コンニチハ」などのを入力すると、唐突に占いを提案してきます。

誕生日を入力し、占いたい日付をいれます。令和の現代でも問題なく機能します。何気に、2000年問題をクリアしているのが驚きです。

2025年の日付を生年月日に入れると、昭和100年と、一部の界隈にはエモい応答が返ってきます。

会話フローへキー列で到達し、observe ハーネスと CPU フックで PRG を追うと、占いルーチンは $C5A6–$CB30 に並んでいました。タイル→文字マップは autoTyper と同じデコーダを使って文面を抜き出します。

入口の宣言は素っ気ない 2 行です。$C6BA 「ワタシハ ウラナイガ デキマス」、$C741 「ウラナイヲ ハジメマス」。生年月日を入れると「ウマレテ ◯◯ ニチメニ ナリマス」と、生誕からの総経過日数を返してきます。ここに 2 つの境界がありました。未来の日付には「マダ ウマレテ イマセン」、そして遠すぎる過去の日付には、当時のままの率直な一文で答えを返す判定 ($C75A)。42 年前のプログラムが、入力の外側をきちんと見張っているのです。

占いの本体はバイオリズム

中身はバイオリズムでした。体力・精神・知性の 3 軸が、それぞれ好調・不安定(臨界)・低調の 3 状態に分かれ、合わせて 9 通りの文面を持ちます(下表)。

好調不安定低調
体力カラダノ チョウシガ ヨイフアンテイデススコシ ヨワッテイマス
精神キブンハ ソウカイセイシンテキニ フアンテイキブンガ サエマセン
知性カンガエルノニ テキシテ イマスオオキナ ミスヲ オカシヤスイカイテンガ ニブッテイマス

入力した日付のバイオリズムに応じて 1 つの軸が選ばれ、最後に「ナカナカ ヨイ ケッカ」か「アマリ ヨクアリマセンネ」かの総合評価が付く。ただしこの総合評価は独立した次元ではなく、表示された軸の状態から決まる従属値でした(好調なら好、不安定・低調なら不)。

バイオリズムとは何か。Wikipedia の定義を引きます。

心身の状態を表す3種類の波(「身体」、「感情」、「知性」)のことをいうが、科学的に実証されていない仮説にすぎず、疑似科学と見なされている。

(各リズムは)誕生日を基準とする同じ振幅の正弦波として表される。

—— バイオリズム – Wikipedia

周期は身体 23 日・感情 28 日・知性 33 日。占いの 3 軸(体力=身体、精神=感情、知性)は、この 3 周期にそのまま対応しているようです。

エミュレータで総当たりして、確かめた

推測のままでは気持ちが悪いので、エミュレータの会話フローを自動化し、生年月日を 2025/10/01 に固定して占う日を 1 日ずつずらしながら、出目をぜんぶ記録してみました(描画を飛ばす turbo 実行で、占いを連続で回す)。

まず確かめたかったのは、これが乱数なのかバイオリズムなのかです。独立に走らせた複数回の走査で、同じ生年月日・同じ日付は常に同じ結果を返しました。乱数ではありません。

そして、古典的なバイオリズムの式にそのまま乗りました。経過日数 t に対し、各軸の周期 T(23 / 28 / 33)で

  • t mod T == 0 または t mod T == ⌊T/2⌋(=正弦波のゼロ交差=臨界日)→ 不安定
  • 前半(正の半周期)→ 好調 / 後半(負の半周期)→ 低調

と置くと、120 日ぶんの出目が 120 / 120 すべて一致しました。臨界日は体力 11・23、精神 14・28、知性 16・33 と、整数日でゼロ交差にぴたりと重なります。value = sin(2π × 経過日数 ÷ 周期)、その符号と交差で高調・低調・要注意を切る——教科書どおりのバイオリズムを、整数演算で素直に焼いただけでした。

9 通り、すべて

生年月日を 2025/10/01 に固定し、占う日をずらして 9 通りを 1 枚ずつ撮り切りました。COMPUTER 欄の文面が、その日のバイオリズムです。

体力精神知性
体力・好調精神・好調知性・好調
体力・不安定精神・不安定知性・不安定
体力・低調精神・低調知性・低調

上段が好調、中段が不安定(臨界)、下段が低調。左から体力・精神・知性です。

残った謎はひとつだけ。「どの軸を表示するか」の選択規則です。臨界日を迎えた軸は必ず最優先で出る(だから臨界の文面は取りこぼされない)のですが、どの軸も臨界でない日にどれを選ぶかは、最大値でも最小値でも固定優先でもうまく説明できませんでした。ここだけは占いルーチン($C5A6–$CB30)の逆アセンブルが要ります。最後のひと掘りとして残しておきます。

42 年前のルーチンを、AI が書き直す

アルゴリズムが見えてきたら、最後に AI へ渡します。抽出した仕様で、GAME BASIC で占いを再実装させる。ROM へ焼かれたルーチンを 2026 年の言語モデルが書き直し、同じ生年月日に同じ答えを返せるか。答え合わせができたとき、この隠し機能は「消えた版」から、もう一度動くコードへ戻ります。錬金術が後世に式だけを残したように、削除された占いも、抽出された文面と周期だけを頼りに蘇るのです。

☕ バイオリズム占いは 1970〜80 年代に流行しました。生年月日と正弦波だけで今日の調子が分かる、という手触りのよさ。それが家庭用マイコンの黎明期に、オカルトとデジタルが同じ画面へ同居するかたちで焼き込まれていた。占いと計算機は、当時それほど遠くなかったのだと思います。

3 本の正弦波が重なっては離れていく図を眺めていると、理由もなく、何かを取り戻そうとしているような心地になります。周期は違っても、いつかまた同じ位相で出会う —— そういう約束ごとのような曲線でした。

━━ 観るのを再開 ━━
次の回を読む
【日本人面地形 04】秋田 ── 田沢湖と男鹿、なまはげの半島
辺境部を一覧で
部門アーカイブ
[NEXT] FRONT · 其の4634
【日本人面地形 04】秋田 ── 田沢湖と男鹿、なまはげの半島
[NEXT] FRONT · 其の4698
夢十夜・第二夜 ── 「悟れ」と迫られても。AIに「無」を生成させる不可能