SHARP MZ-2000/MZ-2200/MZ-80B/MZ-80B2
Emulator (エミュレータ)
"emz2000 / EmuZ-2000" TF-EDITION
for Windows and UNIX(Linux)
1. SUMMARY
SHARP MZ-2000/MZ-2200/MZ-80B/MZ-80B2のエミュレータです。
これは、UNIX版emz2000 Ver.0.7とWindows版EmuZ-2000 Ver.0.400リリース候補版のソースを組み合わせる等した後、
全体的にやりかえたものですが、
エミュレータとしてできる限り完全なものを目指しています。
両者共、機種依存部以外は元々同じソースですので、組み合わせた後、
メンテナンスしやすいように整理して書き換えてありますし、大幅に書き直していますので、
元のものとはかなり違うものになっており、
EmuZ-2000 Ver.0.470はもちろんのこと、MZの機能は一通り入っています。
基本的に、MZのソフトウエアはすべて完全動作します。
いろいろソフトウエアを動作させてみましたが、
ソフトウエアで実現するという技術的制約上仕方のない部分を除いて実機と違和感なく使えるはず
ですし、
MZのほとんどのソフトについて動作確認してあり、
気になる箇所についてはドキュメントに記述してあります。
今後の改良予定としては、バグフィックスや多少の改良以外には、
ROM無時簡易IPLの改良程度しか予定がありません。
また、UNIX(Linux)版はリアタイム処理に関する本質的な問題があり、
解決の目処がたっていませんし、
ダイアログの非互換や移植の都合でプラグインが実装されていませんが、
なるべくWindows版へ近づけたいとは思います。
* 対応ハードウエア
- 本体 SHARP MZ-80B/80B2/80B海外版/2000/2200
- カラーモニタ / グリーンモニタ
- MZ-8BG,8BGK MZ-80B G-RAM 1,2
- MZ-80BK MZ-80B 拡張I/Oボックス
- MZ-1R01,MZ-1R02x2 MZ-2000 G-RAM 1〜3
- MZ-1U01 MZ-2000 拡張I/Oボックス
- MZ-1T02 MZ-2200 データレコーダ
- MZ-1E05/8BFI+MZ-1F07/80BF等 フロッピーディスクドライブ
- MZ-1E08/1E04/8BP5I/PIO-3050+プリンタ (プラグイン)
- MZ-1E18+MZ-1F11 クイックディスクドライブ (プラグイン)
- MZ-1R12/PIO-3030 S-RAMメモリボード (プラグイン)
- MZ-1R13/PIO-3055/3055-01 漢字ROMボード (プラグイン)
- I/Oデータ PIO-3034 EMMメモリボード (プラグイン)
* 対応イメージデータ
- フロッピーディスク
D20/D88/D77 ... 有名なD88フォーマット
2D ... 320KBベタファイル
- カセットテープ
WAV/MTI ... Windows WAV形式 (22.05KHz、モノラル、8ビットPCM)
MZT ... MZ系エミュレータ共通テープフォーマット
MZF ... 海外のMZ系エミュレータ共通テープフォーマット
MTW ... MZTとMTI/WAVをそのまま連結したもの
DAT ... 0番地からのファイルサイズ分のメモリイメージ (旧形式)
UNIX版のみ起動時のファイル名指定でemz2000形式を使用可能
- クイックディスク (プラグイン・サポート)
Q20 ... MZT形式連結によるクイックディスクイメージ
MZT ... MZT形式をクイックディスクとして扱う
- ステートセーブ
MZE ... TF-Editionの独自形式
- その他
Intel HEX形式
* EmuZ-2000 Ver.0.470に対するアドバンテージ
- Windows 7対応 (x64動作報告有り)
- カセットテープのAPSSフルサポートとステータス表示、効果音、WAVファイル対応
等、対応形式追加や読み込み性能の向上(データの線形補完とヒステリシス等)
- カセットテープのセーブ、カウンタ表示
- フロッピーディスクの効果音、ドライバ自身のいくつかの改良、修正等
- クイックディスク用メニューとプラグインによる対応
- G-RAM/テキストV-RAM、IPL ROMのWAIT対応
- 表示まわりの修正 (プライオリティグラフィック時表示ミス、
背景色設定と表示ページを表示した時の修正、15KHz CONSOLE Rを正しく表示、
ブランキング等)
- 実機ROM対応(IPLとCG)と擬似IPL (擬似IPLがない版からの拡張のため別物です)
- I/Oやメモリマップの全面やりかえによる修正
(2000モードのテキストV-RAMバンク切り替えバグやCHR40/80切り替えが正しくなり、一部のリード非対応、FLYBOYやMILKY WAYも正常動作します)
- Z80のインデックスレジスタの扱いを修正 (PIO掲載のTAO TAOが動作)
- INIファイルによる設定保存
- UIの変更/改良、メニューオープンで一時停止や全画面表示の改良等を含めたWindowsアプリとしての改良、IME ON禁止等
- キーマップ入れ替えモードの追加、ショートカットキーの追加等
- 他

Windows版(左) / UNIX版(右)

MZ-80B(左) / MZ-2000(右)
2. DOWNLOAD
* Emulator
- emuz2000_tf0_8b.zip
... Windows EmuZ-2000 TF-Edition Ver.0.8b (09/01/2010)
- emuz2000src_tf0_8b.zip
... Windows EmuZ-2000 TF-Edition Ver.0.8b source (09/01/2010)
for Microsoft Visual C++ Ver.6.0SP6
- emuz2000plugins_tf0_8a.zip
... Windows Plugins Ver.0.8a (08/09/2010)
- emuz2000plugins_src_tf0_8a.zip
... Windows Plugin sources and SDK Ver.0.8a (08/09/2010)
for Microsoft Visual C++ Ver.6.0SP6
- emz2000-tf0.8b.tgz
... UNIX emz2000 Ver.TF0.8b source (09/01/2010)
※ Ver.0.8のWindows版では、常岡さんに、プラグイン、INIファイル、
その他いくつかの開発をやっいただきました。この場を借りてお礼申し上げます。
もし、改造された方や調整値を調整した方がいらっしゃいましたら、
いただけると大変嬉しいです。
* Tools
- d88uty13tf01.zip
... D88 Utility 0.13+TF0.1 for Windows (09/16/2009)
※ Dittがライトプロテクトの値(offset +1a)を間違えており、
D88utyが厳密にチェックして扱えないのでそれを対策したもの。
* Original software for MZ-2000/2200 (D88 Disk images only)
-
64K CP/M 2.2 Rel.1.0 System disk for MZ-2000/2200
-
64K CP/M 2.2 Rel.1.0 Source disk for MZ-2000/2200
-
TF-DOS Ver2.1 for MZ-2000/2200/80B/80B2
-
TF-DOS Ver2.0B (Monitor TS-2000) for MZ-2000/2200
(Require TS-2000)
-
TF-DOS Ver2.1 common source program
-
GRAPHIC EDITOR III "ART MAGIC" for MZ-2000/2200
-
Adventure game "BRAVE" for MZ-2000/2200
-
Text adventure game "LILAS" for CP/M with MZ-2000/2200 CP/M
-
Original Game Programs for MZ-2000/2200 (C-DOS Vol.I)
-
Original Game Programs for MZ-2000/2200 (Basic Vol.I)
(Require S-BASIC)
※ ここのゲームとグラフィックツールは小学生〜中学生、
TF-DOSは最近少し変更しましたが高専の1〜2年頃、
CP/Mは高専の3〜4年頃に作ったものです。
全部現役当時の古いもので
今のソフトウエアの常識となっている仕様は通用しないので御注意ください。
(詳細は別ページ参照)
3. REQUIRE ENVIRONMENT
本プログラムのWindows版は以下を満たす環境で動作します。
- Windows 95/NT 4.0 + IE4.0以降
(但し、テストは98SEとXP以降のみですし、CPUの遅いものは駄目です)
本プログラムのUNIX版は以下を満たす環境で動作します。
- Linux (他のUNIXでは変更する必要あり)
- X-Window (32bpp/24bpp/16bppのいずれか、32bppは未確認)
- GTK 2 + Esound + libungif (screen shotのgifサポート時のみ)
※ 最近のLinuxを普通にインストールした標準の環境です。
4. COPYRIGHT
emz2000の権利についてはWebに記載があり自由に利用して良いそうです。
EmuZ-2000の著作権についてよくわかりませんので作者に聞いてください。
UNIX版の開発に関しては、大昔に双方から許可をもらっていたのはいました。
Windows版のアイコンは、EmuZ-2000 Ver.0.470の標準色版を持ってきています。
カセットとFDの効果音については、X-Millenniumから拝借しています。
私のコードと常岡さんのコードについては、Public Domainとしてご自由に。
もちろん、自己責任なので何が起ころうと私の知ったことではありません。
5. Related LINK
http://www5d.biglobe.ne.jp/‾object/
... MZ-80B/2000エミュレータ
EmuZ-2000 for Windows
http://www.bio-linux.org/‾kasukawa/
... 粕川さんのサイト
MZ-2000/2200エミュレータ emz2000 for X11 gtk+が昔あった
(http://biojoin.org/‾kasukawa/linux/mz2000.html)
http://www.sharpmz.org/tonyfrieryemu.htm
... 海外製のMZ-80Bエミュレータ
for Windows
http://www7a.biglobe.ne.jp/‾tsuneoka/MZ/index.html
... Win32サブルーチンズ内の「ダウンロード」
(プラグイン機能、INIファイル、QDプラグイン他開発の常岡さん。
ツール(2000用tapeload.exe他)、自作ソフト等)
http://www.geocities.co.jp/SiliconValley-Sunnyvale/2521/
... アルゴの記憶
(プラグイン、ツール、MZT/MZFの説明等
ただし、ここのMZFは海外MZ-80Bエミュレータとは違うみたい…)
http://www.ne.jp/asahi/suga/junkyard/
... sugaのジャンク部屋
(プラグイン等)
http://www2s.biglobe.ne.jp/‾kachan/index.htm
... ぎょっちの趣味のページ
(テープイメージ化ツールと解説
ただし、TF-EditionにはAPSSがあるので1回セーブにしないこと)
http://www.retropc.net/mz-memories/mz700/
... MZ700WIN for Windows
(MZ700WINとmz700em、コンバータtapeload.exe、MZT形式。
ただし、ボーレートが違うので多分常岡さんのがいいと思います)
http://www.retropc.net/cisc/m88/
... M88 emulator
(Download-その他にディスクイメージ化ツールditt)
http://www.jsdi.or.jp/‾imp/
... 自作ソフトのお部屋
(D88 Utility等)
http://www1.plala.or.jp/aoto/
... ぶるー牧場
(D88形式データの仕様)
http://homepage3.nifty.com/mzakd/
... AKD's site
(MZ-1500のサイトですが、MZ-2000/2200のカタログ有、
クイックディスク、プリンタ等の共通オプション情報が詳しい)
http://cwaweb.bai.ne.jp/‾ohishi/index.htm
... Nibbles lab. HomePage
(MZ版システムはないが、S-OSの各種ソフトウエア)
※ MZF形式ですが、海外MZ-80Bエミュレータの場合はMZTと同じです。
mz700emの物は違うのかもしれません。(アルゴの記憶参照。当方未確認)
また、MZ700WINのMZTにはパッチ情報が追加されています。
※ DAT形式はファイルサイズ分の0番地からのメモリイメージで、
MZ700WIN添付のtapeload.exeが出力する本体部分がそのまま利用できます。
但し、標準のtapeload.exeは1200bpsですので、
オプションパラメータ指定するか改造された2000bpsのものを使用します。
※ 2D形式は320KB(80トラック16セクタ256バイト)のベタファイルで、
古いX1エミュレータでも使用されています。
※ TF-EditionではAPSSがありますので、
テープイメージの2回セーブを1回にしたり空白を詰めるのはやめてください。
互換のためにFFを無効にするオプションがあります。
6. SCREEN SHOT
MZで3つ目くらいに買ったゲームが左下の九十九のパックマンハイレゾでした。
パックマンハイレゾの2000用は面が5種類くらいあって、
迷路が消えたり、ワープトンネルがたくさんあったりして面白いゲームでした。
80B用は1面だけでモンスターの動きも悪く音もBEEPばかり。
MZ-80Bのソフトウエアです。
COSMO TRAVELLERは8001とX1は有名ですが、MZ版って知ってますか?
昔、X1のCOSMO TRAVELLERを初めて見た時、
なんて綺麗な絵と音なんだろうと思いました。
これはMZ版なんだけどさ…MZ版は地獄の難易度で滅多にクリアできない。
全然ないようで、MZには結構ソフトがありました。Paletteがあればね。
ZENONですが普通に最終面までいけるのですが、
自機を255とかにしててもなかなか最終面をクリアできないです。
ボスまでなかなか辿り着けない。
今更どうでもいいんだけどさ…
MZのサウンドはHとLを出力する機能しかなく、これを繰り返すことによって波を作って音を出します。
原理は単純ですがZ80 4MHzでフル活用できるため、奥が深く、凝った使い方をするものを完全にエミュレートするのは大変です。
というのも、このパルスを高速に変化させることによってパルス幅変調を行なって、
PCMのような自由な出力を実現するものがいくつかあり、
周辺回路の反応速度やフィルタが絡むのかMZの独特の特性を前提としているからです。
この速度は普通の48KHzとか96KHzといった速度では表現できない、
ずっと高速な連続空間上での変化ですので、
これをうまく誤魔化してPCMデータへ高速にリアルタイム変換する必要があります。
結局のところ連続空間上のデータをある一定時間で区切って処理する必要があるため100%を求めようとすると大変難しくなります。
また、一般的な音源機能はハードウエアに波形発生装置があるのですが、
MZのパルスは波形をすべてCPUが作成するため、
CPUの実行時間と音源処理が正確に実時間で一致しなければなりませんが、
様々な理由でこれも大変難しいことです。
しかし、取り合えずソフトウエア変換としてはほぼ完璧で、
高周波のノイズのレベルが高い程度だと思います。
MZでサウンドを限界まで引き出したソフトウエアといえばこれらでしょうか。
減衰付き三重和音やヴィブラード付三重和音はかなりよくできています。
音が素晴らしいソフトウエア - II
X1/88/FMに音楽がないSTARLIGHT ADVENTURE IIやHIROTON WARSもいいですし、
GRUPPEの少し変わった音色もいいかもしれませんね。
しかし、僕がMZのサウンドを最大限に生かしたソフトを一つ挙げるならば、
DAWN PATROLを選びます。
Silver BallのDAWN PATROL
DAWN PATROLはサウンドデータを連続出力することによって、
独特の音色や効果音を作っています。
CarryやSPSのような音楽を再生するのではなく、独特の響による効果音を作ることを
目的としており、
Silver Ballのソフトは全部そうなのですが、
このDAWN PATROLは段違いに素晴らしく、
タイトルの二種類の効果音のような音楽のような部分や、ゲーム中、すべてがすばらしいです。
音に関しては、他で似たようなものをまったく聞いたことがないです。
ゲームも、大変動きがよく、キャラクタは横方向へ1ドット単位に動きますし、
滑らかでよくできており、派手でバランスも大変良いものです。
WAVE 5あたりから難しくなりいつでも楽しめます。
最高WAVE 9ですが7以降へは滅多に行けません。
今遊んで、懐かしいという部分を差し引いても十分に面白い数少ないゲームです。
これは、使われているということを噂にしか聞いたことがなかったり、
信者がいるという話しか聞いたことがないFORTHで書かれています。
確かに使われているし強力なようです。
ところで、このサウンドですが、MZ-2000は素晴らしく、
特に16ビットボードを付けてスピーカが移動すると更に良いのですが、
2200や2500はそうでもないんです。
同じくSilver BallのUnderground Cityなんかはサウンドによる演出が
成功したソフトだと思います。
MZで唯一恐さを感じる演出はこれだけだと思います。
しかし、当時2200でもそう思いましたし、
最近入手した2500でも同様に雰囲気を感じない、
ちゃっちい音なんです…
MZ-2000はアンプがディスプレイ基板上にあるので、
この回路が違うのか、回路以外の理由か、
スピーカーの位置が違うだけなのかはわかりませんが、
2000のみ少し鈍って音が丸くなるとか、少し箱が共鳴して響くといった、
つまらない理由だと思います。
Silver Ballについても半分くらいしか見たことがないのですが、
音でこれは、と感じたのはこの2本だけです。
といっても、今3重和音なんか何の意味もないんだけどさ…
だいたい、こんなこだわりがありそうなことをいいつつ、
中学生の頃にクラッシックを気に入ってからずっと一筋で、
MZの音なんかどうでもいいんだよ。
POLAR STAR IIですが、多分MZでキー割り込みを使った唯一のソフトなのではないかと思います。
うまく動かない原因を調べるために解析したところ、
割り込みハンドラは特定のアドレスにフラグを立てるだけでした。
スペースキーに割り込みをしかけて、割り込みのみで処理し、一度もポートを読みません。
PIOの使い方も、Owner's Manualに解説されていた方法ほぼそのままです。
ちなみに、僕の最高4面だと思いますが、3面以降のバックアタック+斜め球からは地獄です。
8801用ディスク版等では8面まで絵が変わるらしいのですが、行けるのでしょうか、
というか、名作なのは間違いないと思うのですが、
4面以降の大変な長時間を根気よく遊んだ人はいるのでしょうか?
結構進めるけどちょっと遅い? このゲームにWAITが合ってないのか?
... いや、でも実機でも同じだけ行けてるみたい。
(WAITはすでにテキストV-RAMを別扱いして合わせてあります)
これ知ってます? ここまで行くのはProfessional x 3回とかで、
Professional以降はブロック2個しかないので結構きついです。
今更なんだけどね…
当時、小学生で、ゲームセンターで見て気にいったペンゴを期待して買ったのですが、
起動して見て目が点になりました。
でもペンゴを期待しなければ遊べるゲームです。
九十九もそうですが、
こういう初期のテキストのゲームはHudsonのFORMで記述されているのが多いです。
ちなみに、ペンゴは後に基板を入手して死ぬ程遊び、完全に飽きて、
基板は誰かにあげました。
人数増やそうが、Easyにしようが、Hardにしようが関係なく最高16面でした。
20面でデモが1面に戻るのですが、行ける人は行けるんでしょうね。
ペンゴは、プログラムの細部のでき、アルゴリズム、
すべてがよくできていたと思います。
FRONT LINEのテープ版は全3面ですが、ディスク版は全8面です。
残念ながらこれはテープ版で、これ買った少し後にディスクドライブを入手。残念。
右の98版(ゲームオーバー直後、これを入手できたばかりに9801EとカセットI/Fまで買った)
はテープ版でも8面ありますが、
どうしても8面をクリアできません。
7面以降は玉が速すぎて打たれたら即死亡で、戦車も少ないからきつすぎます。
ちなみに、FM-7用ディスク版も入手していてこちらはクリアできました。
FM版だけバグがあって、5面あたりからの自分の戦車が消えるのがないので、
比較的乗り易い右端の戦車まで逃げきればよいので簡単です。他機種は98と同じ。
いや、本当、今更どうでもいいんだけどさ…
ハイドライドのグリーンモードはMZ版でしか見られないでしょう。
テープのA面とB面で両方のモードが入っています。
Victorious 9はローダが64KB全部読むので、おお〜と思っていたのですが、
ハイドライドに至ってはテキストV-RAMまで使っていました。
ディスク版並にタイトルグラフィックも出ます。
記憶違いでなければ、タイトルは48KBベタ読みで読み込み時間の2/3、
テキストV-RAM用のデータも読んでそのまま転送していたと思います。
(グリーンモードはテキストV-RAMではなくPage3をデータ領域に使います)
それでもタイトルは削られるのより嬉しかったです。
もっともさっさとディスクへ吸い上げたけどさ。
いや、本当に、本当に、どうでもいいんだけどさ…
終わり