udon's blog

思いついたことを、思いついた時に。忘れないように。

Prince-of-Persia-Apple-II

発見。
jmechner/Prince-of-Persia-Apple-II · GitHub

こりゃぁ動かしてみるっきゃ無いでしょ!

ってことで頑張ってみました。
# 結論から言うと動かせてないけど忘備録

○環境

コンパイラを用意

とりあえずgithubのREADMEを読むと「6502」というCPUのApple IIとやら向けのものらしい。
25年前のフロッピーからサルベージしただの、さらっとえげつないこと書いてるけどそのへんはご愛嬌。

なので探してみたらcc65と言うやつがあるらしい
cc65 - a freeware C compiler for 6502 based systems

基本的にはLinuxや、Winのバイナリを対象にしてるらしいけど、一応cygwinでもコンパイルできたという報告があるらしい。
のでソースからビルドしてみます。

$ wget ftp://ftp.musoftware.de/pub/uz/cc65/cc65-sources-2.13.3.tar.bz2
$ tar -xzjf cc65-sources-2.13.3.tar.bz2
$ cd cc65-2.13.3
$ ls
....

あれ?configureなくね?
READMEもついてないし、なんか不親切やな。。。
と思ったけどmakeなるディレクトリにgcc.makなるファイルを発見。
これでいけんじゃね?

$ make -f make/gcc.mak

ほっほー。ビルド始まった!!!

んじゃこの間にエミュ探すか。

・・・なんか想像してたのと違う。
Visual 6502 in JavaScript
いやいや。。。そうじゃなくて。。。
ビルド後のバイナリ放り込んだら走りだしたり、違う?

と思ってけど

本当はApple IIエミュレータを持ってこないとダメでした

テヘペロ☆
で、肝心のエミュはすぐ見つかった。
Apple //e Emulator for Windows
あるもんだねーー!!!

そうこうしとるうちにcc65のコンパイル終わってた。
たぶん、こうでしょう。。。

$ make -f make/gcc.mak install

いけた。ワシすごいw

とりあえずcc65のサイトに各環境向けのライブラリもあったので、落としておきます。

$ wget ftp://ftp.musoftware.de/pub/uz/cc65/cc65-apple2-2.13.3-1.zip
$ unzip cc65-apple2-2.13.3-1.zip

で、えーっと。とりあえず何かをコンパイルしてみます。
(forkしたところからcloneしてます)

$ git clone git@github.com:datsuns/Prince-of-Persia-Apple-II.git
$ cd Prince-of-Persia-Apple-II/01\ POP\ Source/Source/
.....

コンパイラの名前って何???→cc65でした。

$ cc65 AUTO.s
AUTO.S(1): Error: Identifier expected
AUTO.S(1): Warning: Implicit `int' is an obsolete feature
AUTO.S(2): Error: `;' expected
AUTO.S(2): Warning: Implicit `int' is an obsolete feature
.....

だめっすねーー。そもそもコンパイルできてない。。。

アセンブルしないとダメだった

テヘペロ☆(本日二回目)

ここを見てみるとアセンブルはca65の様です。
CC65で書いたソースをNESASMに直すとどうなりますか? - Yahoo!知恵袋
では早速

$ ca65 AUTO.S
AUTO.S(1): Error: Unexpected trailing garbage characters
AUTO.S(4): Error: `:' expected
AUTO.S(4): Error: Unexpected trailing garbage characters
AUTO.S(5): Error: `:' expected
....

げーーー。全然だめじゃん。
ってか、そもそも構文を認識できてない様子?
ん〜〜〜どうするかな・・・。
とりあえずコンパイラにサンプルファイルがあったので、それをコンパイルしてアセンブラを履かせてみます。

$ cd cc65-.2.13.3/samples
$ cc65 ascii.c
$ vim ascii.s

げ。ぜんっぜんちがうじゃんか。。。

んがーー。。。どうもcc65でビルドしたんではないの、、ね?(25年前)

まぁ、ある程度きたからもうええか。。。
と思ったら最後の一手。
Issue #1: Source Code currently incomplete · jmechner/Prince-of-Persia-Apple-II · GitHub

The initial commit of the source code is missing some files,

はよう言うてくれw
とりあえず将来は追加するらしいので、もう少し待ってみます。

できるかねほんとにw