X68000エミュレータ関係の小ネタ集

X68000エミュレータや関連技術のコネタ集。
2

 
 
 
 

X68sound.dllのレジスタ書き込みウェイト

後藤 浩昭 / GORRY @gorry5

cygx.mydns.jp/blog/?arti=517 で、「gamdxでOPMコアをX68soundからfmgenに切り替えた理由」が推察されているが、実際は「単純にfmgenを使ってみたかった」のと「X68soundよりfmgenのほうが非力なAndroidに向きそうだった」から

2016-07-23 02:24:34
後藤 浩昭 / GORRY @gorry5

X68soundは「レジスタに書き込む際に必要なウェイト」までもを音の再現に利用している(ゆえに、「RRに最大値を書き込んで瞬間的に減衰させる」ようなことも小細工なしに再現できる)などのことをしている分、負荷が高いのではないかと当時は考えたのでした

2016-07-23 02:28:10
後藤 浩昭 / GORRY @gorry5

普通のFM音源コアはレジスタ書き込みコールで「瞬間的に内部状態を変更する」のが一般的だが、X68soundは「レジスタ書き込みを一度キューに貯めて」おき、時間を進めるときにキューから少しずつ読んで内部状態を変更しながらサウンドを生成している

2016-07-23 02:44:57

 
 
 
 

DMA動作中のMPU動作

GIMONS @kugimoto0715

MPUが68030だとDMACが転送開始してもMPUが少し進むため(プリフェッチの影響)DMA転送の時間稼ぎロジックがまずいと誤動作するという現象を再現するという辿り着きたくない未踏の大地に踏み入れてしまった。

2016-09-15 23:16:45
GIMONS @kugimoto0715

@kugimoto0715 この現象が観測されるのはSystemSpeedCheckerをX68030で実行したときだけで実はループ回数の半分しかDMAは動作していない。

2016-09-16 00:09:53

 
 
 
 

X68030フェイクROMの作成方法

GIMONS @kugimoto0715

@haru_ino SCSIアクセスコード自体はIPLROM30.DATに入ってるのでROM30.DATもどきを作るのであれば鎌田さんがつぶやいた方法が参考になるかもです。説明にある$FF0020をコピーというのは$FF0020に書かれてあるロングワード値という意味です。 twitter.com/kamadox/status…

2016-10-29 16:08:22
Makoto Kamada @kamadox

X68030のROMの$FC0000~$FC01FFの作り方。最初の9個のハンドルはエミュレータ起動時に$FF0020を8回と$FF0024を1回コピー。直後の'SCSIIN'はHUMAN.SYSやFORMAT.Xにあるのでベタ書きでOK。残りの470バイトは$FFで充填。

2012-04-25 21:56:40
GIMONS @kugimoto0715

@haru_ino 上記のようにしてROM30.DATならキャッシュオンをSRAMに保存しても起動できます。できたROMはダンプで見るとこんな感じです。IPLROM30.DATは公開されているものですから大丈夫かと。 pic.twitter.com/AvQfG3U9sN

2016-10-29 16:19:03
拡大
GIMONS @kugimoto0715

@haru_ino 実機のROM30.DATに含まれるのは。 これも鎌田さんの情報ですが・・・ $FC0000:SCSIハンドルとマジック $FC0200:HUMAN2.15(.z形式) $FCE000:FLOAT2.02(.x形式) $FD3800:ROMDB2.32

2016-10-29 16:20:23
GIMONS @kugimoto0715

@haru_ino なので先ほどのフェイクで作ったROM30.DATはSCSIハンドルとマジック部分になります。Human2.15等の残りは使用頻度は少ないので大丈夫だと思います。

2016-10-29 16:22:17
GIMONS @kugimoto0715

@haru_ino あと一つ付け加えるならば実機X68030のCGROMには6x12ANKのフォントがCGROMに存在します。ここは初代機には無いフォントデータです。でもこれも実はHuman3.02に含まれています。

2016-10-29 16:29:00
GIMONS @kugimoto0715

@haru_ino EXPERTモードでHuman3.02を立ち上げて$ffd018-$ffdfffをダンプすればOK。それを030用のCGROMの$fbf400-$fbffe7部分に貼り付ければできあがりです。SX-Window等でフォントが欠けなくなります。

2016-10-29 16:36:43
GIMONS @kugimoto0715

X68030の実機が無くてもROM30.DATもどきとCGROM30.DATもどきを公開されたものから捻出する方法を参考までにリツイートしておきます。 twitter.com/kugimoto0715/s…

2016-10-29 16:39:38