にがMSX

〜 最小MSXをMSX2にバージョンアップ 〜




CASIO MX-10 MSX2 VersionUp KIT
概要

 本品はCASIOのMX-10 をMSX1からMSX2にバージョンアップするための改造KITです。改造できるのはMX-10のみで、MX-101は外観が似ていますがメインボードが異なるため非対応です。その他のMSX1でも本体側の割り込み信号やCLOCK信号の引き回し、スロット構成が機種によって異なるため、改造基板を物理的に実装できたとしても正しく動作しないと思います。

  改造にはそれなりの電子工作のスキルが必要です。目安としては、片面基板のDIPパッケージのICを無傷で外せる程度です。作業には一般的な半田付け用の 工具が必要で、特に半田吸い取り器は必須です。電源改修に必要な部品やVDP,VRAMの添付はありませんので各自で用意 してください。

 当方は原則としてアフターサポートはいたしません。本記事を最後までお読みいただき、ご自分のスキルで取り付け可能と思われた方のみお買い上げください。

このページでは無改造状態のMX-10を本KITで改造する手順を解説します。


VersionUp 内容

Before
After
SYSTEM
MSX1
MSX2
ROM
MAIN-ROM 32kB

MAIN-ROM 32kB
SUB-ROM  16kB
USER-ROM 80kB
RAM
16kB
4096kB
VDP
TMS9118
V9938
VRAM
16kB
128kB
OUTPUT
C.VIDEO
AUDIO
CMT
RF
C.VIDEO
AUDIO
RGB
S.VIDEO(Option)


KIT内容
記号
品名
説明 
数量

改造基板 CPU,VDP,VRAMは非実装
1
(U1)
丸ピンICソケット 40p
MX-10メインボードのCPUパターンに実装
1
U1
連結ピン 20p
基板連結用 丸ピン 改造基板に実装
2
U9
SST39SF010 1Mbit FlashROM PLCC(システムROM用)
1
J2
分割ピンソケット
11ピン 出荷時にピンヘッダに挿さっています
1

DIN-8p メスコネクタ基板用
RGBコネクタ用
1

ステッカー
おまけ
?



  本KITは家電のKENちゃんさんを通して少量頒布しますが、品切れの際はご容赦ください。

通常のMSX2に対して以下の機能制限があります

1) RTC(リアルタイムクロック)機能は実装されません。RTCのバックアップメモリも使用できません(FIRE HAWKのデータセーブなど)
2) CMTコネクタをRGBコネクタに変更するため、カセットテープによるセーブ・ロード機能は使えなくなります。
3) RFコンバータを撤去するためテレビのアンテナ端子には接続できません。
4)本体内部でスロット#3を拡張して使用するため、CASIO純正の拡張ボックス「KB-10」の右側のスロットは使用できなくなります
5)プリンタ端子はありません
6) その他予期せぬ不具合が発覚するかもしれません。

 KITの他に必要な物が多数ありますので、トータルコストを考えると中古のMSX2を買ったほうがお安いと思います。MX-10に並々ならぬ思い入れがある方や、量産型MSX史上最小マシンのMSX2化にロマンを感じる方以外は手を出さない方が賢明です。



別途準備が必要なもの
品名
数量
説明 
MAU108など
1
±12V電源を生成するためのDC-DCコンバータ。基板モジュールタイプでも可
USBコネクタ
1
+5V電源入力用。TypeCを推奨
V9938 VDP
1
適当なジャンクから部品取りするか、海外通販などで入手してください。V9958でも可
4bit x64k DRAM
4
VRAM用。MB81464、M5M4464、uPD41464のいずれかのDIPタイプ
10kΩ抵抗
9
リードタイプの1/6Wカーボン抵抗で十分
MiniDIN-4pコネクタ
1
S端子用。パネル固定タイプ(必要な人のみ)
ROMライター

FlashROM 39SF010のPLCCタイプが書き込める環境
MSX2本体

お手持ちのMSX2本体から抽出したシステムROMデータが必要です
その他
配線材、絶縁材(ポリイミドテープなど)、熱収縮チューブ





システムROMの準備

改造に着手する前にお手持ちのMSX2本体からROMイメージを抽出してください。

TINY野郎さんのTINY SLOT CHECERが便利です。「MAIN」にカーソルを合わせてRETURNキーを押下するとDATA SAVEメニューが現れますのでRAW形式でセーブしてください。32768bytesのファイルが生成されます。

 同様にSUB-ROMも抽出します。16384bytesのファイルが生成されます。
SUB-ROMにパッチを当てるため、16384bytesのファイルをバイナリエディタで開いてください。

SUB-ROMは先頭が43h,44hになっています。
Address(HEX)
Before(HEX)
After(HEX)
03F3
D2 DF 03
00 00 00
03F7
CA DF 03
00 00 00
03FF
D2 DF 03
00 00 00
1CD9
0F
00
1D0E
0F
00
0487
CD D2 1C
3E 01 00
04A4
CD DB 1C
3E 1D 00
04AB
CD D2 1C
3E 0F 00
04B4
CD D2 1C
3E 04 00
04BA
CD D2 1C
3E 07 00
04C0
CD D2 1C
3E 03 00
MSX2のシステムはRTCのメモリにエラーがあると無限ループに入って起動しません。SUB-ROMを左表のように書き換えるとRTCチェックが無効化されます。

0487hからの内容は起動時のパラメータ設定項目です。この値でパッチするとSCREEN1/WIDTH29起動ですが、SCREEN0/WIDTH39起動がお好みであれば0488hを01h->00h、04A5hを1Dh->27hにします。

RTCについては、MSX Resorce Centerで解説されています。
https://www.msx.org/wiki/Real_Time_Clock_Programming

海外にMSXのシステムROMを解析された方がおられます。今回のパッチで参考にさせていただきました。
https://github.com/apoloval/msx-system/tree/master/base200
ROM Address(HEX)
SLOT
Page
Contents
00000-07FFF
#0
0-1
MAIN-ROM
08000-0BFFF
#3-1
0
SUB-ROM
0C000-13FFF
#3-1
1-2
USER-ROM
14000-1BFFF
#3-2
1-2
USER-ROM
1C000-1FFFF
#3-3
1
USER-ROM
本KITのFlashROMは左表のようにシステムに割り当てられます。

MAIN-ROMイメージとパッチ済のSUB-ROMイメージを連結し、お手持ちのROMライターで39SF010に書き込んでください。

USER-ROMの0C000h以降は空き領域でも問題ありませんが、漢字BASIC、べーしっ君、MAmi-VSIFドライバ等のROMイメージを入れることができます。

例えばMマガ永久保存版2に入っているべーしっ君ターボのABヘッダ付きのバイナリ16384bytesを適当なスロットのPage1領域に入れると使えるようです。





メインボードの取り出し

 筐体を裏返して後面スロットの蓋を取り、ネジを外します。背面スロットカバーの内側にもネジが2本あります。
トップカバーはキーボードと一体化しており、向かって右側のケーブルでメインボードと接続されています。よってトップカバーは左側から開けます。ツメで固定されていますので、不要になったプリペイドトカード等を上側から差し込んで矢印の方向にスライドさせると開きます。
右側も同様にするとトップカバーが外れますが、キーボードフレキに無理な力がかからないように横にずらしてコネクタを露出させます。

コネクタの外枠が留め具になっているので上方に持ち上げるようにスライドさせます。固いと思ったら無理せずに左右少しずつやると良いでしょう。
留め具を止まるまで上にスライドするとフレキの接触圧が解除されますが、すぐにフレキを上に引っぱってはいけません。

経年によりフレキのカーボンペーストがコネクタ接点と固着しているため、一気に引っこ抜くとベリっとカーボンペーストが剥がれます粘着テープを剥がすイメージで丁寧にフレキを前後に揺すってみてください。微妙にペリペリした感触とともに接点が離れます。その後でフレキをゆっくりと上に引っこ抜いてください。
2本のワイヤーでシールド板とメインボードが繋がっていますので、ラジオペンチで摘んで右にスライドして外します。
フレキはこのポッチのところで固着していますが、丁寧に作業すると接点を傷めずに抜き取ることができると思います。

多少剥がれてしまっても傷が浅ければそのまま使えます。押せないキーが出てしまったらフレキ先端を0.5mmくらいカットしてください。ただし、この手法は2回くらいしか使えません。

フレキの接点は非常にデリケートなので、コネクタの着脱は改造が完全に終わるまでしないほうが良いです。
トップカバーが外れたら適当にネジを外してメインボードを取り出してください。


部品の撤去
メインボードを取り出したら、背面端子の接点保護のためマスキングテープを貼っておきます。
枠で囲った半田を吸い取って部品を外します。ヒートシンクのネジも外してください。

ここで撤去されるのは、3端子レギュレータ+ヒートシンク、DCコネクタ、CMTコネクタ、RFコンバータ、抵抗2本、電解コンデンサ1個です。
VDP,VRAM,CPU,ROM,RAMを撤去します。

部品を抜いたらパターンが損傷していないか確認し、切れているラインがあったら修復しておきましょう。
全部でこれだけの部品が外れました。

CPUのみ再利用します。この機体ではNECのセカンドソース品uPD780-1が使われていました。



カット&ショート
 電源のUSB化のために1箇所ショートします。表面でダイオード「1S2075」が実装されているところです。ダイオードを撤去してショートしても構いません。なるべく太い線を使ったほうがいいです。

CMTコネクタ跡地にRGBコネクタを実装するため、画像の位置でパターンカットします。
 表面でも3箇所パターンカットします。これでCMT関連の信号はすべて切り離されました。
メインボード裏面で10kΩの抵抗を9本実装します。添付のCPUソケットも同時に実装します。

上側の1本は、TMS9118撤去により浮いてしまうINT信号をプルアップするためのもので、74LS08の1p-14p間に接続します。

下側の8本はCPUのデータバスD0-D7をプルアップするためのもので、uPD780-1の7,8,9,10,12,13,14,15pと11p間に接続します。抵抗の下には絶縁用のポリイミドテープ等を貼っておくと安心です。

なぜデータバスをプルアップするかというと、これをしないと誤動作するソフトが稀にあるからです。


電源の改修
 部品リストではDC-DCにMAU108を推奨していますが、画像ではAitendoのDC-DCモジュール基板を使っています。このあたりは実際に入手されたコネクタやDC-DCコンバータに合わせて適当に加工してくだい。

画像ではUSB電源入力が3端子レギュレータ左側の穴(I)に刺さっているように見えますが、実際は被覆線のまま穴を貫通してるだけで、芯線は電源スイッチの入力側に繋がっています。


レギュレータの穴の真ん中(O)と右側(G)はDC-DCの電源入力に利用しました。


 DC-DCの出力はワイヤーでスロット裏に接続します。これで本体スロットでFMPACが使えるようになります。接続を誤るとカートリッジが壊れますので注意してください。

この電源改修は当方がリリースしている各種音源カートリッジを使う場合も必要です。


RGBコネクタの加工
DIN-5pの穴にDIN-8pは刺さらないので余分な足3本を短くします。

まず、奥側の3本の足の付け根をナイフでマーキングします。



  一旦コネクタを分解して、マーキング位置(矢印)から1mm上側でカットします。

あまり短く切るとピンがSHELLに収まらなくなるので注意してください。
3本とも切りました。
コネクタを組み立てた後、カットした3本がSHELLの奥に引っ込んでいることを確認してください。

コネクタの着脱負荷で頭が出てくると、RGB信号がメインボードのGNDと接触して表示不良が発生します。



改造基板の実装
 改造基板に別途入手されたVDP,VRAMを実装してください。このときICソケットを使わないでください。ケースが閉じられなくなります。

ROMデータを書き込んだFlashROMもソケットに挿入します。

CPUと連結ピンは一番最後に実装します。
裏面のJP1〜JP3はシルク印刷の指示通りにショートしてください。V9938の場合はJP1に半田を盛ればOKです。
メインボードのCPUソケットに添付の連結ピンを差し込み、その上から改造基板を載せます。画像の手前が連結ピン、奥がCPUです。逆だと動作しませんので注意してください。

改造基板をメインボード側に十分に押し込んだ状態で半田付けしてください。浮いていると後々トラブルの元になります。
一旦改造基板をソケットから取り外し、CPUを方向に注意して実装します。CPUは直接改造基板に実装します。ICソケットを使うとケースが閉まらなくなります。

連結ピンに半田が付着しないようにマスキングしたほうが良いでしょう。
CPUを実装したら改造基板をメインボードのCPUソケットに挿し込みます。連結ピンが折れやすいので注意してください。


AV信号の配線
 改造基板の映像信号をワイヤーでコネクタに配線します。RGB信号はコネクタの背面に出ているピンに直接半田付けしてください。

ピンソケット側のワイヤーは熱収縮チューブで処理すると良いです。
その他の信号は画像の位置に半田付けします。

この画像の状態ではRGB信号のYsとAVC信号がNCになっています。LCDモニタに接続する場合は問題ありませんが、CRTに接続する場合はこれらをプルアップしておかないと絵が出ないかもしれません。その場合は10kΩ程度でVccに接続してください。アップスキャンコンバータを使う場合も、YsをプルアップしないとRGB信号を認識しないことがあるようです。

AUDIO信号も適当なジャンパー線で接続してください。
S端子を増設する場合は、MiniDIN-4pコネクタにY/C信号を接続してください。

画像はゆうじろうさんの加工例です。


CSYNCレベルについて



改造基板から出力されるCSYNC信号は1Vp-p程度になるように抵抗で分圧しています。左画像の75Ωが分圧抵抗で、J2の裏面に実装されています。

通常はこのままご使用になれますが、近年流通している15kHz対応の分離同期信号入力タイプのLCDモニタには、TTLレベルのCSYNC信号をHSYNC入力に接続するだけで映るものが多いようです。

当方blogの関連記事:
http://niga2.sytes.net/wordpress/?p=582
余熱さんの同期分離回路の記事(販促マンガ参照):
https://yone2.net/sync_sep/

左画像の抵抗を取り外すとCSYNC信号がTTLレベルで出力されるため、LCDモニタによっては同期分離回路不要でシンプルに直結できるようになります。

ただし、TTLレベルのCSYNC信号を同期分離回路に通した場合はノイズの原因になることがあります。同期分離回路をご使用の場合は抵抗を実装したまま運用してください。


KeyPADの改修(必須ではありません)


 MX-10にはCASIO機特有の機能として、本体にJoystick1相当のキーパッドとトリガーボタンが付いています。その一方で本来のカーソルキーが横一列にレイアウトされてしまって大変使いにくくなっています。

キーパッドをカーソルキーとして使いたい場合は、上画像の位置でパターンカットしてジャンパー線を接続すればOKです。この改造を行うと本体キーボード上のトリガーボタン(TR1,TR2)は使えなくなります。CASIOのキーパッドに拘りがある人は改造しなくてもいいでしょう。



動作チェックとキーボードの接続

画像はゆうじろうさん提供
キーボードはまだ接続しません。その前に電源投入してシステムが起動するかチェックします。MSX2のタイトルが現れ、BASICが起動すれば第1段階クリアです。まったくの無反応なら電源回路を疑ってください。電源が入るのにシステムが起動しない場合は半田不良やソケット類の接触不良が疑われます。

この段階で各映像出力端子での表示、サウンド出力ができるかどうかもチェックします。 MSX2用のROMゲームをジョイスティックでプレイできれば大体OKです。

動作に問題なければメインボードと電源スイッチを底面ケースにネジ止めします。
キーボードはまだ接続しません。その前にトップカバーとコネクタ類が干渉していないか確認します。おそらくUSBコネクタやS端子がカバーの出っ張りと干渉しているので適当にカットしたり削ったりしてください。

USB電源コネクタの上にはこの突起が当たると思います。
S端子を増設した場合はこの辺りが干渉するかもしれません。
カバーが完全に閉まることが確認できてからキーボードフレキをコネクタに差し込み、外枠を押し込んで固定します。

キーボード裏のシールド板のワイヤーも元通りメインボードに接続します。
 カバーを閉じてシステムを起動し、キーボード入力をチェックします。全キーが押下できたらスロットチェッカーやメモリチェッカーなどで一通りの機能を確認しましょう。

いずれの動作にも支障がなければトップカバーをねじ止めします。
仕上げにおまけのステッカーを貼って、さり気なくUpgrade内容をアピールしてください。完成したあなた、おめでとうございます。




余談
 改造基板は製造時に簡易チェックをしています。チェック用のMX-10メインボードとCPUをマックエイトの基板連結用コンスルーで接続し、4MBのマッパメモリとスロット#3の拡張が正しく機能していることを確認しています。

MSX2+ SUB-ROMの場合
Address(HEX)
Before(HEX)
After(HEX)
0450
D2 3C 04
00 00 00
0454
CA 3C 04
00 00 00
045C
D2 3C 04
00 00 00
1C67
0F
00
1C9C
0F
00
0503
CD 60 1C
3E 01 00
0520
CD 69 1C
3E 1D 00
0527
CD 60 1C
3E 0F 00
0530
CD 60 1C
3E 04 00
0536
CD 60 1C
3E 07 00
053C
CD 60 1C
3E 03 00
VDPにV9958を使い、MSX2+のシステムROMを使う場合はSUB-ROMを左表のようにパッチしてください。

MSX2 +のタイトルロゴ表示プログラムは漢字BASICのROMに入っていますので、FlashROMのSLOT#3-1のPage1-2領域(0C000-13FFF)にMSX2+本体から抽出した漢字BASIC+単漢字変換ROMもインストールしてください。本KITでは漢字ROMは実装されませんので漢字機能を使う場合は別途漢字ROMが必要です。

なお、MSX2+タイトル表示プログラム内でもRTCアクセスしている部分があり、未パッチだとタイトルロゴの背景が黄色になります。お馴染みの青背景にするには漢字BASICのROMの 3C4Eh : DB B5 -> E6 00 に書き換えてください。

本KITではMSX2+のF4レジスタは実装されませんので、使用するMSX2+システムROMによってはタイトルロゴが表示されないことがあります。具体的にはSONY系MSX2+のROMを使うとそうなります。この問題を回避するにはMAIN-ROMの146Chと146Ehを 00 -> 2Fに書き換えてください。詳しくはコチラの記事のF4レジスタの項目に書いています。

ちなみにV9938使用時にMSX2+のシステムROMをインストールした場合、タイトルロゴが正しく表示されませんし、自然画も表示できません。また、MSX2+規格には漢字ROMが必須となっています。


さらに余談:試作機遍歴
後に続く人の参考になるかもしれないので、失敗作を晒してみます。

これが最初の試作0号。基板画像ではVRAMが見えませんが、ソケット実装したVDPの下に隠れています。VRAMに使ったのは4MbitのDRAM M11B416256A 。容量の3/4が無駄になりますが、秋月で100円で売っていて、都合の良いことに/CAS信号が2系統あり、8bit単位でアクセスできます。VRAMが1Chipにできてオトク…と思いきや。


起動ロゴは綺麗に表示されてVRAM 128kBが認識され、BASICのテキストやSCREEN5のグラフィックも正しく表示できたのでヤッター!と思ったのも束の間、SCREEN7で文字崩れが発生し、SCREEN8ではご覧の有様。どうも横8dot単位で同じ値が連続して読み出されている模様。

V9938とDRAMのデータシートを突き合わせても原因が分からず…。
試しに裏面に同じDRAMを追加して、/CAS0と/CAS1を別の物理メモリに分けてみました。
だいぶマシになりましたが、表示がチラチラしていますし、よく見るとキャラの目が崩れていたり、文字フォントが妙に太くなっています。2個のVRAMが吐き出したデータが競合している感じがします。

さらに調査を進めると、VDPのデータシートに載っていない情報が海外にありました。

http://map.grauw.nl/articles/vdp-vram-timing/vdp-timing.html

どうやら Multi-bank page mode reads というアクセスモードで問題が発生している模様。 SCREEN7/8では、2系統の物理DRAMをファーストページモードで交互にアクセスすることで高速にデータを読み出すというアクロバチックなことをやっているらしく、M11B416256Aではタイミングが合わなかった模様。


仕方ないので基板を作り直してSRAMを使ってみました。コチラに書かれている情報を参考にしました。

https://msx.org/forum/msx-talk/hardware/v9938-compatible-sram

VRAMに使ったのはHM678127。2023年現在秋月で70円で手に入ります。SRAM化のためにはVDPがDRAMに発行するROWアドレスをラッチする外付けの石が必要で、これには74HC573を使いました。

VRAM周りの配線がギチギチですが、なんとかVDP下に収納できました。
結 果は敗北…。MSXタイトルロゴやゲームのSCREEN5は正常に表示できているのでROWアドレスのラッチは正しく機能しているようでした。SCREEN6までであれば正常に表示できるのでVRAM 64kBマシンを作るならSRAMでも行けるのでしょう。かなり使い道は絞られますが…。

しかし、SCREEN7/8はかなりアクセスタイミングがシビアです。
これ以上追求する気になれないので、普通に4bit x64kのDRAMを4個使うことにしました。レイアウトの大幅変更を余儀なくされ、ほとんど新規設計のレベルに…。まぁ、10x10cm基板にVRAMも収まったので結果オーライ?

ということで、これがリリース版での正常表示です。ここに至るまで半年位かかっています。

もっと余談(宣伝)
 MX-10をバージョンアップしても1スロット機ではなぁ…と思われた方にオススメなのが、当方がリリースしているSoundCoreSLOT EX(核スロ)。製品マニュアル

低ノイズなFM音源(とPSG)が追加されて、スロットも2つに増やせます。イベント限定品なので手に入りにくいと思いますが…。

音質が気になる方はこちらのBlog記事へ。 ヘッドフォンで曲間の無音状態を聴いていただければノイズレベルがお分かり頂けると思います。

 核スロがなくても拡スロがあればいいいじゃない? MX-10背面の拡張端子に接続する拡張スロットで、MX-101でも使えると思います。

基本スロット#2が4スロットに拡張されます。電源と音声ミキシング回路付き。無改造のMX-10に接続した場合でも電源のUSB化と±12V対応(拡張スロット上のみ)が可能。そのうちリリースするかもしれません。
核スロと拡スロの合せ技でMX-10が驚異の(?)6スロットマシンになります。省スペースながら音源ドカ盛りができる余裕の拡張性です。
地味に核スロやMX-10との相性が良いのがこの似非SCCDisk MAXIMUM。DACにバーブラウンのPCM54HPを採用し、低ノイズSCCサウンドを実現した大容量(1024kB)SRAM搭載似非SCCカートリッジです。イベント限定頒布品なので入手がちょっと難しいかも知れません。製品マニュアル

SCCはデジタルオーディオなので本来はノイズレスですが、実際は11bitのデジタル信号にVcc電源由来のノイズが含まれ、そのままR-2RでDA変換するとノイズが残留します。似非SCCMAXでは、これをPCM54HP内蔵のボルテージリファレンス回路と、外付けの電源フィルターにより本来の綺麗なデジタル信号に整形(ノイズ除去)してからDA変換します。その後DAC内蔵OPAMPにより低インピーダンス化するとともに外付けのVRでレベル調整してスロットのSOUNDIN端子に出力します。

MX-10にはPSG AY-3-8910が搭載されており、意外に低ノイズで音声出力されています。このため似非SCCMAXと組み合わせると非常に良いコンディションでSCC+PSGサウンドを楽しむことができます。もちろんDOSやNextorカーネルをインストールして1MBのRAMDiskとして使うこともできます。



謝辞
KITの頒布に先行して、ゆうじろうさんに改造を追試していただき、レポートしていただきました。ご協力ありがとうございました。 MSX2+のROM解析とパッチ情報その他でゆうくんさんにご協力いただきました。試作機の開発で発生したトラブルその他に対して裕之さんにアドバイスいただきました。スペインのDaniel Padillaさんにも改造を追試していただきました。このキットは欧州のMSXユーザー向けに頒布される計画があります。

 お約束ですが、このキットを使って改造した結果、故障や何らかの問題が発生しても当方は責任を負いません。各自の責任において情報を広く集めて行うことをおすすめします。

この記事の内容は個人の憶測や見解の誤りを含んでいる可能性があります。内容についてメーカー各社に問い合わせるのは止めましょう。


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

copyright (C) 2023 Niga.