
Ubuntu日本語フォーラム

ログインしていません。
こんにちは。度々失礼いたします。
UbuntuGnome16.10が正常にインストールできたため、環境構築をしています。
仕事で
ppmck
http://ppmck.web.fc2.com/ppmck.html
NES Sound Driver & Library
http://shaw.la.coocan.jp/nsdl/
を使用しておりまして、こちらに関してはLinux用のドキュメントがございましたので、なんとかコンパイルができました。
これらのツールはChiptuneと呼ばれるジャンルで使われております。ファミコンから音を出すような音楽制作ソフトです。
今回はスーパーファミコンの音源を自作したいと思い、コンパイルをかけているのですが、なかなかうまくいきません。
SuperC-spcdrv
https://github.com/boldowa/SuperC-SPCdrv
まだ正式なリリースにはなっていないのですが、先にUbuntuGnomeを使い始めた知人に聞いてみたところ、コンパイルが通ったとのことでした。
SuperCのコンパイルの際に必要な
wla-dx
https://github.com/boldowa/wla-dx
については手順が乗っていたのでcmakeでのあと数回でコンパイルが通ったのですが、SuperCのコンパイルを通すためにはどのような解決策が考えられるでしょうか?
コマンドライン操作だと ls コマンドやmakeコマンド cdコマンドくらいしか把握しておらず、まだまだLinuxに関しては初心者で申し訳ありません。
rana@LinuxAir:~$ cd SuperC-SPCdrv-master/ rana@LinuxAir:~/SuperC-SPCdrv-master$ cd mmlc rana@LinuxAir:~/SuperC-SPCdrv-master/mmlc$ clang clang: error: no input files rana@LinuxAir:~/SuperC-SPCdrv-master/mmlc$ make make -C ../snes make[1]: ディレクトリ '/home/rana/SuperC-SPCdrv-master/snes' に入ります wla-65816 -M -o main.o main.s >main.d /bin/sh: 1: wla-65816: not found Makefile:42: ターゲット 'main.o' のレシピで失敗しました make[1]: *** [main.o] エラー 127 make[1]: ディレクトリ '/home/rana/SuperC-SPCdrv-master/snes' から出ます Makefile:95: ターゲット '../snes/snes.bin' のレシピで失敗しました make: *** [../snes/snes.bin] エラー 2 rana@LinuxAir:~/SuperC-SPCdrv-master/mmlc$
不要な部分もあるかと思いますが、初めてコードも投稿させていただきます。
よろしくお願いいたします。
生成されるSPCファイルの再生には
DeaDBeeF
http://deadbeef.sourceforge.net/
にて知人は確認が取れているようです。
オフライン
rana_mzk による投稿:
コード:
wla-65816 -M -o main.o main.s >main.d /bin/sh: 1: wla-65816: not found
wla-65816が無い、というエラーですので、
rana_mzk による投稿:
wla-dx
https://github.com/boldowa/wla-dx
については手順が乗っていたのでcmakeでのあと数回でコンパイルが通ったのですが、SuperCのコンパイルを通すためにはどのような解決策が考えられるでしょうか?
コンパイルが通った後に作成されるwla-65816を、/usr/binなどのパスの通った場所に置けばいいのではないでしょうか。
オフライン
ご返答ありがとうございます。
cpコマンドを使ってwla-65816ファイルの移動を試みましたが、場所を間違えてしまったようです。Ubuntuが立ち上がらなくなってしまいました。この返事はMacから書いております。
/user/bin/
などではなく、直接cpコマンドで
/bin/sh
にファイルを移動してしまい、セーフモードでUbuntuを立ち上げるとwla-6816のアセンブラがCUIで立ち上がります。
/bin/sh
でのオプションでファイルを消すなどすればいいのでしょうか?
初歩的な質問で申し訳ありませんが、ご回答いただけると幸いです。
オフライン
お世話になります。その後バックアップのUSBフラッシュメモリから再度Ubuntuをインストールいたしました。
cpコマンドを使いファイルを正常に移動し、makeしましたところ
rana@LinuxAir:~/SuperC-SPCdrv-master/mmlc$ make clang -Wall -O2 gstdafx.h make: clang: コマンドが見つかりませんでした Makefile:98: ターゲット 'gstdafx.h.gch' のレシピで失敗しました make: *** [gstdafx.h.gch] エラー 127
というエラーがでました。
こちらはSuperC特有のエラーのようで、先にご紹介しましたGitHubにソリューションが乗っていました。
現在、作者さまに問い合わせをしてみております。
また解決方法などありましたら教えてください。しばらく様子をみてみます。
オフライン
rana_mzk による投稿:
コード:
make: clang: コマンドが見つかりませんでした
clangが正常にインストールされているかどうか確認してみてください。
オフライン
こんにちは。ありがとうございます。
clangが正常にインストールされているかどうか確認してみてください。
Macでもコンパイルを試してみましたが、clangのインストールは癖があるようですね。確認してみます。
確認のために便利なコマンドなどあれば是非教えてください。
オフライン
こんにちは。
clangはインストールできたようです。
rana@LinuxAir:~/build$ clang -v clang version 3.8.1-12ubuntu1 (tags/RELEASE_381/final) Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/bin Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.1 Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.1 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.2.0 Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.2.0 Candidate multilib: .;@m64 Selected multilib: .;@m64
この環境で/usr/binにwla-65816をcpコマンドで置きまして、SuperCのmmlc内部でmakeしましたら次のようにエラーがでました。
rana@LinuxAir:~/SuperC-SPCdrv-master/mmlc$ make clang -Wall -O2 gstdafx.h clang -MMD -c -Wall -O2 mmlc.c clang -MMD -c -Wall -O2 compile.c clang -MMD -c -Wall -O2 mmlman.c clang -MMD -c -Wall -O2 binaryman.c clang -MMD -c -Wall -O2 errorman.c clang -MMD -c -Wall -O2 spc.c clang -MMD -c -Wall -O2 timefunc.c clang -MMD -c -Wall -O2 pathfunc.c clang -MMD -c -Wall -O2 snsf.c clang -MMD -c -Wall -O2 address.c clang -MMD -c -Wall -O2 md5.c make -C ../snes make[1]: ディレクトリ '/home/rana/SuperC-SPCdrv-master/snes' に入ります wla-65816 -M -o main.o main.s >main.d /bin/sh: 1: wla-65816: not found Makefile:42: ターゲット 'main.o' のレシピで失敗しました make[1]: *** [main.o] エラー 127 make[1]: ディレクトリ '/home/rana/SuperC-SPCdrv-master/snes' から出ます Makefile:95: ターゲット '../snes/snes.bin' のレシピで失敗しました make: *** [../snes/snes.bin] エラー 2
こちらはまたwla-65816ファイルが見つからないというエラーのようですが、何故コンパイルに失敗するのかがわかりません。
以上今回の内容ですが、何か解決案をご提案くださればと思います。よろしくお願いいたします。
オフライン
rana_mzk による投稿:
この環境で/usr/binにwla-65816をcpコマンドで置きまして、SuperCのmmlc内部でmakeしましたら次のようにエラーがでました。
以下のコマンドを実行してwla-65816に実行権限があるか確認して下さい。
ls -l /usr/bin/wla-65816
オフライン
ありがとうございます。現在以下のようになっているようです。
rana@LinuxAir:~$ cd /usr/bin/build-wla rana@LinuxAir:/usr/bin/build-wla$ ls -l wla-65816 -rwxr-xr-x 1 root root 249480 4月 29 12:03 wla-65816
ファイルの場所ですが、wla-dxのドキュメントにbuild-wlaを作ることが推奨されていましたので、そちらに一旦移してみました。
実行権限を与えればコンパイルが通るのでしょうか?
以上よろしくお願いいたします。
オフライン
rana_mzk による投稿:
コード:
rana@LinuxAir:~$ cd /usr/bin/build-wla rana@LinuxAir:/usr/bin/build-wla$ ls -l wla-65816 -rwxr-xr-x 1 root root 249480 4月 29 12:03 wla-65816ファイルの場所ですが、wla-dxのドキュメントにbuild-wlaを作ることが推奨されていましたので、そちらに一旦移してみました。
実行権限を与えればコンパイルが通るのでしょうか?
実行権限は付いてますけど、実行ファイルは/usr/bin直下でなければなりません。
ですので、以下のコマンドを実行して移動させて下さい。
sudo mv /usr/bin/build-wla/wla-65816 /usr/bin/
オフライン
私の環境でコンパイルを試してみましたが、SuperCのコンパイルにはwlalinkも必要ですので、そちらも/usr/binにコピーして下さい。
sudo cp -av wlalink /usr/bin/
オフライン
コンパイルまで試していただいてありがとうございます。
wla-65816とwlalinkを指定の場所に移動しましたらコンパイルは通ったようです。
ここからはUbuntuは関係ないのかもしれませんがお聞かせください。
SuperCのMMLコンパイルコマンドは
mmlc mmlファイル名 出力したいSPCファイル名
とのことです。(GitHubを参照しました。)
サンプルになります、MMLファイルが
https://github.com/boldowa/SuperC-SPCdrv/releases
こちらのWindows用のバイナリーに含まれておりますが、そちらはmmlcでコンパイル可能でしょうか
rana@LinuxAir:~/SuperC-SPCdrv-master/mmlc$ mmlc wvtes.mml wvtes.spc コマンド 'mmlc' は見つかりませんでした。もしかして: コマンド 'nmlc' - パッケージ 'nml' (universe) コマンド 'wmlc' - パッケージ 'wap-wml-tools' (multiverse) コマンド 'mmls' - パッケージ 'sleuthkit' (universe) コマンド 'pmlc' - パッケージ 'pcp' (universe) mmlc: コマンドが見つかりません rana@LinuxAir:~/SuperC-SPCdrv-master/mmlc$
こちらではmmlcがないとエラーが出てしまいます。
オフライン
rana_mzk による投稿:
コード:
rana@LinuxAir:~/SuperC-SPCdrv-master/mmlc$ mmlc wvtes.mml wvtes.spc コマンド 'mmlc' は見つかりませんでした。もしかして: コマンド 'nmlc' - パッケージ 'nml' (universe) コマンド 'wmlc' - パッケージ 'wap-wml-tools' (multiverse) コマンド 'mmls' - パッケージ 'sleuthkit' (universe) コマンド 'pmlc' - パッケージ 'pcp' (universe) mmlc: コマンドが見つかりません rana@LinuxAir:~/SuperC-SPCdrv-master/mmlc$こちらではmmlcがないとエラーが出てしまいます。
mmlcはspccore.binと同一のフォルダーに置かないと動かないようです。
私の環境で試した所、一応コンパイルは出来るようです。
test@test-desktop:~/Downloads/superc_v093_win$ ./mmlc ./mml/wvtes.mml wvtes.spc spc core Version: 00.92 [INFO ] seqStart: 0x3700 Make SPC success. Total data size: 14080 bytes 51456 bytes(78.52%) free. Complete. Compiled in 0.001 seconds.
オフライン
ありがとうございます。
該当のWindowsバイナリにspccore.binがありましたので、移動させまして、mmlcでコンパイルしましたところ無事にコンパイルが通りました。
また冒頭で述べさせていただいたDeaDBeeFにて再生の確認が取れております。
今後は
SNES SPC Player on FPGA
https://www.youtube.com/watch?v=J22l-H3YLVQ
などでこちらで作ったSPCを利用する予定でおります。
ありがとうございました。
rana
オフライン