概要
MD-360でバッテリーバックアップソフトを動作させる方法について、その調査内容。
※注意
この記事には、MD-360でバッテリーバックアップソフトを動作させる為の、最終的な解決策(本体の改修)は記載されていない。
それらは今後書く予定の【解決編】とか【実装編】としてまとめる予定である。
「じゃあなんで途中でこんな記事を書いたの?」と言われてしまうかもしれない。
しかし調査にかなりの時間(2ヶ月分の余暇ほぼ全て)と元手(5万円程度)をつぎ込んだので、
「ひとつの記事にまとめてしまうのはもったいない、もっと引き伸ばそう!」と思ったからである。貧乏性ですね!
前置きを読むのが面倒な方は、こちらからどうぞ。
発端 〜NOMAD来たる〜
年末、友人に「NOMADの写真を撮って送ってくれ」とお願いしておいた。
このサイトの記事として「NOMAD対MD-360!携帯メガドラ界で仁義なき戦い勃発!」みたいな感じのを書こうと思ったからだ。
しばらくしてその友人と飲みに行こうということなり、仕事帰りに渋谷で集まった。
「なあ、今日カバンに余裕ある?」
「ああ、別にあるけど、何?」
それほど派手でない、居心地のいい店に入り、席に着く。
そこで友人は何かを警戒するように周囲を見回し(と、いうのは気のせいだったかもしれない)、袋に包まれた物を取り出すと、私に渡した。
「こ、こりは・・・!」
そこには生まれてはじめて見るNOMADの姿が!・・・というか、意外とデカイもんだね・・・
というわけで、しばらくNOMADを借りられることとなった。
「セガの最盛期ってさ、俺たちの高校の頃だったよね・・・」
「そうだね・・・」
・・・
NOMADというのはメガドライブの携帯機ですが、正確にはメガドライブの海外版の、ジェネシスの携帯機です。
そのためか、カートリッジポートの形が微妙に異なり、日本製のメガドライブカセットは使えません。強引に挿すことはできそうですが、NOMADが傷つきます。
「メガキー」(海外版と日本版のソフトを変換するアダプタ)があれば良かったのですが、残念ながら持っていませんでした。
しょうがないので近所の中古ソフト屋へ行き、「ランドストーカー」を280円で調達してきます。
そのままではNOMADに挿すときに引っかかるので、カセットの側面を削ります。
そこにジャンクのメガドライブから取り外しておいたカートリッジコネクタを取り付け、「日本版カートリッジ→NOMAD変換アダプタ」のような物をデッチあげました。
アルミL字材、スペーサー、ネジは東急ハンズで買って来ました。
名づけて「ランドストーカーアダプタ」!
「ん〜なんというか、液晶といいサウンドといい、なんとなくゲームギアっぽいな〜」
と、しばらくダラダラ遊んでいるうち、ふとあることに気がつきました。
あれ、この配線が露出している部分、ここから配線を横取りして調査すれば、MD-360でバッテリーバックアップのゲームが動かない理由が判るんじゃないか・・・?
これがこの後、2ヶ月あまり続く調査の始まりでした。
ながい たびが はじまる ・・
どのゲームが、どう動かないのか?
そもそもMD-360でゲームを動かした場合、どのゲームが正常に動き、どのゲームが動かないのでしょうか?
また、動かない場合、それは正常な動作とどのように違うのでしょうか?
これまでざっと見たところ、
・サンダーフォースIVなどのバッテリーバックアップ無しのゲーム・・・正常に動く
・ファンタシースター等のバッテリーバックアップ付きのゲーム・・・バックアップの動作がおかしい。
という感じのようです。
以下に手持ちのカセットのうち、動作がおかしかったものの症状を記します。
ゲーム名 | MD-360における症状 |
シャイニング&ザ・ダクネス | セーブファイル選択画面で、全てのファイルが「ょょょょLV84」になる |
ソーサリアン | セーブファイルのロードを選択すると、ロードに失敗する |
ランドストーカー | セーブファイル選択画面で、全てのファイルが同じステータス(体力等)になる |
モンスターワールドIV | ゲームスタート時に「CONTINUE」が表示されない |
ファンタシースター千年紀の終わりに | ゲームスタート時に「CONTINUE」が表示されない |
ヘルツォーク・ツヴァイ | 「ROM ERROR」と表示され、ゲームが起動しない |
単純にデータが消えている時の挙動のものもあれば、シャイニング&ザ・ダクネス等のように、一応データ的には消えていないような挙動で、ただしデータはめちゃくちゃ、というものもあります。
また気になるのはヘルツォーク・ツヴァイで、このゲームにはそもそもバックアップ機能は無いはずなのですが、動きません。
ヘルツォーク・ツヴァイはまともに遊んだことが無いので、せっかく寝転がりながらルールを勉強して遊ぼうと思っていたのですが・・・
まあ、とりあえず症状はわかりました。ヘルツォーク・ツヴァイを除いては、バックアップSRAMへのアクセスに問題がありそうです。
まずはバックアップ付きゲームを重点的に調べる事にしました。
LEDによる確認・・・失敗
バックアップSRAMへのアクセスに問題がある、ということでまず思いついたのが、MD-360本体からカセットへの配線が全て結線されているのか?という点です。
例えば「今からSRAMにアクセスするので、SRAM出力をイネーブルにせよ」という信号線が結線されていない、ということを考えたのです。
結線状況を確認するため、NOMADとMD-360で、同じゲームを動作させてみます。
そしてゲームを動作させながら、LEDを使って各信号線がデータを流れる状況を確認しようと思いました。
ブレッドボード上で抵抗とLEDを直列に繋ぎ、
・抵抗の端・・・ランドストーカーアダプタの、各信号線
・LEDの端・・・ランドストーカーアダプタの、GND(カセット裏から見て、左右端の端子)
を接触させます。
これで信号線がHレベルの時にはLEDが光り、Lレベルの時にはLEDが消えることになります。
あとはNOMADとMD-360で、各信号線の光り方の違いを見ていけば良いわけです。楽勝!
・・・と思っていたのですが、考えが甘かったようです。
LEDは点滅はするのですが、うーん、まあ光っていることは判るんですけど、タイミングとかの細かいことは全然判りませんね。
一応、全てのピンについて「ヒカヒカ光ってる」「ずっと光ってる」「消えてる」などとメモしていたのですが、途中でやめました。
そもそもメガドライブの動作周波数が10MHzとして、1/10M(10メガ分の1)秒の点滅になった場合、こんなの常人に見分けられるんでしょうか?
私が近眼じゃなくて、視力11.0のマサイ族の戦士であったとしてもムリ、ということに気付きました。
うーん、どうしよう・・・
こうなったら、ロジックアナライザを買っちゃうか・・・
ロジックアナライザは、何本ものプローブ(先っぽに端子が付いてる棒)とディスプレイ画面を持っています。
そしてプローブが触った点がHかLかを、画面に時系列で表示させてくれる脅威のデバイスです。
電子回路に携わるプロの技師や、相当修行を積んだアマチュア電子工作少年でないと持っていません。多分、所有が許されないのでしょう。
もちろん私も持っておらず、触ったのは大学時代、必修の「実験」の講義の時間だけだったような気がします。
試しにグーグル先生に「ロジアナ 低価格」と聞いてみると・・・「価格は\1,250,000から。」などと書いてあるページがヒットします。ウワーオ高い!
しかしもっと調べてみると、「カメレオンUSBロジアナ」というものが、31chの計測ができ(プローブが31本ある)、値段も完成品で1万数千円程度のようです。
さっそく「ITプラザ」というお店に連絡し「カメレオン+ロジアナ4Mset 完成品」について聞いてみると、在庫があるようです。
会社帰りに寄って購入、千石電商にも寄り、プローブ用のICクリップを31本分購入します。計1万7000円ほどでロジアナが手に入りました。
ちなみに、ロジアナキットは完成品でなく、自分で作るキットも売られているようで、そちらのほうが安いようです。
時間を金で買うというか、面倒だからという理由でためらいもなく完成品を買った私を、昔の貧しい電子工作少年の私は許してくれるのだろうか・・・
ロジックをアナライズせよ
おまえのクサレた脳みそをハックした!(「CYBERブルー」風に)
たぶんNOMAD先生も、極東の島国でこんな扱いを受けるとは夢にも思わなかっただろう
ロジアナを使い、MD-360/NOMADとカセット間の信号線の様子を調べます。
実は調べ始めて思ったんですけど、メガドライブとカセット間のピンって
・データバス:D0〜D15の16本
・アドレスバス:A1〜A23の23本
という本数を使ってるんで、31chぽっちじゃ全然足りないじゃないか・・・
しかし「人生は配られたカードで勝負するっきゃないんだ!」と諦めて、調査を続けます。
今回はSRAMの挙動を調べたいので、ゲームはシャイニング&ザ・ダクネスを利用し、
・電源を入れる
↓
・爺さんの話
↓
・「続き」を選択する
という遷移の中で、「続き」を選択した近辺の信号線の様子を調べます。
ゲーム内では、「続き」ボタンを押した時、SRAMにアクセスし、SRAMから得られたデータを元にファイル選択画面を表示する、という処理を行っているのではないかと推測したためです。
しかし、二日間ほど調べても、MD-360/NOMADとカセット間の信号線は、どうも同じような動きをしているようです。
うーん、やっぱり素人がいきなりロジアナなんかを買ってきても、そうそう判るもんではないのだな・・・
原因の切り分けの意味を込め、次にカセット上のSRAMのCS(Chip Select)、OE(Output Enable)、WE(Write Enable)の各線の内容も調査してみました。
そもそもSRAMへ正しく読み出しの指令が出ているのか、正常に動いているのかを調べようと思ったのです。
左:MD-360 右:NOMAD
このロジアナソフト「MyLA」は使い易かったです。
2種類の波形を取り、ざっと見て「はい、変わんないね、というか、よくわかんないや」を確認した後、コンビニにお昼を買いに行きました。
コンビニで買った蕎麦を食べながら、先ほど取った波形を見てみると、おや・・・?
SRAMの「CS2」という信号は、MD-360では常にLレベルで、NOMADではHレベルだということに気付きました。
これはおかしい!と思い、シャイニング&ザ・ダクネスに搭載されているSRAMのデータシートを確認してみます。
日立HM6264Bのデータシートを引用
なんと、これを見るとRead、Writeを行う場合にはCS2は「H」でなければいけないと書いてあるではないですか!こりゃーSRAMの内容も読めないわけです。
じゃあSRAMのCS2を「H」にしてない戦犯は誰だよ?ということになるわけで、カセットの回路を追ってみます。
するとSRAMの右上、「1026B」という8ピンICに接続されていることがわかりました。
データシートを探してみると、MitsumiのシステムリセットIC、1026Bというもののようです。
英語のデータシートしか見つかりませんでしたので、なんとか苦労して読んでみると・・・
「これらのICは、供給される電圧が特定の電圧よりも低下した際、SRAMのチップイネーブル信号をLにしてSRAMをバックアップモードにすることで、SRAMを保護します」
また、"Characteristics"によると、「検知電圧 B:4.2V」
テスターを用意し、MD-360上でシャイニング&ザ・ダクネスを起動して、1026BのVcc電圧を測定してみますと、3V程度です。
これでやっとSRAMアクセスがおかしい理由が判りました。
つまり、MD-360がカセットに供給する電圧が足りず、SRAMがイネーブル状態になっていなかったのです!
なんとまあ・・・ロジアナまで買ってきて調べた結果が単純な電圧不足とは・・・
まあ原因がわかったから、良し!
There is no time to lose 〜ヘルツォーク・ツヴァイについて〜
ロジアナを使っていじいじと調査をしつつ、飽きると平行して、ヘルツォーク・ツヴァイについても調査を行っていました。
こちらは、起動時に"ROM ERROR"というメッセージが出ていましたので、これを足がかりにできるかもと考えました。
ROMイメージファイルの内容を見て、"ROM ERROR"の文字列を表示している部分を探し、逆アセンブルしてみます。
・"ROM ERROR"の文字列は、ROMイメージの先頭から0x000003F03の場所にあった。
・その少し前、0x00000380あたりから、ROMチェックサムを計算して、0x18Eのチェックサムと比較している部分があった。
なんでこんなにスマートに解析できたか不思議ですか?
実はチェックサムの処理が、「PI. Home page」で紹介されている、メガドライブのチェックサムに関する記事とほとんど同じだったのです。
ちょうどSRAMの調査のため、同サイトの記事を読み漁っていたのが役に立ちました。
こんなタイミングでソーサリアン解析の神様に助けられるとは・・・
ヘルツォーク・ツヴァイが起動せず"ROM ERROR"を出すのは、「チェックサムが合わないから」という理由であることがわかりました。
しかし本物のメガドライブでは起動できますし、また、カセットを分解してもSRAMやリセットICなどは無く、マスクROMがあるだけです。
じゃあなんでチェックサムが合わないのか?うーん・・・とりあえずほっておくことにしました。
電圧が上がると、リスクが上がる。
カセットへ供給する電圧さえ上げられれば(4.2V以上)、SRAMへアクセスできそうなことが判りました。
でもどのくらい確かなんでしょうか?なにか、簡単に試せれば良いのですが・・・
と部屋の中を見回すと、「Let's TVプレイCLASSIC」のACアダプタが目に付きました。「+5V、0.4A」と記載されています。
ちょっと危険だがやってみるか・・・
詳細は省きますが、このACアダプタをむにゃむにゃすることで、+5Vをカセットに供給すればSRAMのアクセスが行えることがわかりました。
しかし、液晶画像がノイズ混じりになり、ゲームは楽しめません。しかも、なんだか不安でドキドキしてきます。
もう少しまともな方法は・・・とグーグル先生で調べてみると、「気の迷い」というサイトにおいて「DC/DCコンバータIC HT7750で遊ぶ」という記事を見つけました。
「DC/DCコンバータ」という部品を用いることで、直流3Vから直流5Vへの昇圧が行えるようです。
ネットで調べると、秋葉原の若松通商でHT7750Aを取り扱っていることが判りましたので、購入してきました。
(ちなみに、お店の人は「ディディコン」と略していました。プロっぽくてカッコ良いですね!)
HT77xxのデータシートから引用・転載
データシートの回路をほぼそのまま組み上げてみます。この大きさなら、十分MD-360に内蔵できそうです。
また、データシートには、コンデンサは「タンタルコンデンサ」と明記されていましたが、先ほどの記事を参考にさせてもらい、電解コンデンサを使用しました。
実は「電解コンデンサは破裂の危険性がある」という意見もあるようで、少々不安ですが、ここは自己責任で!
作成したDC/DCコンバーターモジュール。
ダイオードは"11EQS04"で代用
DC/DCコンバータモジュールを作成したら、次はこのモジュールに電圧を入力する「Vin」、モジュールから電圧を出力する先の「Vout」との配線を行います。
「Vin」については、MD-360の基板の表側の下端、電源スイッチのピンの1つから取るのが良いようです。
電源スイッチONと同時に、バッテリーからの電圧(4V程度)が現れてくるピンです。
ここからVinを取る
「Vout」については、次の手順で配線します。
(1)まず、MD-360のカートリッジコネクタの端子を裏から見て、手前側の左右両端より2本目のピン(メガドライブのピン番号でA2、A31)をカットします。
これらの線は本来、本体からカートリッジへ電圧を供給するものですが、これをストップさせます。
(2)カットしたA2、A31の線のうちの「カセット側」にリード線を配線します。これが「Vout」となります。
写真では片方にしか配線していませんが、両方配線しても良いです。多くのカセットでは、カセット内部でこれら2本は結線されています。
ここにVoutを配線する
「『Vin』は、カットしたA1、A31の本体側から取れば良いのではないか?」という意見もあるかと思います。
実際に最初はその方法を試したのですが、A1、A31の本体からVinを取ると、液晶画像にノイズが発生してしまいます。
電子回路の電圧部分は不勉強な為、良く判らないのですが、DC/DCコンバータの入力は、よりバッテリーに近いほうが良いのでしょう。
・・・
さて、DC/DCコンバータモジュールの配線も終わったところで、バッテリーバックアップのゲームを実行してみましょう。
なんと!ちゃんとSRAMにアクセスできるではないですか!
参考画像:シャイニング&ザ・ダクネス
参考画像:ソーサリアン(クリアデータをロード後にサウンドテストを呼び出し)
参考画像:モンスターワールド4
また、画像をとるのを忘れていましたが、なぜかヘルツォーク・ツヴァイも「ROM ERROR」とならずに起動するようになりました!
なんでだろ・・・まあきっと、マスクROMが電圧不足でうまく動作できなかった、という理由でしょう。
それでは久々にソーサリアンの名曲でも聴いてみますか・・・
と、ここで衝撃の事実が!
福本漫画ばりのグニャリが!
画面にノイズが乗っています!
ヘルツォーク・ツヴァイも、タイトルは正常に表示されるものの、ゲームを始めると画面に微妙なちらつきが出たりします。
うーん、これは何が原因なんだろうか?ここから長い試行錯誤が始まりました。
ここで理論が判っている人と、判っていない者の差が出てしまったようです。
まず電圧の取り出し位置を電源スイッチの近くにしたこと、これは問題無さそうです。
次はDC/DCコンバータによる昇圧が原因と疑います。
・電圧が高すぎるのではないか?・・・問題無い様子。テスターで測ると5V程度が出力されている。
・出力と並列に抵抗を接続してみては?・・・苦し紛れ。当然効果は無し。
あとは、出力電圧がノイズ混じりのガタガタの電圧だとか、だろうか・・・?テスターでは一定の電圧に見えるが・・・
波形を調べるには・・・
オシロ、そう、オシロスコープだ!
ここまできたら・・・買っちゃうかっ・・・オシロスコープ・・・!
オシロスコープ
オシロスコープはロジックアナライザとは異なり、単純なH/Lを計測するのではなく、電圧の上下を短い時間間隔で観測できる機器です。
しかし計測機器の例に漏れず、これも高い!10万円超えなんて普通で、USB接続でPCに接続する簡易型のものでも、2万〜3万円はします。
どうせ買うなら、PCが必要な奴じゃなくて、画面が付いてて単体動作できるのがいいなあと思い、ネットをさまよいます。
お、このスタパブログで紹介されている「OWON PDS5022S」、こういうのでいいんだよこういうので。
あ、これ秋月電子で\35,000で売ってるじゃん!・・・が、2008/12月時点では品切れ!次回入荷は未定!
がーんだな、と思ったのですが、まてよ・・・少し前、八潮の秋月電子に行ったとき、こんなオシロを見たような・・・その時は、
「うわ!オシロ4万で買えるのかー。でもまだちょっと高いな。そうだ、次の健康診断までのダイエットに成功したら買おうかな。
自分へのご褒美(笑)スイーツ(笑)」
と思って見逃したんじゃなかったっけか・・・ひょっとしたら通販と店舗とで在庫が同期してないかもしれないし、とりあえず行ってみよう!
と、12月の寒空の中、バイクを飛ばして八潮の秋月に行ってみると、やっぱり展示品がありました。
店員さんに聞いてみると店舗にも在庫は無く、この展示品一台のみとのこと。
「この展示品を売ってもらえないでしょうか?」と聞いてみるとOKで、しかも展示品割引で\32,000で買えてラッキー!
2009/2月現在は、通販でも\32,000で買えるようになってるみたいですね。
ともかく、これで調査再開です。
なんかヤフオクで叩き売りするときに付けるみたいな画像だね・・・
でもこれが電子工作少年の夢、オシロスコープだ!
これで出力電圧を見てみると、うん、確かにバッテリーから取り出した電圧とは異なり、波打ってます。
・・・ということで感動して終わってはいけないので、色々とモジュールにカット&ペーストを繰り返します。
・出力と直列にコイルを入れてみる・・・「波打ち」はやや低減されるが、画面ノイズは変わらず。
・出力と直列に定電流ダイオードを入れてみる・・・電圧が低下し、SRAMへアクセスできなくなる。
・出力と直列に可変抵抗を入れてみる・・・あるところまで電圧が低下するとちらつきが無くなる!が、SRAMへのアクセスもできなくなる。
・・・結局オシロを買ってくる前と何にも変わらないじゃないですか・・・ちくしょう!ハーマン!ちくしょう!
と、「重装機兵ヴァルケン」のモノマネをしつつ悩み、時は経ちました。
週末に会社帰りに秋葉原に寄って使えそうな部品を買い、コンバータモジュールに付けては外しを繰り返します。
気付いたら正月休みもすっ飛び、1月も終わりに近づきつつある頃でした・・・
「レベルシフタ」という概念に出会う
ある日、「そもそも本体が3.3Vで、カセットが5Vで動かなきゃならない、っていうのがおかしいんだよね・・・
電子回路を作る時に、こういうことで悩む人って居ないのかな?」と思いました。
ふとグーグル先生に「3.3V 5V」と聞いてみると、
「5V→3.3V,3.3V→5Vのレベルシフトをしたいのですが?」
なに?レベル・・・シフトって、何なの・・・?
この世に生を受けて30余年、初めて聞いた言葉です。あわてて「レベルシフト」という言葉について検索します。
これだ!MD-360に必要なのは「レベルシフタ」なんだ!
・・・
私が新卒で入った会社で配属されたのは、インターネットやLANなど、ネットワークに関係する部署でした。
それまで学生時代は、インターネットやネットワークに触れることはあったものの、
・インターネットでヤフーやメールができる。ヤフーでは、色々なホームページがジャンル分けされていて便利。
・メールは同じ建物だけではなく、海外とも繋がっていて、そのおかげでイギリスのゲーム屋さんからマスターシステムの「Power Strike II」を購入できた。
という程度の理解しかありませんでした。
私の直属の上司はYさんという人で、入社して数日後、Yさんは言いました。
「ネットワークについてどのくらい知識ある?スイッチってわかる?」
私はそれに答えて曰く、
「はあ、スイッチって、あの壁の電気をつけたり消したりする、あれでしょうか。」
それを聞くと、Yさんは一瞬、遠くを見るような目をしました。そして、
「よし、これから毎日、ネットワークについて課題を出す。それを定時終わりに帰る前、答え合わせしよう。」
と言いました。
私がネットワークのレクチャーを受けていると聞くと、同期入社のA君は「いいなあ」と言い、Yさんにお願いし、一緒にレクチャーをしてもらう事になりました。
そのレクチャーの中で、
「スイッチとはスイッチングHUB(ハブ)の略称で、リピータHUB(バカHUBとも言う)より一段進化した物である」
ということをも学びました。
その時、私は「スイッチ」を知らなかった、という衝撃を感じると共に、
「ああ、物を知らないというのは、何を知らないかも判らない事なのだなあ。
よし、俺も今後、物を知らないでおかしなことを言う人に出会っても、Yさんを見習って、バカにしたりせずに対応しよう」
と、思ったのでした。
・・・
なんで急に、頭の悪そうなライトノベルっぽい自叙伝を書いたのかというと、私にとって「レベルシフタ」という概念との出会いは、
昔「スイッチ」という概念と出会った時と同じくらい衝撃であった、ということを伝えたかったからなのです。伝わりませんでしたか?まあ、しょうがないです。
ともかく、MD-360(3.3V)とカセット(5V)とを接続する為には、レベルシフトを行わなければなりません。そうしないと、
・5V側は、3.3V側から来る信号がHなのかLなのか、判らない場合がある。
・3.3V側は、5V側から来る信号が判らないかもしれないし、5Vという電圧を受けた時、悪影響を受けたり、最悪、壊れるかもしれない。
ということが判りました。
レベルシフタについて調べると、通常は「レベルシフタ」や「バストランシーバ」と呼ばれるICを使うのが一般的なようです。
しかしもっと手軽に実現できそうなものがありました。「ソフトとハードの交差点」で紹介されている「簡易レベルシフタ」というものです。
メガドライブ本体とカセット間でレベルシフトを行うにあたっては、ランドストーカーアダプタに回路を実装することとします。
また、レベルシフトはとりあえずデータバスだけを対象にすることにしました。これは、
・レベルシフタ無しで動作させた際、一応ゲームが動作する。
よって、アドレスバスや!OE、!WE信号線などの「3.3V→5V」方向の信号は、レベルシフト無しでも、うまく伝わっているようである。
・このシステムで「5V→3.3V」方向に信号が伝わるのは、データバスの16本の信号が主である。
というのも、本当のところメガドライブではカセットから来る信号として!S_RESET、!DTACK、!H_RESETがあり、
その他、解明されていない信号線も数本あるのだが、これらは多くのカセットで結線されていない。
なので、今のところランドストーカーアダプタでも未結線にしてある。
という理由からです。
以上、前置きを500行くらい書きましたが、いよいよ実験回路の製作です。
実験回路の製作
必要な部品を集めます。
【用意するもの】
・集合抵抗 8素子9ピン 5.6kΩ・・・2個
(9本のピンのうち、1本はコモンとなります。残り8本のピンは抵抗を介してコモンに繋がっています)
・抵抗 3.3kΩ(1/4W)・・・16個
・DC/DCコンバータ HT7750A・・・1個
・ショットキーバリアダイオード 1N5817相当品(11EQS04)・・・1個
・コイル 100μH・・・1個
・電解コンデンサ47μF・・・1個
・電解コンデンサ100μF・・・1個
・配線材・・・適当
HT7750Aは若松通商で、その他の部品は全て千石電商で集まりました。遠方の方は通販を利用すると良いでしょう。
作成に当たっては、下の回路図を参考にします。
回路図エディタは「BSch3V」を使いました。BSch3V用回路図データは
こちらからどうぞ。
回路図中、右にDC/DCコンバータモジュールを記載しています。
簡易レベルシフタは、回路図の左側、D0〜D15のデータバスに直列に接続された抵抗と、片方がGNDに接続された集合抵抗で構成されています。
私の環境では、簡易レベルシフタは前にも述べたとおり、ランドストーカーアダプタ上に実装しました。
また、後述する実験の為、簡易レベルシフタ部分は交換可能なように作りました。
千石電商で買って来た、丸ピンのICソケットのようなもの(?正式名称は不明です)を介して、ランドストーカーアダプタに取り付けられるようになっています。
左:後ろから
右:前から
左:本体側/カセット側に丸ピンソケットを付けておいて・・・
右:完成したらソケットに挿します
ちなみに、画像のランドストーカーアダプタでは、本体側ピンにも集合抵抗5.6kΩを取り付けていますが、これはプルアップ抵抗です。
無くても動作するようです。
ほぼ、対応
・・・なぜ「ほぼ」なのか?
それは「ソニック・ザ・ヘッジホッグ3」が動作しなかったからです・・・
本実験回路により、ソーサリアン、モンスターワールド4、ファンタシースター、ヘルツォーク・ツヴァイは動作し、画面のちらつきも無くなったことを確認しました。
しかし、ソニック3だけは、なぜか動作しないのです。ちなみに、未改造のMD-360ではうまく動作します。
うーん、ソニック3が動作しないのはなぜなんだろ?ここでまた、2〜3週間悩みました。
先の「簡易レベルシフタ」のページには、「製品で出すときは普通バッファICをカマせます。」とありました。
やはり本格的にICを使うべきなんだろうか?
千石電商ではTC74LCX245F、「双方向バストランシーバ」というICを売っています。
データシートの能書きによると、
TC74LCX245 は、低電圧 (3.3 V) 駆動のCMOS 8ビット双方向バランストランシーバ(原文ママ)です。
CMOS の特長である低消費電力で 3.3 Vシステムにおける高速動作が可能です。
すべての入力端子およびバス端子 (出力オフ時だけ) には5.5 Vの信号入力が許容されるため、
3.3 Vと5 V との2電源を持つシステムでのインタフェースに適しています。
なかなか良さそうですね!というわけで早速ICを買ってきて回路を作成し、先ほど作成した簡易レベルシフタと差し替えます。
(と、簡単に書いていますが、SOPパッケージのICのため、節分の豆まきの大豆くらいの大きさしかなかったことから、半田付けには苦労しました。)
ICのピンは例によって、途中で半田付けした線がポロポロ切れたので、頭にきてエポキシ接着剤で固めた。
ドキドキしながらソニック3を動かすと・・・やはり動作しません。
しかもその他のゲームを起動すると、画面のちらつき・ノイズが復活しています。ダメか・・・
簡易レベルシフタが原因というわけではなさそうです。
ここで少し落ち着いて、オシロスコープを使い、各部の電圧を測定してみようと思いました。
無改造MD-360/初代メガドライブ/改造MD-360上でソニック3を動作させ、
・ソニック3のマスクROMのVccの電圧
・マスクROMのデータバスD0の(Hレベルの)電圧
を測定する事にします。
左から、
・無改造のMD-360(ソニック3動作可)
・初代メガドライブ(ソニック3動作可)
・改造MD-360(ソニック3動作せず)
と並べてあります。赤がマスクROMのVccにかかっている電圧、黄がデータバスD0にかかっている電圧です。
まず、無改造のMD-360では、バッテリーバックアップにアクセスできないにせよ、3.3Vでソニック3が動作しています。
また、改造MD-360は、電圧的には初代メガドライブとほぼ同じと言えそうです。
なんでこれでソニック3が動作しないのか・・・動作しないのは、「カセットに正常な電圧が与えられていないから」という原因ではないのかもしれません。
と、ここで「カッパドキア」さんより、
サンプル品として6ボタンの携帯メガドライブ「HG-806MD」が届きました。
いやー、これでバッテリバックアップに対応してたらこれまでの苦労は水の泡だな、
と思いながらいくつかのゲームを試して見ますと、
シャイニング&ザ・ダクネスは、相変わらずセーブが正常に表示されません。ホッ(?)
ヘルツォーク・ツヴァイが動く!なんでだ!?
最後にソニック3は・・・バックアップへのアクセスもできる、だと・・・!
これらのことから、以下のことが判明しました。
・シャイニング&ザ・ダクネスのセーブ画面が異常なことから、HG-806MDはカセットに対して5V(最低4.2V)を供給していない。
・ソニック3は、5V(最低4.2V)を供給してやらなくとも、セーブ画面を表示できる。
ソニック3は、バッテリーバックアップのために、通常のソフトのように「SRAM+電池+リセットIC」のセットを装備していません。
代わりに、これらがRAMTRON社の「NVRAM」というパーツで一つになっています。NVRAMとは、電池を内蔵したSRAMのようなもの、らしいです。
らしい、というのは、ソニック3に実装されたNVRAM「FM1208S-200CC」のデータシートが見つからなかった為です。
ひょっとしたら、セガがカセットのバックアップ用に特注した製品なのでしょうか。
何にせよ、今回の実験回路を通すと、カセット全体が動作できないようです。
電圧の問題でないとすると、電流の問題なのかも・・・と思い、これも調査してみる事にしました。
調査方法は、
・MD-360改、HG-806MDの裏ブタを開け、カートリッジコネクタのVcc、GNDからICクリップなどで線を引き出す。
・引き出した線の間に抵抗Rを取り付け、抵抗にかかる電圧Vrをテスタで測定する。その時の電流IをI=Vr/Rで求める。
・抵抗にかかる電圧Vrが、MD-360改およびHG-806MDの電源電圧と比べて低下している場合、これは電流不足を示している、と思われる。
「と思われる」というのが弱気な感じですが、以下が調査結果です。
1、MD-360改(電源電圧:5V)
R[Ω]
| 20 | 31 | 50 | 62 | 100 | 220 | 22000 |
Vr[V] | 4.62 | 4.76 | 4.86 | 4.98 | 5.05 | 5.03 | 5.01 |
I[mA]
| 231 | 153 | 97.2 | 80.3 | 50.5 | 22.9 | 0.227 |
2、HG-806MD(電源電圧:3.0V〜3.3V程度?)
R[Ω]
| 20 | 31 | 50 | 62 | 100 | 220 | 22000 |
Vr[V] | 3.57 | 3.63 | 3.65 | 3.66 | 3.68 | 3.57 | 3.70 |
I[mA]
| 179 | 117 | 73.0 | 59.0 | 36.8 | 16.2 | 0.168 |
抵抗値Rが飛び飛びなのは、手持ちの抵抗で試したからです。また、抵抗値は左から昇順にしたほうが見易かったかもしれません。
MD-360の表に着目すると、抵抗値100〜22000Ωのあたりでは抵抗に対して期待通りの5Vがかかっています。しかし、それより抵抗値を下げると、4V台に低下してしまいます。
この近辺のIに着目すると、50mA〜80mAの間のどこかの値が、この昇圧回路の出力電流を示しているのではと思われます。
なお、HT7750はデータシートに「Output current up to 100mA」の記載がありましたので、20、30Ωの計測値は無駄、というより計測自体を行うべきではないと思います。やってから気付きました。
一方、HG-806MDの表に着目すると、仮にこのマシンのカセット供給電圧が3.3Vとしますと、調べた範囲の抵抗の組み合わせでは、全てのVrが3.3Vを上回っています。
そう考えると、MD-360改の50〜80mAという値より、大きな出力電流を持っていることを示しているのではないでしょうか。
まあ、カセットにどのくらいの電圧を供給したかったのか?については仕様も不明ですし、そもそも「4.2V以下」という点でメガドライブの仕様としては誤っているのですが・・・
原因が電流不足であると仮定して、対策を行う方向性としては、
・MD-360改の出力電流を上げてみる。例えば、HT7750のモジュールを並列にしてみる、等。
・ソニック3のカセットについて、動作電圧/電流を求めてみる。
が考えられます。
しかし残念ながら、前者については、とりあえずHT7750を2つ並列にした回路を組み立ててみたのですが、うまくソニック3を動作させることはできませんでした。ただし100%駄目な訳ではなく、たまに起動したりします(????)。3つ並列の回路を試そうとしましたが、手持ちの部品が無く、すぐには試せない状態です。
また後者については、カセットに使用されているパーツのうち、マスクROMおよびNVRAMについて、まともなデータシートが出回っていないことから、恐らく前者より難しいでしょう。
ここで、これまでの調査をまとめますと、
- バッテリーバックアップのソフトのうちソニック3を除くソフト、およびヘルツォーク・ツヴァイについては、昇圧回路+簡易レベルシフタで動作可能となった。ソニック3は、ゲーム自体が起動しない。
- レベルシフタについて、TC74LCX245Fを利用する方法ではノイズが発生し、うまくいかなかった。ソニック3も動作せず。
- ソニック3がこの実験回路で動作しない原因については今のところ不明。電流不足かもしれないが、今のところこれ以上の調査ができない。
という結果となりました。
終わりに
今回、最後の「ソニック3動作できない現象」に一番苦しめられました。手持ちのカセットで、ただ一つ、これだけが動作しないところで長時間を費やしました。
本レポートでは解決せずに終わっており、片手落ちなのですが、その他のMM1026が実装されたバッテリーバックアップソフトについては、今回の実験回路で動作することはほぼ間違いないと思われましたので、公開する事にしました。
ソニック3問題については、HG-806MD等の材料もあることだし、いつか解決するでしょう!
また、簡易レベルシフタのIC化については、TC74LCX245Fを利用するとノイズが発生してしまう、ということで、5V→3.3V方向へのレベルシフトがうまく行われていないことが原因のようです。
これについては、「TC74LCX245Fを低い電圧で動作させて、MD-360に対して3.3V以下の信号を送るようにすれば良いのではないか?」と思い、そんな動作が出来るのかを
東芝セミコンダクタ社のサポート窓口に問い合わせてみたところ、「『2電源双方向レベルシフタ』を使えばいいんじゃないか」という回答をもらえました。
しかしこの2電源レベルシフタIC、秋葉原のお店では買えないようで、別途、電子部品の調達サイトで見積を取ったところ、16本のバスを1つのICで処理できる「TC74LCXR163245FT 」が、1個600円との事でした。地味に高い!
次回の目標は、本体に内蔵できるくらいコンパクトな昇圧+レベルシフタ回路で、かつソニック3が動作するものを作成することです。
しかしこの3ヶ月、MD-360の調査にどっぷり没頭し、正直、かなりうんざりしました。部品調達の時間も入れて、しばらく時間を置きたいと思います・・・
(2009/02/16)