Quantumleap
548 words
3 minutes
DevkitProをmacOSで動かそう

DevkitPro#

Nintendo Switch 用の Homebrew アプリを作成するのに必須の SDK 管理用のパッケージマネージャでこれをインストールしないとまず始まらない。

Ubuntu または WSL2 を用いた Ubuntu 仮想環境での導入方法についてはたくさん触れられているので、今回は macOS で動作させる方法について解説していく。

ちなみに、うちの環境は以下の通り。

  • Mac mini(M1, 2020)
    • Chip Apple M1
    • Memory 8GB
    • macOS Big Sur
  • Xcode 13.0 (13A233)

DevkitPro のインストール#

このページで解説しているとおりに進める。

wget https://github.com/devkitPro/pacman/releases/download/v1.0.2/devkitpro-pacman-installer.pkg
sudo installer -pkg /path/to/devkitpro-pacman-installer.pkg -target /

折角なのでダウンロード用のコマンドも載せておきました。

SDK のインストール#

今回は Nintendo Switch 向けのアプリを開発したいので以下のコマンドを入力します。

sudo dkp-pacman -Sy
sudo dkp-pacman -Syu
sudo dkp-pacman -S switch-dev

パスワードを入力すると以下のような画面が出るはずなので、何も考えずにエンターキーを押します。

:: There are 12 members in group switch-dev:
:: Repository dkp-libs
   1) deko3d  2) devkita64-cmake  3) libnx  4) switch-cmake  5) switch-examples  6) switch-pkg-config
:: Repository dkp-osx
   7) devkitA64  8) devkitA64-gdb  9) general-tools  10) pkg-config  11) switch-tools  12) uam

Enter a selection (default=all):

環境変数の設定#

自分の環境では.zshrcを使っていたのですが、ここでは各自あわせてファイルを適時変更してください。

# .zshrc
export DEVKITPRO=/opt/devkitpro
export DEVKITARM=/opt/devkitpro/devkitARM
export DEVKITPPC=/opt/devkitpro/devkitPPC

これらを記述するか、単にコマンドから入力しておけば大丈夫です。

ビルドしてみよう#

テンプレートファイルがあるのでそれを利用します。

::: warning 記事との違い

このメモではsimpleというディレクトリがあることになっているが、実際にはapplicationというものにバージョンアップで変更されている。

:::

cd ~
git clone https://github.com/switchbrew/switch-examples
cd switch-examples/templates/application
mkdir -p exefs_src/a
make
$ make
main.c
linking application.elf
built ... application.nacp
built ... application.nro

ビルド自体は 10 秒ほどで終わり、ファイルができていることが確認できる。

$ ls
Makefile            application.nro		source
application.elf     build
application.nacp	exefs_src

あとはapplication.nroをスイッチの SD カードのswitchフォルダに移動させればアプリケーションとして動作します。

コードを改造しよう#

弄るのはsource/main.cだけです。

ってかこれ、C++じゃなくて C なんですね…

DevkitProをmacOSで動かそう
https://fuwari.vercel.app/posts/2021/11/homebrew/
Author
tkgling
Published at
2021-11-02