#?? Gensで遊ぶ(SEGADRIVE)
昨日も、ずーと、管理人版「DGEN100A19」(SEGADRIVE)を弄ってた。
パフォーマンスは多分。「A18」に比べて落ちてる。
重くなってるのかも知れない。遅いエミュなど、価値はない、と拘る向きには価値はないのかも知れない。
でも、ゲームは遊びやすくなってる。
「A18」では、
「アウトラン」や
「スーパーファンタジーゾーン」や
「ローリングサンダー2」等。
音質を落とすと、76496のせいで、ノイズがうるさい為、結局遊べない。
ここは、改善(?)した。中途半端なVERだけど、別館にUPしようか?
「アウトラン」は、「A19」なら「FSKIP2、5512」でメガドラらしさが味わえるからな。(中途半端だけど多分今日中にUPするよ)
76496の改造により、あおり喰らったのが、従来の、
「バーニングフォース」や
「ダライアス2」や
「サンダーフォースⅢ」等。
ある程度は何とかしたが、それでも不満は多少残る。
結局「76496GAIN」というパラメーターを「コンフィグ」に新設しようかとも考えている(要するに逃げ道)
あ、一連の話は44100は全く関係がない話です。
■76496のゲインテーブルも改善したな。ゲイン特性は、現在不明なので、AY-3-なんたらの奴を
いれてある。実は世界中何処でも「まだ不明」なんだぜ。MAMEにある(いかにももっともらしそうな)
ゲイン特性の式は(素人にはlogとか入ってるともっともらしそうでし)、
頭と尻尾を合わせた非常にお粗末なもの。それを世界中のエミュが参考にしてるから、そんなん実物に
合うわけないんだったら。まあ76496に拘りが無いんだろな。(ちなみにPSG,AY-3-なんたらも、
全く同じ状況です。)
ええとね、ゲイン式を計算するのめんどいから、SYNZさんが変換した奴をあってるとして使うけど、
「式」いくら眺めたって、普通の人には「訳が判らない」筈。「数学的素養」か「音楽的素養」があれば、
「おっ、あれか」とピーンとくるんだけど。そこで、普通の人にも全く判るように、「グラフ」にしますね。
■MAME76496の特性。(SYNZさんが変換したデーター(多分あってる)を変換)
{10922, 8675, 6891, 5474, 4348, 3453, 2743, 2179, 1731, 1375, 1092, 867, 689, 547, 434,},/*00*/
これが生データー、これを三倍する。(三倍するのは元に戻す為)
{32766, 26025, 20673, 16422, 13044, 10359, 8229, 6537, 5193, 4125, 3276, 2601, 2069, 1641, 1302,},/*00*/
//グラフにするために2を掛ける
//{65532, 52050, 41346, 32844, 26088, 20718, 16458, 13074, 10386, 8250, 6552, 5202, 4138, 3282, 2604,},/*00*/
さて、本当は特性が知りたいならlogのグラフがいいんだけど、今はそういう話ではないから実数のぐらふ。
そおだな、500で*1つね。余りは切り捨て。
V15*****************************************************************(65)(ここが頭)
V14****************************************************(52)
V13*****************************************(41)
V12********************************(32)
V11**************************(26)
V10********************(20)
V09****************(16)
V08*************(13)
V07**********(10)
V06********(8)
V05******(6)
V04*****(5)
V03****(4)
V02***(3)
V01**(2)
V00(こっちが尻尾)
これは、測定してうんぬんという話ではない。数学的にごにょごにょしただけで。本物とは全く違う。
が、要するに、うーーーーんと大雑把には、実数から見ればこういう感じなんである。
ちなみに参考プログラム:
gain &= 0xff; //(ゲインの最大値は255で足切り)
/* increase max output basing on gain (0.2 dB per step) */
out = MAX76_OUTPUT / 3; //(76用に3で割る)(計算の一番始めは76の最大値にする)
while (gain-- > 0) out *= (float)1.023292992; /* = (10 ^ (0.2/20)) */ //このコメントが重要よん
/* build volume table (2dB per step) */ //(専門用語)2デシベル単位で計算する
for (i = 0;i < 15;i++)
{
/* limit volume to avoid clipping */
if (out > MAX76_OUTPUT / 3) sn_VolTable[i] = MAX76_OUTPUT / 3; //間違えてデカクなりすぎちゃったら、最大値にする
else sn_VolTable[i] = out;
out /= (float)1.258925412; /* = 10 ^ (2/20) = 2dB */ //このコメントが重要よん
}
sn_VolTable[15] = 0; //最後は0に、決まってるでしょ?(多分15まで計算させると誤差で0にならない
→良く見たら20で0になる様にしてあるじゃん。ずるいなMAME。これは絶対に15にしたらめちゃくちゃだって事に
気が付いたから、誤魔化したって事でしょ?。-1.5dBだとあまりにおかしいって事に気がついたんなら、
もちっとなんとかしろよ。たとえば-3dBで計算して1.5で割るとかさ。)
別にグラフにする程も事もない。単なる2dBステップのグラフだ。
■さて実機。まさか、こんなにきれいな特性のグラフな訳ないじゃん。このグラフは理想値。実機はもっと泥臭い。
76496、15個しかないんだから、誰かメガドラ実機で、オシロとROMライター持ってる人。
68000のプログラムROMに焼いて、測定してくれよ。えっと測定ポイントは、中期版のばあい。
315-5313の確か96ピンだよ。とにかくその付近だ。聞いて確かめてくれ。
(何でもいいからROMカードリッジ差せば音はなるだろ)
76496はVDPに内臓されてんだからさ。
管理人は何も機材がないから、今度創意と工夫で、(多分SRAMカートリッジ改造して、PCに直結させる。
これなら実機でチッチャイ自作プログラムが動くでしょ?)測定(もちろん改造版サウンドブラスター)してみるよ。
が、今は(データーが)なんもないから。昔エラーい人(戸田氏)がPSG(実はOPNのSSG)をオシロで
ガンガッテ測定した。AY-3-なんたらのデーターを使うよ。(過去日記漁ればあるよ06-02/03 MD #4 魚サウンド調査中)
元データー:{256,192,133,100,70,52,37,27,19,14,10,7,5,4,2,0}
単純な2dBステップの分割データーよりも、遥かに76の実機に近い音を出す。
えーとじゃあ、AY-3-なんたらのグラフね。
えーとグラフにする為に元データーを256倍すると、
{65536,49152,34048,25600,17920,13312,9472,6912,4864,3584,2560,1792,1280,1024,512,0}
V15*****************************************************************(65)(ここが頭)
V14*************************************************(49)
V13**********************************(34)
V12*************************(25)
V11*****************(17)
V10*************(13)
V09*********(9)
V08******(6)
V07****(4)
V06***(3)
V05**(2)
V04*(1)
V03*(1)
V02*(1)
V01(0)
V00(こっちが尻尾)
下記は2dBステップ。MAMEと同じ。参考まで。
V15*****************************************************************(65)(ここが頭)
V14*************************************************@@@(52)
V13**********************************@@@@@@@(41)
V12*************************@@@@@@@(32)
V11*****************@@@@@@@@@(26)
V10*************@@@@@@@(20)
V09*********@@@@@@@(16)
V08******@@@@@@@(13)
V07****@@@@@@(10)
V06***@@@@@(8)
V05**@@@@(6)
V04*@@@@(5)
V03*@@@(4)
V02*@@(3)
V01@@(2)
V00(こっちが尻尾)
@が「AY-3-なんたら」と、「2dBステップ」との差分ね。「V09」以下は、普通の人には厳しいのかもしんないが、(普通がワカンナイ)
(管理人はデビルイヤーなので少なくともV05辺りまでは、どんなに体調が悪くても間違えない。(耳の精度は体調でえらく変わる)
要するに測定しなくたって耳が測定機で*一つ分くらいの精度があるって事だね)
はっきり、違うでしょ?実機の76の特性が、いくら測定してないからワカンナイってったって、酷いよ。
管理人が聞いた範囲では、AY-3-なんたらと76は少し違うのかも知れない。でも大よその特性は、
殆ど一緒。少し傾きが違うみたいなんだけど。少なくとも「2dBステップ」など、死んでしまえ。ぐらいの事は、
耳が言ってる。(管理人のせいではありません。耳が悪い。耳のせい。耳は独立生命体。な訳ないか)
いつの間にやら、本題とずれてんな。いつもの事だが、とにかくちと疲れたから9K(15:19)