2018/10/31 | 投稿者: ghost

いつにも増してどうでもいい話をする。特にオチはない。


まず上掲動画について。Shoulder Blade OVERDRIVEの最終調整の中で各AREAの配色を見直したのだが、その際、次AREAへ移る際に背景色が一気に変わるのが唐突に過ぎる感があったので、グラデーション的に滑らかに色が遷移する実装を追加してみたのだが、そのデモである。念頭にあったのは往年の疑似3Dの名作“After Burner”(1987年,セガ)のステージ間遷移であることは言うまでもない。

と言っても、AREA3〜AREA7については、各AREA間の背景色が大きく変わるのでこの実装が意味をなしているが、それ以外についてはRGB各要素についての変移がないか、あっても1……のワリにはかなり色味が変わるので結局唐突感はあるのだが……この実装の効果は特にないのだが。

それはともかくとして。

この実装をしながら、何を今更「MSX2のパレット操作回りの実装って何でこうなんだろう?」という疑問が浮かんだのだが、まぁ、特に答えはないし答えがわかったら何だということもないのだが、とりあえず疑問に思ったことは忘れないように備忘しておこう、というのが本稿の主旨である。MSX2以降でパレット操作をおこなうアセンブラプログラミングをおこなう人……なんて、いまどきそんなにいないわな……以外には、本当にどうでもいい話になる。

さて。

まず前提として、MSX2……厳密に言えばV9938およびその上位VDP……にはパレットの概念があって、512色中から任意に選んだ16色を同時に利用することができる。より正しく言えば、そういうモードもある。それ以上の色数を同時発色するモードについては本稿とは関係ないので割愛する。

512=83だから、これは要するにRGBの各要素について3ビットの情報量がある、ということだ。より直感的に表現すれば、MSX2の色は、赤8段階、緑8段階、青8段階の組み合わせによって決定される、ということになる。例えば、本作AREA1の敵機は以下の2色+影1色で表現されている。

パレット
2 / 暗い部分230
3 / 明るい部分450

光の3原色で赤と緑を均等に混ぜると黄色になるから、上設定は、この色を使って表現される敵機が、かなり強く黄色味がかった緑であることを意味している。実際のキャラクタの表示例は以下の通りになる。

クリックすると元のサイズで表示します
<こんな色>

以上を前提として、ここからが本題……例によって例の如く、ボクの話に本題なんてものはそもそもないのだが……になる。

続きを読む
タグ: MSX Z80




AutoPage最新お知らせ