2015/03/01

SG-1000とColecoVision (その2)

暇さえあればSG-1000(実質SC-3000用)に、ColecoVisionのゲームを移植するためのBIOSをチマチマ書いていたが、SG-1000のゲームが動作するColecoVision互換機、普澤(Bit Corporation)DINA 2 IN 1の挙動をなんとなく理解したのでメモだけ。

(以下メモ)

今まで想像していた挙動

DINA 2 IN 1の挙動については、もう何年も前から気になっていたが(そしてeBayで狙っていたが高すぎて落札できず…)、SG-1000のゲームが動くColecoVisionの互換機ではなくて、ColecoVisionのゲームが動くSG-1000の互換機なのではないかと思っていた。

ツイッターのフォロワーさんでDINA 2 IN 1を所有している方の情報だと、SG-1000のカートリッジポートにスイッチがあり、それをトリガにして

  • SG-1000の場合
    BIOSが切り離され、SG-1000のゲームがそのまま起動。
  • ColecoVisionの場合
    BIOSが動作し、SG-1000とColecoVisionのI/Oポートなどハードの差を吸収。
 …このような挙動をしているのではないかと仮定。

これがSG用にColecoVisionのBIOSを移植していた理由のひとつでもある。

疑問点 

BIOS移植していて気がついたが、I/Oポートの差はBIOSで吸収できるけれど、RAMのアドレスはどうやって解消しているのか。
こちらの写真によると、2KのSRAMが1個だけしか乗っていないようだ。
写真の「?」になっている部分は、このRAMの代わりに1KのRAMが2個載るのかな?

もうひとつは、前述のツイッターのフォロワーさんの情報によると、コントローラーはSG準拠ではなくて、ColecoVisionのテンキー無しのようだ。
※訂正:ColecoVision準拠では無いみたい。
そうすると、やはりColecoVision互換機なのだろうか?



思いついた挙動

BIOSによる差の吸収では無いとすると、どちらかの機能の上でもう一方の機能を有するのではなくて、完全に機能が切り替わっているのだと思う。

先の写真でZ80CPUの上に配置されている、74LS138×3個と74LS157がその役目をしてるのかな?

恐らく74LS138で、ColecoVisionとSG-1000のそれぞれのメモリ用のアドレスデコーダと、I/Oポートのデコーダを作り、SG-1000カートリッジポートにあるスイッチで、メモリアドレスデコーダの切り替えと、74LS157でI/Oポート接続先(音源とコントローラーと推定)の切り替えを行っているのではないだろうか。

コントローラーについても、接続コネクタの近くに74LS157が載っていることから、これでピンアサインを切換して辻褄を合わせているのだろうと思う。

何年も悩んだけれど、結構単純というかバカバカしい回路みたい。

と言うか、電子回路に詳しい人だと写真見ただけで一発で解りそうだな…。

実機への反映

SG-1000(SC-3000)はカートリッジスロットから本体RAM、ColecoVisionは拡張ポート(※要調査)から本体BIOS・RAM・I/Oなどの全ての機能を切り離すことができるみたいだから、外部にRAMやデコーダー回路を設ければ、それぞれのゲームを遊ぶ拡張ボードが作れると思う。

ColecoVision→SG-1000の場合は、ColecoVisionのBIOSにパッチ当てて起動すれば、本体の改造は必要なさそう。
SC-3000のキーボードをテンキーの代わりに使うことも可能だが、別途コントローラーコネクタを取り付けした方が良いか?


SG-1000→ColecoVisionの場合は、本体無改造だと外部にコントローラーコネクタと音源を載せる必要あり。(音声信号は拡張ポートから混合できる。)
う~ん、コントローラーはともかくとして、音源が同じなのに2つ載せるの格好悪いな…。

SN76498が買えるのかどうかもわからないし…。

とりあえず、ネット上にあるColecoVisionの回路図はあてにならないと言うか、書きかけみたいな感じなので、少し調べて修正してみようかと思う。

でも、拡張ボード作るとなるとハンダ付け大変そうだな…。

1 件のコメント:

  1. こんにちは.
    自分もSN76489は探してまして普通にパーツショップで売ってるのが分かりました.
    ただシュリンクDIPなので少しめんどくさいかもですが.

    返信削除