TIC-80 ver 0.70.0 を Windows10 + VS2015 環境でビルドしてみた

TIC-80 は、無料でオープンソースな架空のレトロゲーム機です。Windows,Mac,Linux,Android,ラズパイなどで動作します。詳細は [まとめページ](https://qiita.com/yamachan360/items/3544a96f0dbea31224be) から。

# 自分でビルドしてみたい！

せっかくのオープンソースですから、自分でも少し改造してみたいですよね。またダウンロードできる最新版は少し古いようなので、最新のバージョンを試せたら嬉しいですよね。

※ [README](https://github.com/nesbox/TIC-80#pro-version) によると、自分でビルドすればフリーでもプロ機能が使えるよ！だそうです

ということで、TIC-80 リポジトリの [build-instructions](https://github.com/nesbox/TIC-80#build-instructions) の (簡単すぎる) 指示を参考に、Visual Studio 2015 (VS2015) でビルドを試してみました。

Windows 10 64bit 日本語環境で実行しています。

# ソースファイルのダウンロード

[github TIC-80](https://github.com/nesbox/TIC-80) にアクセスし、右上の

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/031df5b0-2a17-8615-8c2a-6ea88018e97b.png)

からダウンロードした TIC-80-master.zip ファイルを作業用のフォルダに解凍します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/219e0512-86b6-5f26-3e4f-4f7aa6c1a923.png)

# VS2015 のインストール

MS の [ダウンロードページ](https://visualstudio.microsoft.com/ja/downloads/) (かなり下の「以前のバージョン」リンク) から、VS2015 Community 版をダウンロードします。Visual Studio Dev Essentials (無料) に参加する必要がありました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/7a04aa3e-4f7a-684c-6a3f-6d131ee6d7cc.png)

オプションは特に変えずそのままでインストールしました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/df982577-8a92-a8de-f582-b75e39cda36d.png)

Windows 10 環境だからでしょうか？既に VS2017 をインストール済みだからでしょうか？謎のエラーが発生しておりますが…

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/ba6d78d1-afbd-6498-e255-a0d14a3e358c.png)

とりあえずインストールはでき、いまのところ特に利用上の問題は起きていません。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/16f9e57b-232e-eaa8-6aeb-93bd6fe35afe.png)

# プロジェクトを開く

「ファイル」メニューの「開く」から「プロジェクト/ソリューション」を選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/8d405ac4-0b24-725a-9454-a46b544972d6.png)

ファイル選択画面になりますので、README に従って、build/windows/tic/tic.sln ファイルを指定します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/87e15017-be0c-c445-d622-314773689de9.png)

足りない機能があるようで、自動で追加してくれます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/e4888e94-57ec-6582-d4c7-aa1c808d61b8.png)

VS2015 をいったん終了して、インストール完了を待ちましょう。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/dcf46624-7b8c-912e-a1dd-8bb5391bdbda.png)

インストール完了後、VS2015 を起動して、もう一度プロジェクトを開きます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/a7b23e93-de14-197f-2216-4bf027fdd62a.png)

SDL2関連でエラーが発生していますね。それ以外はうまく読み込めたようです。

# 不足しているファイルを追加する

まずは SDL2 で発生しているエラーに対応しましょう。

SDL2 の設定ファイルは 3rd-party/SDL2-2.0.7/VisualC/SDL/SDL.vcxproj と表示されていますが、実際のフォルダをみると…

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/dedda45c-5ec8-3900-119f-bd6fc53e448a.png)

驚いたことに 3rd-party フォルダが空っぽです。これでは困るので、独立してるっぽい [3rd-party](https://github.com/nesbox/3rd-party/tree/fa4a9f2ae3d53f3fc5145923e3924e2d53989e5c) リポジトリから、同様に ZIP ファイルをダウンロードして 3rd-party フォルダに解凍します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/06fc6d1d-303e-6e5b-1695-0077f6566ace.png)

プロジェクトの再読み込みを実施すると、エラーが消えました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/634e7c13-c7df-0720-994b-f5d57f40b5bb.png)

# ビルドしてみる

さあ、いよいよビルドを実施します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/0c9f9e78-f77f-6b63-f0d6-89d2f1de2fdf.png)

と、以下のようなエラーになりました。警告はともかく、ソースファイルが不足しているのは問題ですね。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/947fa5dc-4f28-49b0-ffed-a692efd37203.png)

で、さきほどの 3rd-party フォルダを確認すると、原因がわかります。エラーの対象となっているのは "zlib-1.2.8" フォルダなのですが、実際にあるのは "zlib-1.2.11" なんです。バージョン違いですね。

ここは手抜きをして、"zlib-1.2.11" フォルダを "zlib-1.2.8" にリネームして先に進むことにします。マイナー番号違いなので機能削除はないことを期待しましょう。

# ビルドしてみる (2回目)

さて、ビルドを実施すると… まだエラーが発生しています。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/3ab3f920-77db-bc22-791b-955f5984cc15.png)

fennel って何でしょうね？ソースコードのほうを見ると、ビルド時にオプション指定されていますが…

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/7d920d65-4873-0a71-1912-062f10448458.png)

あ！思い出した！Lua の代わりに使用できる、JavaScript などと同じ言語だ！うーん、私は使わないので外したい気も… まあ、でもできるだけ頑張ってみましょう。

ファイルを探すと、3rd-party フォルダにありました。これがインクルードパスに含まれていないのが問題かな？

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/f3cb8149-189b-602d-710e-93411742c7c5.png)

tic80 のプロパティを見ると、確かに抜けている気がします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/76475927-c9b6-8a9a-e481-544d6f5654cd.png)

他のフォルダと同様に追加してあげます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/5e659247-044b-3840-4f49-8d2a289d9693.png)

さあ、これでどうでしょうか？

# ビルドしてみる (3回目)

さて、3度目の正直です、ビルドしてみましょう。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/7ca7082e-05c7-453c-9c63-9f603672a898.png)

キター！ビルド (実際にはリビルド) が無事に成功しました！

# 実行してみる

さて、出力先のフォルダを見ると… あります！
tic.exe かと思ったら tic80.exe ってファイル名ですが。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/2e3c04c0-3f9e-fd1b-3af5-410199b6abf6.png)

さっそく実行してみましょう！

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/989fdace-eaa4-b9c1-1fe9-5a01e05bbf1e.png)

おおお、バージョン表記が違う！新しい！ちゃんとこれ、開発版をビルドできていますね。
よかったよかった。

ソースコードを読んだり、ちょっと改造したりするのはまた別の機会に！
ではでは。

## 追記 (2018/08/05)

生成された exe ファイルが ``tic80.exe`` だったのは、メインの tic プロジェクトのリンカー設定で出力ファイル名のルールとして明示されていたから、でした。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/c2e8c6a0-d924-a39a-00aa-2837bdf43316.png)

# TIC-80 に興味をもったら

[無料でオープンソースな架空のレトロゲーム機「TIC-80」に関するまとめ](https://qiita.com/yamachan360/items/3544a96f0dbea31224be) ページを参考にしてみてください。

ではでは。