
	WinX68030について

								By tamu


WinX68030はX68030をエミュレートしたもので、けろぴー・WinX68k高速版を基にしてMPUコアを変更しています。
MPUコアはAmigaエミュレータWinFellowのものを使用しています。 



・MPU

68EC030をエミュレート。一応MPUコア自体は68000〜68060をサポートしていますが、MMU・コプロ命令のすべてと、68040以降の新設命令の大部分は未サポート。
MPUコアが68010以降の新設命令でプリフェッチに未対応のため（68000の命令には対応）、プリフェッチは現在未サポート（将来的にはサポート予定）。よって68020からプリフェッチが3ワードになったことによってX68030では動かなくなったもの（例えばオーバーテイクのデモ）が動いてしまいます。
命令、データキャッシュは未サポート。 
現在、各命令のクロック数は68000の5/8としているので、動作周波数はあくまで目安程度。


・HD・MO etc.

SCSI(MB89352)をエミュレート。ただし基本的な機能のみ。
SCSIのIDは0から7（通常本体は7）、論理ユニットは0から7までサポート。(標準SCSIドライバで認識可能な論理ユニットは0のみ）
取り扱い可能なSCSIイメージ（ベタイメージ・拡張子hds）の容量は1ブロックのバイト数にも依るが、1ブロック512バイトの場合2048Gバイトまで。
新規作成時の最大容量は4Gバイト、1ブロックのバイト数は256バイト〜32Kバイト(2の累乗)。
ただし、標準SCSIドライバで扱うことの出来る1ブロックのバイト数は256,512,1024バイトの3つ。
実機で使用しているSCSIドライブからイメージを吸い出す場合、GetDrive（http://hp.vector.co.jp/authors/VA013937/editdisk/getdrive.html）を使用してください。
SASIは廃止。


・ROM 

最低限、X68030のIPL-ROM　IPLROM30.DAT（$FE0000〜＄FFFFFF）が必要。
互換モードから起動（XF3〜XF5を押しながら起動）するにはさらにX68030のHuman68k version 2.15を含むROM　ROM30.DAT（$FC0000〜$FDFFFF)が必要。（このROMは無償公開されていないので実機から吸い出す必要あり） 
IPLROMXV.DATはSASI廃止に伴ない必要なくなりました。


・拡張エリアセット

けろぴー、WinX68k高速版がエリアセットをサポートしていないので、WinX68030も拡張エリアセットをサポートしていません。 




　動作環境


CPU　　 ・・・・・PentiumII/III/４/Celeron，MMX Pentium，Athlon/Duron, K6/K6-2/III，Crusoe，VIA C3などMMX命令をサポートしたCPU
OS　　	・・・・・Windows95/98/Me/2000/XP 
DirectX ・・・・・Version6.0以上 




　使い方


WinX68030.exeと同じディレクトリ内にIPLROM30.DAT（必要に応じてROM30.DAT、CGROM.DATも）を置いて実行して下さい。

ROM30.DATを実機から吸い出すには付属のgetrom30.xを実機上で実行してください。

MPUの変更はリセット後有効になります。




　BackBufferメニューについて


BackBufferをどこに作るかの選択肢は現在次の６つがあります。

１．System Memory 		(「けろぴー」と同じ）
２．NonlocalVideo Memory 	( ビデオカードがAGP接続でないと選択できません。)
３．Direct3D Texture(System)    (System Memoryに描画後Textureに転送しTextureとして表示。当然Direct3Dに
		　　　		 対応したビデオカードが必要。)
４．Direct3D Texture(Nonlocal)  (NonlocalVideo Memoryに描画後Textureに転送しTextureとして表示。当然Direct3D
				 およびAGPに対応したビデオカードが必要。)
５．Flip 			(Video MemoryにTripleあるいはDouble Buffer Surfaceを作りFlipする。）
６．Overlay Flip 		(Video MemoryにTripleあるいはDouble Buffer Overlay Surfaceを作りFlipする。
				 Flip可能なOverlay Surfaceに対応したビデオカードが必要。)

お使いの環境でもっとも速いものを選択してください。
ビデオカードの種類あるいはビデオドライバのバージョン、設定によっては拡大表示したときにフィルタが
かかってしまうかもしれません。
Direct3D Textureを選択した場合、フィルタはON,OFFを設定できます。
Direct3D Textureを選択した場合、画面が崩れるあるいは表示されないといったことがあるかもしれません。
Flip,Overlay Flipを選択した場合、VsyncのON,OFF設定ができます。
お使いのビデオカードのOverlay同時最大表示枚数が1枚の場合、Overlay Flipを選択する前にOverlayを使用する他のアプリを終了しないと
Overlay Flipを選択できなかったり、画面が表示されないことがあります。



　Flip選択時の動作について


Flip選択時はDirectDrawFullScreenModeを使用し、現在のX68000の画面モードに一番近い16ビットのFullScreenModeを探して
そのFullScreenModeに切り替えます。
私のノートでは、下記のようになります。

	X68000					DirectDrawFullScreenMode


	256X240			---->		320X240

	256X256,384X256		---->		400X300

	512X256			---->		512X384

	512X512			---->		720X576

	768X512			---->		800X600


FullScreenModeを切り替える時には多少の時間がかかります。

また、Flip,Overlay Flip選択時には

・Flip,Overlay Flip以外を選択した場合には全画面を書き換える必要はなく、部分書き換えで済む時

のような場合に遅くなります。




　更新履歴

2003.02.12 v0.11をリリース 
	　 Mode Senseコマンドで一部のページコード以外ではエラーを発生させるようにする（AskSCSI）
	　 Read Capacityコマンドで返される論理ブロックアドレスの値が1大きかったのを修正

2003.02.10 v0.10をリリース 
	　 NBCD,NEGX,NOT,BFINS命令の不具合を修正
	　 SCSIを実装
	　 命令自体に例外処理が含まれている命令（TRAP,TRAPV,CHK,CHK2,CMP2,TRAPcc）のトレース時の動作を修正
	　 高速版での追加機能・バグフィックスに対応
	　 10MHz時以外でMFPのGPIPの最上位ビット（H-SYNC)の変化タイミングがおかしくなるのを修正

2002.01.10 v0.02をリリース 
	　 メインメモリの奇数アドレスからのワード・ロングアクセスの不具合を修正

2002.01.06 v0.01をリリース 




 今後の予定

・MPUエミュレーションの高速化




 利用条件

  WinX68030はフリーソフトウェアです。無償である限り配布は自由に行えます。




動作報告、バグ、感想などがありましたら以下のホームページの掲示板にお願いします。

http://www.geocities.co.jp/SiliconValley-Sunnyvale/1779/
