メインプログラム構造とは
メインプログラム構造とは、パチンコ・パチスロ機の中枢を成すメイン制御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構造で、同期信号をもとに処理が分岐される。
タイミング制御
メインプログラムの全処理はタイマー割り込みにより駆動される。
代表的な周期管理:
| 周期 | 処理内容 |
|---|---|
| 1ms | I/Oポーリング・センサー監視 |
| 10ms | 乱数更新・状態カウント |
| 16.6ms | サブ通信・演出同期 |
| 100ms | 統計ログ更新・保留確認 |
この高精度タイミングにより、抽選の公平性と演出の滑らかさが保証されている。
安全監視とエラーハンドリング
メインプログラムは常時自己監視を行い、異常を検知するとフェイルセーフ動作へ移行する。
主な監視項目:
- ウォッチドッグタイマー(無限ループ検出)
- 通信タイムアウト検出
- メモリエラー(チェックサム不一致)
- ソレノイド過電流検知
異常発生時は、出玉動作を停止し、エラーコードを液晶またはLEDに表示する。
デバッグ・検査モード
メインプログラムには、開発・整備向けのテスト機能が実装されている:
- センサー応答テスト(スイッチ入力確認)
- リレー出力テスト(ソレノイド動作)
- 通信確認(サブ基板との往復)
- 統計情報表示(プレイカウンタ・出玉履歴)
これらはROM内で隠しモードとして存在し、整備時に特定のボタン操作で起動する。
リユース時の確認ポイント
中古整備時には、メインプログラムのROMバージョンと通信互換性を確認することが不可欠である。
特に旧バージョンROMは、サブ制御ROMとの同期誤差を引き起こす可能性があるため、
必ずCRC一致を確認し、ROMデータの整合性を保つ。
次世代技術
最新世代では、メインプログラムにRTOS(リアルタイムOS)を導入し、
マルチスレッドで抽選・通信・演出制御を分離管理する構造が増えている。
また、外部ストレージ経由のログ記録機能を備えたモデルも登場している。
まとめ
メインプログラム構造は、遊技機制御の中核であり、
リアルタイム性・安全性・通信同期を高次元で両立する設計思想の結晶である。
その完成度が、遊技体験の安定性と信頼性を支えている。
関連サイト:スリーピース技術ガイド
メインプログラムの構造・割り込み設計・検定基準の詳細は、グループサイト
スリーピースドットネット(ppps.jp)
の遊技プログラム技術ガイドで詳しく紹介しています。