#03 DGEN 続メガドラガンマ(その3)(完結編)
「ガンマって書いてあるけど、結局リニアーなら、明るさ上げてコントラスト下げた状態と何処が違うの?」
「はい、違いませんでした。ガンマじゃないですね。訂正:メガドラガンマは実はガンマではない!」
だって、管理人だって、薄々おかしいなとは、気がついてたような。だまされてたような。
「原点を通らない」って時点で、これはおかしいって気がつかなきゃ駄目ぽ。
減点100。雑巾掛け3往復。見てない時も休んじゃ駄目だよ。先生ちょっと喫煙室にいい空気吸いに行って
くるから、漢字の書き取りも休んだらあかんよ。
...はあい。
■それから「OutRun」の謎もDMAでもなんでもない。
描画位置がずれたのが原因。ソースは、
//こちらは表示画面でございます。
// Render video display at per laster's! :D
for(ras = 0; ras < vline; ras++)
{
fm_timer_callback(); // update sound timers
// if(sndi) may_want_to_get_sound(sndi); // per laster
if((vdpreg[0] & 0x10) && (--hints < 0))
{
// Trigger hint
m68k_set_irq(4);
hints = vdpreg[10];
// may_want_to_get_pic(bm, retpal);//, 1);
// } else may_want_to_get_pic(bm, retpal);//, 0);
}
//昔はここにレンダー
if(bm) vdp.draw_scanline(bm, ras); //<dgenはここでレンダリングする。>
vdp_status |= 0x0004; // HBlank = 1 // 4;// hblank comes before, about 36/209 of the whole scanline
odom += hblank1;
odo += m68k_execute(odom - odo); //run_to_odo_musa(odom);
vdp_status &= 0xFFFB; // HBlank = 0 //~4;
odom += scanlength1;
odo += m68k_execute(odom - odo); //run_to_odo_musa(odom);
run_to_odo_z80(odom); // Do Z80
//今のレンダーでし
// if(bm) may_want_to_get_pic(bm);//, NULL/*retpal*/);//, 1);
// if(bm) vdp.draw_scanline(bm, ras); //<Gensはここでレンダリングする。>
#if 1
//ここも要るの?
odo += m68k_execute(48); // 少し走らす(48に意味なし)
run_to_odo_z80(48); // 少し走らす(48に意味なし)
#endif
}
■「MW4」で大地の面で、ペペログウにスイッチを押させたら、エミュが暴走したつ。
って、まだSAVEもないのに、そんな所まで、進むなよ。管理人!
■ええと、今日の(16:00)グライの話。今(19:21)
管理人、ちと病気中でして、セキが出ます。んで、ゴホ。ちと大きなセキが出たんですわ。16:00グライに、
そうそう、A21はちと、名前変える事にしたんで、その作業をしてたんですが、
キーボードの上にどばーってつばがついちゃいましてね。いや食事中でしたか。すんまへん。でね。キーボード
が受け付けなくなったから、マウスで終了→再起動したら、
やあ、BIOS、FDDにいれてくれれば更新したげる。とくべつだお。
とか画面に出てきたんでつ。(このNOTE-PCはESCだかF1だかを押しながら立ち上げるとそおなる。勿論押してない)
ああ、まずそーだな。(注:食事中の方重ねてお詫びします)
んで、電源スイッチ押しても(電気が)切れない。(BIOS更新の場合は誤動作を防ぐ為、特別にこういう仕組みになってるんだろう。多分)
んで、はたと思い。電源アダプタ(DC電源)を引っこ抜いたら(電気が)切れた。(ACアダプタが無いと更新出来ないようなプログラムに作ってあるんじゃろ)
で、デビルマンはそんな事で動揺したりしない。それは、単に何度も似たような経験をしてるから。
2cm(センチ)先にある精密ドライバー(+)を持って、キーボードを外し(ねじ2ヶ所)。
洗面所にもってって、丸洗い。
唾液がついた場合は、乾かしては駄目。余計酷いことになる。キーボードの中にはコンデンサーが入ってないので、
丸洗いしても、一日グライなら水につけっぱなしでもOKだ。(一日以内になんとかしないと駄目だぞ)
さて、綺麗になった。コンデンサーがないから、石鹸をつけてすすいでも構わない。が、別に汚れてる訳ではないので、
そんな事はしなかった。管理人はタバコを吸わないが、もしタバコを吸う場合は、石鹸でヤニが落ちるので、
迷わず(いい機会だと思って)洗ったに違いない。
さて、素人でもここまでは簡単。この後はコツがある。
というより、この後どおするかきちんと考えてあるから(復活させる自信があるから)、洗ったんである。自信が
なければ、余計な事は一切しない。何故なら始めから、どうとも思っていないから。
管理人の部屋には専門的な機材とか色々あるから、遊びにくる人は、何か特殊な方法を駆使して直すのかと、
誤解している。が、直すのに特殊な機材は要らない。だけどどおしても必要な機材が一つだけある。その機材が
なければ洗っても、乾かさないで、多分水につけっぱなしにしとく。一日グライで錆びたりはしない。(その間にそれ、を買ってくる)
さて、その直すのに絶対に欠かせない道具はなーんだ。簡単に手に入るものだよ。値段は¥6000~¥10000グライ。
あててみ。うーん、明日の日記に答えを載せるよ。(ちなみにとっくに復活したキーボードで、この文書。書いてるよ。だってNOTE-PCだからさ。)
うーん、第一ヒント。復活時間は40分グライ。多めに(さばよんで)見積もっても一時間。時間が判ってるから、
修理完了時刻を予約したっていい。
第二ヒント。修理に特殊な技術は要らない。なにか特殊な作業が必要なら、早かったり遅かったり、修理時間に
ムラが出来ちゃうでしょ。神経を使う作業など、何処にもない。そおいう作業が入るのならば、修理出来たり、
出来なかったり、結果にもムラがある訳だ。そういうものが一切ない。つまり運に左右されない。100%完全に
直る。99.9999%は100%ではない。
(19:45)
■そういや、このページは「メガドラガンマ」の話やね。エート、「コントラスト+ブライトネス」でもいいんだけどさ。
もうそういう名称になっちゃってるから。で、最新の実装は「3/4」は止めて、「7/8」にした。PSPの液晶は、
ラスターの隙間(当然隙間はRGB=(0,0,0))が無いので「3/4」では眠くなりすぎて、駄目。「7/8」が、
大体丁度いいよ。ソースは、
#if 1
/* PSPの液晶ではこっち(の方が似る) */
/* メガドラガンマ、擬似MMX風(パックド演算)、実装(7/8 type) */
int grb;
grb =((cram[i ]&0x0e)<<9)|((cram[i+1]&0xe0) )|((cram[i+1]&0x0e)>>1);
/* -ggG GGrr RRRb bBBB 7:7:7=0x1ce7 */
/* -ggG Gxrr RRxb bBBx 6:6:6=0x18c6 */
grb=(grb<<3)-(grb&0x18c6); /* 8倍し、「隣を邪魔しないよう加工したもの」を引く*/
grb>>=1; /*半分にする*/
grb += ((6<<10)|(6<<5)|(6)); /*底上げ分*/
*ptr++ =( grb ); /* */
#endif
わかるかにゃ?(20:26)