S1985機でヌルヌルBadApple!!動画再生

〜 VDPアクセスに 1wait を〜




 BadApple!! 動画再生でゴミが出る場合

りゅん氏による似非SDisk用BadApple!!動画コンバータのページはコチラ

このBadApple!!動画再生プログラムはZ80ノーマルクロック(3.58MHz)で動作するものの、VDP(V9938/V9958)の性能限界ギリギリの高レートでデータ転送しているため、対応しているMSX本体が極めて限定的となっている。

実はパナMSXの一部の機種、具体的にはFS-A1FM/FX/WX/WSX/ST/GTでは、MSX EngineII(T9769)によりVDPアクセス時にハードウエア的に1wait発行される設定になっている(SANYOのT9769搭載機については未確認)。このためBadApple!!動画でデータを取りこぼすことなく表示が可能であるが、その他大多数のVDPアクセスno waitの機種では表示化けが発生する

ソフトウエア的にwaitを追加しようにも、Z80は1クロックで実行できる命令が存在しないため、解決手段はハードウエアの改造のみ、ということになる。


このチュートリアルではBadApple!!動画をヌルヌル再生するためのMSX改造の手法を解説する。とりあえず対象機種は松下FS-A1(初代),A1FとSONYのHB-F1XVということにしておくが、S1985搭載機であれば同様の手法で改造可能と思われる。作業内容としてはメインボードにダイオード1本付加するだけなので慣れた人なら簡単だろう。

注意! 本体改造は破壊の危険を伴うため、自己責任にて行うべし。未経験者にはオススメしない。この改造を行うとVDPアクセスに1wait追加され、僅かに動作が遅くなるが、1クロック=0.00000028秒 x VDPアクセス頻度の違いを人間が知覚することは不可能と思われる。そもそも松下のMSX2+以降の機種ではwaitが付加された状態がデフォルトであるので、既存のソフトが動作しない等の互換性問題も発生しないはずだが、一応気になる人はスイッチで切り替えられるようにすれば良いだろう。



S1985データシート

 

MSX SYSTEMI II (S1985) のデータシートを紐解くと、VDPアクセスに1wait発行する機能が用意されていることが分かる。/X7はキーボードリターン信号の1つで、この信号をリセット時にLレベルにすると「waitあり」に設定される仕組みになっている。デフォルトでこのピンはプルアップされているのでHレベルとして「wait無し」。今回の改造では、これを利用してヌルヌル動画再生に必要な1waitを追加する。

余談であるが、/X5をリセット時にLレベルにするとマッパアドレスMA18が使えるようになる。過去のマッパメモリ512kB増設改造ではこれを利用している。

S1985のピンアサイン表を見ると、/X780pに割り当てられている。リセット時にここをLレベルにするためには、ダイオードを介してリセット信号を接続すればよい。

FS-A1Fの場合

 

 FS-A1Fのリセット信号周辺の回路をザックリ調べるとこんな具合になっていた。Q9のコレクタがリセット時にLレベルになるので、ここにダイオードを介してS1985の/X7を接続する。



A1Fのメインボードに実装されているS1985がコチラ。80pの/X7と適当なキーボードコネクタのピンをテスターで調べると、CN8の13pと繋がっていた。

面実装のS1985に直接ダイオードを半田付けするより、スルーホールのCN8に繋いだほうが少し安全である。誤ってワイヤーを引っ掛けた時にスルーホールの方がパターン剥離しにくい。



ということで、当サイトでは画像のようにダイオードを接続することを推奨。CN8の13pにダイオードのアノード側を半田付けして、カソード側はワイヤーを介してQ9のコレクタ(中央の足)に接続する。念のためダイオード下のパターンはカプトンテープで保護した。

以上で改造は終了だが、後々半田が外れたり、底面のシールド板に端子が接触しないように注意が必要。









初代FS-A1の場合



S1985搭載機であれば基本的にやることは同じで、リセット信号/X7をダイオードで繋ぐだけである。

初代FS-A1では、S1985の/X7は集合抵抗IR4の7pに繋がっており、リセット信号はIC19の1pから取得できる。よってこれらの間にダイオード(画像右下側)を半田付けすれば終了。アノード、カソードを間違えないように注意。IC19側がカソードとなる。

画像の機体はメモリ512kB改造等を行っているため、/X5にもダイオードが繋がっているが、今回の改造では不要。関連記事はコチラ







SONY HB-F1XVの場合
HB-F1XVでは、S1985の/X7はRB2に繋がっている。画像左上側のダイオードのように接続すればOK。

右下側のダイオードはメモリ512kB改造用で、今回の改造では不要。画像のS1985には他にもマッパアドレスなどの引き出し線が繋がっている。

HB-F1XDJも同じ基板なので同様に改造できるはず。

HB-F1XDの場合

 

SONY HB-F1XDの回路図を見ると、デフォルトで/X2,/X6はリセット時にLレベルに設定されているようだ。これらはキーボードレイアウトとDRAMのリフレッシュモードの設定用である。

今回の改造では、/X7にもダイオードを噛ませて同様にデジタルトランジスタに接続する。実機では非検証だが、右回路図のように繋げばOKだろう。






謝辞

似非SDiskは多くの国内外のMSXユーザーの作品やアイデア、尽力によって生まれたものです。

MegaSDオリジナルの考案者のつじかわさん、Nextorの作者Konamimanさん、COMMAND2.COMパッチを製 作されたTNIさん、MegaFlashROM SCC+SDの作者Manuelさん、NextorのSRAM対応パッチ等を考案されたOKEIさん、バラック試作機での検証からNextorPatcherまで製作されたゆうくんさん、行き詰まった時に問題解決の糸口を作ってくださったtakedaさん、試作機での数々の問題点を指摘してくださったりR800高速化パッチを考案された裕之さん、BadApple!!動画の手法を考案し、コンバートソフトまで用意してくださったりゅんさん、似非RAMバックアップツール等関連ソフトを提供してくださったMikasenさん、いつも何かとサポートしてくださっているれふてぃさん、ありがとうございました。



ご意見、ご感想、ご質問はにが BBSまで!
Top pageへ 戻る

copyright (C) 2020 Niga.