2019年09月14日

Zet/98も再開しています。が...

最近になって、Zet/98の方も再開しました。
DE0-CVに変えてから容量が大きくなったため色々できるようになりました。
まだHDD I/F(SASIの予定)、FDD I/Fは載せていませんが既存のものをそのまま載せるか簡単な変更だけで行けるでしょう。
GDCも、円弧以外はだいたいできたと思います。
一応、実機(僕が現在持っているのは486のPC-9821のみ)のBIOSを吸い出して動作させてみましたが、
286か386で追加された命令を使用しており、その部分で誤動作しているようです。
386以降、リアルモードでも32bitレジスタや命令は使用できるので、ITFやBIOSで稀に(ITFでは結構)使われているようです。
66プリフィックス(レジスタをAX→EAXのように32bitで扱う命令)は逆アセンブルし、同じ動作をするように16bitレジスタでの置き換えやダブルワード書き込み部分をワード書き込みの倍の回数に変更したりして、何とかメモリカウントを開始するところまではいきましたがメモリチェック部分等で0f 01で始まる命令が実行できず、止まってしまいます。
V30の機種、386等の機種でもV30も搭載している機種であればV30設定にすれば動作してくれると思うのですが、該当期初を持っていないのでBIOS/ITFのイメージがありません。続きを読む
posted by プー at 01:19| Comment(0) | Zet/98 | 更新情報をチェックする

2019年08月27日

16bitカラーパレット修正

16bitカラー時のパレットですが、パレット未使用状態?(パレット出力=パレット入力設定時)では問題ないのですが、CELIAでアニメーションの表示を行うときにパレットを使ってもやっと出現する効果があります。この時に「もやっ」ではなくカラフルにパラパラっと出てくる状態でした。
(FPGA版でしか動作させていなかったのでそういう演出だと思っていましたがエミュレータではもやっと出てきたので初めて認識)
ビデオコントローラとパレット入力との間で上位BYTEと下位BYTEが反転し、パレット回路内で上位BYTEと下位BYTEが再び反転して元に戻っていたためパレット未使用時には影響がないのですがパレットを使うと色と桁のずれが生じるためパラパラになっていました。
それぞれ正しい結線に修正しました。

release-F68k_DE0CVDEMU.190827.qar
release-F68k_DE0CV.190827.qar
posted by プー at 19:25| Comment(2) | リリース/X68k | 更新情報をチェックする

2019年08月15日

ディスクエミュレーション無の最新版

機能としてはディスクエミュレーション有のものでも、ドライブを設定で実FDDに接続可能なので特になくても困らないのですが、
ディスクエミュレーションは大量の内部RAMブロックを消費するため、ディスクエミュレーションを無くし、SignalTap II用に内部RAMブロックを確保可能にしたものです。
2015年頃まではディスクエミュレーションが入っていなかったのでそれ以前と同じですが、それ以降のバグFIXや、HDMI出力等機能追加したものをディスクエミュレーション無にも適用しています。
メモリキャッシュの容量も小さくしていますが、それはcachecont.vhdのbrblocksの値で簡単に増減できます。
エミュレーションを廃止することでキャッシュの容量を増やしてキャッシュのヒット率を上げることも可能です。

FDDはハードウェアとして接続された実FDDを、HDDはSDカード(MicroSD)を使用します。

注意点としては、ディスクエミュレーション版ではSDカードをファイルとして扱いますが、ディスクエミュレーション無版ではSDカードをSASI HDDとしてセクタ単位で読み書きします。マイクロSDにはそもそも書き込み禁止用のスイッチも付いていませんので問答無用に書き込んでしまうのでファイルシステムを破壊します。専用のSDカードを用意するか、またはSDカード無で運用してください。
専用SDカードを使用しない場合はSDカードを必ず抜いてください。
SASI HDDとしてSDカードを使用しますが、ディスクエミュレーションとは違い、すべてハードウェアでアクセスしますのでエミュレーション時より高速で動作します。ただし、ノーマルSD(SDHCやSDXCではない)専用です。SDHC等は初期化シーケンスが異なるので使用できません。
2GB(ものによっては4GBでもSDHCで無いものも有るようです)以下のSDカードを使用してください。SDカードのセクタサイズは512B、SASI HDDのセクタサイズは256Bなので、容量は半分になってしまいます。それでもSASI HDDの最大容量=40MBですので1ドライブ当たり128MBしか使用しません。容量の大きなSDカードの場合は複数ドライブとして動作するようになっていますが最大でも16ドライブしか接続できませんので2GBのSDカードでちょうど16ドライブ分、全容量を使い切る形になります。
release-F68k_DE0CV.190815.qar
posted by プー at 08:14| Comment(0) | リリース/X68k | 更新情報をチェックする

2019年07月22日

修正版

X68000のエミュレータとして、新しくXM6を使用してみました。
そのところで、実はMFPに入力される信号の論理が今までよく分からなかったため適当に決めていた部分で間違いがありましたので修正しました。具体的には垂直表示ブランク信号の論理が逆でしたので修正しています。
それと、スプライト・BGメモリをCPUから読みだしが出来ないようになっていたのを修正しています。
(書き込むだけで読み出すことはあまり無い領域だとは思いますが)
release-F68k_DE0CVDEMU.190722.qar
posted by プー at 21:20| Comment(2) | リリース/X68k | 更新情報をチェックする

2019年06月27日

CD-4ディモジュレータ(FPGA)改良版

FPGA版のCD-4ディモジュレータですが、PC版から音に直接関係する部分で一部、割愛した部分がありました。
それは、RIAAのイコライザは低周波ほどゲインが上がりますがADコンバータの構造やFM復調によって直流分が出力される可能性があり、直流は10倍も増幅されてしまうため、RIAAの前に除去したほうがDレンジを大きく取れるため、PC版ではRIAAの前にIIRのHPFがついています。
ですがFPGA版では回路規模から収まらなかったため、割愛していました。
ですが、RIAAのイコライザもIIRフィルタですし、左右・前後のRIAAイコライザ用IIRを時分割にして共有することでFPGA版でもHPFが入れられるようになりました。
release-CD4dem.190627.qar
posted by プー at 21:50| Comment(0) | 日記 | 更新情報をチェックする

2019年05月14日

FPGA版CD-4 demodulator

ソフトウェア版CD-4 demodulatorを作りましたが、レコードを聴くのにいちいちパソコンを接続して、というのも面倒な作業ですし場所も必要ですので、単体で動作するものをFPGAで作ってみました。
基本的にマルツパーツで入手できるもので作っています。
FPGAボードはMAX10-FB(SDRAMは使用していないので雑誌付録でも十分)
ADコンバータは旭化成のAK5720VT
DAコンバータは同じく旭化成のAK4386ETを前後で2石
です。できるだけ安価な部品で集めてみました。
以前作ったオーディオコンソールに内蔵させることも考えて、セパレーション調整等は
I2Cから制御するように設計していますが、簡易的にプッシュスイッチでも調整できるように
入力を準備しています。(ただし左右同じ設定にしかできませんが)

CD4-FPGA.jpg
御覧の通り、まだブレッドボードです。また、まだ実験段階でフロントADCは未接続ですがたぶん問題なく動いているでしょう。
ADC,DACは24bit/96kHzに対応のI2Sフォーマットのものであれば何でも使用できると思います。
一応、全回路24bit/96kHzで計算させていますので「ハイレゾ」になるのでしょうか。
ソフトウェアバージョンでは500msのバッファで処理をしていましたが、FPGA版ではフィルタでの遅延はありますがほぼリアルタイムで処理されます。
4chレコードという、昭和の時代の産物も、平成・令和も健在です。
release-CD4dem.190513.qar
posted by プー at 00:19| Comment(0) | オーディオ関連 | 更新情報をチェックする

2019年04月14日

少し修正しました

BG画面でキャラクターの水平反転が切り替わった直後のbitが正常に反転しない問題がありましたので修正しました。
スプライトは前後1クロック、書き込まない期間があるため問題は発生していませんでしたが無駄なレジスタを使用していたのでこちらも同様に修正しました。

おまけで、FDエミュレーションのイメージ読み書き進捗ゲージがディスク番号行で進むようにしていましたが、書き込み時に同じ行が選択状態にあると見えないので、ゲージ表示は最下行に移動しました。それと、FDエミュレーションのイメージ読み書きを微妙に高速化しています。
release-F68k_DE0CVDEMU.190414.qar
posted by プー at 09:49| Comment(26) | リリース/X68k | 更新情報をチェックする

2019年04月11日

画面周り割込み修正版

画面周りやタイマ/カウンタの動作に間違いがありましたので修正しました。
ラスタ割込みはどこからどう数えての数値で割り込みを掛ければいいのかがいろいろな資料を読んでも分からなかったので適当に実装していましたが、どうやら垂直表示期間が終わってブランクに入ったラスタを0として、ラスタ毎にカウントアップするのが正しそうで、インターレース表示の時には奇数行・偶数行関係なくラスタをカウントすればいい?ようなのでそのように修正しました。
もともと僕の実装では表示期間があって、ブランク/同期期間がある、という順番(数値)になっていましたが、実機では先にブランク/同期でその後に表示期間のようです。
また、タイマ・カウンタはカウント値が1になった次にトリガがかかった時に割り込みを掛け、次のトリガでカウント値を初期化していましたが(カウント値0が存在する)、実機では同時にカウント値を初期化するのが正しいようです。
そのように修正しました。

release-F68k_DE0CVDEMU.190411.qar

垂直同期割込みやラスタ割込み等使用しているソフト、且つ15kHz水平同期の物ではタイミングが改善されると思います。
posted by プー at 18:37| Comment(0) | 日記 | 更新情報をチェックする