私の所有するSony NEWS5000SBの機器構成は下記のとおりです。
| 機種 | ROMモニタバージョン | CPU | 2nd cache容量 | メモリー容量 | グラフィックカード | ディスプレイ端子コネクター形状 | シリアル端子コネクター形状 | FDD | HDD | 光学ドライブ | APbusカード |
|---|---|---|---|---|---|---|---|---|---|---|---|
| NEWS5000SB | APbus System Monitor Release 3.102 | R4000SC(100MHz) | 128KB | 64MB(標準の32MBから増設) | 内蔵XA | 13W3 | Dsub 25ピンオス | 内蔵2ED | 外付け3.5inch 2slotケース(内蔵ドライブはFujitsu MAW3300NC) 外付けアイ・オー・データHDVS-UM27G(内蔵ドライブはアイ・オー・データHDI-40H(Samsung SV0411N)。使用されている変換基板の仕様か、32GBでクリッピング)(SCSI BUS 0/SCSI ID 1) | 内蔵Sony CDU-541(SCSI BUS 0/SCSI ID 6) 外付けLogitec LDV-R47S(内蔵ドライブはPanasonic LF-D200J)(SCSI BUS 0/SCSI ID 5) | NWB-5851 NWB-5852A |
標準の内蔵HDD(SCSI BUS 0/SCSI ID 0)は故障したため、取り外しました。内蔵FDDは不調で、NetBSDのインストールFDが読み込めないことが多々あります。内蔵CD-ROMドライブは不調で、NetBSDのインストールには使用できませんでした。
NEWS5000SBにはNVRAMが搭載されており、型番はSTMicroelectronics MK48T02B-25です。
NVRAMのバッテリーが切れると起動しません。具体的には、電源スイッチを押した後しばらくすると、本体前面のNETWORKインジケーターが点滅し続け、コンソールには何も表示されません。
私の所有するNEWS5000SBでは、DIPスイッチ4をONにしてNVRAMの情報を忘れた状態にすれば起動するようになりました。ただし、DIPスイッチ4をONにしても起動しないこともあったので、他の要因があるかもしれません。
筐体下部前面よりにあり、筐体幅ほぼいっぱいの大きさです。
左側のACケーブル、右側の内部電源ケーブル3本を取り外し、前面左、前面右、右側面の固定ねじを取り外して、電源ユニットを左にスライドさせれば筐体から取り外せます。
電源ユニット右側にはファンが3台取り付けられています。このファンは電源ユニットを取り外さないと交換できません。
NEWS5000SB内部には、3種類のファンが内蔵されています。私の所有するNEWS5000SBでは下記の通りです。
| ファン種別 | 取り付け位置 | 向き | 型番 | 台数 | コネクター型番 | 備考 |
|---|---|---|---|---|---|---|
| 電源ユニットファン | 電源ユニット右側外部 | 排気 | 日本電産(現ニデック) D04X-12TL 04 | 3 | 日本圧着端子製造 PHR-2(コンタクト SPH-002T-P0.5Sなど) | |
| 左側面ファン | 左側面上部前面より内側 | 吸気 | 日本計器製作所 MFB 60A-12H | 1 | TE Connectivity 171822-3(コンタクト 170204-1など) | |
| 背面ファン | 背面 | 排気 | 三菱電機 MMF-12B12VH-R02 | 1 | サーミスター付き |
多くのプラットフォームをエミュレートするMAMEでNEWS5000Xもエミュレートできます。
使用するにはこちらの内容にしたがいます。
私は、Ubuntu Desktop 24.04.3 LTSとWindows 10 Pro 22H2で動作を確認しました。MAMEのバージョンはそれぞれ0.281+dfsg1-0ubuntu1と0.281です。
プライベートリポジトリのパッケージを利用しました。
インストールしたパッケージは下記の通りです。
ソースパッケージも必要なので、こちらもインストールしました。
公式サイトで配布されているバイナリーを使用しました。展開して任意の場所に置けば使用可能です。
rom_extractor.pyを使用して、ROMモニタのログからROMファイルを作成します。
実機のROMモニタで以下のログを取得します。
> md -w 0x1fc00000 0x1fcfffff
> md -w 0x1f3c0000 0x1f3cffff
> md -w 0xb4800000 0xb482187f
> md -w 0xbe600000 0xbe60ffff
$ rom_extractor.py -v md.log
ディレクトリーnws-5000xに4つのROMファイルとそれぞれのチェックサムファイルが作成されます。なお、monitor_rom.romはmpu-33__ver3.201__1994_sony.romにファイル名を変更します。
mdのログをROM毎に処理することも可能です。この際、以下の2つのオプションを使用します。
$ rom_extractor.py -v -o ./nws-5000x_monitor_rom -r monitor_rom md_0x1fc00000.log
$ rom_extractor.py -v -o ./nws-5000x_idrom -r idrom md_0x1f3c0000.log
$ rom_extractor.py -v -o ./nws-5000x_dsc-39_aprom -r dsc-39_aprom md_0xb4800000.log
$ rom_extractor.py -v -o ./nws-5000x_macrom -r macrom md_0xbe600000.log
ディレクトリー$HOME/mame/roms/nws5000xにROMファイルを置きます。
実行ファイルのあるフォルダーのフォルダーroms/nws5000xにROMファイルを置きます。
MAMEでは現状グラフィックコンソールをサポートしていません。MAME自身にテキストコンソールを表示可能ですが、私の環境ではキー入力ができなかったりして不安定なので、外部にコンソールを設けました。
仮想端末を使用します。仮想端末のデバイス名(/dev/pts/3など)は、MAMEのPseudo Terminalsメニューで確認できます。
bitbanger機能を使用します。com0comをあわせて使用すれば同一PCでエミュレートとコンソールを動作させられます。私が使用したcom0comのバージョンは3.0.0.0です。
com0comのMAMEに接続するポートは、ポート名称をCOM1〜COM9にしてください。COM10以上の番号ではシリアルポートと認識されません。(通常のファイルと認識され、存在しなければ作成されます。)端末エミュレーターに接続するポートは(端末エミュレーターがサポートしているのであれば) COM1〜COM9以外で問題ありません。com0comではポートの設定にuse Ports classの項目がありますが、チェックあり/なしのどちらのポートでも接続できました。
また、私の環境ではcom0comの設定後、Windowsを再起動しないとMAMEがシリアルポートをうまく認識できませんでした。なお、うまく認識できないとMAMEがハングアップします。
なお、com0comを使用せずTCPソケットで接続する方法もありますが、私の環境ではかなり不安定でした。具体的には、表示がくずれたり入力をとりこぼしたりしました。また、端末エミュレーターでローカルエコーの設定が必要です。
TAPデバイスとルーティングを使用します。
事前にソースパッケージに含まれるsrc/osd/sdl/taputil.shを実行しておきます。
$ sudo mame-0.281+dfsg1/src/osd/sdl/taputil.sh -c $USER NEWS5000XのIPアドレス TAPデバイスのIPアドレス
これで、tap-mess-$USERのユーザーID-0というインタフェースが作成され、IPアドレスの設定とルーティングの設定が行われます。
インターネットと通信するには、Ubuntuを動かすコンピューターの上位ルーターにTAPデバイスのネットワークあてにルーティング情報が必要です。
TAPデバイスを削除するには下記のようにします。ルーティングの設定も無効になるので他の用途でルーティングの設定が必要な場合は注意してください。
$ sudo mame-0.281+dfsg1/src/osd/sdl/taputil.sh -d $USER
OpenVPNのTAPアダプターが必要です。事前にインストールしておきます。TAPアダプターの名称はTAP01に変更しました。
また、私はインターネットと通信するために、インターネット接続の共有を使用しました。こちらも事前に設定しておきます。NICでインターネット接続の共有を使用すると、TAPアダプターのIPアドレスが192.168.137.1/24に設定されます。NEWS5000XのIPアドレスは同じサブネット192.168.137.0/24内のIPアドレスにします。NEWS5000Xのデフォルトゲートウェイは192.168.137.1にします。 なお、インターネット接続の共有ではなくブリッジの方が使用時の制限が少なそうですが、私の環境ではNICのドライバーの問題かうまく動作しませんでした。
現在の設定を確認するには以下のようにします。
$ mame -showconfig
必須ではありませんが、設定ファイルを使用できます。設定ファイル名はmame.iniです。 設定ファイルは以下のようにして作成します。
$ mame -createconfig
カレントワーキングディレクトリー/カレントフォルダーに作成されるので、内容を確認して必要に応じて変更します。
設定ファイルを置くディレクトリーは$HOME/.mameです。
設定ファイルを置くフォルダーは実行ファイルと同じフォルダーです。
私はデフォルトのフルスクリーン表示が使いづらかったので、OSD VIDEO OPTIONSセクションで下記のように変更しました。
window 1
なお、同等のコマンドラインオプションは-windowです。
事前にMAMEに含まれるchdmanを使用して仮想HDDを作成します。
$ chdman createhd -o sd00.chd -s 2088960000
MAMEのウィンドウ内にグラフィカルなメニューが表示されます。仮想端末のデバイス名を確認したり、ネットワークデバイスの設定やリムーバブルメディアの交換などに使用します。
メニューを有効/無効にするキーはINSERTです。
メニューを有効/無効にするキーはScroll Lockです。
メニューを表示/非表示するキーはTABです。
メニューを選択するにはシングルクリック、確定するにはダブルクリックです。
エミュレート前にTAPデバイスが利用可能か確認します。下記のように表示されれば利用可能です。
$ mame -listnetwork
Available network interfaces:
TUN/TAP Device
以下のようにしてエミュレートを開始します。
$ mame nws5000x -cdrom sd06.iso -harddisk sd00.chd -serial0 pty
エミュレートのMAME起動時に新たな仮想端末が作成されたら、screenなどで接続します。MAME起動後(エミュレート開始後)に接続した場合、接続前に出力された内容は破棄されます。
起動後、ネットワークデバイスの設定を行います。私の調べた限りコマンドラインや設定ファイルで事前に設定する方法はありませんでした。
Network Devicesメニューの:sonicをデフォルトの------からTUN/TAP Deviceに変更します。一度設定すれば、次回以降は設定を記憶しています。
エミュレート前にTAPアダプターが利用可能か確認します。下記のように表示されれば利用可能です。
> mame -listnetwork
Available network interfaces:
TAP01
エミュレートのMAME起動前に端末エミュレーターでcom0comのMAMEの対向ポートに接続します。MAME起動後(エミュレート開始後)に接続しても接続前に出力された内容はバッファリングされていて接続時にまとめてはきだされるようですが、コントロールシーケンスなど一部は正しく処理されませんでした。
以下のようにしてエミュレートを開始します。ここでCOM6はMAMEが内部的に接続するcom0comのシリアルポートです。
> mame nws5000x -cdrom sd06.iso -harddisk sd00.chd -serial0 null_modem -bitb COM6
起動後、ネットワークデバイスの設定を行います。私の調べた限りコマンドラインや設定ファイルで事前に設定する方法はありませんでした。
Network Devicesメニューの:sonicをデフォルトの------からTAP01に変更します。一度設定すれば、次回以降は設定を記憶しています。
フロッピーディスクを指定するには、コマンドラインに下記を追加します。
-flop フロッピーディスクのイメージファイル名
もしくは、メニューで設定します。File Managerメニューのfloppydisk (flop)に指定します。
私の所有するNEWS5000XのROMモニタのバージョンは3.202なのでエミュレート時に警告が表示されますが、ROMモニタは起動しました。
以下のコマンドでエミュレートする構成などの情報が得られます。
$ mame nws5000x -listroms
$ mame nws5000x -listdevices
$ mame nws5000x -listslots
$ mame nws5000x -listmedia
NetBSD-10.1のインストールを試してみました。
[ 3.1276450] sd0 at scsibus0 target 0 lun 0: <, , > disk fixed
[ 3.1907840] sd0(spifi0:0:0:0): unsupported sector size: 0x0. Defaulting to 512 bytes.
[ 3.2876580] sd0: fabricating a geometry
[ 3.3334920] sd0: 512, 0 cyl, 64 head, 32 sec, 512 bytes/sect x 1 sectors
[ 3.4116160] sd1 at scsibus0 target 1 lun 0: <, , > disk fixed
[ 3.4803680] sd1(spifi0:0:1:0): unsupported sector size: 0x0. Defaulting to 512 bytes.
[ 3.5772420] sd1: fabricating a geometry
[ 3.6230760] sd1: 512, 0 cyl, 64 head, 32 sec, 512 bytes/sect x 1 sectors
[ 3.7012000] sd2 at scsibus0 target 2 lun 0: <, , > disk fixed
[ 3.7699520] sd2(spifi0:0:2:0): unsupported sector size: 0x0. Defaulting to 512 bytes.
[ 3.8668250] sd2: fabricating a geometry
[ 3.9126600] sd2: 512, 0 cyl, 64 head, 32 sec, 512 bytes/sect x 1 sectors
[ 3.9907840] sd3 at scsibus0 target 3 lun 0: <, , > disk fixed
[ 4.0595350] sd3(spifi0:0:3:0): unsupported sector size: 0x0. Defaulting to 512 bytes.
[ 4.1564080] sd3: fabricating a geometry
[ 4.2022420] sd3: 512, 0 cyl, 64 head, 32 sec, 512 bytes/sect x 1 sectors
[ 4.2803670] sd4 at scsibus0 target 4 lun 0: <, , > disk fixed
[ 4.3491180] sd4(spifi0:0:4:0): unsupported sector size: 0x0. Defaulting to 512 bytes.
[ 4.4459920] sd4: fabricating a geometry
[ 4.4918260] sd4: 512, 0 cyl, 64 head, 32 sec, 512 bytes/sect x 1 sectors
[ 4.5699510] sd5 at scsibus0 target 5 lun 0: <, , > disk fixed
[ 4.6387010] sd5(spifi0:0:5:0): unsupported sector size: 0x0. Defaulting to 512 bytes.
[ 4.7355770] sd5: fabricating a geometry
[ 4.7814090] sd5: 512, 0 cyl, 64 head, 32 sec, 512 bytes/sect x 1 sectors
[ 4.8595350] sd6 at scsibus0 target 6 lun 0: <, , > disk fixed
[ 4.9282830] sd6(spifi0:0:6:0): unsupported sector size: 0x0. Defaulting to 512 bytes.
[ 5.0251590] sd6: fabricating a geometry
[ 5.0709910] sd6: 512, 0 cyl, 64 head, 32 sec, 512 bytes/sect x 1 sectors
NEWS5000でNEWS-OS 4.2aRDをネットワークインストールするには、以下のサーバーが必要です。
インストーラーはtftpdの公開ディレクトリー(/srv/tftpなど)に置きます。ファイル名はINSやINS.50からAABBCCDD.NWS50に変更します。ここでAABBCCDDはNEWS5000のIPアドレスをオクテット毎に16進数表記にしたものです。
インストーラー以外のminirootおよびパッケージファイル群はNFSサーバーの公開ディレクトリー(インストーラーのデフォルトは/export)に置きます。ファイル名は変更しません。
NFSサーバーはNFS version 2をサポートしている必要があります。最近のLinuxディストリビューションではNFS version 2が無効になっているため、古いバージョンを使用するかNFS version 2に対応させるかするなどの対処します。例えば、Ubuntu 24.04.5 LTSでは非対応なためkernelの再構築などを行います。
インストーラーがminirootを読み込む際にエラーになります。具体的にはkernelのfs/nfsd/export.cのcheck_nfsd_access()がエラーを返します。
/etc/exportsの設定で回避できないか調べたのですが解決できなかったので、私はkernel sourceを変更することで対処しました。(2025.11.12追記)インストーラーのRPCリクエストではcredentialのauthentication flavorがAUTH_NONE(AUTH_NULL)のものとAUTH_SYS(AUTH_UNIX)のものがあります。特に(minirootを読み込みそれからブートするまでの)INSTおよびINST.50のRPCリクエストではすべてAUTH_NONE(AUTH_NULL)です。NFSサーバーではAUTH_SYS(AUTH_UNIX)はデフォルトのauthentication flavorなので、/etc/exportsに以下のようにsec=none(またはnull)を追加することでインストール時に問題は発生しなくなりました。
/export 192.168.XXX.0/24(sec=sys:none,ro,async,no_subtree_check)
rarpdもtftpdもTAPデバイスに割り当てられたIPアドレスのサブネットマスクが/32だとリクエストパケットを処理しませんでした。LinuxでMAMEでエミュレートする場合に使用するシェルスクリプトsrc/osd/sdl/taputil.shでは、NEWS5000XのIPアドレスのサブネットマスクを/32固定で設定しているので、このシェルスクリプトを変更し、TAPデバイスのIPアドレスのサブネットマスクを、エミュレートするNEWS5000Xのsonic0に割り当てたIPアドレスのサブネットマスクに合わせます。
なお、rarpdは-oオプションを付けて起動すれば、サブネットマスクが/32でもリクエストパケットを処理しました。
(2025.11.12追記)私の環境だけの問題かもしれませんが、ネットワークインストールではインストーラーが高確率でエラーになります。また、私の環境では(ネットワークインストールなので本来不要なはずの)CD-ROMを割り当てるとエラーになる確率が下がりました。