(57)【要約】【課題】遊技機へのチェックサムの登録にかかる人為的ミスを防ぐとともに、プログラムデータとチェックサムとに不整合が生じたときに、それがプログラムデータの誤りによるものなのか、それとも登録されたチェックサム自体の誤りなのかを容易に判別可能な遊技機および遊技機用プログラムを提供する。【解決手段】プログラムデータを記憶する第一記憶領域と、前記プログラムデータのチェックサムである検査値を記憶する第二記憶領域と、前記検査値の各ビット値を反転した値である反転値を記憶する第三記憶領域と、を有する記憶手段を備える遊技機により解決する。【選択図】図２
2017108969.tif 000002
【特許請求の範囲】
【請求項１】
プログラムデータを記憶する第一記憶領域と、
前記プログラムデータのチェックサムである検査値を記憶する第二記憶領域と、
前記検査値の各ビット値を反転した値である反転値を記憶する第三記憶領域と、
を有する記憶手段を備える遊技機。
【請求項２】
前記検査値は、前記プログラムデータ、前記検査値、および前記反転値の各ビット列を所定のビット数で区切った各単位の値の総和から、前記検査値のビット長分のビット列を抜き出した値に等しいことを特徴とする請求項１に記載の遊技機。
【請求項３】
前記検査値は、前記プログラムデータ、前記検査値、および前記反転値の各バイト値の総和から、下位の所定数のバイト列を抜き出した値に等しいことを特徴とする請求項２に記載の遊技機。
【請求項４】
前記第一記憶領域の前記プログラムデータの妥当性を検査する検査手段と、
前記検査手段による検査結果を表示する表示手段と、をさらに備え、
前記検査手段は、前記プログラムデータ、前記検査値、および前記反転値から、前記検査値と同値となるべき値である比較値を算出し、該比較値が前記検査値と一致しないときには、その旨および前記比較値を前記表示手段に表示することを特徴とする請求項１から請求項３のいずれか一項に記載の遊技機。
【請求項５】
遊技機の記憶手段に書き込まれる遊技機用プログラムであって、
プログラムデータのチェックサムである検査値と、該検査値の各ビット値を反転した値である反転値とがソースファイルのソースコードにおいて定義され、
前記ソースファイルから変換された書込み形式ファイルには、前記検査値および前記反転値の数値を示すテキストまたはビットパターンが埋め込まれていることを特徴とする遊技機用プログラム。
【請求項６】
前記検査値は、ビット列の値が全て０の前記検査値と、ビット列の値が全て１の前記反転値とが定義されたソースファイルから変換された書込み形式ファイルに基づいて算出されることを特徴とする請求項５に記載の遊技機用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遊技機および遊技機用プログラムに関する。
【背景技術】
【０００２】
ＲＯＭに書き込まれたプログラムデータの誤りを検出する方法として、プログラムデータのバイト値から算出したチェックサムを用いる方法が知られている（例えば、下記特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２４２５０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
プログラムデータを遊技機の記憶装置に書き込むにあたり、プログラムデータの書込み形式ファイル（以下、単に「ファイル」ともいう。）の中に、ファイル単位のサム値から算出したチェックサムを含めることがある。この場合、当該ファイルへのチェックサムの追加前後において、そのファイル単位のサム値に違いが生じることとなる。そのため、ファイルへのチェックサムの追加後に、かかるチェックサムの値の正誤を確認するときには、ファイル内のプログラムデータ領域のみを走査してチェックサムを再計算するか、チェックサム追加前のファイルを予め退避しておき、そのファイルからチェックサムを再計算する必要がある。
【０００５】
同様に、上記ファイルのデータが書き込まれた記憶装置において、プログラムデータとチェックサムとに不整合が生じた場合にも、それがプログラムデータの誤りによるものなのか、それともチェックサム自体の誤りなのかを判別するためには上記手順を踏む必要があり、確認に手間を要するという問題がある。
【０００６】
また、例えばプログラムデータの書込み形式ファイルがバイナリファイルであり、そのバイナリファイルの中に直接チェックサムを入力する場合、当該ファイルをエディタのバイナリモードで開き、ファイル内におけるチェックサムの入力位置を目視で特定し、その位置にチェックサムのバイト値を手動でキー入力する必要がある。さらに、入力するバイト値のバイト順をプログラムデータのエンディアンを考慮して判断しなければならないことから人為的なミスが起きやすいという問題がある。
【０００７】
本発明は、遊技機へのチェックサムの登録にかかる人為的ミスを防ぐとともに、プログラムデータとチェックサムとに不整合が生じたときに、それがプログラムデータの誤りによるものなのか、それとも登録されたチェックサム自体の誤りなのかを容易に判別可能な遊技機および遊技機用プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するためになされた本発明にかかる遊技機は、プログラムデータを記憶する第一記憶領域と、前記プログラムデータのチェックサムである検査値を記憶する第二記憶領域と、前記検査値の各ビット値を反転した値である反転値を記憶する第三記憶領域と、を有する記憶手段を備えることを特徴とする。
【０００９】
本発明の遊技機は、検査値が記憶された第二記憶領域のほかに、その反転値が記憶された第三記憶領域を備えている。検査値および反転値は、そのデータの性質上、これらの論理和のビット列が全て１になるという特徴を有する。つまり、検査値がどのような値をとってもこれら検査値および反転値の論理和は常に一定となる。
【００１０】
上記性質を利用し、例えばプログラムデータの書込み形式ファイルの中にそのプログラムデータの検査値を含める場合に、ファイル内に予め反転値も含めておくことにより、検査値の追加前後におけるファイル単位のサム値（ファイルのビット列を所定のビット数で区切った各単位の値の総和）を一定に保つことができる。そして、第二記憶領域の検査値として、プログラムデータのサム値に対して検査値のサム値と反転値のサム値とを加算した総和から算出した値を設定することにより、検査値の値自体を含んだ検査値を用いて第一記憶領域に記憶されたプログラムデータの妥当性を検査することが可能となる。
【００１１】
これにより、本発明の遊技機は、第一記憶領域に記憶されたプログラムデータの妥当性の検査に、その書込み形式ファイルのファイル単位のサム値に基づいて算出した検査値を用いることが可能とされている。ファイル単位のサム値は、その算出機能が種々のツールに実装されていることから、比較的容易に取得することができる。そのため、検査によりプログラムデータと検査値との不整合が検出された場合でも、それがプログラムデータの誤りによるものなのか、それとも検査値自体の誤りなのかを容易に判別することができる。
【００１２】
また、前記検査値は、前記プログラムデータ、前記検査値、および前記反転値の各ビット列を所定のビット数で区切った各単位の値の総和から、前記検査値のビット長分の所定のビット列を抜き出した値に等しい値であるとよい。
【００１３】
プログラムデータのビット列を所定のビット数で区切った各単位の値の総和を求めることでプログラムデータのサム値を算出し、そのサム値に対して、検査値および反転値を同単位に区切った各値の総和を加算することにより、ファイル単位のサム値に基づいた検査値を取得することができる。上でも述べたように、検査値と反転値の論理和は常に一定であることから、検査値がどのような値をとっても、プログラムデータ、検査値、および反転値の関係は上記のようになる。
【００１４】
より詳しくは、まず、検査値と反転値の論理和は常に全てのビット値が１（常に一定）であることから、検査値および反転値を含むプログラムデータのファイル単位のサム値は、検査値の値に関わらず常に一定である。そして、ファイル単位でのサム値が一定であるということは、そのサム値に基づいて算出される検査値も常に一定である。つまり、ファイル単位のサム値における所定のビット列（検査値）は、その検査値をファイルに反映する前後において変化しない。その結果、本構成におけるプログラムデータ、検査値、および反転値には上記の関係が成立する。
【００１５】
また、前記検査値は、前記プログラムデータ、前記検査値、および前記反転値の各バイト値の総和から、下位の所定数のバイト列を抜き出した値に等しい値であるとよい。
【００１６】
サム値の算出に一般的な単位を用いることにより、種々のツールで簡便にファイル単位のサム値を算出することが可能となる。
【００１７】
また、前記第一記憶領域の前記プログラムデータの妥当性を検査する検査手段と、前記検査手段による検査結果を表示する表示手段と、をさらに備え、前記検査手段は、前記プログラムデータ、前記検査値、および前記反転値から、前記検査値と同値となるべき値である比較値を算出し、該比較値が前記検査値と一致しないときには、その旨および前記比較値を前記表示手段に表示するするとよい。
【００１８】
検査手段が算出した比較値と第二記憶領域に記憶された検査値とに不整合が生じたときに、表示手段にその比較値が表示されることにより、検査値と比較値のどちらに誤りがあるのかより簡便に判別することが可能となる。
【００１９】
上記課題を解決するためになされた本発明にかかる遊技機用プログラムは、遊技機の記憶手段に書き込まれる遊技機用プログラムであって、プログラムデータのチェックサムである検査値と、該検査値の各ビット値を反転した値である反転値とがソースファイルのソースコードにおいて定義され、前記ソースファイルから変換された書込み形式ファイルには、前記検査値および前記反転値の数値を示すテキストまたはビットパターンが埋め込まれていることを特徴とする。
【００２０】
上記構成により、検査値および比較値をプログラムデータの書込み形式ファイルに対して直接手入力するのではなく、ソースファイルのコンパイル（ビルド）を介して書込み形式ファイルに機械的に出力させることが可能となる。
【００２１】
また、前記検査値は、ビット列の値が全て０の前記検査値と、ビット列の値が全て１の前記反転値とが定義されたソースファイルから変換された書込み形式ファイルに基づいて算出されるとよい。
【００２２】
例えば、ビット列の値が全て０である検査値の１６進数リテラルと、ビット列の値が全て１である反転値の１６進数リテラルとをソースコードに定義した状態で仮ビルドを行い、生成された書込み形式ファイルのファイル単位のサム値に基づいて検査値を算出する。そして、算出された検査値をソースコードに反映し、その値に応じて反転値も修正する。その後、再ビルドを行い、実際に記憶手段へと書き込むファイルを生成する。これにより、手作業で検査値と反転値とを直接書込み形式ファイルに追加することによる人為的なミスを回避することができる。尚、ビルドにより生成されたファイルには検査値と反転値の数値データが埋めこまれていることから、ソースコードに実際の検査値を反映する前後（書込み形式ファイルに実際の検査値を含める前後）におけるファイル単位のサム値は一定である。
【発明の効果】
【００２３】
本発明によれば、遊技機へのチェックサムの登録にかかる人為的ミスを防ぐとともに、プログラムデータとチェックサムとに不整合が生じたときに、それがプログラムデータの誤りによるものなのか、それとも登録されたチェックサム自体の誤りなのかを容易に判別可能な遊技機および遊技機用プログラムを提供することができる。
【図面の簡単な説明】
【００２４】
【図１】実施形態にかかる遊技機の正面図である。
【図２】遊技機の制御構成の一部を示すブロック図である。
【図３】プログラムデータの妥当性検査の手順を示すフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明にかかる遊技機１の一実施形態について図面を参照して詳細に説明する。まず、図１を参照して遊技機１の全体構成について簡単に説明する。
【００２６】
（遊技機の全体構成）
遊技機１は遊技盤９０を備える。遊技盤９０は、ほぼ正方形の合板により成形されており、発射装置９０８の操作によって発射された遊技球を遊技領域９０２に案内する通路を構成するガイドレール９０３が略円弧形状となるように設けられている。
【００２７】
遊技領域９０２には、始動入賞口９０４、大入賞口９０６、アウト口９０７などが設けられている。表示装置９１（表示手段）の表示領域９１１は、遊技盤９０に形成された開口９０１を通じて視認可能となる領域である。
【００２８】
また、遊技領域９０２には、流下する遊技球が衝突することにより遊技球の流下態様に変化を与える障害物としての遊技釘が複数設けられている。遊技領域９０２を流下する遊技球は、遊技釘に衝突したときの条件に応じて様々な態様に変化する。
【００２９】
このような遊技機１では、発射装置９０８を操作することにより遊技領域９０２に向けて遊技球を発射する。遊技領域９０２を流下する遊技球が、始動入賞口９０４や大入賞口９０６等の入賞口に入賞すると、所定の数の賞球が払出装置により払い出される。
【００３０】
なお、遊技機１の枠体、遊技球を貯留する下皿や上皿など、本発明に関係のない遊技機１の構成要素は説明を省略する。これらについては公知の遊技機と同様の構造のものが適用できる。また、大当たりの抽選方法等も、公知の遊技機と同様であるため、説明を省略する。
【００３１】
（遊技機の制御構成）
図２は遊技機１の制御構成の一部を示すブロック図である。遊技機１が備えるサブ制御基板２０は、ＣＰＵ２２およびＲＡＭ２３のほか、プログラムデータＰＤ、プログラムデータＰＤのチェックサムである検査値ＣＳ、および検査値ＣＳの各ビット値を反転した値である反転値ＴＶが記憶されたＲＯＭ２１（記憶手段）を有している。ＲＯＭ２１上に表示されたテーブルは、ＲＯＭ２１のアドレス空間（本実施形態においては0x000000〜0xFFFFFFとする）をモデル化して表したものであり、テーブル枠外の上下に付された１６進数の値は、テーブルの各セルのアドレスを示している。また、各セルの中の値は、そのアドレスに記憶されたバイト値を１６進数で表したものである。
【００３２】
また、遊技機１は上記サブ制御基板２０のほか、プログラムデータＰＤの妥当性を検査する誤り検査部９２（検査手段）、表示装置９１に所定の静止画や動画の表示を指示する表示制御部９１２を備えている。
【００３３】
ＲＯＭ２１の各セルのうち、上段の４つのセルは、プログラムデータＰＤが記憶された第一記憶領域２１１を表している。下段の右側の２つのセルは検査値ＣＳが記憶された第二記憶領域２１２を表している。下段の左側の２つのセルは反転値ＴＶが記憶された第三記憶領域２１３を表している。尚、第一記憶領域２１１は実際にはさらに多くのセルからなるが、便宜上これら４つのセルを第一記憶領域２１１として説明する。
【００３４】
本実施形態にかかる遊技機１は、検査値ＣＳが記憶された第二記憶領域２１２のほかに、その反転値ＴＶが記憶された第三記憶領域２１３を備えている。検査値ＣＳおよび反転値ＴＶは、そのデータの性質上、これらの論理和のビット列が全て１になるという特徴を有している。例えば、本実施形態の検査値ＣＳの値は0x03B8（0000001110111000b）であり、反転値ＴＶの値は0xFC47（1111110001000111b）である。よって、これらの論理和は0xFFFF（1111111111111111b）となる。また、例えば検査値ＣＳの値を0x0000（0000000000000000b）としたときの反転値ＴＶの値は0xFFFF（1111111111111111b）とされ、これらの論理和は同じく0xFFFF（1111111111111111b）となる。つまり、検査値ＣＳがどのような値をとったとしても、反転値ＴＶによりその値が吸収されるため、これらの論理和は常に一定となる。
【００３５】
ＲＯＭ２１への書き込み前にプログラムデータＰＤの検査値ＣＳを設定するにあたり、検査値ＣＳおよび反転値ＴＶの上記性質を利用して、プログラムデータＰＤのサム値に対して仮の検査値ＣＳおよび反転値ＴＶのサム値を加算した値から検査値ＣＳを生成することにより、生成元のサム値に検査値ＣＳ（および反転値ＴＶ）の値自体を含んだ検査値ＣＳを設定することができる。尚、本発明でいう「サム値」とは、プログラムデータＰＤ、検査値ＣＳ、または反転値ＴＶの各ビット列を所定のビット数で区切った各単位の値の総和を意味している。また、本実施形態における「所定のビット数」とは、８ビットつまり１バイトである。よって本実施形態においては検査値ＣＳおよび反転値ＴＶのサム値は、検査値ＣＳがどのような値をとっても常に0x1EFである。尚、「所定のビット数」は本実施形態の１バイトには限定されず、環境に応じて適宜好適なビット数を選択することができる。
【００３６】
検査値ＣＳの値自体を含んだサム値から生成した検査値ＣＳが使用可能であることにより、後述する遊技機用プログラムＰの書込み形式ファイルＷＦの中に、プログラムデータＰＤとともに検査値ＣＳおよび反転値ＴＶを含めたファイル単位のサム値から検査値ＣＳを抽出することが可能となる。ファイル単位のサム値は、その算出機能が種々のツールに実装されていることから、比較的容易に取得することができる。そのため、後述する誤り検査部９２が行う検査により、プログラムデータＰＤと検査値ＣＳとの不整合が検出された場合でも、それがプログラムデータＰＤの誤りによるものなのか、それとも検査値ＣＳ自体の誤りなのかを容易に判別することができる。
【００３７】
また、本実施形態における検査値ＣＳは、プログラムデータＰＤ、検査値ＣＳ、および反転値ＴＶの各サム値の総和から、下位２バイトを抜き出した値に等しい。例えば本実施形態の場合、プログラムデータＰＤ（0x55〜0x88）、検査値ＣＳ（0x03、0xB8）、および反転値ＴＶ（0xFC、0x47）のサム値の総和は0x03B8である。ここから下位２バイトを抜き出した値は0x03B8であり、検査値ＣＳの値と等しい。尚、本実施形態ではこれらサム値の総和が２バイト以内に収まるため、総和がそのまま検査値ＣＳとされているが、総和の桁が検査値ＣＳのビット長を超えるときには、溢れた分の桁を無視して、検査値ＣＳのビット長分の下位ビットのみを抜き出して検査値ＣＳの値とする。
【００３８】
（遊技機用プログラム）
本実施形態における遊技機用プログラムＰはサブ制御基板２０のＲＯＭ２１に書き込まれる制御プログラムである。本発明においては遊技機用プログラムＰの具体的な処理内容は問わない。尚、図２におけるソースファイルＳＦ、書込み形式ファイルＷＦ、およびＲＯＭ２１のアドレス0x000000〜0xFFFFFFに書き込まれたバイトコードはいずれも、データ形式が変換された遊技機用プログラムＰである。
【００３９】
また、本発明における「書込み形式ファイル」（以下、単に「ファイル」ともいう）とは、ＲＯＭライタが読み込み可能な形式のファイルをいい、例えば、モトローラＳレコードフォーマットやインテルＨＥＸフォーマットなど、ＲＯＭへ書き込むバイト値およびそのアドレスがＡＳＣＩＩキャラクタで表されたテキストファイル、またはＲＯＭへそのまま書き込まれるバイナリイメージが記載されたバイナリファイルをいう。
【００４０】
遊技機用プログラムＰはそのソースファイルＳＦのソースコードに、検査値ＣＳおよび反転値ＴＶのバイト値を示す１６進数リテラルが記述されている。かかるソースファイルＳＦをコンパイル（ビルド）することにより生成された書込み形式ファイルＷＦには、ＲＯＭ２１の第一記憶領域２１１（0x000000〜0xFFFFFB）に書き込まれるプログラムデータＰＤのバイト値のほか、第二記憶領域２１２（0xFFFFFC、0xFFFFFD）に書き込まれる検査値ＣＳのバイト値、および第三記憶領域２１３（0xFFFFFE、0xFFFFFF）に書き込まれる反転値ＴＶのバイト値を示すＡＳＣＩＩキャラクタまたはビットパターンが埋めこまれている。
【００４１】
書込み形式ファイルＷＦ内において、ＲＯＭ２１上の所望のアドレスに所望のバイト値を書き込むよう指定する方法としては、例えばＣ言語により遊技機用プログラムＰを記述する場合、ソースファイルＳＦのソースコードで検査値ＣＳと反転値ＴＶとをグローバル定数として定義し、リンカスクリプトでそれら定数の書き込みアドレスをマッピングすれば良い。または、例えば遊技機用プログラムＰの実行時に検査値ＣＳを用いてプログラムデータＰＤの妥当性をチェックする場合であって、コンパイルされたバイトコードに整数定数のビットパターンがそのまま埋め込まれるプログラム言語を用いるときには、単純にソースコードで検査値ＣＳおよび反転値ＴＶを定数として定義すれば良い。これにより、検査値ＣＳおよび比較値ＶＴをプログラムデータＰＤの書込み形式ファイルに直接手入力することなく、ソースファイルＳＦのビルドを介して検査値ＣＳおよび比較値ＶＴを書込み形式ファイルＷＦに出力させることが可能となる。
【００４２】
遊技機用プログラムＰにおける検査値ＣＳの算出手順および反映手順は次の通りである。まず、ソースファイルＳＦのソースコードにビット列の値が全て０である検査値ＣＳの１６進数リテラルと、ビット列の値が全て１である反転値ＴＶの１６進数リテラルとをグローバル定数として定義した状態で仮ビルドを行う。そして、生成された書込み形式ファイルＷＦのファイル単位のサム値に基づいて検査値ＣＳを算出する。その後、算出された検査値ＣＳをソースコードに反映し、その値に応じて反転値ＴＶも修正する（図２における書込み形式ファイルＷＦからソースファイルＳＦへと戻る破線矢印）。検査値ＣＳのソースコードへの反映後、再ビルドを行い、ＲＯＭライタ９４で実際にＲＯＭ２１へ書き込む書込み形式ファイルＷＦを生成する。
【００４３】
上で述べたように、検査値ＣＳと反転値ＴＶは、検査値ＣＳがどのような値をとってもこれらのサム値が常に0x1FEになるという性質を有する。かかる性質を利用し、仮ビルドの段階ではビット列の値が全て１の反転値ＴＶをソースファイルＳＦのソースコードに記述しておき、その後、算出した検査値ＣＳをソースコードに反映する際には、その値に応じて反転値ＴＶの値も修正することにより、検査値ＣＳの反映前後における書込み形式ファイルＷＦのファイル単位のサム値への影響が除去されている。
【００４４】
例えば、遊技機用プログラムＰの書込み形式ファイルＷＦがバイナリファイルであり、そのバイナリイメージにおけるＲＯＭ２１のアドレス0xFFFFFEと0xFFFFFFに相当する位置に手入力で直接検査値ＣＳを入力する場合、ファイルをエディタのバイナリモードで開いて上記アドレスを目視で特定する必要があるとともに、データのエンディアンを考慮しながら検査値ＣＳをキー入力しなければならない。
【００４５】
さらに、検査値ＣＳを入力した後は、書込み形式ファイルＷＦのファイル単位におけるサム値が増加するため、検査値ＣＳの入力後は、検査値ＣＳの値の正誤をファイル単位のサム値に基づいて機械的にチェックすることができず、さらにその入力位置の誤りもチェックすることができない。つまり、形式ファイルＷＦへの検査値ＣＳの入力ミスは、書込み形式ファイルＷＦをＲＯＭ２１に書き込んで、誤り検査部９２でプログラムデータＰＤの妥当性を実際にチェックしなければ検出することができず、入力ミスがあった場合の修正手順が煩雑となる。
【００４６】
一方、本発明における遊技機用プログラムＰは、検査値ＣＳの反映前後において形式ファイルＷＦのファイル単位のサム値が変動しない。そのため、書込み形式ファイルＷＦを再ビルドした後で、再度ファイル単位のサム値から検査値ＣＳを算出することにより、ソースファイルＳＦに入力した検査値ＣＳおよび比較値ＴＶの値の正誤をＲＯＭ２１へ書き込む前にチェックすることができる。また、検査値ＣＳおよび比較値ＴＶをソースファイルＳＦに反映する際の構文上の入力ミスについては、コンパイル時のエラーで検出することができる。
【００４７】
このように、遊技機用プログラムＰが反転値ＴＶを有していることにより、検査値ＣＳと比較値ＴＶを書込み形式ファイルＷＦに手作業で追加することによる人為的なミスを回避することができる。さらに、検査値ＣＳおよび比較値ＴＶのソースファイルＳＦへの入力ミスがあった場合には、そのミスをＲＯＭ２１へ書き込む前に検出することができるとともに、その修正も容易に行うことができる。
【００４８】
書込み形式ファイルＷＦがＲＯＭライタ９４によりＲＯＭ２１に書き込まれると、プログラムデータＰＤは第一記憶領域２１１（0x000000〜0xFFFFFB）に、検査値ＣＳは第二記憶領域２１２（0xFFFFFE、0xFFFFFF）に、反転値ＴＶは第三記憶領域２１３（0xFFFFFC、0xFFFFFD）に記憶される。このように、本発明の遊技機１は、反転値ＴＶが記憶される第三記憶領域２１３を備えていることにより、第一記憶領域２１１に記憶されたプログラムデータＰＤの妥当性の検査に、プログラムデータＰＤの書込み形式ファイルＷＦ単位のサム値に基づいて生成した検査値ＣＳを用いることが可能とされている。
【００４９】
（プログラムデータの検査手順）
以下、図３を参照してプログラムデータＰＤの妥当性検査の手順について説明する。プログラムデータＰＤの妥当性検査が開始されると、誤り検査部９２はＲＯＭ２１のアドレス0x000000〜0xFFFFFFから検査値ＣＳと同値となるべき値である比較値を算出する（Ｓ１０）。
【００５０】
図２に示すように、ＲＯＭ２１のアドレス0x000000〜0xFFFFFFはプログラムデータＰＤのみならず検査値ＣＳおよび反転値ＴＶを含んだアドレス領域である。誤り検査部９２は検査値ＣＳの生成方法と同じ方法により比較値を算出する。つまり、プログラムデータＰＤ、検査値ＣＳ、および反転値ＴＶの各サム値の総和から下位２バイトを抜き出した値を比較値とする。プログラムデータＰＤ、検査値ＣＳ、および反転値ＴＶのいずれにも誤りがない場合、比較値と検査値ＣＳは同じ値となるはずである。
【００５１】
尚、本実施形態における誤り検査部９２はサブ制御基板２０外の構成とされているが、サブ制御基板２０の構成の一部として誤り検査部９２を含めても良い。
【００５２】
その後、誤り検査部９２は、ＲＯＭ２１の第二記憶領域２１２（0xFFFFFE、0xFFFFFF）から検査値ＣＳを取得し（Ｓ２０）、Ｓ１０で算出した比較値の値と比較する（Ｓ３０）。
【００５３】
比較値と検査値ＣＳの値が一致した場合、プログラムデータＰＤに誤りはないものとして、表示制御部９１２を介して表示装置９１に比較値を青色表示する。比較値と検査値ＣＳの値が一致しない場合、プログラムデータＰＤに誤りがあるものとして表示装置９１に比較値を赤色表示する。
【００５４】
ここで、書込み形式ファイルＷＦを再ビルドした後で検査値ＣＳの値の正誤を確認しているときには、プログラムデータＰＤに実際に誤りがあると判断することができる。再ビルド後に検査値ＣＳの値の正誤を確認していない場合でも、書込み形式ファイルＷＦのファイル単位のサム値をツールでチェックし、表示装置９１に表示された比較値と比べることにより、プログラムデータＰＤに実際に誤りがあるのか、第二記憶領域２１２に登録された検査値ＣＳ自体に誤りがあるのかを容易に判別することができる。
【００５５】
以上、本発明の実施の形態について詳細に説明したが、本発明は上記実施の形態に何ら限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の改変が可能である。
【００５６】
例えば、本実施形態ではサブ制御基板２０のＲＯＭ２１に本発明の構成（各記憶領域１０〜３０）を適用しているが、本発明の対象はサブ制御基板２０のＲＯＭ２１に限られず、図示しない主制御基板など、他の制御基板に適用することも可能である。また、本実施形態では、検査値ＣＳの追加前後における書込み形式ファイルＷＦのファイル単位のサム値を一定とすべく反転値ＴＶを用いているが、反転値ＴＶにより増減を吸収可能な値は検査値ＣＳに限られず、反転値ＴＶを他の値と組み合わせることにより、あらゆる値の増減によるサム値への影響を吸収することが可能である。
【００５７】
また、本実施形態におけるＲＯＭ２１のアドレス空間のサイズや、各記憶領域１０〜３０のアドレスは一例に過ぎない。使用するＣＰＵやＲＯＭによりアドレス空間のサイズは当然異なり、各記憶領域１０〜３０のアドレスも環境に応じて適宜好適なアドレスを選択することができる。また、本実施形態における検査値ＣＳおよび反転値ＴＶのビット長は２バイトであるが、検査値ＣＳおよび反転値ＴＶのビット長は２バイトに限定されず、環境に応じて適宜好適なビット長を選択することができる。
【００５８】
また、上記実施形態にかかる遊技機１は、いわゆるぱちんこ遊技機であるが、スロットマシン等、他の種類の遊技機に適用することも可能である。
【符号の説明】
【００５９】
１  遊技機
２０  サブ制御基板
２１  ＲＯＭ
２１１  第一記憶領域
ＰＤ  プログラムデータ
２１２  第二記憶領域
ＣＳ  検査値
２１３  第三記憶領域
ＴＶ  反転値
９１  表示装置
９２  誤り検査部
Ｐ  遊技機用プログラム
ＳＦ  ソースファイル（ソースコード）
ＷＦ  書込み形式ファイル
【図１】
2017108969.tif 000003
【図２】
2017108969.tif 000004
【図３】
2017108969.tif 000005
【手続補正書】
【提出日】平成29年3月24日(2017.3.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラムデータを記憶する第一記憶領域と、
前記プログラムデータのチェックサムである検査値を記憶する第二記憶領域と、
前記検査値の各ビット値を反転した値である反転値を記憶する第三記憶領域と、
を有する記憶手段を備え、
前記検査値は、前記プログラムデータ、前記検査値、および前記反転値の各ビット列を所定のビット数で区切った各単位の値の総和から、前記検査値のビット長分のビット列を抜き出した値に等しいことを特徴とする遊技機。
【請求項２】
前記検査値は、前記プログラムデータ、前記検査値、および前記反転値の各バイト値の総和から、下位の所定数のバイト列を抜き出した値に等しいことを特徴とする請求項１に記載の遊技機。
【請求項３】
前記第一記憶領域の前記プログラムデータの妥当性を検査する検査手段と、
前記検査手段による検査結果を表示する表示手段と、をさらに備え、
前記検査手段は、前記プログラムデータ、前記検査値、および前記反転値から、前記検査値と同値となるべき値である比較値を算出し、該比較値が前記検査値と一致しないときには、その旨および前記比較値を前記表示手段に表示することを特徴とする請求項１または請求項２に記載の遊技機。