|
|
2014年〜2015年にかけて、はにはにさんとMSXの補修に関わる情報や部品のやり取りをしていた際に研究用として赤いFS-A1をご提供頂いた。その時の記事がコチラ。 blog記事に書いてある通り、キズやホコリのない超イケメンな赤モデルであったが、ACアダプタが無く売り物にならないとして当方へドナドナされてきた。 (はにはにさんのblogより画像を引用) |
|
右端に見えるACアダプタのコネクタは3端子で特殊な形状。嵌合するコネクタ単体での入手はほぼ不可能のようだ。 全く同じ仕様のACアダプタがFS-A1mk2、SONYのHB-F1でも使われており、互換性はある模様。 |
この巨大な純正ACアダプタは、ジャンク品として出回っている本体には付属していないことが多く、このために活用できない機体が相当数存在すると思われる。 海外でもこれが障害になっている模様。MRC(MSX Resource Center)の関連スレがコチラとコチラ。 (画像は当方所有のもの) |
|
2電源仕様で、DC9Vはともかく、AC18Vを要求するのがクセモノである。 AC18VはFS-A1内部でダイオードで整流され、レギュレータで±12Vに降圧される。±12Vはカートリッジスロットに供給されるほか、映像・音声信号を処理するHybrid ICでも使われるため、ここに電力を供給しないと絵が出せなくなる。 当方所有のFS-A1(黒モデル)と FS-A1mk2は通常の+9VスイッチングACアダプタのみで動作するように改造済みである。改造記事はコチラ。 なお、今回の赤モデルでは電源の改造は行わない方針。 |
|
||||||||||
初代FS-A1はシンプルな構成のMSX2で、ROMゲームをプレイする分にはあまり困らないのだが、ちょっと突っ込んだ使い方をしようと思うと足りないものが目立つマシンである。ディスク媒体のソフトはスロットにFDDやSDカードデバイスを挿せば読めるが、DOS2系のOSは128kB以上のプライマリRAMを要求するため、ノーマルの64kBでは不足する。 マッパメモリ内蔵のMegaFlashROM SCC+SDなどを使えば問題ないが、当方自作のSDカードデバイスは増設メモリを搭載していないので、スロットの節約のために本体の内蔵メモリを拡張しておくべきだろう。手法については、A1mk2の改造記事の後半に書いたように、628512相当のSRAMをS1985のマッパアドレス線に接続することにした。
漢字ROMは市販ゲームではあまり使われなかったようだが、フリーソフトを使う際に意外と必要。なくてもエラーにはならないものの、画面に豆腐(■)が現れてとても悲しい目に合う。漢字フォントデータはAtoCさんがエミュレータ用にリリースしている「漢字ROM image file for MSX emulators」を有り難く使わせて頂いた。フリーのフォントをコンバートして機種依存文字を手入力されて作られたのだとか(お疲れ様です)。MSXエミュレータ用とされているが実機でも使うことができた。 ちなみに外付けの漢字ROMとしては、ワープロカートリッジやMSX-JEカートリッジに内蔵されたものがいくつか存在するが、単体の漢字ROMはレアだとか(参考リンク:れふてぃServe)。ウチにもビデオテロッパFS-UV1やワープロプリンタFS-PW1のカートリッジがあるが、スロットのリソースを消費するし、そもそもこんな邪魔なモノを挿しっぱなしで運用するのは避けたいところ。 なお、漢字ROMのないMSXでも日本語テキストファイルを表示させることはできる模様。門真なむ氏が作成した8ドット漢字フォント「美咲フォント」を内包するテキストビューワ「FQV」がおちっん氏のサイトにてリリースされている。
FM音源はゲームで遊ぶにもあったほうが良いし、各種音源プレーヤーを動作させるには必須の装備といえる。外付けのFMPACで増設するのがお手軽であるが、スロットを消費してしまうとディスクドライブとSCC音源の併用が困難になる。 内部増設では音源チップ YM2413をIOポートにぶら下げることになるが、ソフトウエアから認識させるために、FS-A1FXの改造と同様の手法で本体のシステムROMを書き換え、音源ドライバを潜り込ませることにした。 |
|
|
||
MSXの漢字ROMはIOデバイスなのでスロットのリソースを消費しない(漢字BASICや辞書ROMは別)。容量は第 一水準、第二水準ともに1Mbであり、両方実装する場合は2MbのEPROMを用意する。アクセス方法については以下にASCATさんのMSXテクニカルガイドブック第四版 p.20より引用する。
ハードウエアの設計としては、まずIOデコーダとしてD8h〜DBhへのIOアクセスでイネーブルとなる信号を生成することになる。D8hは2進数で 11011000b 、DBhは 11011011b であるから、A7〜A0のアドレスバスの上位6ビットが110110XXbとなっている時に/IORQがアサートされていることが絶対条件になる。そして、第一水準と第二水準のIOアドレスはA1の論理が反転しているだけなので、ROMに 第一水準、第二水準のフォントを連続して焼いておき、ROM最上位アドレス線(A17)をCPUのアドレスバスA1に接続すればよい。
MSXのシステムには漢字ROMとは別にMSX-JEや漢字BASICといった漢字ドライバがあり、これらを必要とする場合は別途スロット上にROMを置くことになる。既存のソフトから漢字表示させるだけならばIOポートに漢字ROMを置くだけで問題ない。 参考までに、漢字ROMの有無を調べる手順をASCATさんのMSXテクニカルガイドブック第四版 p.21から引用する。
フリーソフトでは上記の確認をしていないものがほとんどで、フォントデータが存在しない全角文字は豆腐(■)で表示される。 |
|
||||
YM2413はMSXのIOポート 7Ch,7Dhへの書き込みデータにより制御される。まずIOデコーダをそのように設計するが、部品省略のためにA2〜A4はダイオードでまとめてプルアップした。とりあえずこれでも問題なく動作する模様。今見直すと漢字ROM増設回路で7408のゲートが2つ余っていたので、これを使えばよかった気がするし、IOアドレスのビット共通点を利用すればもう少し簡単にできたかも。 YM2413はリズム出力RO、メロディ出力MOを持っているが、ここから出てくるのは各チャンネルの出力電圧が時分割されたパルス信号であり、これをアナログ音声信号に変換するために積分回路を通すことになる。詳しくは裕之さんのサイトのアプリケーションマニュアル(日本語版)参照のこと。 上回路図ではYM2413のRO,MOから出力された信号が4.7kΩを通って0.015uFで接地されているところまでが積分回路で、実機で調べてみたところ松下WX系やFMPAC、SONYのHB-F1XVでCR
の値はアプリケーションマニュアル通りになっていた。その先は抵抗を介してリズム、メロディ音声がミキシングされ、コンデンサにより直流成分がカットされた上でオペアンプで反転増幅される。ここでは入力抵抗と帰還抵抗の比により増幅率が決定されるが、A1WX系では7倍ゲイン固定、FMPACではスイッチにより約3倍、10倍、15倍の3段階に設定できるようになっていた。SONY HB-F1XVでは半固定抵抗により 0〜20 倍の範囲で調整可能となっており、今回の改造ではSONY方式を採用した。 そこから先はアプリケーションマニュアルに「低域フィルター(遮断周波数: 20kHz程度)を挿入することにより、ステップノイズを削除することができ、高音質化が計れます」と記載されており、FS-A1WX系では単帰還形ローパスフィルター、FMPACやHB-F1XVでは正帰還形ローパスフィルターが構成されている。FMPACとHB-F1XVについてコチラのサイト(OKAWA Electric Design)のツールで周波数解析を行ってみた。
オペアンプは単電源と両電源でドライブする方式があり、松下WX系は+5Vの単電源だが、FMPACやHB-F1XVでは±12Vの両電源である。そのためスロットに±12Vを出力していないカシオPV-7ではFMPACが使えないといったことが起こる。単電源はダイナミックレンジの点で不利であり、今回の改造でも両電源とした。 ローパスフィルターを通した音声信号はカップリングコンデンサと抵抗を介してMSX本体の音声ミキシング回路に入力する。両電源ドライブのオペアンプから出力される音声信号は0Vを基準電位とした交流信号であるため、カップリングコンデンサには無極性コンデンサを使う必要がある。FS-A1では Hybrid ICの14pが音声ミキシング部となっているが、入力抵抗はミキシング回路のオペアンプの帰還抵抗に合わせるため、スロットの音声入力に接続されている抵抗値と同じ4.7kΩとした。 |
|
||
FM音源の話ついでに有名なSONYのMSX2+ HB-F1XDJ/XVの内蔵FM音源の音割れ問題について検証してみたい。この問題は古くから知られ
ていて、バックアップ活用テクニック(れふてぃさん調べ)では、Part24(1991年9月号)p.169の柱に「F1XDJのFM音源の音が壊れた。何故?」と掲載されたのがおそらく初出。続くPart25 p.111に「XDJのFM音源はSONYへ持って行けば無料で修理してくれます。私も壊れた。」と掲載され、この時点でメーカーの無償修理が行われていたことが伺える。Part26 p.59に「僕もXDJを半年でFM音源を壊し、1年ちょっとすぎに出したとき無料だった。交換表にはコンデンサ1個と書かれていた」と掲載され、故障の原因がコンデンサの1つであることが示唆された。Part29(1992年12月号)p.156の床に「誰かHB-F1XDJの音割れの直し方教えてください。ソニーのSSなんて近くにないんです。」という投稿があり、その答えとして Part30 p.93の柱に「XDJの音割れはYM2413の側にあるC99というコンデンサを新しいのにすれば直るらしいです。」と掲載され、具体的に交換すべき部品がC99であることが明らかとなった。HB-F1XDJは1988年10月発売なので音割れ病は概ね3年で発症していたことになる。MSXにおけるソニータイマーはここに仕込まれていたのだ!(な、なんだって〜) MSX-FAN 1993年6-7月号のGTフォーラムにもこの話題があり、「確かにXDJのFM音源の故障の話はよく聞く。でも欠陥商品といううわさがあるがそれはいいすぎ。ソニーの社内規定のなかには、きちんとした規定が整備されていて、欠陥ならきちんと公表する。」と書かれており、壊れた機体をサービスステーションへ持ち込むことを勧めている。当時は欠陥というほどの不具合ではないという判断だったのだろうが、保障期間を過ぎても無償修理を行っていたのはメーカーとしての良心か。(関連記事:VAIO LX専用液晶にまつわる黒い話) SONYのMSXは製造終了後約30年経過しており、いくらなんでもサービス期間は終了しているだろう。対処方法は後述するが、自分でできないと思ったら、はにはにさんのような個人で有償で請け負ってくれる方に依頼したほうがよい。 前出のASCATさんのMSXテクニカルガイドブック第四版第五刷 p.72のはみ出しコラムでもこの問題について触れられている。ここでは「HB-F1XVでは回路が変更されているためこの現象は起きません。」と記載されているが、そんなことはなくHB-F1XVでも同様に音割れ問題は発生する。上画像はXDJとXVの基板を並べたものだが、搭載部品やパターンの走行は完全に一致している。XDJではR17,R14のパターンにはジャンパー線が実装されていて、XVでも同様にジャンパー線だがシルク印刷はJW79,JW80と異なっている。違いはこのシルク印刷のみである。 |
||
|
||
原因究明のため、当方でHB-F1XVの回路を調査したところ上図のようになっていた。積分回路を通過した音声信号はC16で直流成分がカットされ、オペアンプで反転増幅されるが、このオペアンプは両電源ドライブであるので、7pから出力されるのは0Vを基準電位とする交流信号である。
従ってカップリングコンデンサC99で直流成分をカットする必要がないばかりか、C99のプラス極にマイナスの電位を負荷することで早期の劣化を誘発している。まさに時限劣化装置であり、意図的なものでないにしろソニータイマーと揶揄されても致し方ないだろう。 C99劣化の根本原因が逆電圧の負荷であることから、C99を無極性コンデンサに交換すれば解決しそうに見えるが実はそうはならない。理由は分からないが後段のLPFからは+数VのBIAS電圧が発生しており、C99の出力側にも+BIASが負荷されている(回路シミュレーション、 およびオシロでの実機測定にて確認)。有極性C99は入力側の不正な逆電圧により電流がリークするため、+BIASによる充電がなされないまま音声信号は出力側にスルーされる。ところがC99に無極性コンデンサを使うと電流のリークが起こらなくなる代わりに+BIAS電圧により徐々にコンデンサが充電され、やがて飽和して音が出なくなってしまう。よってC99の無極性化は問題の解決にはならない。 なお、C20についても同様の問題があるが、C20入力側は+BIASの影響により逆電圧がかからない状態となっており、劣化を免れていた模様(実測にて確認)。 |
||
推奨する対処方法 |
||
|
||
メーカー改修の検証 |
||
バッ活の柱に書かれていたようにHB-F1XDJ/XVのC99がやたらダメになることはメーカーも認めていたと思われ、故障機をサービスステーションに持ち込むと無償でC99を耐圧の大きなコンデンサに置換していたらしいが、他にも抵抗が追加されていたという情報があり、ネットを彷徨って調べてみると以上のように回路変更されたものがあることが判明した。どのような改修が行われたのか検証してみたい。 まずC20の前後に増設されたR14とR17についてだが、R17は基板にそのまま実装され、R14は長いジャンパー線を経由してHICの近傍に取り付けられていたようだ。この抵抗はHICのオペアンプに対する入力抵抗として増幅率に影響するもので、C99問題とは無関係に行われた改修だろう。 次にR??で あるが、この抵抗が取り付けられ た機体はあまり多くないことから、比較的後期に改修されたものと推定される。ネット画像では抵抗値220kΩと260kΩのものを確認できた。この抵抗は後段のLPFで発生したBIAS電圧を無効化するためのものかも知れないが、むしろこれによりC20に逆電圧が負荷され劣化を誘発しそうである。おそらく繰り返されるC99問題に対処するために追加されたものと思われるが、この抵抗に有極性C99の劣化の原因を取り除く要素は見いだせず、C99交換後も音割れ病は再発すると思われる。 |
FM音源(YM2413:OPLL)は漢字ROMと違って値を読み出す仕組みがなく、システムから認識させるためには、ドライバのROM(FMBIOS) が必要となる。音源そのものはIOデバイスなのでスロットに依存せず、FMBIOSは適当な空いたスロットに置くことができる。ROMカートリッジを作成して認識させることもできるが、スロットを節約するためFMBIOSをシステムに組み込む手法について検討・解析を行った。 FMBIOS ROMはMSX-MUSIC FM BIOSやMSX-MUSIC拡張BASICを使う時に必要となるが、処理速度の問題からほとんどのゲームソフトではBIOSとして使われておらず、FM音源の存在を確認するためだけに利用されている。FS-A1WXの内蔵FMBIOSの最初の部分は以下のようになっていて、先頭のAB文字列はROMヘッダである。0004hからの2バイト(00h,50h)はCALL拡張命令のルーチンが5000hから存在することを示している。以下はフリーのCBIOS。こちらは拡張BASICを持たないのでCALL MUSIC命令は使えないが、ソースを見たところFMBIOSには対応しているように見える(当方では動作未確認)。 これらに共通しているAPRLOPLLが内蔵FM音源を識別する文字列である。FMBIOSはページ1(4000h〜)に置くことになっているので、適当なスロットの4018hからAPRLOPLLが読めるようにROMを配置するだけでほとんどのゲームソフトでFM音源が鳴らせるようになる。 以上はFMPACのROM先頭部分。4018hからの文字列はPAC2OPLLと なっている。外付けデバイスのFMPACは競合を避けるため内蔵音源とは区別されており、システム起動時はdisableとなっている。ソフトウエアでFM音源を使いたいときにはスロットをスキャンして4018hからのAPRLOPLL文字列を調べ、見付かれば内蔵FM音源ありとみなされる。見つからなければ401Ch〜のOPLL文字列を調べ、存在すればそのスロットに外付け音源が存在するものとしてメモリマップドIO(7FF6h)のレジスタに値を書き込んでenableとする。詳しいことは、MSX Datapack 7部 3章やASCATさんのMSXテクニカルガイドブック第2部 第9章に記載されている。今回の改造はOPLLの内部増設であるので、FS-A1WX等の実機から吸い出したBIOS ROMデータを適当なスロットのページ1に置くか、4018hからAPRLOPLL文字列が読めるようにすれば良いということになる。
さらに余談だが、メモリマップドIOであればスロット毎の制御ができるので複数のFMPAC用意して別々の音を鳴らすような使い方も可能と思われる。 FMPACのIOアクセスをdisableにすれば内蔵音源の個別制御もできそう、と思って調べてみたら既にTINY野郎さんが実現していた。MMLコンバータまで用意されているとか、マジかよ! |
|
||||||||||||||||||||||||||||||||
FS-A1の スロットマップと、引っこ抜いて読んだ内蔵マスクROMの内容を照合すると以上のようになっていた。ROMの 0C000h-0FFFFhは内容がFFhで埋められており、SLOT CHECKERでは存在を確認できなかったが、実はスロット#3-1のページ1に割り当てられており、ここにFMBIOSを潜り込ませることも可能。なお、スロットマップ表示にはTINY野郎さんのTINY SLOT CHECKERを活用させて頂いた。 スロット#3-2はROMヘッダ付きの内蔵ソフト(デスクパック)の領域で、続く#3-3にはヘッダのないデータが格納されている。デスクパックに64kBも使われているとは考えにくいが、#3-3の内容を削除するとデスクパックが起動しなくなることから、何らかの用途で使われている模様。
改造するならサクっとROMから削除してしまって構わないが、オリジナルを尊重して残したい場合は、ROMの内容を1バイト書き換えると良い。
これで通常起動でデスクパックは現れず、逆にDEL起動でデスクパックが起動するようになる。
|
(画像はBABAXさんの回路図より抜粋) |
||||||||||||||||||||||||||||||
やや余談であるが、FS-A1のBIOS ROMはゲートアレイによって16kB、または32kBで区切られてシステム上の特定のアドレス空間にマッピングされている。各領域に対するROMの/OEに相当するイネーブラは29p〜34pにアサインされ、各々S1985が出力するスロットセレクト信号が接続されている。
ROMの区切りとマッピング先のアドレスはゲートアレイ内部で固定されているが、イネーブラの接続先はハードウエア的に変更可能になっているので、ある程度スロット構成を変更することは可能だろう。 |
|
|||||||||||||||||||||||||||||||||||||
FM音源を鳴らすだけならFMBIOSを追加するだけでも十分だが、せっかく漢字ROMを実装するならばと内蔵ソフトを潰して漢字BASICを搭載し、未使用領域にはべーしっ君を入れてみた。スロット構成はFMBIOSを#3-1にするとか、漢字BASICを#3-3にするとか、ある程度自由に弄っても問題ない。漢字BASICはFS-A1FXから吸い出したデータを利用した。 ハードウエア的にはこの内容の通りにデータを書き込んだEPROMを用意し、元のマスクROMと同じように接続するのみであるが、EPROMとマスクROMは足の数やピンアサインが微妙に異なっているのでデータシートを見ながら配線の組み換えが必要である。 |
|
以上の回路をすべて一枚の基板に組み込んだところ、酸素欠乏症のオヤジが手作りした謎回路みたいなものが出来上がった(笑)。大昔BABAXさんに頂いた2階建てのSRAMモジュールを採用したおかげで見た目も怪しげである。このモジュールには32kBのSRAMが16枚実装されていて合計512kBの容量となっている。昔は大容量のSRAMが高価だったためこのようなものが作られていた。 こいつをA1の記憶回路(ROMソケット)に取り付けると、メモリ容量が8倍に跳ね上がる。FM音源、漢字BASIC、べーしっ君ぷらすが使用可能になり、確かにパワーアップはするのだが、所詮は古い技術の寄せ集めでしかなく、実際こんなものを息子に渡したら「こ、こんな古いものを…父さん、酸素欠乏症にかかって…」と真顔で言われてもおかしくないだろう。オリジナルに敬意を払ってテム・レイ回路もどき1号と命名。 |
|
||
|
||
|
いまさら漢字BASICの使い道も思いつかないが、日本語ワープロが貧弱だった頃はこのような入力方法が実際に使われていて、自分がA1Fと一緒に買ったビデオテロッパがコレだった。後に買ったワープロプリンタPS-PW1はカート リッジにMSX-JE準拠の連文節一括変換ソフトを持っていて幾分マシにはなったが、ほとんど学習してくれないので今のワープロと比べると効率はとても悪かった。 |
COMPILEのディスクステーション0号は漢字ROM対応ソフトであるが、漢字ROMがなくても表示が豆腐(■)にならないように作られている。 かな表記だとこのような表示になるが、画面内に文章を詰め込むために横に圧縮したような書体になっている。 |
|
A1WX等Panasonicのマシンで使われているMSX標準漢字ROMのフォントがコチラ。縦横に圧縮されて表示されている。明朝体に近い書体に見える。 |
|
AtoCさんのサイトで配布されている「漢字ROM image file for MSX emulaters」での表示。元ネタは明らかにされていないが、ゴシック体に近い書体で縮小しても読みやすい印象を受ける。 |
|
総合評価として、スロット1に自作SDカードデバイス、スロット2にSCCカートリッジを挿してNEXTORからMGSELを起動した。曲名は漢字で表示され、各音源もすべて認識されて鳴っている。本体改造なしでこれを実現するには、拡張スロットにマッパーメモリ、漢字ROM、FMPAC、SCCを挿すような運用になるが、内部増設によりシンプルな構成にすることができた。 上記テストでは、当方開発の赤外線制御の3入力デジタルアンプ(電子工作マガジン2016年冬号に掲載)を使用。このアンプは適当なリモコンの信号を登録して操作可能。猫の手1号受信機をジョイスティックポートに装備することで、同じリモコンで曲選択や音量調節が可能である。それぞれ同人ハードとして家電のケンちゃんさんで頒布中(2019年12月現在)。(関連記事:猫の手リモコンの製作) ちなみにスペインのMegaFlashROM SCC+SDはSDカードデバイス、SCC音源、マッパーメモリを兼ねる強力なカートリッジであるが、漢字ROMやFM音源を内蔵していないので同様の構成にするためには拡張スロットが必要になる。 |
Epilogue 実はテム・レイ回路もどき1号 を製作したのは2015年頃だった。今これをイチから手作りする気にはとてもならないが、おそらくあの頃は脳に酸素が足りていなかったのだろう。冷静になった今、ガラクタ置き場を整理していてコイツが出てきたのだが、このまま埋もれさせてしまうのも忍びなく、せっかくなので記事にした次第。
オリジナルのテム・レイ回路は一度も使われることなく息子に捨てられてしまったが、実はそこそこ高性能なデバイスだった、という説はないのだろうか。子供の頃は、「何かしら性能が上がるかもしれないのだから一度くらい試せばいいのに。」と、思っていた。まぁ、実際ポンコツだったのだろうが、あれではせっかく作ってくれた親父殿が気の毒である。
はにはにさん機材の提供ありがとうございました。Mikasen.さん画像提供ありがとうございました。BABAXさん回路図や部品の提供ありがとうございました。れふてぃさん多くの情報・実機画像の提供ありがとうございました。裕之さん回路シミュレータを使った検証やアナログ回路について諸々教えていただきありがとうございました。AtoCさん漢字ROMデータの作成お疲れ様でした。TINY野郎さんSLOT CHEKER有り難く使わせてもらっています。にゃごすさんいつもテクハンWiki参照させてもらっています。ASCATさんのテクガイも役立てさせてもらっています。以上多くのMSXユーザーの皆様ありがとうございました。
お約束ですが、この記事を見て修理・改造などを行い故障やその他問題が発生しても当方は責任を負いません。各自の責任において情報を広く集めて行うことをおすすめします。
この記事の内容は個人の憶測や見解の誤りを含んでいる可能性があります。内容についてメーカー各社に問い合わせるのは止めましょう。
音割れ病を発症したMSXをメーカーサービスに持ち込むのは止めましょう。30年前の製品のアフターサービスを求めるのは迷惑行為となりえます。
copyright (C) 2019 Niga.