PR 記事には広告が含まれています
スポンサーリンク
Translate

燃えプロの音声を生で聴く装置を作っています

スポンサーリンク
FullSizeRender
燃えプロ(燃えろプロ野球)は「ストライク」「アウト」と、しゃべる野球ゲームで一世を風びしました。この声は、カセットの中の音声を再生するICから出ています。今回はこのICをカセットから取り出して、ファミコン無しで直接聴くことができる回路を作ってみたいと思います。
 カセット購入
燃えプロのカセットはハードオフで100円で買ってきました。何本もジャンク売り場で売っているので相当売れたんでしょうね。早速カセットを開けます。
FullSizeRender
たくさんICが入っています。下の段の大きなICが、ゲームのプログラムが格納されているROMと、キャラクラーのデータを格納するROMです。中段のICは、たくさんのキャラクターを表示できるようにアドレスを拡張するためのICで、74HC139(2to4ラインデコーダ)と74HC174(6bitラッチ)でした。上段にあるD7756CというのがuPD7756という今回使う音声再生用のICとなります。
 uPD7756の使い方
uPD7756は256kbitの音声格納用のROMを内蔵したADPCM再生ICです。最大256メッセージ、全てのメッセージの合計で最大12秒の音声を再生できます。

スクリーンショット 2019-01-20 18.08.33

燃えプロのカセットに入っているuPD7756Cの場合、予め16種類の音声が記録されています。
  1. ストライク
  2. ボール
  3. タイム
  4. アウト
  5. セーフ
  6. ファール
  7. フェア
  8. バッターアウト
  9. プレイボール
  10. フォアボール
  11. ホームラン
  12. ピッチャー交代
  13. イテッ
  14. アホ
  15. カキン(バットにボールが当たる音)
  16. 歓声(ホームランの時の歓声音)

 メッセージの選択と再生

使い方は簡単。I0 〜I7のピンにメッセージの番号を2進数で設定して、/STのピンをLowにすると、そのメッセージが再生されます。燃えプロの場合16メッセージしか入っていないので、I4〜I7は常にLowで、I0〜I3の4bitだけを使います。
例えば、ホームランを再生したかったら、I3,I2,I1,I0 = 1010(1:Hi 0:Low)というように設定し、/STのピンをLowにします。
 クロック生成
このICには再生用のサンプリングクロックを生成する回路が内蔵されています。
スクリーンショット 2019-01-21 9.37.57
ただし外部に640KHzのセラミック発振子とコンデンサが必要です。640kHzというのは今ではほとんど手に入らないでしょう。カセットの基板にはこの貴重なセラミック発振子が付いています。
IMG_7141
水色の四角いのがセラミック発振子です。C1とC2はデータシートには220pFとありますが、カセットの基板には150pFがついています。
 ADコンバータの設定
スクリーンショット 2019-01-21 9.50.28
このICのDAコンバーターは、電圧値で出力される今のDAコンバーターとちょっと違います。DA出力ピン(AVO)はDAの値によって、電流を吸い込む量が変わるようになっています。その基準電流の大きさをREFのピンに接続した抵抗値で設定します。
moepro01
この電流吸い込み型のDA値を電圧に変換するために、AVOピンに抵抗を追加してプルアップします。
カセットの基板ではRREFが1kΩ、Rが150Ωでした。この設定にすることで、2.5Vくらいを中心に音声波形が出力されるようになります。
 CS、RESETピン
/CSピンはICの機能を有効化するためのピンで、Lowで有効です。カセットの基板はGNDに繋がっていました。
/RESETピンは12クロックサイクルの間(約20ms)Lowにすることで、ICをリセットできます。電源投入時と、音声再生中に別の音声を再生する際にRESETが必要です。

以上簡単な解説でした。詳しくはデータシートをご覧ください。

 音声再生回路の実験
必要な回路がわかったので、回路を作ってみましょう。
FullSizeRender
カセットの基板からICとセラミック振動子を取り外します。
FullSizeRender
ブレッドボードで回路を構築していきます。mbedねこちゃんは電源供給用に使っています。
回路図はこのようになりました。
moeprokairo
音声出力にアンプとスピーカーをつないでおきます。電源電圧は3.3Vから5Vで動作します。
メッセージ切り替えのスイッチでメッセージを選択します。例えばI0,I1だけ押すと「アウト」です。
再生ボタンを押すとメッセージが再生されます。
RESETピンは抵抗とコンデンサをつなぎ、電源が入った時にリセットがかかるようになっています。あと、再生中でも別の音声が再生できるよう、再生スイッチとRESETの間にコンデンサを入れてあります。再生スイッチを押すと、一瞬だけRESETがLowになって、現在再生中の音声が中断され、新しい音声が再生されます。
変更した部分は発振回路です。当初基板についていたセラミック発振子を使う、データシートと同じ回路にしていたのですが、なぜか発振しませんでした。基板から取り外した時に壊れてしまったのかもしれません。仕方がないので、NOTゲートとコンデンサと抵抗を使うRC発振回路を追加し、X1に640kHzを入力しました。
あとAVOのピンは220Ωでプルアップしました。カセットの基板では150Ωだったのですが、220Ωしか持っていなかったので。
さぁどんな音声が再生されるかは、こちらの動画をご覧ください。
懐しい音声が聞こえてきますねぇ。なかなか面白いです。「イテェ」「アホ」とかありましたねぇ。
4ビットの2進数でメッセージを選択しないといけないのが、ちょっと面倒です。次回は、16個のスイッチを使って、直接目的のメッセージが再生できるように改良したいと思います。
2019.1.23追加
つづきはこちらです
こちらの記事の内容がキットになりました!!作ってみたい方はこちら↓↓をクリック