メインプログラム構造とは何か|技術・構造白書

メインプログラム構造とは

メインプログラム構造とは、パチンコ・パチスロ機の中枢を成すメイン制御CPU上で動作する
遊技進行ロジックの構造的枠組みを指す。
このプログラムは「抽選・入賞判定・出玉制御・演出連携」の全てを統合的に管理し、
遊技機全体のリアルタイム挙動を制御する役割を担う。

メインプログラムの階層構成

メインプログラムは階層型の構造を持ち、主に以下の層で構成される:

  • ① カーネル層: タイマー管理、割り込み処理、タスクスケジューリングを担当。
  • ② ロジック層: 抽選処理、入賞判定、特図メモリ管理を実装。
  • ③ 状態制御層: 通常/確変/時短などの内部状態を遷移管理。
  • ④ 通信層: サブ制御基板・外部機器とのコマンド通信。
  • ⑤ デバッグ/サービス層: テストモード・メンテナンス確認用関数群。

これらはすべてループ処理と割り込み制御で並行的に動作しており、
1/60秒単位の周期処理を基礎にしている。

基本タスク構成

メインプログラムの主ループは、下記の周期処理タスク群で構成される:

MAIN_LOOP: ├─ INPUT_TASK(スイッチ・センサー入力) ├─ GAME_LOGIC_TASK (抽選・入賞処理) ├─ PAYOUT_TASK  (出玉カウント制御) ├─ STATE_TASK(モード遷移管理) ├─ COMM_TASK (サブ制御通信) ├─ WATCHDOG_TASK(異常監視) └─ SLEEP (16.6ms)

これにより、全ての処理がリアルタイムで均等にスキャンされる。

乱数生成と抽選アルゴリズム

メインプログラムの中心は「乱数生成(Random Number Generator)」である。
擬似乱数生成器(PRNG)は線形合同法またはメルセンヌ・ツイスタ法が用いられる。
各抽選は、保留メモリ単位で実施される。

典型的な抽選処理フロー:

R = RAND()if (R < HIT_THRESHOLD): HIT_FLAG = 1else: HIT_FLAG = 0

当選後は、演出トリガーを生成しサブ制御基板に送信する。

モード遷移制御

メインプログラムは内部状態マシン(State Machine)で構成される。
代表的な状態:

  • 通常(NORMAL)
  • 確変(KAKUHEN)
  • 時短(JITAN)
  • 特図待機(HOLD)
  • 出玉処理中(PAYOUT)

これらの状態は、抽選結果・ゲーム数・内部フラグにより遷移する。
すべての状態遷移はテーブル制御(STATE_TABLE)で定義され、
ROM内で固定化されている。

通信構造

メインプログラムは、サブ制御やI/Oボードとシリアル通信で常時接続される。
典型的な通信プロトコル:

TX: CMD_HIT_START, CMD_ACTOR_MOVE, CMD_BGM_ONRX: STATUS_READY, STATUS_END, STATUS_ERROR

通信速度は19.2kbps〜115.2kbps程度。
通信バッファはFIFO構造で、同期信号をもとに処理が分岐される。

タイミング制御

メインプログラムの全処理はタイマー割り込みにより駆動される。
代表的な周期管理:

周期処理内容
1msI/Oポーリング・センサー監視
10ms乱数更新・状態カウント
16.6msサブ通信・演出同期
100ms統計ログ更新・保留確認

この高精度タイミングにより、抽選の公平性と演出の滑らかさが保証されている。

安全監視とエラーハンドリング

メインプログラムは常時自己監視を行い、異常を検知するとフェイルセーフ動作へ移行する。
主な監視項目:

  • ウォッチドッグタイマー(無限ループ検出)
  • 通信タイムアウト検出
  • メモリエラー(チェックサム不一致)
  • ソレノイド過電流検知

異常発生時は、出玉動作を停止し、エラーコードを液晶またはLEDに表示する。

デバッグ・検査モード

メインプログラムには、開発・整備向けのテスト機能が実装されている:

  • センサー応答テスト(スイッチ入力確認)
  • リレー出力テスト(ソレノイド動作)
  • 通信確認(サブ基板との往復)
  • 統計情報表示(プレイカウンタ・出玉履歴)

これらはROM内で隠しモードとして存在し、整備時に特定のボタン操作で起動する。

リユース時の確認ポイント

中古整備時には、メインプログラムのROMバージョンと通信互換性を確認することが不可欠である。
特に旧バージョンROMは、サブ制御ROMとの同期誤差を引き起こす可能性があるため、
必ずCRC一致を確認し、ROMデータの整合性を保つ。

次世代技術

最新世代では、メインプログラムにRTOS(リアルタイムOS)を導入し、
マルチスレッドで抽選・通信・演出制御を分離管理する構造が増えている。
また、外部ストレージ経由のログ記録機能を備えたモデルも登場している。

まとめ

メインプログラム構造は、遊技機制御の中核であり、
リアルタイム性・安全性・通信同期を高次元で両立する設計思想の結晶である。
その完成度が、遊技体験の安定性と信頼性を支えている。

監修:野口智行(有限会社グローバルスタンダード)
この記事は「技術・構造白書」シリーズの一部として、遊技プログラム・ソフトウェア領域におけるメインプログラム構造を専門的に整理したものです。