NESSoundDriver&LibraryをMac向けにコンパイル

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の
バージョンを
コンパイルしたことが
ありましたが…

nsd.libをMac用にコンパイルしてみる

こちらから
バージョンが
あがり

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を
導入します。

https://brew.sh/index_ja

こちらから
どうぞ。

インストールできたら

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などを
使われると
良いと
思います。

https://zxtune.bitbucket.io/

音質も
かなり
良かったので
おすすめですね◎

(*私は
制作の都合上
nsfplayjを
使っています)

https://github.com/osoumen/nsfplayj

最後に
お知らせに
なりますが

今日から
Blogs vol.6が
サブスクリプションで
配信開始しております。

Blogs vol.6

https://linkcloud.mu/4d1d7acf

よろしければ
是非
聞いてみて
くださいね。

それでは、今日はこんなところで。
いつもお読みいただき
ありがとうございます。

また明日です!

3 COMMENTS

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

1732179670