最終ラウンド - みる会図書館


検索対象: パチROM解析いたします
13件見つかりました。

1. パチROM解析いたします

大当たり処理においては、「デジタル回転中」、「大当たり ( 開始設定 ) 処理中」、 「大当たり ( ファンファーレ表示 ) 処理中」、「大当たり ( ラウンド表示 ) 処理中」、 「大当たり ( アタッカー開放 ) 処理中」、「大当たり ( 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 であった場合は、状態をクリアーする。 確率状態が確率変動となる組み合わせで大当たりした場合は確率状態を高確率に設定し 処理を終了する。 こでは大当たり終了後の確率状態を決定しているようである。

2. パチROM解析いたします

⑩データー出力処理 データを出力 対応するポートに 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 パッファーに記億する 終了表示用のコマンドを出力 り処理中タイマーに記憶し、 に設定し、表示秒数を大当た 状態を大当たり ( 終了 ) 処理中 確率状態を高確率に設定する

3. パチROM解析いたします

⑧判定した結果が大当たりであった場合は、大当たり数字用のカウンターの値と、 リーチ内容決定用のカウンターの値により、大当たり用のリーチの内容を決める。 液品表示器のほうでそれに対応する演出を行うようである ) ( 現在はリーチの種類というより何秒間デジタルを動かすかを決めて、 リーチにならない値であった場合は、 ⑩判定した結果が大当たりでない場合で、 内容決定用のカウンターの値により、外れリーチの内容を決める。 ⑨判定した結果が大当たりでない場合で、 リーチにならない動きに決定する。 リーチ判定用のカウンターの値が リーチになる値であった場合は、リーチ数字用のカウンターの値と、リーチ リーチ判定用のカウンターの値が ( 普段良く目にするのがこれである ) 時間的に無理なので主要な部分のみを見ていこうかと。 追加されていたりしているかもしれないのですけど、今回はすべての処理を解析するには , , に聿いた処理が無くなっていたり、内容が変変わっていたり、実はものすごい処理が などなど、いろんな処理を行っているが、最近は法律の変史がちよくちよくあるようで ⑩電源を入れる時に状態をリセットすることができる。 ⑩停電用のバックアップ処理がある。 ( 本体についているブッシュボタンは液品表示器で処理しているらしい ) ⑩入力は盤面のスイッチ入力のみで外からの入力は無い。 人りやすくなる。 するだけでなく、サプのデジタルの演出秒数が短くなり、スタートチャッカーに玉が ⑩メインのデジタルとサプのデジタルがあり、確率変動時はメインデジタルの確率がアップ ( 最近の台は見た目大当たりしなくても確率変動が終了するのもあるらしい ) 大当たりまで確率変動状態になる。 ⑩大当たり終了時に、大当たりしたデジタルが特定の組み合わせであった場合は、次の 大当たりの処理を終了する。 ⑩アタッカーが閉じた時に、 V に玉が入っていないか、最終ラウンドであった場合は、 を開く。 ( 最近の台は V が無くなったようで決められたラウンドまで進むようである ) ⑩アタッカーが閉じた時に、 V に玉が入っていれば、次のラウンドに進み、再びアタッカー ⑩大当たり中は、アタッカーを開き、決められた個数の玉が入ったらアタッカーを閉じる。 処理を一旦中止し、大当たりの処理へ移行する。 ⑩デジタルが止まった時に、大当たりの組み合わせであれば、デジタルを動かす 大当たりとなるまで処理を繰り返す。 ⑩デジタルが止まった時に、外れの組み合わせであれば、 7 ) の処理に戻り、 2 ) 強制的に演出を見るための構成は ? 数 mS の間に大量のコマンド、しかも膨大な種類のコマンドを送信するためには、 ハード的に擬似主制御基板や擬似 CPU を作成すると非常に手間と時間がかかるので、 PC を使用して以下のような構成を形成し、中継基板 ( レベルコンバーター的な ) を 中継して P C にてコマンドの送信を行うのがよいかと。 しかもこの構成の場合は、中継基板の変史のみ ( アプリの変史も多少は必要かな ? ) で いかなる機種の演出を見ることも可能になるので非常に有効であり、ハラレル信号と いっても、 8 十 1 ビットのデータが連続して送信できればいいので、いわゆるポケコンと いうものでも十分いける構成である。 ノくラレノレイ言号 P C 中継基板 電源 コマンド信号 サプ制御基板 電源 液品制御基板 コマンド信号

4. パチROM解析いたします

⑩大当たり処理 大当たり処理 状態を大当たり ( アタ励ー開放 ) デジタル回転処理中 ? 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 確認 ) 処理

5. パチROM解析いたします

②タイマー割込み タイマー割込み R E T ー データー出力処理 大当たり処理 デジタル史新処理 カウンター更新処理 タイマー更新処理 スイッチ人力処理 プログラムの主となる処理はタイマー割込み内でほとんど全て行っているようである。 6 ) データの出力処理 5 ) 大当たり時の処理 4 ) デジタルの更新処理 3 ) カウンターの更新処理 2 ) タイマーの史新処理 1 ) スイッチの入力確認 4 ) 今後の課題 問題点というか今後の課題としては以下のようなものがある。 ②リセットボタンが実装されている基板 コネクター変換基板が必要になってくることである。 使用されているコネクターが異なるため、全てのメーカーを網羅するには強制基板の前段に 強制基板の回路は機種によって大きな変更の必要ないが、機種というかメーカーによって ①コネクターの違い いるものもあるらしいので、その場合は主制御基板の改造も必要になってくるかと思われます。 そう大きな問題でもないのだが最近の機種ではリセットボタンが主制御基板に実装されて サウンドで激しく報知するため、非常にうるさい。 完全リセットを行った場合、サプ基板に対して RAM クリアーが発生したことをランプや ③リセットの報知

6. パチROM解析いたします

5 . リーチだけ見たい ! 1 ) 基板構成を見てみよう という方にはちょっと面倒ではあるが擬似的に主制御基板と同じ動作をする装置を作成して コマンドを送信すれば可能になる。 基板構成を見ると、主制御基板と液品制御基板の間にサプ制御基板が接続されており、 サプ制御基板では、主制御基板から送信されてくるコマンドを液品、ランプ、サウンドの 各制御基板に対応したコマンドに変換し、演出の進行度合いに応じたタイミングでコマンドを 送信し、各制御基板はコマンドの内容に応じて演出しているようである。 ー - の 2 ) フローチャートにしてみる・ 基本的な流れとして、電源投入時の処理、タイマー割込み処理、 NM I 処理の 3 本のルーチン で構成され、ほとんどの処理がタイマー割込み内で処理されているようである。 ①電源投入時処理 電源投人 初期設定処理 リセットボタン O N ? 電源 電源 電源 電源基板 コマンド信号 サプ制御基板 主制御基板 コマンド信号 液品制御基板 Y e s RAM 初期化 初期値行進用カウンタ 更新 バックアップ状態 ? Y e s バックアップデータ復帰 R E T バックアップ機能があることにより、電源投入時はそのデータをリセットするためのボタンが 押されているか否かの確認を行い、リセットボタンが押されているかバックアップ状態からの 復帰でなければ内部を完全にリセットし、バックアップ状態からの復帰であれば、各データを るようである。 無限ループとなるルーチンでは、後に説明します初期値史新用カウンター値の更新を行ってい ようであるが、これはいわゆるゴト対策なのではないかと。 内部を完全にリセットした場合は、ランプやサウンドにてリセットしたことを外部に報知する バックアップ直前の状態に元に戻しプログラムを再開させるようである。

7. パチROM解析いたします

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 で示されるアドレスのデータを「大当たり 判定値用カウンター ( 仮 ) 」であるとして次の検証に進むことに。

8. パチROM解析いたします

1 . どんな処理をしているのか ? 1 ) プログラム、知ってるつもり・ パチンコって、玉を買って打ち出して、チャッカーに入ればデジタルが回り、左右の数字が 同じになればリーチになって、揃わなければ外れで、同じ数字が並べば大当たりで、大当たり した数字が確変数字であれば、次大当たりするまで大当たりする確率がアップして・ ・と いうのがパチンコの一連の流れな訳なのですが、実はそのほとんどが外れとなる演出の繰り返 しを、長時間に亘って見せられるという金を払ってるのに拷問されているような気分になる。 大ハマリしている時に隣のおっちゃんが座って 5 0 0 円で大当たりとかすると、なんか操作 してんじゃないの ? という気分に激しくなるのですが、初めてそのプログラムを抜き出して 中を覗いてみたら、常に完全確率で制御されているのが分かり、ああやつばハチンコって 運なんだなあと。 まあそんなこんなでいきなり ROM からデータを抜いて、逆アセンプルを開始しても訳が分か らなくなるはずなので焦らず急がず今の段階で分かっている事 ( つもりも含む ) を項目に分け てみることに ①定期的に大当たり判定用のカウンター値を加算する。 加算した値が最大値を超えた場合は 0 に再設定する。 ( 初期値史新用のカウンターというものが最近はあるらしい ) ( 雑誌等で乱数とうい言い方をしている場合もあるが制御的には十 1 加算のカウンター として制御しているようなので今回はカウンターという名称で統一することに ) ②定期的に大当たり数字用のカウンター値を加算する。 加算した値が最大値を超えた場合は 0 に再設定する。 ③定期的に外れ数字用のカウンター値を加算する。 加算した値がリーチとなる組み合わせの場合は再度加算する。 ④定期的にリーチ数字用のカウンター値を加算する。 加算した値が大当たりとなる組み合わせの場合は再度加算する。 ⑤定期的に演出決定用のカウンター値を加算する。 加算した値が最大値を超えた場合は 0 に再設定する。 ( リーチ判定用、リーチ内容決定用等々複数ある ) ⑥スタートチャッカーに玉が入った時は、記憶の数が 4 個未満であれば、大当たり 判定用のカウンターの値と大当たり数字用のカウンターの値を記憶する。 ( この処理は他でなんの処理をしていようが処理し続ける ) ⑦デジタルが停止している時に記憶したものがあれば、その値を読み出して、 特定の値と一致しているかどうか判定する。記憶が無ければなにもしない。 ( 大当たりするかどうかはここで決まる ) 6 . ピン配列 1 ) C P U のピン配列 CPU のピン配列を接続図にするとこんな感じになるのかと。 普通 ? の 1 チッブマイコンに比べて、なんか無駄にピン数が多いなあと。 別に DRAM を外部に置くわけでもないのに RFSH 端子や、 MI 端子なんて 要らないだろうし、チップセレクト端子 ? が 1 2 本もあるならわざわざアドレスパス 全部出しておくこともないだろうし、ん一よく分からない。 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 6 6 6 6 6 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 3 3 3 3 3 3 3 A 7 A 6 A 5 A 4 A 2 A 1 A 0 ー N T N M ー M R E Q ー O R Q R D W R M 1 V S S V D D R S T 0 S R S T U R S T PP17/XCS107 PP16/XCSI()6 PP15/XCS105 PP14/XCS104 PP13/XCS103 PP12/XCS102 PPI I/XCSIOI PPIO/XCSIOO V S S 0 1 2 3 4 5 6 7 8 9 0 1 っ朝 3 4 5 6 7 8 9 0 ー 2 1 っ乙つけ -4 一 0 6 】「 / 8 一 9 ・ 1 1 ー・ー 1 ー - ー 1 ー・ーーっ乙っ乙り乙 0 乙り乙ワ」っ」っ 0 っ 3 っ 2 ハ 0 V S S A 8 A 9 A 1 0 A 1 ー A 1 2 A 1 3 A 1 4 A 1 5 V B B ZC/TOO ZC/TOI CLK/TRG2 CLK/TRG3 V D D C L K V S S 日 A L T R F S 日 PP20/XCS 1008 PP21 /XCS 1009 PP22/XCS1010 PP23/XCS1011 V D D D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7

9. パチROM解析いたします

7 . あとがき もっと時間があれば ( 余裕もってやればよかったと大反省・ ・ ) もっと細かく解析して もっと細かく書けたはずなのだが、書き始めたのが直前という状況だったのは時間配分を 激しく間違えた結果ではないかと。 ただいえることは、ザイログ社の Z80 が使用されていたころと比べても大当たりにかかわる 処理の部分は全然変わっていないなあと。 その当時の機種はデジタル回転の処理を主制御基板で全て制御していたので、解析に時間が かかった記憶はあるが、表示されるデータの信頼度等は全て分かったので ( 分かった時には もうパチンコ店には存在しなかったけど・・・ ) 解析のしがいがあったのですが、今の機種は、 液品制御基板側で処理している演出の内容の方にウェートが占められているので、解析の しがいがないというか、しかも、液品制御基板の解析なんてとてもできる環境じゃないし、 そんなものはパチンコ雑誌見たほうが早いし正確 ? だよなあーと。 最後に、このような内容の本ではありますが最後まで読んで頂いた方々に感謝申し上げます。 今後はきちんとしたものを発表できるようきちんと計画を立てて、日々の解析状況等を HP などで史新しながら進めていきますので、今後もよろしくお願いいたします。 tazue@kdt.biglobe.ne.ル たづ江工房 まえがき この本を読んだとしてもパチンコに勝てるかどうかは時の運であるということ。 まあパチンコ雑誌を読んでリーチの信頼度が解ったとしても遊技中のお楽しみ要素が 増えるぐらいの単なる情報でしかないことと同じことです。 ザイログ社の Z 8 0 や P I O が使われていて ROM も RAM も外付けだった時代には 個人的な趣味でハード、ソフトを解析して好きなように楽しんでいたのですが、 セキュリティー対策を施した C p U ? が使われるようになってからは、どうしようも なくなり、その世界 ? から一時離れることに。 しばらくしてから、どうしても欲しい台がインターネットの中古屋で売っているのを発見し、 購入してみたら、どうもゲームセンター用 ? に作ったと思われる擬似 CPU が ! しかも窓付き ROM が ! ・ 、これは ! これは壊してはいけないとこれ以上無いほど親切丁寧に取り扱って、好きなように改造して 遊んでいたのですが、さらに高機能 ? のセキュリティー CPU が登場したらしく、 再びその世界 ? から足を洗おうとしていたら、ある時、某掲示板サイトにその CPU の ピン配列が書かれていたのを発見 ? してしまい、昔のように ROM のデータを抜いて好き 勝手に変更して遊びたいという欲望が沸々と・ しかし ! 今のパチンコに使用されている C P U も激しくセキュリティー対策が施されている ようで内蔵の R O M もフラッシュ等書き換え可能では無くワンタイムであることにより プログラムを変史して自分の好きなように動かすためには過去のような擬似 CPU を どっかから入手するか自力で作成しないといけないようである。 安易な考えではあるが抜き出したプログラムを見てみると、プログラム領域、データ領域、 セキュリティー領域 ? に分かれているようで、なんというかソフト、ハードの両方を解析し、 丸ごと一台いっちゃおうか ? と思ってはみたものの、思ったよりは壁は高く、素人には そう簡単には行かなかったということで、先に詫びておきますが、完全な解析手法を記載する に至らなかった点は本当に申し訳なかったと。 今回はパチンコプログラムの基本的な解析方法と自宅にあるハチンコ台を改造して自分の 見たいリーチを好きな時に見たりとかそういう時のためにどうすればいいのかという事の さわりを実体験と憶測にもとづき書いていきたいと思っております。 たづ江工房

10. パチROM解析いたします

⑩カウンター史新処理 カウンター更新処理 大当たり判定用カウンター 値を十 1 する 最大値を超えたか ? Y e s 十 1 された値と で、次のアドレスを確認すると、 の 初期値史値の値を比較する 一致したか ? Y e s 初期値更新用カウンター値を 大当たり判定用カウンター 初期値史新値に上書きする カウンターの値を十 1 する R E T Y e s を更新したか ? ーてのカウンター クリアーする カウンターの値を Y e s 最大値を超えたか ? 03EE 03F1 03F2 03F4 03F6 03F9 03FC 03FF 0403 0404 0407 0408 040A 040C 040D 040E LD OR SBC JR LD LD LD LD INC LD XOR SB C JR LD LD LD HL,(07F18h) HL,DE NZ,003FFh HL,(07F16h) (07F18h),HL (07FIAh),HL DE,(07F16h) DE HL,002BCh HL,DE NC,0040Eh D,A E,A (07F16h),DE; 07F18h で示されるアドレスから連続した 2 バイト分のデータをⅡ Lreg へ転送する。 Areg の値を Areg のの値で OR する。 ( フラグクリアー ? ) HLreg の値から DEreg の値を c フラグを使用して減算し、 HLreg へ戻す。 z フラグが 0 場合は 07F16h で示されるアドレスから連続した 2 バイト分のデータを HLreg へ転送し、 07F18h 及び、 07FIAh で示されるアドレスへ DEreg の値である 2 ノヾイト分のデータを転送する。 z フラグが 1 場合はその処理を行わない。 07F16h で示されるアドレスから連続した 2 バイト分のデータを DEreg へ転送する。 DEreg の値を十 1 する。 02BCh を HLreg へ転送する。 Areg の値を 0 クリアーする。 HLreg の値から DEreg の値を c フラグを使用して減算し、 HLreg へ戻す。 c フラグが 0 場合は DEreg の値を変化させず、 1 の場合は DEreg にそれぞれ 00h を転送し、 07F16h で示されるアドレスへ DEreg の値である 2 バイト分のデータを転送する。 更新された大当たり判定値用カウンター ( 仮 ) が 07F18h で示されるアドレスのデータ値と 一致した場合は、その値を 07F18h で示されるアドレスと、史新された大当たり判定値用 カウンター ( 仮 ) へ転送し、その後、 07F16h で示されるアドレスのデータ値を大当たり 判定値用カウンター ( 仮 ) と同じ内容で更新していることにより、 07FIAh は大当たり 判定値用カウンター、 07F16h は初期値史新用カウンター、 07F18h は初期値更新値として 解析を進めることにする。