「PlayStation Vita」って個人的になかなか好きなハードなんですが、流行らずに終わってしまった不遇なハードですよね。
今回はそんなニッチなハード向けにアプリケーションを書いていくべく、開発環境を整えた、というメモになります。
はじめに
PlayStation Vitaは2011年の年末に発売されたハードですが、タッチパネル・SIMスロットがあるなど、かなり「未来のゲーム」を見越して作られたゲーム機だったなぁと当時を振り返ってみると思わずにいられませんね。
ソフト面も特徴的で、「PlayStation Mobile SDK」というSDKをユーザーに提供しており、アプリのエコシステムに個人を巻き込もうという思惑も見て取れました。当時の社会の動きとしても、OAuth2のRFCが登場するなど、各サービスがAPIを提供しやすくなっており、個人開発者にとっても胸躍る環境でしたね。自分もPlaystation Mobile
最近ではTwitter APIの有償化が囁かれていたり、無償で行うサービスの限界が見えてきて、ちょっとそういった時代とは逆行しているようにも見えなくもないですが。
そんな中登場したPlayStation Vitaですが、競合するスマートフォンに完全に市場を食われ、2019年には生産終了・ソフトの販売も完全に終わってしまいました。PlayStation Mobile SDKも正直、流行らずに終わってしまった印象があります(当時のゲームでよくある「外(Vita)でも家(PS4)でも同じソフトで遊べる!」ってそこまで流行らなかった気がする)。
界隈で人気のHENkaku
そんな不遇なPSVitaの救世主、「HENkaku(変革)」をご存じでしょうか。PSPの時代も「HEN」というのがありましたが、Vita用にも制作されているのですね。
本ツールは公式サイトいわく「the first ever homebrew enabler for PS Vita and PSTV」らしいです。homebrewという「自作アプリケーションパッケージを動かすことを可能にするツール」ということです。
何それ胸アツ!!!!!!ということで、これからちょっと触ってみて、作れたらアプリなんかも作ってみたいなと思った次第です(何周遅れか・・・)
導入方法
詳しい導入方法については腐るほど解説しているサイトがあるのでそちらを参照してください。
基本的には、Vita内のブラウザが持つ脆弱性を突いてHENkakuを導入してくれるサイトにアクセス するという感じです。「HENlo vita」とかでググれば出てくると思います。
ブラウザのexploitが実行されて、謎のソフトウェアが起動してしまうの、普通に怖いですしなんかいい勉強になるなって気がしました。独自のOS開発の難しさですね。
記憶媒体の準備
これは必ずしも必須ではありません。Vita 2000(新型VITA)であれば1GBの内蔵メモリがあるのでそれを使えばよいです。
旧型Vitaを使いたい、もしくは1GBに収まらない大作自作アプリを導入するといった場合には以下のようにmicroSDをVITAカードのスロットに刺せるよう変換してくれるアダプタを購入するといいと思います。「sd2vita」で検索すると出てきます。(というかVITAのメモリーカードを置き換えるんじゃなくて、VITAのゲームのカードを置き換えるのね、とビックリしました)
自分は上記のめちゃくちゃ安いsd2vitaカードを購入したんですが、ちょっと注意が必要です。新型VITAだと蓋が閉まらなくなりますw
なので、蓋と干渉している部分をガリガリカッターで削りました。やすりでもいいかと思ったんですが、粉末が入り込んだりしそうで嫌だなーと思いカリカリっとやりました。ケガには注意してください。
SDカードを挿入!
SDカードは適当に最近のそこそこ速いものを使うのがいいんじゃないかなと思います。別にそんな差はないと思うし、sd2vitaがどんだけの性能出るか知らないけどw
開発環境準備
さてさて、ここからが本題。HENkakuというhomebrew enablerから起動可能なアプリを作っていくために、VitaSDKというのがあります。これも有志の方(すごすぎる!!)が作ってるSDKで、割となんでもできそうです。
今回はそんなVita SDKを使って何か作れないか?ということでまずは開発環境を構築していきます・・・・が!!!!
aarch64で開発したい
VitaSDKのホームページ見ると導入方法がちゃんと書いてあるんで、その通りにやれば簡単に導入できます。
で、その手順に従って普通に開発するのもなんかアレなので、ちょうど持て余していた「Oracle Cloud」のARMインスタンスを使って開発してみるのはどうか、と思い立ちました。
正直、aarch64でarmv7のバイナリ吐くのと、x64でarmv7のバイナリ吐くのでどっちが有利とかそういうのわからないんですけど、なんかやってみたくなったので挑戦です。
できました
というわけで、紆余曲折ありましたが、基本的には以下のリポジトリの内容をビルドしてあげればよさそうです。
https://github.com/vitasdk/buildscripts
https://github.com/vitasdk/packages
vitasdk を aarch64 でビルドしようとしているけど libelf のビルドでコケるな。config.subとconfig.guessが古いっぽい
— おはよう君(parody) (@ohayoyogi) 2023年2月7日
ビルド通ったのでサンプルプログラムをコンパイルして動かしてみるぞい
— おはよう君(parody) (@ohayoyogi) 2023年2月7日
お?! pic.twitter.com/44qnzOsCUs
— おはよう君(parody) (@ohayoyogi) 2023年2月7日
うおおマジか!!!
— おはよう君(parody) (@ohayoyogi) 2023年2月7日
aarch64なLinuxマシンでビルドしたvitasdkでvpkファイルビルドして動くところまできたぞ!!!!高まる!!! pic.twitter.com/ptQrqJxO2I
vitasdkのsampleがビルドできて動作することを確認できました。
Dockerfile
そしてできたDockerfileがこれ。VSCodeのDevContainersで使う前提で書いていて、個人的な好みで開発に必要かなと思ったのは適宜足していきます。
(packagesのビルドを忘れていたので今頑張ってビルドしています。終わったら足します)
終わりに
もう10年近く前のハードですが、コードを書けるよう準備してみました。これからまた何か進展あったら書いていきたいと思います。