2017年5月2日火曜日

サンダーフォース For MZ-1500

QDCでサンダーフォースを吸い上げて、エミュレータで起動してみる

読み込み中

読み込み終わったらモード選択

横スクロールでタイトル表示。なつかしー

Tecno Softさんです

スクリーンショット。綺麗です。



このスクロールすばらしいです。
動画でご覧下さい。

ゲーム前の「サンダーフォース」という声は、実機よりエミュの方が綺麗に聞こえるような気がする

2017年5月1日月曜日

MZ-1500 ROM吸出し

EmuZ-1500で利用するために、ROMの吸出しをしてみる。

実機から吸い出すのは、以下の2つ。
IPL.ROM $0000-$0FFF
EXT.ROM $E800-$FFFF

まずはQDブランクディスクを用意

1枚使います

QDをセットしてMZ-1500起動。
MキーでROMモニターにはいります。

QFコマンドでQDのフォーマット
QSコマンドでIPLとEXTデータを保存します。

QDCで保存したQDディスクを読み込み、QDFファイルを作成します。

作成したQDFファイルをバイナリエディタで開き、保存したIPLのアドレスを探します。
MZ-1500のROMモニターで、0000h以降をダンプ(D000000B0[CR])すると比較して探しやすいです。
自分の場合は、吸い出したQDFファイルのアドレス1F4Ah~2F49h※にIPLが保存されていたので、そのデータ領域をコピーして、IPL.ROMファイルとして保存します。
※ドライブやディスク状態などによってアドレスが変化する場合があります

同じようにMZ-1500のROMモニターで、E800h以降をダンプ(DE800E8B0[CR])して、QDFファイルの中から保存したEXTのアドレスを探します。
IPLと同じようにEXTのデータ領域をコピーして、EXT.ROMファイルとして保存します。

あともう一つ必要な「FONT.ROM」は、MZ700WINの「MZ700FON.JP」と同じようなので、そのままリネームして使わせてもらいます。

これでエミュレータを使う準備ができました

2017年4月30日日曜日

QDC

MZ-1500のQDが動くようになったので、QDCを動かしてみます。

QDCは、Windows上からQDドライブのコントロール(読み込み、書き込みなど)および実ドライブのエミュレーションを行うことができる、多機能な同人ハードです。
http://kitahei88.blog.fc2.com/blog-entry-128.html

先日確認したら在庫有りとのことでしたので、電源基板やケーブル込みで購入させてもらいました。

Windows PCと接続する場合は、QDドライブ用にACアダプタが別途必要。
外形5.5mm、内径2.1mmのセンタープラスで、5V 1Aの電源を用意します。
au携帯用のACアダプタとUSB電源ケーブルを用意、テスターで測ってみると無負荷時でキッカリ5.00Vでした。

電源基板にACアダプタとQDドライブのコネクタを接続、QDCと電源基板も専用のケーブルで接続します。

USBケーブルをWindows PCに繋ぐと電源が入ります。
QDC Ver1.01と表示されています。
Windows側はドライバのインストールが必要ですが、FTDIのドライバは自動で入ったものを使いました。(OSはWindows 10 Creators Update)

QDディスクを用意して、Windowsでデータを吸い出してみます。まずBASIC(5Z-001)

前述のリンク先からQDC制御ソフトがダウンロードできます。
「QDC.exe」を起動し、「Initボタン」で「MZ-1500」側を選択します。

「Read Disk」ボタンを押してファイルを保存する場所を指定した後、「保存」ボタンを押します。

読み込みは数秒で終わり、QDC上に「Dumping Disk Done」と表示されます。

読み込んだデータはRawデータなので、エミュレータなどで使う場合はデータ変換します。
「DataConvert」ボタンの後「Raw→QDF」ボタンを押し、開くRawファイルを選択します。
「開く」ボタンを押すと、選択したRawファイルと同じフォルダにQDFファイルが作成されます。

簡単にQDデータを吸い上げることができるので快適なのですが、1点注意があります。
ドライブやメディア側の状態によって、作成されたQDFファイルにエラーが含まれる場合があります。
状態の良いドライブやメディアを使ったり、何度かQDFファイルを作成してバイナリ比較した方が良いと思います。

まだドライブエミュレーションは試していませんが、まずは手元にあるQDディスクの吸い上げをしていきたいと思います。

便利なツールを作成してくれたkitahei88氏に感謝します。

2017年4月25日火曜日

千五百のゴムバンド交換

久々にQDを使ってみたら読み込みエラー。
ゴムベルト劣化がよくある症状のようなので交換してみる。

QDユニットの下2本のネジを外すとMZ本体から取り外せる。
QDのふたも後ろのネジ2本なので外しておく。

左右4本のネジを外してプラスチックのカバーを外す。

前後のネジ4本を外すと、下の土台が外れる

ゴムベルトが見える

新しいゴムベルトは千石で購入。QD用はφ40×1.2Tの様子。

ピンセットで交換。横から覗くとこんな感じ。
あとは、元通りに組み立てて完了。
QDは無事に読み込めるようになった!

ついでなので、データレコーダーのゴムベルトも交換。
まずはネジ4本を外す。

後ろのネジも外すと、下のカバーが外れる

カバーが外れると中が見えるので下面のゴムを交換。φ80×1.2Tの様子。

4隅のボルトを外すとデッキ部が外れる

上面のゴムを交換する。φ60×0.95Tの様子。
上が新品で下が外したゴム。かなり伸びてる。。
あとは分解した逆の手順で組み立てれば大丈夫。

手元にあったMZ-700用のHuCALで動作検証してみる。

IPL is loading HUCAL 700

テープもちゃんと読めました!
HuCAL、、、使い方はよくわからない。。

交換するゴムのサイズは、ググったら出てきました。
助かりました m(_ _)m

2017年2月27日月曜日

PTA7の使い方

パソピア/7のアセンブラ/逆アセンブラで、PTAという便利なソフトがありました。
リクエストがあったので、簡単に使い方の紹介です。

[編集]
(1) In: n行に行追加。I100だと99と100行目の間に挿入。最後に挿入の場合はIE
(2) T: ソースの修正
(3) Kn,m: nからm行まで削除
(4) Fxxxx: 文字列xxxxを検索
(5) Sxxxx: カセットに保存。ファイル名xxxxは30文字以内
(6) Vxxxx: カセットに保存したファイルのベリファイ
(7) Lxxxx: カセットからの読み込み。
(8) T: テキストの表示
(9) O: テキストの表示とプリンターへの出力

[アセンブラ]
(1) T: テキストを全行表示
(2) O: テキストの表示とプリンターへの出力
(3) In: n行に行追加。I100だと99と100行目の間に挿入。最後に挿入の場合はIE
(4) K: 1行削除
(5) N: テキストをクリア
(6) /: ラインポインタのカレントとラスト、ソースの開始と終了アドレスを表示
(7) Fxxxx: 文字列xxxxを検索
(8) A: アセンブル
(9) AP: アセンブルしてプリンターにも出力
(10) AN: アセンブルするがリストは表示しない
(11) Q: アセンブルの後、ラベルを表示
(12) CT: テキスト格納開始アドレスの表示・変更
(13) CZ: テキスト格納終了アドレスの表示・変更
(14) CW: アセンブラのラベル・ワーク開始アドレスの表示・変更
(15) CE: ラベル・ワークの終了アドレスの表示・変更。開始時は$F7F0

[逆アセンブラ]
(1) Unnnn,mmmm: nnnnからmmmmまで逆アセンブルしてCRTに表示
(2) USnnnn, mmmm: nnnnからmmmmまでのアセンブルリストを表示して、現在のソースの後に逆アセンブルしたソースをアペンド

[モニタ]
(1) Dnnnnn,[mmmm]: nnnnからメモリダンプ。終了アドレスmmmmは省略可能
(2) Wnnnn: nnnnアドレスにメモリ書き込み。テンキーで16進数、スペースで次アドレス、[-]キーで前アドレス、Returnキーでコマンド待ち
(3) Xnnnn,mmmm,ssss: 転送開始アドレス(nnnn)から転送終了アドレス(mmmm)までを転送先アドレス(ssss)へ転送
(4) Jnnnn: 機械語アドレス実行
(5) Hnnnn,mmmm,Xaaa...a: nnnnからmmmmの間でaaa...aで指定された16進数を検索。aaa...aは2文字単位
(6) Hnnnn,mmmm,Cbbb...b: nnnnからmmmmの間でbbb...bで指定されたキャラクタでサーチ
(7) プログラム実行中にRST 38Hがあるどその時点のレジスタを表示

[文法]
(1) フォーマット:△は1文字以上のスペース、( )は省略可能
(ラベル:)△ニモニック△オペランド△(;コメント)
または
;コメント
(2)定数
10進: 0~9の数字
16進: 先頭に$
文字: "で括られた1文字
(3) オペランド
定数またはラベルが使え、+/-による演算が可能
(4) 疑似命令
ORG n: ロケーションカウンターをnにする
OFS m: オフセット値の設定
EQU: ラベルの定義
DW: 2バイト定数
DB: 1バイト定数
DS n: nバイトのエリア確保
DM: "で括られた文字はASCIIコードで、それ以外は16進でセット
*: ロケーション・カウンターシンボル

アセンブラ表記はちょっとクセがあるようです。
8bit論理演算ニモニックはAレジスタを省略して記載する: ADD A,B→ADD B
IM命令はスペースを空けてIM 0のように記載

当時は非常に使いやすいと感じたのですが、いまならエミュレータ付属のデバッガが使いやすいです。(特にステップ実行とか重宝しています)

何かの参考になれば。。



2017年2月26日日曜日

FM-NEW7

ハードオフに見慣れぬブツが。。
ここで会ったのも何かの縁、我が家で引き取ることにしました。

電源をつけてみたところ、
ちゃんと動いているっぽい。
キーも大丈夫そうで、キーロックのLEDも全て点灯した。
Beepも鳴った。

難点は、使い方がわからないこと。。。

2017年2月25日土曜日

VGM Player for Pasopia7

パソピア7はSN76489Aを2つ使用して6重和音+2ノイズを実現しています。
このチップについては海外のサイトSMS Power!に詳しく書かれており、このサイトを眺めてみるとSN76489に適した音楽ファイルVGM File Formatが定義されていました。

せっかく同じチップを積んでいるということで、パソピア7でこのVGMファイルを再生するプログラムを作ってみました。ダウンロードはこちら「vgm.bin」

----------
まずはXPAC2で使う場合
SDカードに「vgm.bin」とvgmファイルを入れて、XPAC2に挿入します。
XPAC2付属のコマンドツール「CMD」を使って「vgm.bin」をMRAMにマウントします。
例えば、
run"CMD"
? ld 4 vgm.bin
を実行すると、スロット4(デバイス5)にマウントされます。
※スロット4(デバイス5)に保存されているデータは消えるので注意
files 5
を実行し、以下の画面のように「vgm」と「vgm.b」が登録されていると成功です
続いて
run"vgm"
を実行し、VGMファイルを読み込むスロットを指定します。
※スロット3(デバイス6)を指定すると、スロット3(デバイス6)に保存されているプログラムは消えるので注意です。
次に、SDカードに保存したvgmファイルのパスを入力します。入力パス名に###を入れると001から順番にインクリメントしてパス名に付加し、連続してファイル読み込みします。
最後にファイル間のインターバルを指定します。170で約1秒です。

----------
次にエミュレータで使う場合
エミュレータの場合は、複数ファイルの連続演奏はありません。

メニューのRAMPAC1で「vgm.bin」を指定、RAMPAC2にVGMファイルを指定します。
※指定するファイルはバックアップしておいた方がよいです。(エミュレータがファイルを読み込むと32KBにサイズ変更するので)
run"vgm"
を実行し、VGMファイルを読み込むスロット=3(デバイス6=RAMPAC2)を指定します。
ファイルのパスには何も入力せずに、インターバルは1を指定します。

演奏中は(STOP)キー長押しで中断できます。

----------
SMS Power!のサイトでは、コンテストのようなものも行われています。
2005年Ranking 1位の曲をパソピア700の内蔵スピーカーで再生してみました。
携帯撮影なのでメロディーラインが聞き取りにくいですが、この曲は素晴らしいです!!
持っている方は、是非パソピア7実機で聞いてみてください。

その他にもセガ8bit音楽のVGMファイルが多数登録されています
YM2413ではなくPSGと記載があるファイルなら再生できると思います。
パソピア7に外付けスピーカーをつけて演奏させてみました。

----------
公開されているVGMファイルですが、拡張子が.vgmでも中身がgzipで圧縮されている場合があります。
Pasopia7版VGM Playerは圧縮フォーマットに対応していないので、圧縮されている場合「File is not VGM format.」と表示されて再生されません。
事前に解凍ソフトなどで解凍してからパソピア7で読み込むとうまくいく場合があります。
解凍されたファイルの先頭4バイトが"Vgm " (0x56 0x67 0x6d 0x20)になると読み込みできるようになりますので、バイナリエディタ等でチェックすると確実かもしれません。

あとXPAC2は8.3形式のファイル名になりますので、ロングファイル名は省略形になってしまいます。「File not found.」と表示された場合、その辺もチェックしてもらえるとよいかと。

Enjoy your Pasopia7 sound!!