Skip to content

Instantly share code, notes, and snippets.

@sugarflower
Last active March 27, 2024 13:40
Show Gist options
  • Save sugarflower/bf561544512c14b2cfaa7952b656a573 to your computer and use it in GitHub Desktop.
Save sugarflower/bf561544512c14b2cfaa7952b656a573 to your computer and use it in GitHub Desktop.

picosystemのC++開発環境を整える

Raspberry Pi上で作業するとします。
公式の通りに作業してゆきます。

  1. Install the build tools:
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib

ここは少し時間がかかるかも。コーヒーでも飲みながら待ちます。

  1. Download the Pico SDK:
git clone https://github.com/raspberrypi/pico-sdk.git ~/pico-sdk

Pi picoのSDKをインストール。

  1. Set the PICO_SDK_PATH environment variable on your system:
echo 'export PICO_SDK_PATH="~/pico-sdk"' >> ~/.bashrc

ここで環境変数をセットしているのだけども、見ての通り.bashrcに登録してるだけなので一度コンソールを閉じるか以下の通りexportしてやらないと以降失敗するのでやっておきます。

export PICO_SDK_PATH="~/pico-sdk"

次回以降は.bashrcに書いてあるので特に意識することはありません。

ここまででRaspberry Pi picoの開発が出来るようになります。
さらにpicosystemのSDKをインストールします。

  1. Download our PicoSystem SDK:
git clone https://github.com/pimoroni/picosystem.git ~/picosystem
  1. Create a build folder:
mkdir ~/picosystem/build
  1. Build the examples (if you're using a Pi 4, you can make -j4 to use all the cores and make things go a little faster).
cd ~/picosystem/build
cmake ..
make

※1行づつ実行

ここまで出来るとpicosystemで動作するsf2をビルドする環境が出来上がります。 Raspberry Pi2でもそこまで膨大な時間はかからないので結構お手軽。

ここがわからないよpicosystem

という感じで、最初よくわからない!ってなった部分。
まだいじりはじめたばかりなので順次追加してゆきたい所存。

blitのsource

sourceについての説明がいまいち書いてない。
前提知識として以下があります。

  • SCREEN : 表示されている画面
  • SPRITESHEET : スプライトシート

SPRITESHEETなんてものがあるのかー、ってことで
spritesheet
こんな内容のスプライトシートが元から使えるようになっています。

blit(SPRITESHEET, 0, 0, 8, 8, 0, 0, 64, 64);

などとしてやると64x64に拡大されたチェリーが画面に出るはずです。

自分で定義した画像も当然sourceにできます。

color_t myimage[imagesize] = { .... };

このような形で画像を埋め込んで、このmyimageをsourceに指定します。
データは各4bitのARGBでビッグエンディアン、つまり 0xGBAR のような並びになります。
8^n x 8^n で画像を作ります。
基本的に8x8でのみスプライトは利用されるようです。

自前で変換してもよいのだけどレポジトリに変換用のpythonスクリプトがあります。
16bppなんていう普段使わない形式なので参考にするくらいしか使わないかもですが
https://github.com/pimoroni/picosystem/tree/main/tools

@sugarflower
Copy link
Author

git clone https://github.com/pimoroni/picosystem-boilerplate.git ~/ourproject
cd ourproject
mkdir build
cd build
cmake ..
make

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment