LoginSignup
1
1

More than 3 years have passed since last update.

【TIC-80】パレット編集

Last updated at Posted at 2020-01-25

はじめに

以前の「ドット絵を描いて動かそう!(「TIC-80」のご紹介)」の続きのようなものです

パレット編集画面説明

パレット編集01.png

パレット文字列

だいたいは使っていれば分かるかと思いますが、左下に「COPY PALETTE」と「PASTE PALETTE」があります。

例えばこの状態で「COPY PALETTE」をクリックした後、「メモ帳」などのテキストエディタで
「貼り付け」すると16進数の文字列が表示されます。
パレットテキスト.png
「右端で折り返す」表示のため2行になっていますが、1行の文字列です。
最初の6文字で色番号0のR(赤)G(緑)B(青)を16進数の2文字でそれぞれ表しており、以下色番号1~15も同様に並んでいます。

TIC-80 Wiki」の「パレットのページ」には様々なパレットが公開されているので試してみるのもいいでしょう。
TIC80wikiPalette_ss.png

例えば「JAPANESE MACHINE PALETTE」というのがありますので、ブラウザ上で「pal:」以下の文字列をコピーして
TIC-80の「PASTE PALETTE」をクリックすると以下のようになります。(ゾンビかな?)
パレット貼り付け_小.png

TIC-80パレット編集ツール(Web)

また、Wikiでも紹介されていますが、
ブラウザ上でパレットを編集して、TIC-80用パレット文字列を生成してくれるツールが
公開されています。

TIC-80 Color Palette Tool

パレットツール.png

TIC-80を2つ起動して色々コピペ

テキストエディタやブラウザを経由しなくても、「TIC-80」を2つ立ち上げて、
別ファイルを読み込めば(新規作成)、パレット情報のコピペも可能です。
パレット共有.png

また、パレット情報だけでなく、スプライトパターンのコピペも可能です。

スプライトコピペ.png

ちなみにテキストエディタに「貼り付け」すると色番号0~f(15)のスプライトパターン文字列がペーストされます。
GUIでポチポチこのようなデータを生成できるのは応用も色々できそうです。
スプライトパターン文字列.png

プログラムからパレット情報の変更

また、パレット情報はプログラム動作中に変更も可能で、それをカートリッジ(.tic)ファイルに反映も可能です。

パレットの色の交換の関数を作ってみました。

swapal.lua
function swapal(c1,c2,dosync)
    local ADDR=0x03FC0
    local t1,t2={},{}
    for i=0,2 do t1[i]=peek(ADDR+3*c1+i)end
    for i=0,2 do t2[i]=peek(ADDR+3*c2+i)end
    t1,t2=t2,t1
    for i=0,2 do poke(ADDR+3*c1+i,t1[i])end
    for i=0,2 do poke(ADDR+3*c2+i,t2[i])end
    if dosync then sync(1<<5,0,true)end
end

使い方としては c1,c2にスワップしたい色番号を指定して、ticファイルにも反映させる場合には
trueを続けて指定します。

例えば、newしたサンプルプログラムなら、色番号5は緑色、13は水色ですが、
new.png
こんな感じでコピペして呼び出すと
swapal_code.png

このように色が交換できます。
swapal_result.png

3番目の引数にtrueを指定したので、ticファイルにも反映されます。
swapal_result3.png

「TIC-80]は基本的には16色ですが、プログラム実行中に変化させたり、SCN命令との組み合わせで、
描画中に変更して16色以上の色を表示させたりすることもできます。

とりあえずパレットの説明はこの辺で一旦終了します。
その他、palette map とかもありますが別の機会に。

皆さんも「TIC-80」使ってみましょう!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1