NES
SoundDriver&Library
の
最新版
1.30を
macOS向けに
コンパイル
してみました。
以前の
1.28までの
バージョンの
記事に
変更が
ありますので
そこについても
書いておきますね。
NESSoundDriver&LibraryをMac向けにコンパイル
それでは、行ってみましょう!
まずは
今日の
一曲から
ですね!
//Based NES Sound Drver & Library(nsdlib) ver 1.30 compiled for macOS
#title "20230422-26"
#composer "rana"
#Copyright "nsd.lib, Copyright (c) 2012 S.W. All rights reserved."
#offsetPCM $C000
#code "nsd_vrc7.bin"
#bgm 1
E(0) = { 13 12 11 8 D1 7 D2 6 L 5 }
E(1) = {12 L 0 }
E(2) = { 12 12 12 12 12 L 0 }
E(3) = { 06 08 10 11 11 11 10 10 10 10 ;StringsA
09 D8 09 D8 08 D8 08 D8 07 D8 07 D8 L 06 }
E(4)= { 03 05 07 08 D2 07 D4 ;StringsB
06 D8 06 D8 05 D8 05 D8 04 D8 04 D8 L 03}
E(5) = { 10 07
13 11 09 07 05 03 02
04 07 05 04 03 02 02 01
03 05 04 03 02 02 01 L 01 }
E(7) = { 12 10 9 7 L 5 }
E(8) = { 13 10 9 7 D4 L 1 }
E(9) = { 14 12 10 D4 8 D4 6 D4 5 D1 L 0 }
E(14) = { 02 03 04 05 D4 04 D4 03 D4 02 D4 L 01 } ;Strings C
E(15) = {02 03 04 05 D4 04 D4 03 D4 02 D4 L 01 00 }
E(30) = { (43,15,5) (15,0,50) L 0 R L 0 }
E(50) = {15 D4 14 D3 12 D2 10 D2 8 D2 5 D2 3 D2 1 D2 L 0 } ;Trumpet
E(60) = {15 D8 14 D8 13 D6 12 D6 11 D4 10 D2 8 D2 6 D2 4 D2 3 D2 2 D2 1 D2 L 0 } ;Flute
E(461)={ 10 07 L 00 } ;CloseHiHat
E(462)={ 10 08 07 06 05 04 03 03 02 02 01 01 L 00 } ;OpenHiHat
E(463)={ 13 12 10 09 09 08 08 08
07 07 07 07 06 D8 05 D8 04 D9 03 D10 02 D11 01 D12 L 00 } ;CrashSymbal
E(561)={ -2 -2 -2 -2 -1 -1 -1 -1 0 0 0 0 L -2 -2 -2 -1 -1 -1 0 0 L 0 }
E(464)= { 10 02 L 00}
E(465)= { 07 D5 06 D6 05 D6 04 D7 03 D9 02 D11 01 D10 L 00 }
E(466)={ 11 06 09 05 07 04 05 03 04 02 03 01 02 00 01 L 00 } ;Snare
E(467)={ 08 06 05 04 03 02 D1 L 00 }
E(490)={ 15 14 13 11 10 9 8 8 7 7 6 6 5 5 4 4 3 3 3 2 2 2 2 L 1 D5} ;モザイクロール
E(700)={ 0 D10 2 D10 4 D10 5 D10 6 D10 4 D10 L 2 D10 3 D6 1 D6 } ;�g�̉���
E(800)={6,12,11,10,9,8,12,7,5,4,3,2,1, L 0} // コナミスネア+クローズハット
E(801) = {12,6, L 2} // クローズハット単体
E(802) = {12,8,7,5,5,5,12,8,5,5,4,4,4,3,3,3,2,2, L 2} // オープンハット+クローズハット
E(803) = {10,14,13,12,10,10,12,9,7,7,5,5,12,6,3,3,2,2,1,1, L 0} // シンバル+クローズハット
E(804) = {10,-10, L 0}
E(805) = { 11, 10, 9, 7, 5, 3, 1, L 0} ; Close HiHat
E(806) = { 7, 7, 7, 7, 6, 4, 3, L 2} ;Open Hihat
E(900) = { L 0 12}
//DPCM an_kick to 808kick(THX to an_kick.dmc by narutp2413 on aibomb.nsf)
DPCM {
c4, "808kick.dmc",15,0
d4, "snare_CH.dmc",15,0
}
VRC7(1){ //Piano
// TL FB
@ 18 4
// AR DR SL RR KL MT AM VB EG KR DT
15 1 3 3 2 1 0 0 0 1 1
15 2 3 1 0 1 0 0 0 1 0
}
VRC7(2) ={@R $05,$01,$16,$00,$F9,$A2,$15,$F5};ギター(エレキ系)
VRC7(3) ={@R $01,$41,$11,$00,$A0,$A0,$83,$95};ピアノ(アコースティック系)
VRC7(4) ={@R $01,$41,$17,$00,$60,$F0,$83,$95};フルート
VRC7(5) ={@R $24,$41,$1F,$00,$50,$B0,$94,$94};クラリネット
VRC7(6) ={@R $05,$01,$0B,$04,$65,$A0,$54,$95};ベル系
VRC7(7) ={@R $11,$41,$0E,$04,$70,$C7,$13,$10};トランペット
VRC7(8) ={@R $02,$44,$16,$06,$E0,$E0,$31,$35};バイオリン
VRC7(9) ={@R $48,$22,$22,$07,$50,$A1,$A5,$F4};ホルン
VRC7(10)={@R $05,$A1,$18,$00,$A2,$A2,$F5,$F5};オルゴール
VRC7(11)={@R $07,$81,$2B,$05,$A5,$A5,$03,$03};ビブラフォン
VRC7(12)={@R $01,$41,$08,$08,$A0,$A0,$83,$95};鋸波
VRC7(13)={@R $21,$61,$12,$00,$93,$92,$74,$75};アコースティックベース
VRC7(14)={@R $21,$62,$21,$00,$84,$85,$34,$15};シンセベース1
VRC7(15)={@R $21,$62,$0E,$00,$A1,$A0,$34,$15};シンセベース2
bgm(0){
//Defenition
TR6 l4 o5 v12 Rm2 @0 @V8 t80
TR7 l4 o6 v8 Rm2 @0 @V3
TR8 l4 o5 v12 Rm2 @0 @V3
TR9 l4 o5 v12 Rm2 @0 @V3
TR10l4 o5 v12 Rm2 @0 @V3
TR11l4 o2 v10 Rm2 @0 @V13
TR1,2,3,4,5,6,7,8,9,10,11 L
//A
TR6 l4 o5 v14 Ev50 Rm2 @5 l8 gegegege bagf4 ede cdeg4fed edec4 ded
gegegege b>cde4 dc<b ab>cd4 c<b>c
<babg4 ab>c
TR7 l4 o5 v11 Rm2 @11 l8 [3 rrre rrrr rrrd rrrr ]| rrrc rrrr rrrf rrrr
TR8 l4 o5 v11 Rm2 @11 l8 [3 rrcr rrrr<rrbr rbrb>]|<rrar rrrr>rrdr rdrd
TR9 l4 o4 v11 Rm2 @11 l8 [3 rarr rrrr rgrr rrgr ]| rfrr rrrr rbrr rrbr
TR10 l4 o4 v11 Rm2 @11 l8 [3 frrr rrrr errr rrrr ]| drrr rrrr grrr rrrr
TR11 l4 o2 v12 Rm2 @14 l8 [ffff ffff eeee eeee]3 dddd dddd gggg gggg
TR4 l8 Ev463En561e4 En* Ev466d8 Ev805a8 | Ev805aaEv466dEv805a Ev805aaEv466dEv805a Ev805aEv806gEv466dEv805a
[ Ev805aaEv466dEv805a Ev805aaEv466dEv805a Ev805aaEv466dEv805a Ev805aEv806gEv466dEv805a]2
Ev805aaEv466dEv805a Ev805aaEv466dEv805a Ev805aaEv466dEv805a Ev805aEv806gEv466dEv806g
TR5 l4 o4 [4 cdc8c8d | c4d8c8 r8c8d8c8]
TR1 [r-1]8
TR2 [r-1]8
TR3 [r-1]8
}
さて
NES
SoundDriver&Library
(nsdlibと略します)
の
最新版
1.30を
macOS向けに
コンパイルして
みました。
以前
1.28の
バージョンを
コンパイルしたことが
ありましたが…
こちらから
バージョンが
あがり
1.29くらいから
64bitOSへの
対応が
はじまったようです。
1.27から
1.28あたりで
VRC7の
音色に
変更があったようで
ちょっと
手間ですが
最新版が
必要かな
ということで
最新版を
macOS向けに
コンパイル
してみました。
ベースは
以前の記事と
ほとんど同じですが
ところどころ
注意点が
ありますので
そこについても
書いておきますね。
nsdlibを入手
まずは
S.W.さんの
ホームページから
nsdlibを
ゲットしてきます。
http://shaw.la.coocan.jp/nsdl/
なんか
文字化けしてる気が
しますけれども
ここから
Githubの
ページに
飛びましょう。
https://github.com/Shaw02/nsdlib/releases
2020年の
Dec.29の
更新が
ありますね。
こちらの
Assetsの
- nsdl130.zip
- Source Code
このふたつが
必要です。
SourceCode
に関しては
zipでもtar.gzでも
大丈夫です。
まずは
ふたつとも
ダウンロードして
解答します。
解答には
TheUnarchiver
などを使うと
良いでしょう。
解答できたら
ひとまず
ルートフォルダに
起きます。
Users/rana/nsdl130
ですね。
コンパイルを(無理やり)通す下準備
まずは
SourceCodeの
ほうを
いじります。
cd nsdlib-1.30/src/nsc
こちらに
移動します。
手を
加えるのは
二つのファイルです。
まずは
makefileを
書き換えます。
makefileを
Visual Studio Code
などで
開きます。
以下のように
書き換えましょう。
CFLAGS = -finput-charset=utf-8 -fexec-charset=utf-8 -O4 -Wall -I/usr/local/include -D_UNICODE
#// CXXFLAGS = -finput-charset=cp932 -fexec-charset=cp932 -O4 -Wall -I/usr/local/include -D_UNICODE
6行目の
cp932を
utf-8に
(二カ所あります)
下の
7行目を
#//で
コメントアウトに
します。
これで
makefileを
保存します。
手順に沿ってコンパイル
ここからは
コマンドの
コピペで
大丈夫です。
まずは
Homebrewを
導入します。
こちらから
どうぞ。
インストールできたら
brew install nkf
と押して
NetworkKanjiFilterを
インストールします。
ディレクトリに
注意しながら
cd nsdlib-1.30/src/nsc/
移動して
nkf --overwrite -w -Lu *.cpp *.h makefile
nkfで
変更を
加えます。
次に
g++で
stdafx.oファイルを
生成します。
(*ここが
大きな
変更点です)
brew install g++
g++ -c stdafx.cpp -o stdafx.o
後は
makeですね。
make 2>&1 | tee make-log
nscファイルが
できると
思いますので
ここから
Windows用の
nsdl130の
binあたりに
この
nscファイルを
コピー&ペーストして…
後は
通常通りに
./nsc filename.mml
とやれば
NSFファイルが
生成されると
思います。
お疲れさま
でした。
まとめと補足
NSFファイルの
再生には
ZXTuneなどを
使われると
良いと
思います。
音質も
かなり
良かったので
おすすめですね◎
(*私は
制作の都合上
nsfplayjを
使っています)
https://github.com/osoumen/nsfplayj
最後に
お知らせに
なりますが
今日から
Blogs vol.6が
サブスクリプションで
配信開始しております。
よろしければ
是非
聞いてみて
くださいね。
それでは、今日はこんなところで。
いつもお読みいただき
ありがとうございます。
また明日です!
[…] NESSoundDriver&LibraryをMac向けにコンパイル NESSoundDriver&libraryをMac向けにコンパイル SHARE […]
[…] NESSoundDriver&LibraryをMac向けにコンパイル NESSoundDriver&LibraryをMac向けにコンパイル […]
[…] NESSoundDriver&LibraryをMac向けにコンパイル NESSoundDriver&LibraryをMac向けにコンパイル […]