プチコン4 まとめWiki

Toukou/PC8801_for_PETITCOM4 の変更点

パンくずリスト


#title(投稿プログラム : PC8801_エミュ for プチコン4号)
#contents
// ↑↑↑↑ この2行は削除しないでください。 ↑↑↑↑
// ←「//」で始まる行はコメントです。ページ本文には反映されません。

// --------------------------------------------------------------------------------------------
// ・以下に作品の情報を書きます。

2019年10月23日投稿
/ 2021年08月08日更新
/ 投稿者 : つかさ
/ &tag(投稿プログラム,エミュレータ,Z80,PC8801);

// ・投稿年月日は、いま投稿しようとしている今日の日付を半角数字で記入してください。
//   投稿プログラムページの「投稿された順」で上位に表示されます。
// ・作品の公開キーをアップデートしたら、更新日を記入して、頭の「//」2文字を取り除くと
//   「アップデート順」で上位に表示されます。(ページの更新だけで更新日の記入をするのは禁止です)
// ・投稿者名は、投稿プログラム一覧に表示するために使用します。匿名(名無しさん)でも可能です
// ・&tag() 内にコンマ区切りで、作品に関するタグ(任意の単語)を並べると、
//   同じタグがついた作品を検索できます。
// --------------------------------------------------------------------------------------------


// --------------------------------------------------------------------------------------------
// ここから先に概要など、作品の説明を書きます。
// ・* や ** や *** ではじまると見出しになります。* が多いほど階層が深くなります。
// ・[#英数字] はページ内リンクに使用されるキーワードとなりますが、消してもかまいません。
//   消したりなかったりの場合は、ランダムな文字列が自動で付与されます。
//   逆に、ページ内に同じキーワードが複数ある場合、目次からのリンクが正常に動きません。
// --------------------------------------------------------------------------------------------

* 概要 [#b8039da2]
このプログラムは,Z80エミュレータに,CRTCやキーボードなどを付加して,日本電気殿が発売していたパソコン,PC8801mk2っぽいような感じの動きをするプログラムです。実行には,N88-BASIC等のROMデータが必要ですが,同梱されておりません。各自で用意して下さい。また,このプログラムはプチコン4号専用となっており,プチコン3号やBIGでは動作いたしません。実機の2/3程度の速度で動作いたします。

#ref(PC8801_emu.jpg)

-2019.10.23 初公開(S52V)
-2019.10.29 CMTテープのn88モードのモニタでセーブしたマシン語頭出し対応(S54V)
-2019.12.01 VSYNCバグ修正、FDDシーク音、ヘッドロード、アンロード音の追加(S60V)
-2019.12.15 FM音源簡易実装、SSG音源実装(S71V)
-2019.12.20 メインCPUとサブCPUの動作のタイミングを決めるcpuタイミングを実装(S74V)
-2020.03.15 個別高速化ルーチンが追加されました(S102V)
-2020.04.22 英語対応(S112V)
-2020.04.30 PCG-8100のPSGを3声化(S118V)
-2020.05.03 ステートセーブ機能を追加,PC88.ROMサポート(S122V)
-2020.05.06 V1, V2モードでも、IMGファイルを読み込めるようにした(S123V)
-2020.10.11 PCG8200機能OFFの場合、OUT 0,0(]o0,0)でCMTよりマシン語ロード
-2021.07.02 各種メニューの呼び出しを、(X)ボタン押下後、L/Rでタブ選択に変更
-2021.08.08 エミュレーションの制度向上。Rレジスタ、Port66H、Port68H実装修正

** 動作環境 [#j780ae57]
プチコン4号専用です。USBキーボードでの入力も対応しています。ゲームプレイにもそこそ使用できます。プログラムのロードや、ちょっとした操作には便利に使えると思います。カーソルキーもバッチリです。

** 遊び方 [#k7a0bef1]
-同梱のREADMEに従って,プロジェクト内にROMデータを置きます。
|~N88.ROM       |N88-BASIC ROM(32k)|
|~N88N.ROM      |N-BASIC   ROM(32k)|
|~N88EXT0.ROM   |ROM 4th拡張ROM 0バンク目(8k)|
|~N88EXT1.ROM   |ROM 4th拡張ROM 1バンク目(8k)|
|~N88EXT2.ROM   |ROM 4th拡張ROM 2バンク目(8k)|
|~N88EXT3.ROM   |ROM 4th拡張ROM 3バンク目(8k)|
|~N88SUB.ROM   |ディスクサブシステムROM(2k)|
|~ FONT.ROM    |TVRAMで表示するフォント(2k)|
|~N88KNJ1.ROM  |JIS第一水準漢字ROM(128k)|
|~N88KNJ2.ROM  |JIS第二水準漢字ROM(128k)|

-N88.ROM〜N88SUB.ROM の代わりに、これらのファイルを固めた,PC88SRエミュのPC88.ROM を利用することも可能です。
|~N88-BASKC      |(0000H-7FFFH)|32kbytes|
|~N-BASIC      |(6000H-7FFFH))|8kbytes|
|~N88-BASIC   |(6000H-7FFFH))|8kbytes|
|~E0-ROM   |(6000H-7FFFH)|8kbytes|
|~E1-ROM   |(6000H-7FFFH)|8kbytes|
|~E2-ROM   |(6000H-7FFFH)|8kbytes|
|~E3-ROM   |(6000H-7FFFH)|8kbytes|
|~SUBCPU-ROM   |(0000H-1FFFH)|8kbytes|
|~N-BASIC      |(0000H-5FFFH)|24kbytes|

Petit4Send(http://rei.to/petit4send.html)等でPCからSwitchにファイルを転送できます。
- Petit4Sendを用いたファイルの転送方法およびケーブルの作成方法は、以下の動画が参考になります。
#youtube(C4f9Ew6cIwE)

もしくは、プチコン3号、プチコンBig等でROMを音声で読み出し、サーバ経由で読み込んでください。
+ ROMデータがない場合は、pbios の DISK.ROM、N88.ROM(N88_pbios.ROMとリネームされています)で代用されます。
+プロジェクトを選択すると、PC8801_S122V.PRGが実行されます。
-※pbios は cisc (cisc@retropc.net) が著作権を所有しています。(http://www.retropc.net/cisc/m88/)

** 操作方法 [#j292d61c]
- X  Menu呼び出し (F12)
-A リターンキー
-B スペースキー
-Y デリートキー

- L,R1  SHIFTキー
- L+X  モニタ機能呼び出し(デフォルトではディスエーブル)
- ZR リターンキー(FANFANでのゲームスタートに利用することを想定)

- ZL Graphキー。(Luna City SOSでバリアを張り直すことを想定)
- ZL+右スティック押込 リセット (Home + End)
- L+右スティック押込 画面のズーム機能のON/OFF
- L+左スティック押込 PC8001 40周年記念イラスト インポーズモード切替

**キーボードパネル [#hfb6adf6]
SHIFTキー、カナ、CAPS, GRAPHは一度タップするとロックし、もう一度タップするとロック
解除されます。CTRLキーは、キーが押されるまではロックされ,キーが押されるとロックが解除されます。

** DISKの取り扱い [#hd2b0aab]
***簡易ローダー (X)押下げ後、L/Rでタブ選択で .D88 ファイルを選択する [#v54ade20]
--簡易ローダーを使って D88ファイルを選択すると、ドライブ1にディスクが挿入され、リセットがかかります。ゲームが自動起動するように .D88 フォーマットにコンバートされたファイルを実行する際には,ディスクの取り出し操作無しに利用可能なこの手順が便利です。

***DISK選択メニュー(X)押下げ後、L/Rでタブ選択 で.D88ファイルを選択。 [#u8a7d9a0]
--選択するとドライブ1から順にディスクが挿入されます。ドライブにディスクが挿入されると、ライトプロテクトされているディスクイメージは、 「🔑」のマークが前につきます。
--(X)ボタンもしくは,キーボードの["Scroll Lock"]をディスクが挿入されているドライブで押すと,挿入中のディスクイメージのプロテクト状態を変更できます。物理的には、5インチフロッピーでは銀色のシールを貼ったり剥がしたりすることに相当します。
--既にディスクが挿入されているドライブで(A)ボタンを押すと、ディスクが取り出されます。その際に,ディスクに書き込みが行われていた場合,イメージ ファイルを保存するか尋ねられます。保存しない場合,変更は捨て去れれます。
--ブランクディスクは,FDDドライブが空の状態で(A)ボタンを押すと作成できます。作成終了時にファイルに保存するかの確認がでますが,保存しないとディスク作成が無かった事になります。作成されたディスクは,N88-BASICのデータディスクとしてフォーマットされています。
--リセットを選択すると、リセットがかかります。
--ディスクサブシステムが有効な場合、キーボードのエンブレムの左側にFDDのアクセスランプが表示されます。
--アクセスランプの色は,通常は緑色ですがディスクへの書き込みが行われると,以降は赤で表示されます。書き込み結果を残すには、明示的にDISK選択メニューから[取出]を選択し,変更の保存を行って下さい。
--(+)ボタンでエミュレータを終了させた場合、内容が変更されているディスクがあると、保存するかどうか尋ねてきます。
--ディスクサブシステムが無効な場合、FDDランプは表示されません。また、簡易ファイル選択に.D88ファイルが現れず、DISK選択メニューも利用できません。
--ディスクサブシステムを有効にするためには、サブシステムROMデータがプロジェクト内に"N88SUB.ROM"という名前で保存しておく必要があります。pbiosの代用"DISK.ROM"を同梱しているため、単純な読込み&起動は動きますが、EMMYなどは、動作しませんでした。

** CPUタイミング [#zacbaa91]
-cpuタイミングは、FDDサブシステムでメインCPU処理に戻るまでに実行する命令数。大きい程動作が早くなるが、動かなくなるソフトも増える。0の時は、従来と同じ動作を行ないます。通常は0のまま使用します。起動しないディスクがあったばあい、まずは cpuタイミング=3を試してみてください。それでも上手くいかない場合は、値を少しずつ変えながら動作する値を探ってください。0〜6までの値が設定できます。

-cpuタイミングに0以外を設定しなければならなかったソフトを以下に示す。
|~蒼き狼と白き牝鹿(mk2)| V1S,cpu=4 |
|~デゼニワールド(mk2)|   V1S,cpu=4 (予告編を見ようとすると止まる)|
|~ギャンブラー自己中心派| V2, cpu=3 |
|~シルフィード | V2, cpu=3|
|~RIGLAS|V1, cpu=1|
|~RIGLAS|V1, cpu=0 (デフォルト値)|
|~スタークルーザー | V2, cpu=3|
|~テグザーSR版 | V2, cpu=3|
|~テグザー88版 | V2, cpu=3|
|~Wizardry I |  V1S,cpu=3|
|~Wizardry II | V2S,cpu=3|

** 簡易ローダ [#b26aba90]

-(X)ボタンを単体で押すと,簡易ローダが呼びだされ,ファイルの読み込み,生成のメニューが出てきます。
-(B)ボタンを押すと,簡易ローダから抜けます

-サポートしているファイルは以下のとおり。
--N80ファイル (読み込みのみ)
---モードがNの時のみ読み込み可能。Nモード以外ではリストにも表示されません。
---N80解體新書のN80フォーマットが読めます。
---http://home1.catvmics.ne.jp/~kanemoto/n80/inside.html
--T88ファイル (読み込みのみ)
---T88テープイメージファイルフォーマットが読めます。
---http://www.cug.net/~manuke/t88format.html
--D88フォーマット(読み書き可能,要サブシステムROM)
---D88フロッピーイメージファイルが使用できます。内部的には、複数イメージを含むファイルもサポートしているのですが、GUIができていません。もっとも, PC8001で複数イメージを含んだ D88 ファイルは見たことないです。
--- https://github.com/jpzm/wii88/blob/master/document/FORMAT.TXT
--CMTファイル (読み書き可)
---テープのセーブデータをそのまま保存する形式。 CLOADやMONコマンドのLで読み込む。 CMTファイルを選択した場合、ファイルに含まれるプログラムの頭出しが可能。CMTファイルを指定するだけでは読み込みは行われません。プログラムの読み込みは,CLOAD や MONコマンドのLなどで自分で行う必要があります。
---また,CSAVEやMONのWコマンドでファイルを追記することができます。デフォルトでは,00MY_TAPE.CMT というファイルに追記されます。
いったんCMTファイルを読み込み指定すると,次からそのファイルの後ろに追記されます。セーブするCMTファイルを変えたい場合は、簡易ローダから追記したいCMTファイルを指定してください。新たなCMTファイルに保存したい場合は「新規テープの作成」を選んで下さい。  
---セーブ時は,必ず追記の形で保存されます。
--独自のIMGファイル (読み込み) Nモードの時のみ。
---モードがNの時のみ読み込み可能。Nモード以外ではリストにも表示されません。
---&H8000〜&HFFFFのRAMのデータの後ろに,レジスタの値を格納した形式。簡易ローダを呼び出した時点での状態を、新規イメージの作成」で保存することができます。
---PCGによって変更されたフォント情報があるばあい、最後に1024byteのPCGデータが付加されるようになりました。
---Nモード時のステート保存も.I88で行うようにしたため、PC8001エミュレータとの互換性のため、デフォルトでは読み込みのみです。ENABLE_ALWAYS_I88を #FALSEに設定すると、Nモード時に .IMGファイルで保存できるよう鳴ります。ただし、.IMGファイルはNモード時のみしか読み込むことが出来ません。
---詳細は、README.TXTをご参照下さい。
--独自のステートファイル(.I88)ファイル (読み込み・生成)
---エミュレータの全ステートをセーブします。起動に時間のかかるソフトの一発起動や、簡易的なセーブ機能としてお使いいただけます。
---セーブ機能として使う間合いは、SimConfigから、イメージ上書可を設定しておくと、同じイメージ名で保存できるようになるので、便利です。
---PC88モードも保存されるステートに含まれているので、現在のPC88モードにかかわらず、NモードやN88モードのステートを読み込めます。
---PCGの状態も保存されるので、PCGで定義された文字も崩れません。
**独自のステートファイル(.I88)仕様 [#b37ece7a]
---内部のステートをまるっと保存したファイル形式。Nモード時にも、無駄になっちゃうステートは多いですが、利用出来ます。
---ROMエリア、拡張RAMエリア(灰色)は保存されていない(現在頒布されているバージョンでは、ENABLE_ROM_STATE_STORE, ext_ram_bankが0になっている)
---背景が水色で塗られている部分はディスクサブシステム関連
---背景が黄色で塗られている部分は、N-Basicモードでは保存されない部分。
---long int配列なので、左側の番地を4倍すると、バイト単位番地に
---PCG_USAGEが非ゼロの時のみ、17E00以降のPCG_FONT[]の内容を0x80以降の半角文字のフォントに読み込む。
---所々に値が設定されていない部分は、拡張用。(結構保存し忘れで後から追加したりしてます。文字が水色になっている物は、実は最初のころ保存し忘れていた)
#ref(state_file_format2.png)

** USBキーボード [#h80f5f9b]
PC8801とUSBキーボードでは違いがあります。
|~カナ      |カタカナひらがな, ALTキー|
|~Graph     |Windowsキー|
|~Stop |Pause Breakキー|
|~CLS|Numロックキー|
|~Ins・Del|Deleteキー|

** モニタ [#pac56dc9]

モニタ機能は、Simコンフィグでイネーブルにしておく必要があります。X+L を押し,離すとモニタに入れます。モニタは,メモリのダンプ,逆アセンブル,メモリの書き換えができます。

|~Q        |モニタから抜け、エミュレータに戻る|
|~Dnnnn|逆アセンブル (B)で抜ける|
|~Mnnnn|メモリダンプ (B)で抜ける|
|~Ennnn|メモリのエディット&br;16進以外の入力で抜ける|
|~R    |レジスタの値を表示|


/////////////////////////////////


* スクリーンショット・動画 [#r5eeb2ac]
--インストール方法
#youtube(C4f9Ew6cIwE)
#youtube(FyhszmjrOnU)

--プレイ画面
#youtube(4ftgMGEu-5M)
#nicovideo(sm35851095)
#nicovideo(sm36088670)


// ページを作成すると、画像の添付ができます。(作成する前はできません)
// 作成後のページの右上の「Wikiの機能」→「画像を添付する」からアップロードできます。
// (添付ファイルはページごとに別個に管理されています。必ず作成後のページに添付してください)
// 画像をアップロードしたら、以下の書式でページ内に貼り付けられます。
// #ref(添付ファイル名)

// 以下の書式で、YouTube やニコニコ動画を貼り付けられます。
// #youtube(4ftgMGEu-5M)
// #nicovideo(sm35851095)

// Twitter の投稿は以下のように書けば埋め込めます。
// #tweet(https://twitter.com/hosiken/status/615920904929849344)


/////////////////////////////////


* 公開キー [#c36ea954]
プチコン4用の公開キーです。トップメニューの「作品を見る」から公開キーを入力すると、作品をダウンロードできます。
#ptcmid(4EDKE2EAV)


/////////////////////////////////


// --------------------------------------------------------------------------------------------
// もしコメントを募集したくないなら、ここから下は削除してください
// --------------------------------------------------------------------------------------------

* CHECKER FLAG (ひとことコメント) [#w9f1be17]
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は[[掲示板>Board]]へ)

#comment

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.084 秒 | ログイン
Copyright(C) 2011-2019 プチコンまとめWiki