以下、本発明の遊技機を実施例に基づいて更に詳細に説明する。図16は、実施例に係るパチンコ機の全体構成を図示したブロック図である。図示のパチンコ機は、遊技動作を中心的に制御する主制御基板1と、液晶ディスプレイ8に表示されたキャラクタや図柄を変動させる図柄制御基板2と、遊技機左右のスピーカR,Lを独立的に駆動して斬新な音声演出を実現する音声制御基板3と、ランプ類の点滅動作させてランプ演出を実現するランプ制御基板4と、遊技球を払出す払出制御基板5と、払出制御基板5に制御されて遊技球を発射する発射制御基板7と、AC24Vを受けて装置各部に直流電圧を供給する電源基板6とを中心に構成されている。
主制御基板1、図柄制御基板2、音声制御基板3、ランプ制御基板4、及び払出制御基板5は、それぞれワンチップマイコンを備えるコンピュータ回路で構成されており、各サブ制御基板2〜5は、主制御基板1からの制御コマンドに基づいて上記した個別的な制御動作を実現している。なお、この実施例の場合には、制御コマンドは2バイト長であり、一方向のパラレル通信方式によって伝送されているが、特にこの構成に限定されるものではない。
図17は、音声制御基板3の回路構成を示すブロック図である。図示の通り、音声制御基板3は、ワンチップマイコン10と、ワンチップマイコン10から出力される2系統の音声アナログ信号(効果音SEと背景音BGM)を増幅するアンプ11R,11Lとを中心的に備えている。ワンチップマイコン10は、主制御基板1からの制御コマンドを受ける入力ポート12と、音声制御基板3の動作を制御するCPUコア13と、システムクロックに基づいて各種の信号を出力するTPU(Timer Pulse Unit)16と、TPU16からの内部割込み信号CH0,CH1や主制御基板1からのストローブ信号STBを受ける割込みコントローラ14と、ソフトウェア的に復元されたPCM音声データを受けて音声アナログ信号を出力するD/Aコンバータ15と、制御プログラムやADPCMデータ(adaptive differential pulse code modulation)を固定的に記憶するROM(Read Only Memory)17と、制御プログラムの作業領域(ワークエリア)として使用されるRAM(Random Access Memory)18とを中心に構成されている。
図17に示すように、割込みコントローラ14には、TPU16からの内部割込み信号CH0,CH1と、主制御基板1からのストローブ信号STBとが供給されるが、これらは共に禁止(マスク)可能な割込み信号となっている。ストローブ信号STBは、主制御基板1から制御コマンドと共に出力される信号であり、割込みコントローラ14にはIRQ(Interrupt Request)信号として供給され、これを受けた割込みコントローラ14は、CPUコア13に割込み信号INTを供給する共に、割込み処理ルーチンを特定する割込みベクトルを出力している。
TPU16のチャンネル0とチャンネル1からは、それぞれ内部割込み信号が出力されるよう設定されているが、チャンネル1からの割込み信号CH1は4mS毎に発せられるよう設定され、チャンネル0からの割込み信号CH0は、制御プログラムによって個々的に設定されたサンプリング周期(τ)毎に発せられるように設定されている。ここでサンプリング周期とは、D/Aコンバータ15から出力される音声アナログ信号の出力間隔(τ)を意味する。
そして、D/Aコンバータ15から出力される個々の音声メッセージに応じて、適宜にサンプリング周期を変更できるよう、サンプリング周期(τ)は制御プログラムによって個々的に設定される。例えば、8KHz、16KHz、32KHzのサンプリング周波数で取得されてROM17に記憶されている音声データ(ADPCMデータ)を再現する場合には、それぞれ125μS、62.5μS、31.25μSの時間間隔(τ)で割込み信号CH0が発せられることにより、そのADPCMデータがPCMデータに変換され、サンプリング周波数に対応するタイミングでD/Aコンバータ15から出力されることになる。
D/Aコンバータ15は、独立的に動作可能な2チャンネルのD/A変換回路を内蔵しており、それぞれ8ビット長のデータレジスタDADR0,DADR1にデジタルデータを書込むとD/A変換されて、アナログ出力DA0,DA1が出力されるようになっている。図示の通り、この実施例では、アナログ出力DA0は右チャンネル用の増幅器11Rに供給され、アナログ出力DA1は左チャンネル用の増幅器11Lに供給されて該当するスピーカSP(R),SP(L)を駆動している。
図1〜図5は、主制御基板1から受信する制御コマンドと、音声制御基板3から発せられる音声情報との関係を説明するため参照テーブルを例示したものである。この実施例では、主制御基板1から伝送されてくる2バイト長の制御コマンドに対応して、左右のスピーカSPからは効果音(SE)と背景音(BGM)とが出力されるが、最初に、この一連の処理を概略的に説明する。
図1(a)に示すように、受信した2バイト長の制御コマンドに対応して、1バイト長のFiコマンド(完全情報Full Intelligence Command)が特定される。ここでFiコマンドとは、一連の音声情報を完全に特定するものであり、例えば、図柄始動口への入賞に合わせて液晶ディスプレイ8において図柄変動の動作が開始される場合には、その図柄変動の動作に合わせて、(1)「今回は期待できるよ!」→(2)・・・・(無音状態)→(3)「ほーらリーチだ!」→(4)・・・・(無音状態)→(5)「やったー!。大当りー!!」のような一連の効果音SEを、背景音BGM(通常は音楽)と共に特定するものである。
Fiコマンドは、上記のような区分情報(1)〜(5)を組合せて構成されているが、区分情報はSiコマンド(Semi Intelligence Command)で特定されるようになっている。すなわち、Fiコマンドは、Siコマンドの組合せによって構成されており、例えば、左チャンネルのスピーカSP(L)から出力される効果音SEは、複数個のSiコマンドの組合せによって、(1)「今回は期待できるよ!」、(2)・・・(無音状態)、(3)「ほーらリーチだ!」、(4)・・・・(無音状態)、(5)「やったー!。大当りー!!」の一連の音声情報が特定されることになる。
図2は、Fiコマンドと、Siコマンドと、サウンドNOの関係を概略的に図示したものである。図2(a)及び図2(b)に示すように、一つのFiコマンドに対して、右チャンネル背景音(BGM)用のSiコマンドと、左チャンネル効果音(SE)用のSiコマンドとが特定される。例えばコマンド番号01HのFiコマンドの場合には、効果音としては、一連の10個のSiコマンド番号(50H,23H,50H,24H,41H,50H,4BH,4CH,5CH,50H)の組合せが特定され、背景音としては、一連の7個のSiコマンド番号(01H,51H,02H,51H,10H,0FH,51H)の組合せが特定されることになる。なお、Hは16進数を意味する。
各Siコマンドは、その再生時間と共に規定されており、図2(a)に例示する効果音(SE)の場合には、
(1)9.4秒の再生時間を要するSiコマンド50H(無音)
(2)0.7秒の再生時間を要するSiコマンド23H
(3)12.7秒の再生時間を要するSiコマンド50H(無音)
(4)1.0秒の再生時間を要するSiコマンド24H
(5)0.8秒の再生時間を要するSiコマンド41H
(6)3.6秒の再生時間を要するSiコマンド50H(無音)
(7)2.0秒の再生時間を要するSiコマンド4BH
(8)0.8秒の再生時間を要するSiコマンド4CH
(9)11.27秒の再生時間を要するSiコマンド5CH
(10)0.004秒の再生時間を要するSiコマンド50H(無音)
によってFiコマンド1が実効化されることを意味している。そして、一連のSiコマンドのうち、現在どのSiコマンドを実行すべきかは、SE用の進行カウンタCNTSEによって指示される。
これらの点は、背景音の場合も同様であり、図2(b)に例示する背景音(BGM)の場合には、
(1)9.4秒の再生時間を要するSiコマンド01H
(2)0.7秒の再生時間を要するSiコマンド51H(無音)
(3)12.7秒の再生時間を要するSiコマンド02H
(4)3.6秒の再生時間を要するSiコマンド51H(無音)
(5)4.8秒の再生時間を要するSiコマンド10H
(6)9.1秒の再生時間を要するSiコマンド0FH
(7)0.004秒の再生時間を要するSiコマンド51H(無音)
によってFiコマンド01Hが実効化されることを意味している。そして、一連のSiコマンドのうち、現在どのSiコマンドを実行すべきかは、BGM用の進行カウンタCNTBGによって指示される。
各Siコマンドは、更に、音声パーツであるサウンドNO及びその再生時間の組合せを特定するよう構成されている。例えば、図2(a)の例では、Siコマンド5CHは、0.6秒の再現時間を要するサウンドNO47H→0.6秒の再現時間を要するサウンドNO47H→・・・→1.1秒の再現時間を要するサウンドNO47H→・・・→2秒の再現時間を要するサウンドNO56Hの組合せで実効化される。このように、サウンドNOとその再生時間とは必ずしも固定的ではなく、再生時間は適宜に変更される。そして、一連のサウンドNOのうち、現在どのサウンドNOを実行すべきかは進行カウンタPTCNTによって指示される。なお、図2においてENDCDは、データの終了を意味するコードであり、再生時間がmS(ミリ秒)の単位であって、且つ**/4の形式で特定されているのは、後述するタイマ割込み処理が4mS毎に発生することに因るものである。
以上の通り、この実施例では、制御コマンドからFiコマンドが特定され、FiコマンドによってSiコマンドの組合せが特定され、各SiコマンドはサウンドNOの組合せを特定するよう構成されている。図3〜図5は、Fiコマンド番号の特定から音声信号の再現までの関係をより詳細に図示したものであり、図3は、Fiコマンド番号と、これを実効化する一連のSiコマンドの関係を示している。また、図4は、Siコマンドと、これを実効化する一連のサウンドNOの関係を示しており、図5は、サウンドNOと、これに対応する音声データ(ADPCMデータ)の格納位置との関係を示している。
以下、これらの点を踏まえて音声制御基板3の制御プログラムについて説明する。本実施例では、音声制御基板3の制御プログラムは、電源投入後に実行を開始されるメインルーチン(図6)と、所定時間(4mS)毎に起動されるタイマ割込み処理ルーチン(図7)と、サンプリング周期(τ)毎にD/AコンバータにPCMデータを供給するサウンド出力割込みルーチン(図14)と、主制御基板1からストローブ信号STBを受けて開始される受信割込みルーチン(図15)と、プログラムの暴走などに起因して開始される異常割込みルーチン(不図示)とで構成されている。
なお、タイマ割込み(図7)、サウンド出力割込み(図14)、受信割込み(図15)が開始されるとCPUは割込み禁止状態となるが、この実施例では、割込み処理ルーチン内ではCPUを割込み許可状態に戻さないので、メインルーチンの実行中に何れかの割込み処理が開始されると、その後は、メインルーチンでEI命令を実行しない限り、他の割込み信号は保留されることになる。
先ず、図6を参照しつつメインルーチンから説明すると、遊技機に電源が投入されると、音声制御基板3を構成するワンチップマイコン10のRAM18をゼロクリアすると共に(ST1)、その他の初期処理を行う(ST2)。次に、電源投入時に固有の案内音声メッセージを発するべく音声起動処理が実行された後(ST3)、CPUが割込み許可状態(EI:enable interrupt)に設定されると共にワンチップマイコン10の内蔵モジュールが初期状態に再設定される(ST4)。なお、CPUがEI命令を実行した後に限り、マスク可能な割込み信号が受け付けられることになる。
続いて、サウンドNOの実効化を管理しているサウンド制御用作業テーブル(図13参照)に関する処理が行われる(ST5)。具体的には、図12に記載の通りであり、図13に示す制御用作業テーブルSNDCTBL(BGM用)及びSNDCTBL(SE用)について、ステップST92〜ST97の処理が行われる。先ず、作業テーブルSNDCTBLにおいてサウンドNOを記憶しているSNDNO番地のデータと、SNDNOCS番地のデータの反転データとが比較され、一致すれば以降の処理においてSNDNO番地のデータをサウンドNOとして使用する(ST92)。
一方、両者が不一致なら、SNOBUP番地のデータとSNOBUPC番地のデータの反転データとが一致することを条件にバックアップ領域SNOBUP番地のデータをサウンドNOとして使用する(ST92)。なお、いずれのデータも使用できない場合は無音処理を施してスピーカから音がでないようにしている。
このように、データ(サウンドNO)の正当性を厳しくチェックするのは、本実施例の場合には、メインルーチンの実行中にデータ受信割込み(ST15)が生じるだけでなく、4mS毎のタイマ割込み(図7)と、音声出力割込み(図14)とが平行して実行され、各々において複雑なタイミングでサウンドNOについての制御処理を行うため、稀にはデータの不整合が生じる可能性があるからである。
続いて、作業テーブルSNDCTBLのSNOBUP番地、SNDNOCS番地、SNOBUPC番地に、サウンドNOやその反転データを格納する(ST93)。また、作業テーブルSNDCTBLのADFLG番地、SNDADR番地、SNDFLG番地、SNDNO番地、DELTA番地、XN番地、ADFLG番地、SNDADR番地のデータを、この順番で取得する(ST94)。ここで、ADFLG番地とSNDADR番地のデータを2度取得するのは、ステップST94の処理中に、タイマ割込み(図7)や音声出力割込み(図14)が生じて、格納データが変化する可能性があるからである。したがって、最初と最後のデータが一致しない限り、全てのデータを取得し直すことになる。
次に、(SNDFLG+SNDNO+DELTA+ADFLG+XN+SNDADRH+SNDADR L)の16bit加算演算によってチェックサムを算出し、その反転データをB CS番地に格納する(ST95)。なお、SNDADRHは、4バイト長のアドレス値(SNDADR番地から4バイト)の上位2バイト、SNDADR Lはその下位2バイトを意味する。その他、作業テーブルSNDCTBLのBDELTA番地、B XN番地、B ADFLG番地、B SNDADR番地、B SNDNO番地、BSNDFLG番地にバックアップデータを記憶する。これもステップST94の処理中に、タイマ割込み(図7)や音声出力割込み(図14)が生じて、格納データが変化する可能性があることを考慮したものである。
続いて、サウンドNOに対応するアドレス情報その他の情報を、図5(a)の参照テーブルSNDTBLに基づいて取得し、作業テーブルSNDCTBLのSNDSTR番地、SNDEND番地、SNDLOOP番地、SMPFRQ番地に記憶する(ST96)。
このステップST92〜ST96の処理は、制御用作業テーブルSNDCTBL(BGM用)及びSNDCTBL(SE用)について行われるが、制御用作業テーブルSNDCTBLの内容を更新するのは、メインルーチンの実行中(主としてST4〜ST8)にも、サンプリング周期(τ)毎に、音声情報の出力処理(図14)が進行しているからである。
以上のようにしてステップST5の処理が終われば、コマンド変換処理と乱数振分け処理とを行う(ST6)。また、新規の制御コマンドを受信していた場合には、COMWRT番地に5AHを記憶する(ST6)。ここでコマンド変換処理とは、主制御基板1からの制御コマンドを循環的に記憶しているRING BUFFER領域(受信バッファ図15(b)参照)をチェックして、もし新規の制御コマンドが検出された場合には、図1(a)のような変換テーブルを参照して、制御コマンドをFiコマンドに変換する処理である。また、乱数振分け処理とは、図1(b)のような抽選テーブルを参照して、Fiコマンドを変更する処理である。
乱数振分け処理では、具体的には、コマンド変換処理によって決定されたFiコマンドと、乱数値RNDとによってFiコマンドを変更する。ここで、乱数値RNDは、例えば0〜255(=RND MAX)までの数値である。したがって、図1(b)の例では、コマンド変換処理によって決定されたFiコマンドが11Hの場合には、0≦乱数値RND≦68又は79≦乱数値RND≦255であればFiコマンド=11Hのままであるが、69≦乱数値RND≦78であればFiコマンド=83Hと変更されることになる。
次に、乱数値RNDを更新する(ST7)。この実施例では、乱数値RNDは0〜255(=RND MAX)の数値であるから、その数値範囲内で乱数値RNDをインクリメント(+1)することで更新される。続いて、サウンドNO書込み完了フラグRCMDFLGの値がチェックされ、このフラグRCMDFLGがセットされていなければ、新規に出力すべき音声情報がないと判断してステップST4の処理に戻る(ST8)。なお、サウンドNO書込み完了フラグRCMDFLGは、タイマ割込み処理(図7)において新規の制御コマンドに対応するサウンドNOが決定された際にセットされている(図9(a)ST58参照)。
そのため、ステップST8の判定において、サウンドNO書込み完了フラグRCMDFLGがセットされていることが確認された場合には、サウンドNO解析処理を実行することになる(ST9)。具体的には、タイマ割込み処理(図7)において、書込まれているサウンドNOを作業領域RCMDにコピーすると共に、そのサウンドNOに対応する各種の情報をサウンド制御用の作業テーブルSNDCTRLの該当欄に記憶する(ST9)。
また、サウンドNO解析処理(ST9)では、サウンドNOの正当性も判定されるので、正当でないと判定された場合にはステップST4に戻り、正当であると判定された場合に限り、次の音声出力起動処理(ST11)に移行する。なお、サウンドNOが正当でないのは、複数の割込み処理が重層的に実行されることがあるためと考えられるが、このような場合には音声出力起動処理がスキップされるので、異常な音声情報が出力されることが防止される。
一方、ステップST10の判定において、サウンドNOが正当であると判定された場合には、音声出力起動処理として、抽出されているサウンドNOに対応する一連の音声データのサンプリング周期(τ)を特定して、このサンプリング周期(τ)毎にTPU16から内部割込み信号CH0が出力されるよう設定する(ST11)。そして、ステップ4の処理に戻るが、TPU16から内部割込み信号CH0が出力されるよう設定されたことにより、以降は、サンプリング周期(τ)毎に内部割込みが生じ、特定されたサウンドNOに対応する音声データがサンプリング周期(τ)毎に出力されることになる(図15参照)。
以上説明したように、電源投入後はステップST4〜ST11までの処理が無限ループ状に繰り返されるが、そのようなメインルーチンの処理に平行して、図7に示すタイマ割込み処理が行われる。タイマ割込み処理では、Siコマンドの再生時間を管理しているBGM用変数TIMEBG,及びSE用変数TIME SEがゼロになるまでデクリメント(−1)される。また、サウンドNOの再生時間を管理しているBGM用変数PT1、及びSE用変数PT2がゼロになるまでデクリメントされる。図2に関して先に説明したように、Siコマンド及びサウンドNOは、その再生時間が特定されて抽出されているが、その特定された再生時間を実現するべく各変数TIMEBG,TIME SE,PT1,PT2がデクリメントされるのである。なお、タイマ割込みの割込み周期が4mSであることから、例えば、9.4秒の再生時間を実現するのに、9400/4=2350回の割込み処理を要することになる。
続いて、作業領域COMWRTの値が05Hであるか否かが判定される(ST21)。図6のステップST6において説明した通り、新規の制御コマンドを取得した場合には、作業領域COMWRTに05Hが書込まれている。そこで、作業領域COM WRT=05Hの場合には、Fiコマンド用の作業領域とSiコマンド用の作業領域とを初期設定した後(ST22)、コマンドバッファ領域であるCOMSND(不図示)に記憶されているFiコマンドを、Fiコマンド記憶領域であるCOM NUMに格納する(ST23)。
Fiコマンド用とSiコマンド用の作業領域は、図7(b)と図7(c)に示すデータ構造をしており、Fiコマンド用の作業領域には、記憶領域COMNUMが設けられている。また、ステップST20で問題となるSiコマンド用の時間変数TIME BG,TIME SEは、Fiコマンド用の作業領域に設けられており、サウンドNO用の時間変数PT1,PT2はSiコマンド用の作業領域に設けられている。
ステップST23の処理が終われば、Fiコマンド記憶領域COMNUMの記憶内容をビット反転させてバッファ領域BUP NUMに記憶させると共に、新規の制御コマンドに対する初期処理が終わったことを示すべくCOMWRT番地にゼロを格納する(ST24)。なお、COM WRT番地=0(COM WRT≠05H)の場合にはステップST22〜ST24の処理はスキップされる。
続いて、Fiコマンドの展開処理が行われる(ST25)。Fiコマンド展開処理の詳細は図8に示す通りであるが、簡略化して説明すると、COMNUMに格納されているFiコマンドと、Si進行カウンタとに基づいて、これから実効化すべきSiコマンドが特定される。なお、Si進行カウンタとは、Fiコマンド用作業領域中のCNTBG及びCNT SEの値であり、1つのFiコマンドに対して、BGM(背景音)用SiコマンドとSE(報知音)用Siコマンドとが特定される。そして、特定されたBGM(背景音)用SiコマンドとSE(報知音)用Siコマンドとは、それぞれ、図7(c)のBGM用エリア1と、SE用エリア2のPTNUMに格納される。
以上の処理によって、これから実効化すべきSiコマンドが特定されたので、次に、そのSiコマンドについてデータ展開処理が行われる(ST26)。Siコマンドデータ展開処理の詳細は、図9に示す通りであるが、簡略化して説明すると、SiコマンドとサウンドNO進行カウンタPTCNTとに基づいて、これから実効化すべきサウンドNOが特定される。ここで進行カウンタとは、BGM用エリア1のPT CNT、及びSEエリア2のPTCNTの値であり、1つのFiコマンドに対して、BGM用とSE用のサウンドNOが特定される。そして、特定された2種類のサウンドNOは、それぞれ、図7(d)に示すRCMDBF1とRCMDBF2に格納される。
図8は、Fiコマンド展開処理(図7のST25)の具体的内容を示すフローチャートである。先ずFiコマンド用の作業領域(図7(b)参照)についてのエラー確認処理(ST30)が実行される。具体的には、(a)COM NUMの値とBUP NUMの反転値との比較、(b)COM NUMに記憶されているFiコマンドが所定の数値範囲内か否かの正当性チェック、(c)CNTBGの値とBUP BGの反転値との比較、(d)CNT SEの値とBUP SEの反転値との比較などが行われ、一つでも異常が検出されたらFiコマンド用の作業領域(図7(b))を初期設定して処理を終える。このように、本実施例では、Fiコマンドの展開処理に先だって異常判定が行われるので、異常な音声情報が出力されることがない。
次に、変数TIMEBGの値がゼロになったか否かが判定される(ST31)。変数TIME BGは、BGM用のSiコマンドの再生時間を管理するものであり、図7(a)のステップST20において4mS毎にデクリメントされる変数である。したがって、TIMEBG=0の場合には、次に実効化すべきSiコマンドをするべくステップST32の処理に移行する。具体的には、COM NUM番地の格納データ(Fiコマンド)に対応する一群のSiコマンドのうち、BGM進行カウンタCNTBGに対応するデータDx(Siコマンド)を取得する(ST32)。
そして、そのSiコマンドがエンドコードENDCD(図3参照)であるか否かが判定され(ST33)、エンドコードENDCDでなければ、そのSiコマンドの再生時間を、時間変数TIMEBGの初期値として設定する。次に、ステップST32で取得したデータDxが継続コードであるか否かが判定され(ST35)、継続コードでなければ、Siコマンド用の作業領域(図7(c))のうち、BGM用作業エリア1を初期設定する(ST36)。具体的には、図7(c)に示すSEMIDT番地からの4番地(PTTIME,PT NUM,PT CT)に00Hを格納すると共に、続く2番地(PT NUM BP,PTCNT BP)に0FHを格納する。
その後、ステップST32の処理で取得したSiコマンド(Dx)をBGM用作業エリア1のPTNUM番地に格納すると共に、Siコマンド(Dx)の反転データをBGM作業エリア1のPT NUM BPに格納する(ST37)。そして、BGM進行カウンタCNTBGの値をインクリメント(+1)すると共に、BGM進行カウンタCNT BGの反転データをBUP BG番地に格納する(ST38)。なお、反転データを格納するのは、これから実効化しようとするSiコマンドや、サウンドNOを特定するBGM進行カウンタの値の正当性を必要時にチェックできるようにするためである。
以上の処理によって、Siコマンド用の作業領域(図7(c))のうち、BGM用エリア1の処理が終わるので、次に、SE用エリア2の処理に移行する。ステップST39〜ST46の具体的な処理内容は、上記したステップST31〜ST38の処理内容と実質的に同じであり、SE用エリア2(SEMIDT+6番地から始まる6番地分)に必要なデータが格納される。また、SE進行カウンタCNTSEの値もインクリメント(+1)される(ST46)。
続いて、図7のSiコマンドデータ展開処理(ST26)について、図9に示すフローチャートに基づいて説明する。先ず、Siコマンドのエラーチェック処理が行われる(ST50)。具体的には、図7(c)に示すBGM用エリア1における(a)PT NUM番地のデータとPT NUM BP番地の反転データとの対比、(b)PT CNT番地のデータとPTCNT BP番地の反転データとの対比や、また、SE用エリア2における(c)PT NUM番地のデータとPT NUMBP番地の反転データとの対比、(d)PT CNT番地のデータとPT CNT BP番地の反転データとの対比などの処理が行われ、異常が検出されたらBGM用エリア1とSE用エリア2を初期設定して処理を終える。
次に、レジスタR3をゼロクリアすると共に、Siコマンド用の作業領域(図7(b))のうち、BGM用エリア1についての初期処理を行う(ST51)。その結果、最初はBGM用エリア1についての作業が行われることになり、先ずBGM用のサウンドNOの再生時間を管理する時間変数PT1の値がゼロか否かが判定される(ST52)。時間変数PT1は、図9(a)のステップST56の処理で初期値設定され、タイマ割込み毎に図7(a)のステップST20の処理でデクリメント(−1)されている。そして、PT1=0である場合とは、現在のサウンドNOを実行し終わり、次のサウンドNOの実行に移行すべき時であるから、ステップST53以下の処理を実行する。
先ず、図4(a)に図示するような指示テーブルPARTSCOMのアドレスリストから、BGM用エリア1(図7(c))のPT NUM番地に格納されたSiコマンドに対応するPARTS COMiのアドレス情報を抽出する(ST53)。次に、抽出されたPARTSCOMiエリア(図4(b)参照)に記憶されている一群のサウンドNOデータから、図7(c)のサウンドNO進行カウンタPT CNTに対応するサウンドNOデータDzを抽出する(ST54)。
そして、抽出されたデータDzがエンドコードENDCDでない場合には、ステップ54の処理によって特定されたサウンドNOの再生時間を、図7(c)のBGM用エリア1のPTTIME番地に初期設定する(ST56)。また、データDzが継続コードでない場合には、抽出したサウンドNO(Dz)を、図7(d)に図示する作業領域RCMDBF1番地に格納すると共に、書込み完了フラグRCMDFLGの該当ビットを1にセットする(ST58)。
また、図7(c)のBGMエリア1の、サウンドNO進行カウンタPTCNTの値をインクリメントすると共に、その反転データをPT CNT BP番地に格納する(ST59)。以上の処理によって、図7(c)のBGMエリア1に対する処理が終わるので、次に、ステップST51の処理でゼロリセットされているレジスタR3の値をチェックして(ST70)、レジスタR3に05Hに書込んだ後、SE用エリア2についての初期処理を行って(ST71)ステップST52の処理に戻る。
その結果、続いてSR用エリア2について、上記したBGM用エリア1用の作業と同一の作業が行われることになる。すなわち、PT2=0であれば、PARTSCOMiエリア(図4(b)参照)に記憶されている一群のサウンドNOデータから、図7(c)SE用エリア1のサウンドNO進行カウンタPT CNTに対応するサウンドNOデータDzを抽出する(ST54)。そして、ステップ54の処理によって特定されたサウンドNOの再生時間を、図7(c)のSE用エリア2のPTTIME番地に初期設定し(ST56)、サウンドNO(Dz)を、図7(d)に図示する作業領域RCMDBF2番地に格納すると共に、書込み完了フラグRCMDFLGの該当ビットを1にセットする(ST58)。なお、ステップST58の処理は、詳細には、図9(b)に示す通りであり、図9(c)は、図7(d)を転記したものである。
続いて、図10のフローチャートについて説明する。図10は、図6のサウンドNO解析処理(ST9)の内容を詳細に図示したものである。サウンドNO解析処理では、先ず、図9(c)に示すサウンドNO書込み完了フラグRCMDFLGの該当ビットをチェックして、サウンドNO第1バッファRCMDBF1(図9(c)参照)にサウンドNOが格納されているか判定する(ST70)。ここで、判定結果がYesなら、受信バッファ1であるRCMDBF1のデータを作業領域RCMD番地にコピーすると共に、サウンドNO書込み完了フラグRCMDFLGの該当ビットをリセットして作業終了を示す(ST71)。
一方、サウンドNO書込み完了フラグRCMDFLGのチェックにより、受信バッファ1が空であると判定されると、サウンドNO書込み完了フラグRCMDFLGの該当ビットをチェックして、サウンドNO第2バッファRCMDBF2にサウンドNOが格納されているか判定する(ST72)。そして、判定結果がYesなら、受信バッファ2であるRCMDBF2のデータを作業領域RCMD番地にコピーすると共に、サウンドNO書込み完了フラグRCMDFLGの該当ビットをリセットして作業終了を示す(ST72)。
このように、受信バッファ1と受信バッファ2とを順番にチェックするのは、一度に処理できる音声情報は一つであるためである。すなわち、受信バッファ1に格納されているサウンドNOをRCMD番地に格納し、その後の音出力起動(ST11)からステップST4〜ST8の処理を経た上で(この間に一度だけCH0の内部割込み処理が実行され受信バッファ1に対応する音声が出力される可能性がある)、改めて、受信バッファ2に格納されているサウンドNOをRCMD番地に格納するのである。なお、図6のステップST8では、「サウンドNO書込み完了」と判定されたのに、図10のステップST70及びST72の判定が共にNOである場合は、異常状態であるのでキャリーフラグCYを1にセットして処理を終える(ST80)。
但し、通常の場合には、受信バッファ1又は受信バッファ2に格納されていたサウンドNOがRCMD番地にコピーされるので(ST71,ST73)、次に、そのサウンドNOの値が所定の数値範囲内のものであるか否かが判定される(ST74)。例えば、サウンドNOが、0≦サウンドNO≦SNDmaxの数値範囲に割り振られている場合には、SNDmaxより大きいサウンドNOはエラーと判定されて、ステップST80に移行する。このような判定処理を設けているので、異常な音声が出力されたり、プログラムが暴走することが未然に防止される。
サウンドNOが所定の数値範囲を越えていない判定された場合には、更に、サウンドNOの値がチェックされ、正常ならばキャリーフラグCY=0とし、異常ならばキャリーフラグCY=1にする(ST75)。サウンドNOのチェックには、図5に示す参照テーブルSNDTBLを参照する処理も含まれており、サウンドNOに対応する参照テーブルSNDTBLの該当番地の内容がゼロであれば、ADPCMデータは存在しないことから、異常としてキャリーフラグCY=1とされる。
ステップST75の処理が終われば、次に、キャリーフラグCYの値に基づいてサウンドNOの値が異常か否かが判定され(ST76)、正常ならば当該サウンドNOを再生する際のサンプリング周波数を取得する(ST77)。詳細には、図11(a)に示す通りであり、背景音(BGM)用と効果音(SE)用に確保されているサウンド制御用の作業テーブルSNDCTBL(図11(b)、図13)のうち、何れを使用するかを決定し(ST80)、何れか一方の作業テーブルSNDCTBLの該当欄にサウンドNOを格納する(ST81)。なお、背景音(BGM)用と効果音(SE)用のサウンド制御用作業テーブルSNDCTBLのうち、いずれを使用すべきかはサウンドNOから特定できる。すなわち、図5(b)(c)に示すように、サウンドNOからそれがBGM音に関するものであるか、SE音に関するものであるか特定できるようになっており(BGM1+2番地、SE1+2番地を参照)、以降の処理も含め、特定された一方のサウンド制御用作業テーブルSNDCTBLが使用される。
ステップST81の処理が終われば、サウンドNOに対応する音声データ(ADPCMデータ)が格納されている位置を特定して、そのヘッダー情報から音声データの開始番地や終了番地などの情報を、サウンド制御用作業テーブルSNDCTBLの該当欄に格納する(ST82)。また、音声データのヘッダー情報からサウンドフラグ(BGM/SE)と、繰返し再生LOOPの有無の情報と、サンプリング周波数とを取得して、サウンド制御用作業テーブルSNDCTBLの該当欄に格納する(ST83)。そして最後に、データチェック処理を行うが(ST84)、その処理内容は、図12のフローチャートに記載の通りであり、図6のステップST5に関する処理と同一である。
図14は、図6の音出力起動処理(ST11)の実行を条件に開始される音声出力用の割込み処理(TPU16のCH0の内部割込み)を説明するフローチャートである。例えば、ステップ11の処理によって、サンプリング周波数8KHzの音声データを再現するよう指示された場合には、125μS毎にこのCH0の割込み処理が実行され、またサンプリング周波数16KHzの音声データを再現すべき場合には、62.5μS毎にCH0の割込み処理が実行される。なお、この内部割込みは、禁止(マスク)可能な割込みであるから、CPUがEI命令を実行することを条件に受け付けられることになり(ST4参照)、要するに、無限ループ処理(主としてST4〜ST8)を一巡することが実行の条件となる。
以上を踏まえて図14について説明する。音声出力割込み(SNDINT)では、先ず、SNDDATA R番地の内容をD/Aコンバータ15のデータレジスタDADR0に出力する(STOUT1)。SNDDATAR番地には、先の割込み処理(SND INT)におけるステップSTOUT5の処理によって右チャンネル用BGM音のPCMデータ(8ビット長)が格納されているので、そのPCMデータをD/Aコンバータ15に出力することになる。なお、D/Aコンバータ15では、受けたPCMデータをアナログ信号DA0に変換して右チャンネル用の増幅器11Rに出力する。
次に、SNDDATAL番地の内容をD/Aコンバータ15のデータレジスタDADR1に出力する(STOUT2)。SNDDATA L番地には、先の割込み処理(SNDINT)におけるステップSTOUT8の処理によって左チャンネル用SE音のPCMデータが格納されているので、そのPCMデータをD/Aコンバータ15に出力することになる。なお、D/Aコンバータ15では、受けたPCMデータをアナログ信号DA1に変換して左チャンネル用の増幅器11Lに出力する。
そのようなD/Aコンバータ15の動作に平行して、CPU13は、サウンド制御用(BGM)の作業テーブルSNDCTBLのSNDADR番地に記憶されているアドレス値を取得して圧縮音声データ(ADPCMデータ)を取得し(STOUT3)。また、SNDADR番地に記憶されているアドレス値(サウンドデータ変換中のデータのアドレス)を次のアドレス値に更新する(STOUT4)。
次に、ステップSTOUT3の処理で取得したADPCMデータをPCMデータ(背景音BGM)に変換して作業領域であるSNDDATAR番地に記憶する(STOUT5)。なお、この実施例では8ビットのPCMデータが4ビットのADPCMデータに圧縮されているので、その復元を行う。
以上の処理によって背景音(BGM)が復元できたので、次に、効果音(SE)についての復元処理を行う。具体的には、サウンド制御用(SE)の作業テーブルSNDCTBLのSNDADRに記憶されているアドレス値を取得して圧縮音声データ(ADPCMデータ)を取得し(STOUT6)、SNDADR番地に記憶されているアドレス値(サウンドデータ変換中のデータのアドレス)を次のアドレス値に更新する(STOUT7)。
そして、ステップSTOUT6の処理で取得したADPCMデータをPCMデータ(効果音SE)変換した後(STOUT7)、作業領域SNDDATAL番地に格納して割込み処理を終える(STOUT9)。なお、ステップSTOUT5とSTOUT8の処理で記憶された音声データは、次回の音声割込み時にD/Aコンバータに出力されることになる(STOUT1,STOUT2)。
続いて、図15を参照しつつ、主制御基板1から制御コマンドを受信するための受信割込みについて説明する。先に説明したように、主制御基板1は、制御コマンド出力時にストローブ信号STBを合わせて出力しており、そのストローブ信号の受信に起因して図15の処理が開始される。なお、この割込みも禁止(マスク)可能割込みであるから、メインルーチン(主としてST4〜ST8)の一巡を条件に受け付けられる。
受信割込みでは、コマンド入力ポート12から連続して2回データを受信し、その2回のデータが一致するか否かを先ず判定している(同一チェック)。これは、雑音などの影響でビット化けした制御コマンドデータを受信しないためであり、この同一性チェックが、7回連続でOKであることを条件に、次の受け付け処理に移行するようにしている(STIN1、STIN2)。
ステップSTIN2の判定がYesとなると、次に、今回受信した制御コマンドが、直前に受信した制御コマンドと対比され、一致する場合にはそのまま処理を終える(STIN3)。これは、主制御基板1から同一の制御コマンドが連続して出力されることがあり得ないので、何らかの誤動作であると判断して受信した制御コマンドを廃棄するのである。
一方、新規に受信した制御コマンドが、直前に受信した制御コマンドと異なる場合には、書込みポインタWRPOINTの示す番地に制御コマンドを格納する(STIN4)。また、書込みポインタWR POINTの値を更新する(STIN5)。図15(b)に示すように制御コマンドを格納する受信バッファは、リングバッファ構造になっており、書込みポインタWRPOINTの値は循環的に更新される。なお、受信バッファに格納された制御コマンドは、図6のステップST6の処理において読み出される。読み出し時には読出しポインタRDPOINTが用いられ、この読出しポインタRD POINTも循環的に更新されて使用される。
以上、本発明の実施例について具体的に説明したが、本発明の趣旨は複数のスピーカを独立的に駆動可能に構成することであり、その他は適宜に変更可能である。例えば、上記に実施例では、右側スピーカからは常に背景音BGMを発生させる一方、左側スピーカからは常に効果音SEを発生させたが、SE音とBGM音の発生位置を適宜に変更するのも好適である。このような遊技機の場合、主制御基板1における抽選処理によって大当り状態となった場合には、直ちに液晶ディスプイ8に大当り状態を報知するのではなく、特別な図柄変動演出(必ずしも当選状態で終結するとは限らないリーチアクション)を一定時間継続させた後に大当り状態を報知しているが、このリーチアクションに合わせて、所定確率で左右のスピーカ動作を反転させるのが好適である。
この第2実施例ではスピーカの反転動作を所定確率で実行するので、大当り状態を所定の信頼度をもって音声的に予告することになり、遊技者に大当り状態を推理させるという新たな興趣を与えることができる。例えば、この実施例では、液晶ディスプレイ8におけるリーチアクションにも各種のものが用意されており(ノーマルリーチ、スペシャルリーチなど)、その種類ごとに大当り状態の予告動作としての信頼性が異なるが、図柄制御基板2における信頼度N%(大当り状態で終わる可能性がN%)のリーチアクションが開始されるのに合わせて、音声制御基板3では、信頼度M%の確率(大当り状態で終わる可能性がM%)でスピーカの使用位置を反転させれば良い。
また、最終的に当選状態で終わる図柄演出(リーチアクション)を実行している場合でも所定の信頼度でスピーカの使用位置を反転させると共に、最終的にハズレ状態で終わる図柄演出を実行している場合でも、所定の信頼度でスピーカの使用位置を反転させるのが好適である。すなわち、スピーカの反転動作が生じてもハズレ状態で終わることもあり、逆に、スピーカの反転動作が生じなくても大当り状態で終わることもあるので遊技者に推理する喜びを与えることができる。
以下、このような動作を実現できる実施例について具体的に説明する。図18〜図21に記載の通り、この実施例では、スピーカの反転動作についての抽選動作を行う場合(そのような制御コマンドを受信した場合)には、一連の効果音を特定するSE用のSiコマンド列には、その先頭にSiコマンドFFHを付加するようにしている(図18(a)、図19)。ここで、SiコマンドFFHは、これ以降のSiコマンド列を実効化する際にスピーカ位置の反転抽選を行うことを意味するコマンドである。なお、BGM用のSiコマンド列の先頭には、このようなSiコマンドは付加されない(図18(b))。そして、SiコマンドFFHは、サウンドNO=FFHを特定し(図20参照)、サウンドNO=FFHは、抽選の実行を指示するデータFFHとを特定するようになっている(図21(b)(c)参照)。
図22は、この第2実施例に係る音声制御基板3の構成を説明するブロック図である。この実施例ではアナログ切換えスイッチSWを設けて、このアナログ切換えスイッチSWをワンチップマイコン10の出力ポート19からの制御信号SGによって制御するようにしている。すなわち、制御信号SGがHレベルならアナログ信号DA0,DA1は、第1実施例の場合と同様に、アンプ11R,11Lに供給されるが、一方、制御信号SGがLレベルになるとアナログ信号DA0,DA1の伝送通路が逆転してアンプ11L,11Rに供給されるようになっている。そして、出力ポート19から出力される制御信号SGのレベルは、SiコマンドFFHが解釈されてサウンドNO(FFH)が抽出された段階で乱数抽選により決定される。
図23は、第2実施例の動作に特徴的な部分のみを記載したフローチャートであり、第1実施例の図6に対応するメインルーチンである。以下説明すると、ステップST9の処理によってサウンドNOが特定され、エラーが生じていない場合には、先ず、サウンドNOがFFHであるか否かが判定される(ST101)。そして、サウンドNO≠FFHであった場合には、出力ポート19からHレベルの制御信号SGを出力してスピーカSPを通常の状態で動作される(ST103)。
一方、サウンドNO=FFHであった場合には、スピーカの動作を反転させるか否かの抽選を行い、当選した場合には、出力ポート19からLレベルの制御信号SGを出力して、アナログ切換えスイッチSWの伝送通路を切換える。この結果、以降のBGM音は、D/AコンバータのDA0端子からアンプ11Lに供給されて左のスピーカSPから出力され、SE音は、D/AコンバータのDA1端子からアンプ11Rに供給されて右のスピーカSPから出力されることになる(スピーカの反転動作)。
図24は、この抽選動作を説明する図面である。図24を参照しつつステップST102について更に説明すると、サウンドNO=FFHであると判定したCPUは、これから再生しようとする音声情報がどの制御コマンドによるものであるかを特定するため、受信バッファ(図24(a))のうち、ポインタRDLOTが指示する制御コマンドを読み出し、その後、ポインタRD LOTの値を更新する。次に、読出した制御コマンドを検索キーにして抽選テーブル(図24(b))を検索し、適宜な乱数値RND’によってスピーカの反転動作を行うか否かを決定する。
図24(b)の抽選テーブルは、スピーカ反転動作の抽選を行うか否かを制御コマンド毎に規定し、また、抽選を行う場合の抽選値を決定している。便宜上、図23(b)では当選確率を記載しているが、例えば、0〜99までの数値範囲で変化する乱数値RND’を使用する場合には、受信した制御コマンドがA001Hであれば、0≦RND’<10なら反転動作を行い、10≦RND’<100なら反転動作を行わないことになる。
この実施例では、最終的に当選状態となる場合には、反転動作を行う当選確率を高め(70%以上)、一方、最終的にハズレ状態となる場合には、反転動作を行う当選確率を低くしている。また、図柄制御基板における液晶ディスプレイ8における図柄変動動作が行われる制御コマンドのみ(A0**)スピーカの反転動作の抽選を行い、他の制御コマンドの場合には、必ずスピーカをノーマルに駆動している。したがって、遊技者にとっては、液晶ディスプレイ8を注目すると共に、音声演出の発せられる位置によって、今回の図柄変動がどのように終結するかを推理することができ、新たな遊技性を実現することができる。
最後に本発明が好適に適用される弾球遊技機について確認的に説明する。図25は、本実施例のパチンコ機22を示す斜視図であり、図26は、同パチンコ機22の側面図である。なお、パチンコ機21は、カード式球貸し機22に電気的に接続された状態で、パチンコホールの島構造体の長さ方向に複数個が配設されている。
図示のパチンコ機21は、島構造体に着脱可能に装着される矩形枠状の木製外枠23と、外枠23に固着されたヒンジHを介して開閉可能に枢着される前枠24とで構成されている。この前枠24には、遊技盤25が裏側から着脱自在に装着され、その前側には、ガラス扉26と前面板27とが夫々開閉自在に枢着されている。
前面板27には発射用の遊技球を貯留する上皿28が装着され、前枠24の下部には、上皿28から溢れ出し又は抜き取った遊技球を貯留する下皿29と、発射ハンドル30とが設けられている。発射ハンドル30は発射モータと連動しており、発射ハンドルの回動角度に応じて動作する打撃槌31(図28参照)によって遊技球が発射される。
上皿28の右部には、カード式球貸し機22に対する球貸し操作用の操作パネル32が設けられ、この操作パネル32には、カード残額を3桁の数字で表示するカード残額表示部32aと、所定金額分の遊技球の球貸しを指示する球貸しスイッチ32bと、ゲーム終了時にカードの返却を指令する返却スイッチ32cとが設けられている。ガラス扉26の上部には、大当り状態を示す大当りLEDランプP1が配置されている。また、この大当りLEDランプP1に近接して、補給切れ状態や下皿の満杯状態を示す異常報知LEDランプP2,P3が設けられている。
図27に示すように、遊技盤25には、金属製の外レールと内レールとからなるガイドレール33が環状に設けられ、その内側の遊技領域25aの略中央には、液晶カラーディスプレイ8が配置されている。また、遊技領域25aの適所には、図柄始動口35、大入賞口36、複数個の普通入賞口37(大入賞口36の左右に4つ)、2つの通過口であるゲート38が配設されている。これらの入賞口35〜38は、それぞれ内部に検出スイッチを有しており、遊技球の通過を検出できるようになっている。
液晶ディスプレイ8は、大当り状態に係わる特定図柄を変動表示すると共に背景画像や各種のキャラクタなどをアニメーション的に表示する装置である。この液晶ディスプレイ8は、中央部に特別図柄表示部Da〜Dcと右上部に普通図柄表示部39を有している。普通図柄表示部39は普通図柄を表示するものであり、ゲート38を通過した遊技球が検出されると、表示される普通図柄が所定時間だけ変動し、遊技球のゲート38の通過時点において抽選された抽選用乱数値により決定される停止図柄を表示して停止するようになっている。
図柄始動口35は、左右1対の開閉爪35aを備えた電動式チューリップで開閉され、普通図柄表示部39の変動後の停止図柄が当り図柄を表示した場合には、開閉爪35aが所定時間だけ開放されるようになっている。図柄始動口35に遊技球が入賞すると、特別図柄表示部Da〜Dcの表示図柄が所定時間だけ変動し、図柄始動口35への遊技球の入賞タイミングに応じた抽選結果に基づいて決定される停止図柄パターンで停止する。
大入賞口36は、前方に開放可能な開閉板36aで開閉制御されるが、特別図柄表示部Da〜Dcの図柄変動後の停止図柄が「777」などの当り図柄のとき、「大当り」と称する特別遊技が開始され、開閉板36aが開放されるようになっている。大入賞口36の内部に特定領域36bがあり、この特定領域36bを入賞球が通過すると、遊技者に有利な特別遊技が継続される。
大入賞口36の開閉板36aが開放された後、所定時間が経過し、又は所定数(例えば10個)の遊技球が入賞すると開閉板36aが閉じる。このとき、遊技球が特定領域36bを通過していない場合には特別遊技が終了するが、特定領域36bを通過していれば、最大で例えば15回まで特別遊技が継続され、遊技者に有利な状態に制御される。さらに、変動後の停止図柄が特別図柄のうちの一定図柄(以下、特定図柄)であった場合には、特別遊技の終了後に高確率状態に移行するという特典が付与される。
図28に示すように、前枠24の裏側には、遊技盤25を裏側から押さえる裏機構板40が着脱自在に装着されている。この裏機構板40には開口部40aが形成され、その上側に賞球タンク41と、これから延びるタンクレール42とが設けられている。裏機構板40の側部には、タンクレール42に接続された払出装置43が設けられ、裏機構板40の下側には払出装置43に接続された通路ユニット44が設けられている。払出装置43から払出された遊技球は、通路ユニット44を経由して上皿排出口28a(図25)から上皿28に払出されることになる。
裏機構板40の開口部40aには、遊技盤25の裏側に装着された裏カバー45と、入賞口35〜37に入賞した遊技球を排出する入賞球排出樋(不図示)とが嵌合されている。この裏カバー45に装着されたケースCA1の内部に主制御基板1が配設され、その前側に図柄制御基板2が配設されている(図26参照)。主制御基板1の下側で、裏カバー45に装着されたケースCA2の内部にランプ制御基板4が設けられ、隣接するケースCA3の内部に音声制御基板3が設けられている。
これらケースCA2,CA3の下側で、裏機構板40に装着されたケースCA4の内部には、電源基板6と払出制御基板5が設けられている。この電源基板6には、電源スイッチ53と初期化スイッチ54とが配置されている。これら両スイッチ53,54に対応する部位は切欠かれ、両スイッチを指で同時に操作可能になっている。発射ハンドル30の後側に装着されたケースCA5の内部には、発射制御基板7が設けられている。そして、これらの回路基板1〜7は夫々独立して構成され、電源基板6と発射制御基板7を除く制御基板2〜6には、ワンチップマイコンを備えるコンピュータ回路が搭載されている。
以上、本発明の一実施例について具体的に説明したが、本発明の遊技機は、上記した各実施例の構成に限らず適宜変更可能である。例えば、上記の実施例では、主制御基板と複数のサブ制御基板とをそれぞれ別の基板構成として、主制御基板からの制御コマンドを一方向通信によって伝送したが、例えば、図29の構成も含め、任意の組合せ構成が可能である。図29では、矢印が制御コマンドなどの信号の伝送方向を示しており、例えば、図29(b)のように、確認信号(ACK)を返送するようにしても良い。また、音声制御基板を独立した回路基板に構成する必要はなく、図29(b)(c)のように、他の制御部との複合基板としても良い。
また、音声制御基板3とアンプ11R,11Lとを別基板構成としても良い。この場合、左右のアンプ11R,11Lをそれぞれ別々に分離した基板としても良い。また、実施例では、演出制御部が2種類の音声信号を2つのアンプ及びスピーカに別々に出力するよう構成されているが、3種類以上の音声信号を3つ以上のアンプ及びスピーカに別々に出力するようにしても良い。