はっくはっくキッチン
Hack Hack Kitchen

AVR による PC-9801 起動音プレイヤー

すでに何番煎じか分かりませんが、PC-9801 の起動音を再現するものです。 いまさらではありますが「16bitセンセーション ANOTHER LAYER」を観て懐かしくなったので作ってみました。

Boot-Sound of PC-9801
Boot-Sound of PC-9801 using AVR
Boot-Sound of PC-9801 using AVR (Video)

回路

圧電サウンダ (他励振) のピンをそれぞれ ATtiny85 の 5 Pin (PB0/OC0A) 及び GND に接続して下さい。 必要に応じて保護抵抗を入れるなどして下さい。 「 圧電サウンダ、圧電振動板 (他励振タイプ) の駆動回路例を教えてください。 」(村田製作所) が参考になるでしょう。

動作確認

以下の AVR で確認しました。

  • ATtiny85

ATtiny25, 45 の場合はソースファイル中の .include の部分を変更してアセンブルすれば使えると思います (未確認)。

使い方

  • git clone https://github.com/TPKato/PC-9801-pipo

  • アセンブル

    例:

    avra pipo.asm
  • 書き込み

    例:

    avrdude -c [programmer type] -p t85 -b 2400 -e -U flash:w:pipo.hex

    ([programmer type] は使用しているライターを指定して下さい)

AVR がリセットされると、一定時間 (プログラム中で指定) 経過してからピポ音が鳴ります。 可変抵抗で長さが変わるとか、プッシュスイッチで再生するとか、ボリュームを調整するなどの機能はありません。 無音期間や音の長さを変えたい場合はソースを変更して再アセンブル + 書き込みして下さい。

プログラムについて

Timer0 でサウンド用の PWM 信号を、Timer1 で時間計測用の 10 kHz のクロックを生成しています。 動作後は power-down mode に入るので、大変省電力です (1 μA 未満)。

参考

以下に参考値として、いくつかのピポ音の長さを挙げておきます (「70 ms + 100 ms」はピが 70 ms、ポが 100 ms の意)。 録音等から計測したものですので正確性は保証しません。

PC-9801DA (実録PC-98シリーズ起動音 のデーターを元に計測)

70 ms + 100 ms

PC-9801VX21 (実録PC-98シリーズ起動音 のデーターを元に計測)

165 ms + 165 ms

テレビアニメ『16bitセンセーション ANOTHER LAYER』 次回予告 (第1, 2, 3話で確認)

150 ms + 160 ms

「16bitセンセーション ANOTHER PLAYER」(公式WEBラジオ) オープニング (第1, 2, 3回で確認)

270 ms + 270 ms