⑩大当たり処理 大当たり処理 状態を大当たり ( アタ励ー開放 ) デジタル回転処理中 ? N 0 大当たり ( 開始 設定 ) 処理中 ? Y e s ストロープ ON 時間 ストロープ間時間 Y e s N 0 N 0 N 0 当たり ( ラウント 表示 ) 処理中 ? Y e s イマー値 = ( ) ? 当たり処理中 Y e s コマンドを出力バッファーに 記憶し、アタッカー開放中表示用の 大当たり処理中タイマーに 処理中に設定し、表示秒数を 記億する 大当たり処理中 Y e s 開放 ) 処理中 ? 大当たり ( アタッカー N 0 N 0 Y e s N 0 各処理にて設定、記憶された出力バッファーの内容を出力ポートに出力する。 ビットタイプのデータの場合は、対応するポートのビットにデータを出力する。 コマンドタイプのデータの場合は、対応するボートにデータを出力し、対応するストロープ のビットを ON/OFF して受信側の基板ヘデータを出力する。 コマンドは基本的に 2 バイトにて形成されている場合が多く、 1 バイト目が種類、 2 バイト目 が内容になっていて 1 バイト目 2 バイト目の判断は最上位ビットが 1 か 0 かで判断している ようである。 デジタル開始時には、演出内容、停止数字等の複数コマンドを連続して送信しているようで ある。 ストロープ ON 時間、ストロープ間時間は機種によって変わるが、これは受信側の CPU の 割り込み処理によると思われる。 状態を大当たり ( ファンファーレ表示 ) 処理中に設定し、表示秒数を 大当たり処理中タイマーに 記憶し、ファンファーレ表示 用のコマンドを出力パッファ Y e s イマー値 = ( ) ? 大当たり処理中 Y e s 表示 ) 処理中 ? 当たり ( ファ刀ァー ーに記億する 記億する コマンドを出力バッファーに 記憶し、ラウンド数表示用の 大当たり処理中タイマーに ) 処理中に設定し、表示秒数を 状態を大当たり ( ラウンド表示 出力ポート ストロープ 1 バイト目 1 bit7 2 . バイト目 b i t7 = 0 イマー値 = 0 ? タッカー入力個数か 定個数を超えたっ Y e s N 0 v 入力個数 = ( ) ? Y e s R E T る たり処理中タイマーに記億す 中に設定し、確認秒数を大当 状態を大当たり ( v 確認 ) 処理
⑩データー出力処理 データを出力 対応するポートに Y e s コマンドタイプ ? Y e s データがある ? ーカ / べッファーに データー出力処理 出力タイマー値を設定 ビットを 0 N する。 対応するストロープの 出力タイマー値を一 1 する R E T Y e s 出力 ? てのデータを クリアーする 対応する出力バッファーを ビットを 0 F F する。 対応するストロープの Y c s イマー値 = O ? データ出力用 対応するポートの ビットにデータを出力 ー当たり ( V 確誌 処理中 ? イマー値 = 0 ? 大当たり処理中 Y e s ラウンド数を十 1 する であったか ? 最終ラウンド 個数をクリアーする アタッカ人力個数、 v 人力 v 人力個数 = 0 ? 記憶する コマンドを出力バッファーに 記憶し、ラウンド数表示用の 大当たり処理中タイマーに ) 処理中に設定し、表示秒数を 状態を大当たり ( ラウンド表示 大当たり ( 終了 ) 処理中 ? Y e s 大当たり処理中 イマー値 = 0 ? Y e s 状態をクリアする 確率変動状態となる組み合わ Y e s 合せで大当たりワ 確率変動となる せで大当たりしたか ? R E T パッファーに記億する 終了表示用のコマンドを出力 り処理中タイマーに記憶し、 に設定し、表示秒数を大当た 状態を大当たり ( 終了 ) 処理中 確率状態を高確率に設定する
⑤入力ポート処理 4 . 大当たりさせてみよう ! 1 ) 強制的に大当たりさせるには 中途半端ではありましたが、大当たりの判定にかかわる処理がどのような感じで処理されて いるかは解析できたのですが、プログラムを変更したとしてもそれを動かすための CPU 等が ないため、いまの状態ではソフト側から攻めるのは無理だということでハード側から攻める ことにする。 初期値史新用カウンターを利用していることにより大当たり判定用カウンターの値に 同期性が無いとしても、完全リセットしてしまえば、大当たり判定用カウンターの値は 0 から 更新を始めるため、取得した判定値を比較する時に、大当たり判定値と一致する値を取得する 割込み回数目でスタートチャッカーを〇 N させて大当たり判定用カウンターを取得すれば いいはずである。 任意の大当たり判定用カウンター値を取得する流れ、タイミングチャートは以下のようになる。 ①リセットボタンを ON の状態にする。 ( リセットボタンは電源投入時処理のみの確認となるため現段階ではリセットされない ) ②強制的にリセット信号を発生し、電源投入時の処理へ移行させる。 ③電源投入時の処理にてリセットボタンが ON されていることにより、 RAM クリアーの 処理が行われ、完全リセットの状態になり、大当たり判定用カウンターの値も 0 に 設定される。 ④大当り判定値と一致する割込み数目にスタートチャッカーを強制的に〇 N し、 大当たり判定用カウンターの値を取得させる。 ( 以下のタイミングチャートは判定値が 7 の場合となります ) 人力ポート処理 入力ポートのデータ取得 今回の人力ポートの状と とで論理積をとる 前回の人力ポートの状態 演算結果を 入力データとして保存 人力ポートの状態を反転し 前回の人力ポートの状態 として保存 R E T 以下のようなタイミングチャートで 0 N / O F F の確認を行っているようである。 機種によっては複数割込み継続して ON となった場合のみ〇 N と認識しているものもあるが これだけの処理を 1 割り込み内で処理しているので割込みの設定値も長くなることにより 複数回の継続確認をしている最中に玉がスイッチを通過してしまうという不具合がでて しまうためか 1 回のチェックで確認しているのが多くなってきたようである。 その場合でも以下のタイミングチャートの応用なので制御的には同じことかと。 Z Z 日 *-2 Ⅱ --: 0 0 C 0 電源 ② リセット信号 人力ポートの状態 リセットボタン チャッカー スイッチ カウンター値 ( 反転したデータ ) ① 0 0 0 0 状 の タ のボデ 回カカ 前人入 0 0 0 0 ー 7 : 8 9 ー : 0 ⅱ第 2 ー 3 ー 4 ー 6 不定 ↑ O N と認識 ↑ 0 N と認識 ③
大当たり処理においては、「デジタル回転中」、「大当たり ( 開始設定 ) 処理中」、 「大当たり ( ファンファーレ表示 ) 処理中」、「大当たり ( ラウンド表示 ) 処理中」、 「大当たり ( アタッカー開放 ) 処理中」、「大当たり ( V 確認 ) 処理中」、 「大当たり ( 終了 ) 処理中」の 7 つの処理に分かれるようである。 ①デジタル回転中 デジタル回転中の場合は処理を終了する。 ②大当たり ( 開始設定 ) 処理中 状態を大当たり ( ファンファーレ表示 ) 処理中に設定し、表示秒数を大当たり処理中 タイマーに記憶し、ファンファーレ表示用のコマンドを出力バッファーに記憶する。 こでは大当たりした時に表示される画面の表示秒数を決定しているようである。 処理を終了する。 ③大当たり ( ファンファーレ表示 ) 処理中 大当たり処理中タイマー値が 0 であった場合は、状態を大当たり ( ラウンド表示 ) 処理中に 大当たり処理中タイマー値が 0 で無い場合は、ファンファーレ表示途中ということで 表示用のコマンドを出力バッファーに記憶し、処理を終了する。 ( ラウンド表示 ) 処理中に設定し、表示秒数を大当たり処理中タイマーに記憶し、ラウンド 現在のラウンド数が最終ラウンドで無い場合は、ラウンド数を十 1 して、状態を大当たり V 入力個数が 1 個以上の場合は、アタッカー入力個数、 V 入力個数をクリアーし、 大当たり処理中タイマーに記憶し、処理を終了する。 V 入力個数が 0 個の場合は、状態を大当たり ( V 確認 ) 処理中に設定し、確認秒数を 大当たり処理中タイマー値が 0 か、アタッカー入力個数が規定値を超えている場合で、 場合は、アタッカー開放表示途中ということで処理を終了する。 大当たり処理中タイマー値が 0 で無い場合で、アタッカー入力個数が規定値を超えていない ⑤大当たり ( アタッカー開放 ) 処理中 こではアタッカー開放中画面の表示秒数を決定しているようである。 出力バッファーに記憶し、処理を終了する に設定し、表示秒数を大当たり処理中タイマーに記憶し、アタッカー表示用のコマンドを 大当たり処理中タイマー値が 0 であった場合は、状態を大当たり ( アタッカー開放 ) 処理中 終了する。 大当たり処理中タイマー値が 0 で無い場合は、ラウンド表示途中ということで処理を ④大当たり ( ラウンド表示 ) 処理中 こではアタッカーが開く直前のラウンド表示画面の表示秒数を決定しているようである。 バッファーに記憶し、処理を終了する 設定し、表示秒数を大当たり処理中タイマーに記憶し、ラウンド表示用のコマンドを出力 現在のラウンド数が最終ラウンドの場合は、状態を大当たり ( 終了 ) 処理中に設定し、 表示秒数を大当たり処理中タイマーに記憶し、終了表示用のコマンドを出力バッファーに 記憶し、処理を終了する こでは、最終ラウンドであったかどうか、 V への入力があったかどうかの確認を行い、 次のラウンドへ移行するかどうか、終了するかの判断をしているようである。 最近の機種では V が無くなっているようで、玉が入ろうが入らなかろうが、最終ラウンド まで表示は継続されるようである。 ⑥大当たり ( V 確認 ) 処理中 大当たり処理中タイマー値が 0 で無い場合は、 V 入力個数が 0 個の場合は処理を終了する。 V 入力個数が 1 個以上の場合はアタッカー入力個数、 V 入力個数をクリアーし、現在の ラウンド数が最終ラウンドで無い場合は、ラウンド数を十 1 して、状態を大当たり ( ラウンド表示 ) 処理中に設定し、表示秒数を大当たり処理中タイマーに記憶し、ラウンド 表示用のコマンドを出力バッファーに記憶し、処理を終了する。 現在のラウンド数が最終ラウンドの場合は、状態を大当たり ( 終了 ) 処理中に設定し、 表示秒数を大当たり処理中タイマーに記憶し、終了表示用のコマンドを出力バッファーに 記憶し、処理を終了する こでは、 V への入力があったかどうかの確認を行い、次のラウンドへ移行するかどうか、 終了するかの判断をしているようである。 最近の機種では V が無くなっているようで、玉が入ろうが入らなかろうが、最終ラウンド まで表示は継続されるようである。 ⑦大当たり ( 終了 ) 処理中 大当たり処理中タイマー値が 0 で無い場合は、終了表示途中ということで処理を終了する。 大当たり処理中タイマー値が 0 であった場合は、状態をクリアーする。 確率状態が確率変動となる組み合わせで大当たりした場合は確率状態を高確率に設定し 処理を終了する。 こでは大当たり終了後の確率状態を決定しているようである。
⑧ V 入力処理 V 人力処理 各大当たり処理中 ? Y e s V スイッチ 0 N ? Y e s V 人力個数を + 1 する R E T 大当たり中の処理以外の場合は処理を行わないようである。 これは大当たりしていない時にアタッカーを故意的に開き、そこへ玉を入れても払い出しを しないようにするのではないかと思われる。 最近の機種では V というものが無くなっているようである。 保留数が 1 の時に、このモジュールにて大当たり判定値用カウンターの記憶を行う場合は、 以下のような感じになり、すでに保留数が 1 であることにより保留 2 個目の領域に 各データを記憶することになる。 ( ここでは解析しませんが、 2 バイト目は大当たり数字用カウンター値、 3 、 4 バイト目は 演出選択時に使用する演出用タイマー値になります ) 7 F 4 1 h 7 F 1 C h 7 F 1 B h 7 F 1 A h 保留数 演出用タイマー値 カウンター 大当たり数字用 カウンター ( 日 ) 大当たり判定値用 カウンター ( L ) 大当たり判定値用 7 F 4 3 h 7 F 4 8 h 7 F 5 2 h 7 F 4 D h 大当たり判定値用 カウンター ( L ) 大当たり判定値用 カウンター ( H ) 大当たり数字用 カウンター 演出用タイマー 演出用タイマー (H) 保留 1 個目 大当たり判定値用 カウンター ( L ) 大当たり判定値用 カウンター ( 日 ) 大当たり数字用 カウンター 演出用タイマー 演出川タイマー ( H ) 保留 2 個目 大当たり判定値用 保留 4 個目 (H) 演出用タイマー 演出用タイマー カウンター 大当たり数字用 保留 3 個目 カウンター (H) 大当たり判定値用 カウンター ( L ) 大当たり判定値用 ( 日 ) 演出用タイマー 演出用タイマー カウンター 大当たり数字用 カウンター (H ) 大当たり判定値用 カウンター ( L )
⑥チャッカー入力処理 チャッカー人力処理 チャッカー スイッチ 0 N ? Y e s 保留数 < 4 ? Y e s 保留数を十 1 する その値を確認して選択する演出パターンを変化させているものもあるようである。 機種によってはこのカウンター以外にもタイマー値を同時に記憶してデジタル回転時に 大当たりするかどうかはこの瞬間に決まるのである。 大当たり判定値と一致した場合は大当たりとなることにより、いくら熱いリーチになろうが 記憶するようである。後に説明するがここで記憶された大当たり判定用カウンターの値が 保留が十 1 された場合は、大当たり判定用カウンターの値と大当たり数字用カウンターの値を チャッカースイッチが ON の場合でも保留数が 4 個の場合は無視するようである。 R E T したアドレスに記憶する 値を読出して保留数に対応 大当たり数字用カウンターの 大当たり判定用カウンターと 記憶した大当たり判定用カウンターの値 ( 7F43H ) が読出されている前後を検証すると、 07F43h で示されるアドレスから連続した 2 バイト分のデータを DEreg へ転送した後に そのアドレスに 00h を転送しているのは、大当たり判定値用カウンターを読出した後は 0 クリアーするという処理ではないかと。再び読み出すことはないはずなのだが、パチンコの プログラムにはこのような意味不明な処理が結構ある。 01B41h で示されるアドレスのデータを読み出し、 DEreg の値と比較し、一致した場合は ジャンプしその後の処理を ( 一致したので大当たりと判断 ) 、不一致の場合は、 2 バイト先の アドレスのデータを繰り返し回数分読み出して比較し、一度も一致しなかった場合は外れ時の 処理を行う。 不一致時の比較回数が 7F5Eh で示されるアドレスのデータによって変わる事により、 7F5Eh は確率状態を記憶しておくアドレスではないかと判断できる。 ちなみに 7F5Eh で示されるアドレスのデータが 0 の場合は 2 回、 1 の場合は 12 回比較して いることにより、低確率時は 2 / 701 ( 1 / 350.5 ) で、高確率時は 12 / 701 ( 1 / 58.4166 ・・ ) となることが わかる。 また、この機種の大当たり判定値もそのデーターテープルのデータ値から判断することが 可能である。 4 ) その後の作業 今回は諸所事情もありまして全てを載せることができないのですが、大当たり判定値用 カウンターの処理にかかわる部分を、このような仮説 ? を立てながら作業を続けていけば おのずと解析が進み、すべてを丸裸にすることが可能になってきます。
⑧判定した結果が大当たりであった場合は、大当たり数字用のカウンターの値と、 リーチ内容決定用のカウンターの値により、大当たり用のリーチの内容を決める。 液品表示器のほうでそれに対応する演出を行うようである ) ( 現在はリーチの種類というより何秒間デジタルを動かすかを決めて、 リーチにならない値であった場合は、 ⑩判定した結果が大当たりでない場合で、 内容決定用のカウンターの値により、外れリーチの内容を決める。 ⑨判定した結果が大当たりでない場合で、 リーチにならない動きに決定する。 リーチ判定用のカウンターの値が リーチになる値であった場合は、リーチ数字用のカウンターの値と、リーチ リーチ判定用のカウンターの値が ( 普段良く目にするのがこれである ) 時間的に無理なので主要な部分のみを見ていこうかと。 追加されていたりしているかもしれないのですけど、今回はすべての処理を解析するには , , に聿いた処理が無くなっていたり、内容が変変わっていたり、実はものすごい処理が などなど、いろんな処理を行っているが、最近は法律の変史がちよくちよくあるようで ⑩電源を入れる時に状態をリセットすることができる。 ⑩停電用のバックアップ処理がある。 ( 本体についているブッシュボタンは液品表示器で処理しているらしい ) ⑩入力は盤面のスイッチ入力のみで外からの入力は無い。 人りやすくなる。 するだけでなく、サプのデジタルの演出秒数が短くなり、スタートチャッカーに玉が ⑩メインのデジタルとサプのデジタルがあり、確率変動時はメインデジタルの確率がアップ ( 最近の台は見た目大当たりしなくても確率変動が終了するのもあるらしい ) 大当たりまで確率変動状態になる。 ⑩大当たり終了時に、大当たりしたデジタルが特定の組み合わせであった場合は、次の 大当たりの処理を終了する。 ⑩アタッカーが閉じた時に、 V に玉が入っていないか、最終ラウンドであった場合は、 を開く。 ( 最近の台は V が無くなったようで決められたラウンドまで進むようである ) ⑩アタッカーが閉じた時に、 V に玉が入っていれば、次のラウンドに進み、再びアタッカー ⑩大当たり中は、アタッカーを開き、決められた個数の玉が入ったらアタッカーを閉じる。 処理を一旦中止し、大当たりの処理へ移行する。 ⑩デジタルが止まった時に、大当たりの組み合わせであれば、デジタルを動かす 大当たりとなるまで処理を繰り返す。 ⑩デジタルが止まった時に、外れの組み合わせであれば、 7 ) の処理に戻り、 2 ) 強制的に演出を見るための構成は ? 数 mS の間に大量のコマンド、しかも膨大な種類のコマンドを送信するためには、 ハード的に擬似主制御基板や擬似 CPU を作成すると非常に手間と時間がかかるので、 PC を使用して以下のような構成を形成し、中継基板 ( レベルコンバーター的な ) を 中継して P C にてコマンドの送信を行うのがよいかと。 しかもこの構成の場合は、中継基板の変史のみ ( アプリの変史も多少は必要かな ? ) で いかなる機種の演出を見ることも可能になるので非常に有効であり、ハラレル信号と いっても、 8 十 1 ビットのデータが連続して送信できればいいので、いわゆるポケコンと いうものでも十分いける構成である。 ノくラレノレイ言号 P C 中継基板 電源 コマンド信号 サプ制御基板 電源 液品制御基板 コマンド信号
2 . プログラムを抜こう ! プログラムを確認しないことにはなんとも先に進まないので、某オークションのサイトで 某機種を購入することに。 普段まじまじと見ることの無いパチンコ台の裏側は、私が知っている眥のパチンコ台に 比べて多数の透明のケースに入った基板と配線でものすごいことになっている。 しげしげと眺めていると見たことの無い妙に存在感のあるチップがあるのでそれがメイン の CPU であることはすぐに判断ができた。 パッケージには「 L E 4 2 8 0 B 」、「 L E T e c h 」、「量」、「 V 4 ? 」、「ロット番号 ? 」 と彫ってあり、 L E T e c h 製の L E 4 2 8 0 B という型式で、パチンコ雑誌等で よく見かける通称 V 4 という量産タイプ ? のワンチップ C P U という意味ではないかと 思われ、形状は 6 4 ピンのシュリンクピッチである。 さすがに 6 4 ピンシュリンクピッチの I C ソケットなんて常備してないので、アキバの 量販店へ出向き、 I C ソケットとユニバーサル基板を購入。 ピン配列を見るとアドレスが 1 6 本、データが 8 本のようなので 6 4 K バイトタイプの ROM に変換するアダブターを作成すればいいはず。 2 時間程かけて下駄を作成し、 R 〇 M ライターへ接続しようとしたが、 6 4K バイトの 領域のうち R 〇 M の領域はそんなに無いとはずと思いっく。 不用意に R 〇 M 領域以外のアドレスにアクセスすると壊れてしまうかもしれないと激しく 不安感に襲われるのでとりあえず 4K バイト毎にアクセスするように改造。 おそるおそるデータを抜き出し内容を確認すると・ H L レジスターに 0 F E 0 3 H を転送 ! 割り込みモード 2 ! 0000 ED 5E 21 03 FE C3 B8 00 ・キター 0 0 B 8 H 番地にジャンプ ! ! ! ハアハアしながら確認してると、 0 8 0 OH 番地位から NOP の連続になる。 1 0 0 0 H 番地にアクセスしてる行を検索してみると、 しかし、プログラム領域とデータ領域を合わせて 4K ってことは無いと思い試しに 0118 21 00 10 46 H L レジスターに 1 0 0 0 H を転送 ! H L レジスタで示すアドレスの値を B レジスターに転送 ! ! ってことで 1 0 0 OH 番地以降にもプログラムかデータの領域があるはすなので、 デジタル処理においては、「デジタル回転中」、「大当たり中」、「大当たり中でもデジタル回転 中でも無く保留数が 1 個以上」、「大当たり中でもデジタル回転中でも無く保留数が 0 個」の 大当たり ( 開始設定 ) 処理中に設定し、処理を終了する。 停止したデジタルが大当たりとなる組み合わせになる場合 ( 大当たり ) は、状態を デジタル回転用タイマーの値が 0 であった場合は、デジタル回転処理中の状態をクリアーし、 デジタル回転用タイマーの値が 0 で無い場合は、演出途中ということで処理を終了する。 ①デジタル回転中 4 つの処理に分かれるようである。 大当たりする数字に関係なく演出を決定する機種では、大当たり数字用カウンターの値を リーチ内容決定用カウンターの値により、大当たり用リーチの内容を決定する。 結果が一致した場合 ( 大当たり ) は、記憶していた大当たり数字用カウンターの値と、 確率状態が高確率の場合は大当たり判定値の数が増え ( 1 0 倍くらいになる ) 、判定した 判定値と比較します。 保留数を一 1 し、記憶しておいた大当たり判定用カウンター値を読み出して、大当たり ③大当たり中でもデジタル回転中でも無く保留数が 1 個以上 いうことでまたの機会にでも説明したいと。 大当たり中でもデジタル回転の処理を行っているようであるが今回はデジパチの説明と ただし一般電役といわれているパチンコにおいては通常のデジパチとは処理が異なるため 大当たり中の場合は処理を終了する。 ②大当たり中 停止したデジタルが大当たりとならない組み合わせになる場合 ( 外れ ) は、処理を終了する。 場合は、通常演出に決定する。 判定した結果が不一致 ( 外れ ) で、リーチ判定用カウンターの値がリーチ判定値と不一致の 使用せずにリーチの選択を行うようである。 リーチとなる数字に関係なく演出を決定する機種では、リーチ数字用カウンターの値を カウンターの値により、外れリーチの内容を決定する。 場合 ( 外れリーチ演出を行う ) は、リーチ数字用カウンターの値と、リーチ内容決定用 判定した結果が不一致 ( 外れ ) で、リーチ判定用カウンターの値がリーチ判定値と一致した 使用せずにリーチの選択を行うようである。 処理を終了します。 ④大当たり中でもデジタル回転中でも無く保留数が 0 個 状態をデジタル回転中に設定し処理を終了する。 演出表示用のコマンドを出力バッファーに記憶する。 決定した演出の内容によって選択された、動作秒数をデジタル回転用タイマーに記憶し、
3 . さあ、逆アセンプル ! ということで、 R 〇 M ライターで抜き出したデータを P C へ転送し、昔から愛用している Z 8 0 用逆アセンプルツールを使用して、リスト形式のデータへ変換することに 私がまず最初に調べる場所は「大当たり判定値用カウンター」を更新しているモジュール なんですが、なぜかというと、 2 パイトのデータを RAM 領域から読み出し、その値を十 1 し、 特定の値と一致したら 0 にクリアーする、という昔からこの部分だけはどの機種でも同じこと をしているためであり、そこからさまざまさもジュールを追跡することが可能になるからです。 1 ) 大当たり判定値用カウンターの更新部分を探そう 以下のモジュールが見つかったので検証することに カウンターの種類として、最大値を超えた時は初期値の値を 0 に再設定 ( 0 クリアー ) する カウンターと、最大値を超えた時は初期値の値を 0 ではなく不定の値に再設定するカウンター の 2 種類あるようである。 大当たり判定用カウンターの史新方法は、その値が初期値更新値を超えた場合は、大当たり 判定用カウンターと同じ最大値を持つ初期値更新用カウンターの値を初期値として再設定し、 あわせて初期値史新用カウンターの値を初期値史新値 ( 最大値 ) として記憶する。 これは定期的なタイマー割込みで十 1 加算している処理においては、リセットされてから、 何割り込み目に大当たりとなる大当たり判定用カウンターの値を取得すれば大当たりとなる か容易に計算できるため、その対策ではないかと思われる。 大当たり判定用カウンター以外のカウンターはほとんどすべて 0 クリアーするようである。 03DB 03DF 03E0 03E3 03E4 03E6 03E8 03E9 03EA LD I NC LD XOR SBC JR LD LD LD DE,(07FIAh) DE HL,002BCh HL,DE NC , 003EAh D,A E ,A (07FIAh),DE 07FIAh で示されるアドレスから連続した 2 バイト分のデータを DEreg へ転送する。 DEreg の値を十 1 する。 02BCh を HLreg へ転送する。 Areg の値を 0 クリアーする。 HLreg の値から DEreg の値を c フラグを使用して減算し、 HLreg へ戻す。 c フラグが 0 場合は DEreg の値を変化させず、 1 の場合は DEreg にそれぞれ 00h を転送し、 07FIAh で示されるアドレスへ DEreg の値である 2 バイト分のデータを転送する。 ということにより、 07FIAh で示されるアドレスのデータ値は 0 ~ 700 の間で史新され 有効な値は 701 個になり、この機種の大当たり確率が 1 / 350.5 で、分母を整数に直す ? と 2 / 701 になるため、今の時点では仮に 07FIAh で示されるアドレスのデータを「大当たり 判定値用カウンター ( 仮 ) 」であるとして次の検証に進むことに。
⑩デジタル処理 デジタル処理 デジタル回転処理中 ? N 0 各大当たり処理中 ? N 0 N 0 保留数を一 1 する 保留数 = 0 ? 記憶しておいた大当たり判定 用カウンターの値を読出し、 大当たり判定値と比較する 確率状態が高確率の場合は 判定値の数が増える。 一致 ? N 0 リーチ判定用カウンターの値 を読出し、リーチ判定値と 比較する N 0 一致 ? Y e s リーチ数字用カウンターの値 とリーチ内容決定用カウンタ ーの値により外れリーチの 演出内容を決定する 演出内容に対応した動作秒数 をデジタル回転用タイマーに 記憶し、表示用のコマンドを 出力バッファーに記憶する 状態をデジタル回転中に 設定する R E T デジタル回転 イマー値 = 0 ? Y e s デジタル回転中の状態を クリアする 大当たりの 組み合わせか ? Y e s 通常演出に決定する 演出内容を決定する 等により大当たり用リーチの リーチ決定用カウンターの値 用カウンターの値を読出し、 記憶しておいた大当たり数字 処理中に設定する 状態を大当たり ( 開始設定 ) N 0 N 0 下駄の設定を変えてさらに 4K バイト抜き出して確認すると、所々に N 〇 P の羅列が あるが 1 0 0 OH 番地から 1 FFFH 番地まで意味不明なデータ列があるため何らかの 領域であろうということが確認できた。 っていうか、 R O M アダブターのピン配列載せとけばよかったんじゃねえのかと。 しかならない非常に邪魔なデカイ物体が残るだけなので今回はここまでに したらその時にまた抜けばいいし、これ以止なんかやってチップが壊れたら、オプジェに だって、無事にデータらしいものは抜くことができたし、それ以外の領域にアクセスを プログラムの解析に進むことに 付けて、 C P U を再度実機に取り付けてちゃんと動くことを確認し、次のステップである ということは R O M の領域は 0 0 0 0 H 番地から 1 F F F H 番地であろうと勝手に決め 続けて次の 4K バイトを抜き出すと、最初に抜いた時とデータと同じデータが出てきた。