4476164 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

Bubble, bubble, toil and cuddle !!!

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
March 22, 2021
XML
カテゴリ:作りモノ
今日は早めで帰宅は18時過ぎ。

Raspberry Pi Pico の NTSC 出力を行う際に今まではキャラクタVRAM方式を使ってました。VRAMにはキャラクタコードが格納されていて、水平同期信号に合わせて、そのキャラクタを描画する、という方式です。この方式はVRAMサイズが小さくて済む、という利点があります。

しかし、Raspberry Pi Pico には 264kB ものメモリがあるので、256x192のグラフィック画面に対して、1ドットをunsigned char (1バイト)で表しても48kBぐらいの VRAM サイズで納まります。残り200kBもあるなら VRAM にこれぐらい使ってもよかろう、っちゅうことで、

unsigned char gvram[256][192];

のように VRAM を確保して、水平同期信号に合わせて、1ドットずつ描画することにしました(グラフィカルVRAMと呼ぶことにします。)。この方式を使えば、現状の回路で1ドットに対して白、グレー、黒を表現することができます。もっと頑張って外付け回路作れば1バイト=8ビット→256階調を表現することができるようになると思いますが、とりあえずは頑張らない。(^^;

1ドット毎の描画っちゅうことなので、文字表示するためには文字を1ドットずつグラフィカルVRAMに書き込む関数を作る必要がありますが、フォントファイルがあるのでそんなに面倒でもありませんでした。

っちゅうことで、pa-art/test_ntsctest_ntsc_grph.cとしてグラフィカルVRAMのテストプログラムを置きました。

sinカーブもちゃんと描ける
sinカーブもちゃんと描ける

黒描画のタイミングが白/グレーに対して少し違うようなので、右端に行くほどフォントが潰れやすくなっているような気がします。何とかならんかな。(^^;;

また、ドットとしてグレーが表現できるようになったので、"DROPPING MONSTERS"の壁部分をグレーにしてみたバージョンをpa-art/test_ntsctest_ntsc_wall_grph.cとして置きました。とりあえず動かすことを目標にしたのでソースとは汚いですが... (^^;;

壁がグレーになっている(ハッシュパターンも込みで)
壁がグレーになっている(ハッシュパターンも込みで)

見た目は前とあまり変わりませんが、内部的にはキャラクタベースのマップ(vram)に描画用のVRAM(gvram)を追加して論理はほとんどいじらずに描画を変更しています。なので、見にくい。(^^;; 最初から設計しなおしたら違う実装があると思います。

グラフィカルRAM版の"DROPPING MONSTERS"プレイ動画


グラフィカルRAM版のNTSC出力の方が融通が利きそうなので、これからはこちらをベースにしていきたいと考えています。ドットの微妙なズレを何とかしたいけど...
--- 21:20 ---





お気に入りの記事を「いいね!」で応援しよう

Last updated  March 22, 2021 09:25:00 PM
コメント(0) | コメントを書く
[作りモノ] カテゴリの最新記事


PR

Keyword Search

▼キーワード検索

Free Space

Category

Favorite Blog

まだ登録されていません

Comments

通りすがりの者です@ Re:LIFEBOOK U939/B に WANカードを載せた(01/21) 私のLIFEBOOKではnanoSIMを装着後に再起動…
aki@ Re:秋葉原に寄った(01/14) この様な書込大変失礼致します。日本も当…
BOOSAN@ Re:SPY x FAMILY CODE:White を観た(01/08) 私は明日、PERFECT DAYS観ます。ビム・ベ…
かいじゅう@ Re:dynabook T55 にインストールした PearOS Monterey が起動するようになった(06/15) 同じくpear osで画面が出なくて困ってまし…

Freepage List


© Rakuten Group, Inc.