2020年08月10日

画面・割り込み修正

画面の透明処理でまだおかしな表示になるソフトがありましたので修正しています。
スプライト/BGの処理で、色番号が0又はFでパレットが0000の場合に透明になるように前回修正しましたが、ソフトの動作を見ると色番号0は無条件で透明でもよさそうです。したがって、色番号が0の時、または色番号がFでパレットが0000の場合は透明になるように変更しました。
これもあっているかどうか、間違えているという情報をお持ちの方は教示願います。
合わせて、6/30バージョンだと正常に動作し、7/15以降のバージョンだと正常に動作しないソフトがあるという情報より、動作有無にかかわる修正はこのタイミングでは割り込みの修正が考えられますので割り込み関係を6/30以前の物に戻しています。
DE0-CV(ディスクエミュレータ無);release-F68k_DE0CV.200810.qar
DE0-CV ディスクエミュレーション:release-F68k_DE0CVDEMU.200810.qar
DE10-nano MiSTer:release-F68k_MiSTer.200810.qar
posted by プー at 23:12| Comment(1) | 日記 | 更新情報をチェックする

2020年07月28日

「透明」処理

X68kではテキスト・グラフィックス・BG/スプライトと大きく分けて3画面あってそれらを最終的に重ねて画面に表示していますが、裏の面が表示されるには手前の面が透明になっている必要があります。
各画素をどのように設定すると透明扱いになるのかの明確な資料が見つけられなかったため、適当にカット&トライで今まで決めていましたが、正常に表示できないソフトがありましたので、資料をあさってみたり、実際のソフトの動きと他のエミュレータの動作とを見比べてみて、下記が何となく正しそうだ、ということで下記の様にしてみました。
・グラフィックス画面はパレット番号0番で且つパレットの内容が0000の場合に透明
・テキストはパレット番号0で且つパレットの内容が0000の場合に透明
・BG/スプライトはドットの色番号が0又はFで且つパレットの内容が0000の場合に透明
手持ちのソフトはこの設定で正常に表示されるようです。
RTLをこの設定で修正しました。
DE0-CV(ディスクエミュレーション無):release-F68k_DE0CV.200728.qar
DE0-CV ディスクエミュレーション:release-F68k_DE0CVDEMU.200728.qar
DE10-nano MiSTer:release-F68k_MiSTer.200728.qar

いや、そうじゃなくてこれが正しい、という情報をお持ちの方がいらっしゃれば教えてください。
posted by プー at 23:35| Comment(0) | リリース/X68k | 更新情報をチェックする

2020年07月17日

ディスクエミュレーション修正版

PC-88用ディスクエミュレーションも共通ソースですのでこちらも修正です。
release-MiSTer200717.qar
posted by プー at 20:26| Comment(0) | リリース | 更新情報をチェックする

ディスクエミュレーションバグfix

MiSTerのFDDエミュレーションにバグがありました。
2番目のドライブで書き込みをすると、ディスクイメージが破壊されます。また、
他のソフトで作成したD88ファイルに書き込むときも破壊されます。これを修正しました。
合わせて割り込み関係を若干、修正しましたが目立った改善は見られないようです。
(コードは多少、見やすくはなったと思いますが)
release-F68k_MiSTer.200717.qar
posted by プー at 20:25| Comment(0) | リリース/X68k | 更新情報をチェックする

2020年07月15日

キャッシュ効率アップ

1つのSDRAMでメインメモリ・テキストVRAM・グラフィックスDRAMを兼ねていますので画面データ処理中にCPUが停止しないようにメモリデータをキャッシュで補う動作をしています。
今まではキャッシュの1ブロックが埋まるまでは別のアドレスの読み出しが来ても待つ設計でしたが、別のアドレスの読み出しがあった場合は読み出しを中断し、次のアドレスの読み出しを行うように変更しました。中断したところまでのデータは破棄してしまうので必ずしも早くなるばかりではありませんが、キャッシュ効率は多少なりとも増えたと思います。
一定期間内(例えば水平同期期間内)に処理が完了しないと永久ループに入ってしまうようなソフトの場合は改善する可能性があります。
(苦労してデバグした割に、あまり目に見えた効果がないですが。。。)

DE0-CV(ディスクエミュレーション無):release-F68k_DE0CV.200715.qar
DE0-CV ディスクエミュレーション:release-F68k_DE0CVDEMU.200715.qar
DE10-nano MiSTer:release-F68k_MiSTer.200715.qar
posted by プー at 22:46| Comment(0) | リリース/X68k | 更新情報をチェックする

2020年06月30日

画面関係修正版

画面プライオリティの設定等のレジスタはビデオコントローラR0~2レジスタにありますが、一部のソフトはこのレジスタにダブルワード(32bit)書き込みしており、実際には$E82500番地に書かなくてはいけないものを$E82502に書き込んでしまい、$E82500番地には0000を書き込んでしまうものがあるようです。実機ではアドレスのbit1をデコードしていないのか、それでも動作してしまうようです。
FPGA版では全アドレスをデコードしていましたのでbit1を無視するように対応を行いました。
また、半透明処理のスプライト画面処理に間違いがありましたので修正しています。
DE0-CV(ディスクエミュレーション無):release-F68k_DE0CV.200630.qar
DE0-CV(ディスクエミュレーション):release-F68k_DE0CVDEMU.200630.qar
DE10-nano MiSTer:release-F68k_MiSTer.200630.qar
posted by プー at 23:33| Comment(0) | リリース/X68k | 更新情報をチェックする

ファイル追加

.qarに入れ忘れていたファイルがありましたので追加しています。
release-MiSTer200630.qar
posted by プー at 00:34| Comment(0) | リリース | 更新情報をチェックする

2020年06月27日

MiSTer RTC対応版

PC-88のRealTimeClockをMiSTerから取得できるようにする対応を忘れていました。
対応させています。

release-MiSTer200627.qar
posted by プー at 09:36| Comment(2) | リリース | 更新情報をチェックする