2、在M-Flash界面中,选择"Select one file to update BIOS and ME",然后选择fc文件;
3、点击"Begin Flash",开始刷入fc文件,刷入过程中不要 *** 山扒作电脑,等待刷入完成;
4、刷入完成后,点击"Reboot",重启电脑,重启过程中不要 *** 作电脑,等待重启完成;
5、重启完成后,进入技察念嘉bios界面,查看fc文件是否刷入成功,如果刷入成功,则可以正常使用电脑。
用电脑模拟再用录音软件录下来.nes保存的音频个不是midi吧!好像是6504吧。
找了一个提取好的合集。3399个FC游戏MIDI收集包
《NES模拟器设计详细资料》(Nes emulator info)[ISO]
从NES ROM中提取NSF格式音乐完全指南
///////////////////////////////////////////////////////////////////
//// MCK/MML 初学者 指南 ///////////////////////////////////////
//// by nullsleep ////////// product 8 bitpeoples /////////////
//// 版本 1.0/////////// Research &Development /////////////
///////////////////////////////////////////////////////////////////
*****************************************************************************
** OBJECTIVE — 目的 ******************************************************
*****************************************************************************
此文档是有关使用 MCK/MML 设计 NES 乐曲过程中桥和涉及的每件事和
所需规则 , 命令的参考文档 。它概要地介绍了必需的方法和步骤 ,
如何开始构建 MCK/MML 工作区域 , NES 每个声音通道的程序规则 。
包括大部分共通和常用的 MML 命令及作用 ,
以及制作一个 NSF 文件可能出现的问题和处理方法 。
感谢 : Izumi, Manbow-J, Norix, Virt, Memblers, 和在 MCK 2ch 的每个人
*******************************************************************************
** MCK/MML WORKSPACE SETUP — MCK/MML 工作区设置 ****************************
*******************************************************************************
下载以下文件
-------------------------------------------------------------------------------
mck_0228.zip
mckc025.zip
dmcconv005.zip
mckc-e.txt
- 当前可探访的网址 :
mkit251_dos.zip
- 当前可探访的网址 :
Organize MCK/MML Workspace — 构建 MCK/MML 工作区
-------------------------------------------------------------------------------
创建一个名为 'workspace' 的文件夹 , 并解压mck_0228.zip 内的全部的文搭消历件到此文件夹 。
接着 , 解压 mckc025.zip 内的全部的文件到此文件夹 。现知搜在从 mkit251_dos.zip 内提取
名为 nesasm.exe 的文件到 'workspace' 文件夹 。其他 magickit 的文件不是必需的 。
从 mckc zip 提取 'source' 文件夹 ,到 'workspace' 。最后 , 在 'workspace' 内创建一个
新的名为 'DMCconv' 的文件夹 , 并解压 dmcconv005.zip 文件到此文件夹 。
Create and Modify Files — 创建和修改文件
-------------------------------------------------------------------------------
在你的 'workspace' 文件夹内 , 创建 个新的名为 songdata.mml 的文本文件 。
你将使用 MML ( music macro language ) — ( 音乐宏语言 )在这个文本文件内谱写你的乐曲 。
但是首先, 还有一些事必须设置好 。打开 make_nsf.txt 找到文件最后名为 . include 的语句 。
然后在最后的一行 , 添加以下语句 :
.include"songdata.h"
在 make_nsf.txt 文件里你也可以看到下面这些语句 :
.org$800E
db"Song Name"
db$00
.org$802E
db"Artist"
db$00
.org$804E
db"Maker"
db$00
这是 NSF 的标题部分 , 用它来识别乐曲 。应该明显看出这个 org 语句是 hex values ( 十六位 值 )
它对每部分的空间是有限的 , 最大长度为 31 个字符 。看到在下文后你应该适当地修改这些标题区 ,
注意保持在 31 个字符限定内 :
.org$800E
db"My First NES Chip ( 曲目名称 )"
db$00
.org$802E
db"Nullsleep ( 曲作者 )"
db$00
.org$804E
db"2003 Jeremiah Johnson ( 时间 发行人 )"
db$00
*******************************************************************************
** GENERATING THE NSF FILE — 制作 NSF 文件 *****************************
*******************************************************************************
创建另一个新的文本文件 , 打开并输入 :
mckc_e songdata.mml
del nesmusic.nsf
nesasm -raw make_nsf.txt
ren make_nsf.nes nesmusic.nsf
保存文件后退出 , 再命名它为 build.bat 这是个简单的批处理文件 ,
它将运行全部命令从 MML 数据里生成一个 NSF 文件 。
首先它利用 mckc 在 songdata.h 里转换 songdata.mml 导入大块的数据 ,
之后 nesasm 将连同 MCK 声音驱动程序代码一起 , 汇编进一个 NSF 文件 。
至此每件事都应该设置妥当了 , 现在你将开始起程 !设计 MML !
*******************************************************************************
** BASIC SONG SETUP — 基本歌曲设置 ***************************************
*******************************************************************************
Header Credits — 标题声明
-------------------------------------------------------------------------------
在你的首选的文本编辑程序内打开 songdata.mml , 第一件事是你应该
在文件的起始行加入识别注释 , 曲作者你自己和歌曲的标题 。
例如 :
#TITLE My First NES Chip ( 标题 )
#COMPOSER Nullsleep ( 曲作者 )
#PROGRAMER 2003 Jeremiah Johnson ( 发行人 )
这是可选的步骤, 但还是推荐使用它 , 尤其是你的 MML 文件是公开发布的版本 。
此外还要注意的是 , 在 MCK 内不要错误拼写 #PROGRAMER 。
Channel Layout — 通道布局
-------------------------------------------------------------------------------
NES 有 5 个( 通道 ) channels 共同工作 , 在 MML 里它们的定义项如下 :
A this is the first pulse channel A 第一脉冲通道
B this is the second pulse channel B 第二脉冲通道
C this is the triangle channel C 三角波形通道
D this is the noise channel D 噪波通道
E this is the dpcm channeE dpcm 通道
这份指南将包括每个通道的程序规则 , ( 脉冲通道 )pulse channel A+B 它们的运作方式是相同的 。
Tempo Settings —( 音乐 )速率设定
-------------------------------------------------------------------------------
Tempo 设定可单独作用于每个 channel , 或许通常你需要所有的 channel
在播放时都有相同的速度保持每个件事同步 。
设置 tempo 于全部的 channel 如下 :
ABCDE t150
这是在 MML 里的表示法 , 为 channels A , B , C , D , E,
设置 tempo 值是每分 150( 拍 )beats 。 tempo 的有效值是 1 -至- 255 。
Volume Settings — 音量设定
-------------------------------------------------------------------------------
( 脉冲波型通道 )pulse wave channels (A+B) 和 ( 噪波通道 )noise channel ( D )
在 NES 里有( 音量 ) Volume 控制 ,( 三角波型通道) triangle wave channel ( C )
和 ( DPCM 通道 ) DPCM channel ( E ) 只能设置 ON or OFF ( 开启或断开 )。
pulse 和 noise channels , 在这里有 2 种 Volume 设置方式 。
第一个是设定恒量 volume , 使用方法如下 :
A v15
设置 channel A 音量至 15 , 那是可用的最高音量 。然而 , 大部分案例
使用 ( 音量层 ) volume envelope , 相比设置恒量 volume , 或许是更好的选择 。
设置基本的 volume envelopes 很简单 。但是如果既不设定恒量 volume 也不设定
volume envelopes 来定义 pulse channels (A+B) 或 noise channel ( D ) ,
那在这些通道上你将听不到任何声音输出 。这有个简单的 volume envelopes 例子 :
@v0 =
volume envelope 取值在 0 -至-15 之间 。最高的 volume 为 15 , 0 为静止 。
这个 volume envelope 起始在高音量很快地衰减到一个低的音量 , 最后的值是延续声音 ,
直到另一个 note ( 注释 )开始播放 。你可以轻易地修改 volume envelope 或设置更多 ,
更深层的例子将在下面提供 , 包括在 envelope 内设置 ( 循环点 ) loop points 。
*******************************************************************************
** PULSE WAVE CHANNELS (A+B) — 脉冲波型通道 ( A+B ) ***********************
*******************************************************************************
Initialization — 设定初值
-------------------------------------------------------------------------------
下一步是单独地设置每个 pulse channels ( 脉冲通道 ) 通道的属性和需求 ,
例如 note length ( 注释 长度 ), octave ( 八度音阶 ), duty cycle (循环周波 ) ,
和 ( 音量层 ) volume envelope 。这是个可用的 pulse wave channels 设置:
A l8 o4 @01 @v0
解译到 channel A , 设置缺省 note 长度值为 8 个 notes ,设置 octave 为 4th octave ,
设置 duty cycle 为 01 (25% duty cycle ) , 使用 volume envelope 0 (上面有详细说明 )。
下面是 duty cycle 设定说明 。
Duty Cycle Explanation — Duty Cycle 说明
-------------------------------------------------------------------------------
你可以认为 pulse wave( 脉冲波型 )相当于一个 square wave ( 方型波型 )变量宽度 。
square wave 宽度确定在 50% ( 波型中部 )。但是 pulse waves 有更多灵活性 ,
所谓灵活性就是 pulse wave 的 duty cycle ( 或音色 ) 。
下面是在 NES 的 pulse wave channels 上 4 种可存在的 duty cycle 设定 。
_
00| | | 12.5% thin raspy sound 细薄的刺耳声音
| |_____________|
___
01| | | 25% thick fat sound 浓厚 , 丰满的声音
| |___________|
_______
02| | | 50% smooth clear sound 平滑的 , 明亮的声音
| |_______|
___________
03| | | 75% same as 25% but phase-inverted 类似 25% 但是 相位 - 反向的
| |___|
Programming the Pulse Channel — 设计脉冲通道
-------------------------------------------------------------------------------
现在 Pulse Channel ( A ) 已完成了设置 , 在这里有个简短的
note sequence ( 注释序列 )可以执行它 。
A c d e f g4 a16 b16 >c c d e f g4 a16 b16 >c<<
如果你了解标准的音乐表示法 , 那所见的应该有几分熟悉 。
另外 , 要使用 ( 升调和降调 )sharps 和 flats , 可在任一个 note 值后加 + 或 - ( 分别地 )。
在一个 octave 内的 notes :
c+ d+f+ g+ a+
| # # | # # # | 其它:
| # # | # # # | r = rest ( 休止符 )
| # # | # # # | w = wait (休止上一个 note , 但不静止 )
|__|__|__|__|__|__|__|
c d e f g a b
Channel A 缺省 note 长度值是 8 notes , 上面的旋律是播放 c b e f notes
每个为 8 分之一长度 , 然后是 g4 播放 g 为 4 分之一长度 , 接着是 a16 b16
播放 a note 和 b note 每个 16 分之一长度 。下个是 > 字符 ,
它是上升 octave ( 八度音阶 )的转换开关 , ( 现在我们是在 5 th octave )
于是在 5 th octave 播放 c ( 八分音符 ) note 8 。 现在数值再次重复 ,
最后在结束前下降 2 octaves( 到 channel 初始设定的 4 th octave ) 。
还有 , 关于 note 持续时间 , 可使用 dotted notes ( 点 注释 ) ,
应该再次复习那些标准的音乐符号的知识 。note 加 " 点 "
增加它的值一半的持续时间 。 以下例子可帮助说明 :
c8. = c note played for an eighth plus a sixteenth c note 播放一个 8 分之一 加 16 分之一
d4. = d note played for a quarter plus an eighth d note 播放一个 4 分之一 加8 分之一
e4.. = e note played for a quarter plus an eighth plus a sixteenth e note 播放一个 4 分之一 加8 分之一 加 16
f2..= f note played for a half plus a quarter plus an eighth f note 播放一个 2 分之一 加 4 分之一 加 8
现在 , 回到上面第一个 pulse wave channel (A) 的实例程序在 上 ,
注意此 sequence ( 序列 )将只播放一次 。
可以用括号使全部 sequence 或一小部分循环 , 括号后为循环次数 。
表示在下面 :
A [c d e f g4 a16 b16 >c c d e f g4 a16 b16 >c<<]2
这将 loop ( 循环 )整个 sequence 两次 。它确保你的 MML 代码整洁 ,
并约去一些没必要的输入 。 让 sequence 觉得有更多的活力 ,
另外 volume envelope 能设置 2 项 , 并且可以来回转变 。 完成像这样 :
#TITLE My First NES Chip
#COMPOSER Nullsleep
#PROGRAMER 2003 Jeremiah Johnson
@v0 =
@v1 =
ABCDE t150
A l8 o4 @01 @v0
A [c d e f @v1 g4 @v0 a16 b16 >c c d e f @v1 g4 @v0 a16 b16 >c<<]2
volume envelope 开关将在 4 分之一 notes 轻微强调 , 因为 volume 初始设置更高 ,
新的 volume envelope 减缓了衰减速率 。
所有这些设置也同样应用于第 2 个 pulse channel (B) 。
*******************************************************************************
** TRIANGLE WAVE CHANNEL (C) — 三角波形通道 (C) **************************
*******************************************************************************
Initialization — 初始设定
-------------------------------------------------------------------------------
除了 volume envelope 和 duty cycle 参数外 , triangle wave channel ( C ) 的运作
类似 pulse wave channels 。triangle channel 没有 volume 控制 ,
它只能选择 ON or OFF , 因此 volume envelopes 是不可用的 。同样 ,
duty cycle 设定只是应用在 pulse channels 上 , 用在 triangle channel 上将被忽略 。
这是值得注意的地方 , 初始设置 triangle wave channe 是相当地简单的 :
C l4 o3 q6
解译到 channel C 缺省 note 长度值 向 4 分之一 notes , 设定 octave 为 3rd octave ,
最后设定 q6 。 对于此项设置可能会困惑 , 在 channel C 上它可以轻微地切断播放 notes 。
q 的取值范围是 1 -至- 8 。 Notes 分成 8 个均等的部分 , 在切断 note 播放之前取值是 ?/8 。
例如 , 设置 q6 将剪切 6/8ths note 在之后播放 。
它会加强 basslines 的节奏感 , 如果 notes 允许声音连续 。
Programming the Triangle Channel — 设计三角波形通道
-------------------------------------------------------------------------------
这是在 triangle channel 上 bassline sequence ( 序列 )的小例子 :
C c e g8 g8 a16 b16 >c8 c e g8 g8 a16 b16 >c8<<
加入到 MML 的末端 , 4 次 ( 循环 ) loop 。先听见它同 pulse wave channel (A)
一起播放 , 然后听到它的单独演奏 。
#TITLE My First NES Chip
#COMPOSER Nullsleep
#PROGRAMER 2003 Jeremiah Johnson
@v0 =
@v1 =
ABCDE t150
A l8 o4 @01 @v0
A [c d e f @v1 g4 @v0 a16 b16 >c c d e f @v1 g4 @v0 a16 b16 >c<<]2
C l4 o3 q6
C [c e g8 g8 a16 b16 >c8 c e g8 g8 a16 b16 >c8<<]4
*******************************************************************************
** NOISE CHANNEL (D) — 噪波通道(D) ************************************
*******************************************************************************
Noise Channel Explanation - 噪波通道说明
-------------------------------------------------------------------------------
noise channel (D) 是个多用途的通道 。 它可模拟海滩波浪声 , 火箭引擎轰鸣声 ,
黑暗地牢内烈焰的声音 , 等等... 补充打击乐器并稍微增强你的( 鼓 ) drum 采样 。
如同 pulse wave channels , volume envelopes 可用 noise channel 上 ,
并且是获得优等音色的重要角色 。此外它有 2 种工作方式 : ( 标准的 ) normal 和
( 循环噪波 ) looped noise 。looped noise 设置会很有趣的 , 听上去带些金属音色 。
noise channel 的 pitch 范围是非常有限的 , 并在每个 octave 上循环 。
使用 octave 变化没必要的 。c note 象是 (高 pitch ) high pitch ,
梢微地往下的是 e , f , g , a , 和最后的 b note 象是( 低 pitch ) lowest pitched 。
Initialization — 设定初值
-------------------------------------------------------------------------------
在这里是一组 简单的 volume envelopes 可用于 noise channel 上的
一些基本打击乐器 :
@v2 =
@v3 =
channel 初始的 volume envelopes 设置应该是 :
D l4 o1 @0 @v2
解译到 channel D , 缺省 note length 值为 4 分之一 notes ,
设定 octave 为 1st octave , 设定噪波模式为 normal( @1 用
于开启 looped noise ), 使用 volume envelope 2 。
Programming the Noise Channel — 设计噪波通道
-------------------------------------------------------------------------------
这是个简短的鼓音噪波序列 :
D @v2 b @v3 e @v2 b @v3 e @v2 b @v3 e @v2 b @v3 e8 @v2 b8
添加到 MML 的末端 , 4 次 loop 。
#TITLE My First NES Chip
#COMPOSER Nullsleep
#PROGRAMER 2003 Jeremiah Johnson
@v0 =
@v1 =
@v2 =
@v3 =
ABCDE t150
A l8 o4 @01 @v0
A [c d e f @v1 g4 @v0 a16 b16 >c c d e f @v1 g4 @v0 a16 b16 >c<<]2
C l4 o3 q6
C [c e g8 g8 a16 b16 >c8 c e g8 g8 a16 b16 >c8<<]4
D l4 o1 @0 @v2
D [@v2 b @v3 e @v2 b @v3 e @v2 b @v3 e @v2 b @v3 e8 @v2 b8]4
*******************************************************************************
** DPCM CHANNEL (E) **********************************************************
*******************************************************************************
DPCM Channel Explanation DPCM 通道说明
-------------------------------------------------------------------------------
DPCM 通道, 或 delta modulation channel (DMC) , 是 NES 用来重放( 采样 )sample 的通道 。
它可应用于规划( 鼓 ) drums , sampled( 低音 ) basslines , 或( 连续的歌声 ) even vocal samples 。
DPCM 的 *** 作简单易懂 , 只有少量参数必须调整 。同 triangle wave channel 一样没有音量控制 ,
DPCM 通道只能选 ON or OFF 。 NES 默认使用它的自带的 1-bit sample ( 采样 )格式 ,
你也可以转换自己的 samples 。 方法在下一部分描述 。
Creating DPCM Samples — 创建 DPCM 采样
-------------------------------------------------------------------------------
DMCconv 程序将你的 . wav 采样转换至 .bin 供 MCK 使用 。
DMCconv 文件虽然不是在英语的 , 然而它的 *** 作很简单所以应用不是问题 。
下面说明它的用法:
用法 : DMCconv wavefile outfile
选项
-r? DMC采样等级 ( 0-F ) ( 缺省值 : F 33.14KHz )
0: 4.18KHz 1: 4.71KHz 2: 5.26KHz 3: 5.59KHz
4: 6.26KHz 5: 7.05KHz 6: 7.92KHz 7: 8.36KHz
8: 9.42KHz 9:11.18KHz A:12.60KHz B:13.98KHz
C:16.88KHz D:21.30KHz E:24.86KHz F:33.14KHz
-v? 音量 ( 缺省值 : 100 )
-n不校正音量 ( 缺省值 : Adjust )
-b 存储体填充大小 ( 缺省值 : No padding )
例如 : DMCconvkick.wavkick.dmc
转换 kick.wav 文件至 kickdrum sample, 可用 NES 默认设置 。
Initialization and Programming the DPCM Channel — 设定初值和规划 DPCM 通道
-------------------------------------------------------------------------------
转换全部所需的采样 , 在 'workspace' 文件夹内创建目录 'samples'
将采样文件放到此目录下 。设置如下 :
@DPCM0 =
@DPCM2 =
E o0 l4
第一个(采样 ) sample , kick.dmc , 它将映射到 @DPCM0 上 , 相当于 octave 0 上的 c note 。
然后你将注意到第二个 sample , snare.dmc , 映射到 @DPCM2 相当于 octave 0 上的 d note ...
跳过 @DPCM1 是避免映射 samples sharps/flats 失控 , 保持 MML 有更强的易读性 。实例 ,
哪个是下列更易识别的 kick 和 snare 鼓声?
E c d c d c d c d8 c8
或
E c c+ c c+ c c+ c c+8 c8
显然应该是第一项拥有更强的易读性 , 增强可读性有利于设计更深层次 , 复杂冗长的
drum sequences 。 Looping 它并添加它到 MML 程序的末端 , 像这样 :
#TITLE My First NES Chip
#COMPOSER Nullsleep
#PROGRAMER 2003 Jeremiah Johnson
@v0 =
@v1 =
@v2 =
@v3 =
@DPCM0 =
@DPCM2 =
ABCDE t150
A l8 o4 @01 @v0
A [c d e f @v1 g4 @v0 a16 b16 >c c d e f @v1 g4 @v0 a16 b16 >c<<]2
C l4 o3 q6
C [c e g8 g8 a16 b16 >c8 c e g8 g8 a16 b16 >c8<<]4
D l4 o1 @0 @v2
D [@v2 b @v3 e @v2 b @v3 e @v2 b @v3 e @v2 b @v3 e8 @v2 b8]4
E o0 l4
E [c d c d c d c d8 c8]4
*******************************************************************************
** ADDITIONAL MACROS — 附加的?
此文介绍smynesc模拟器的使用方法 当你在任天堂8位游戏机Fc游戏区 见到一个游戏为例 先下载游戏rom 然后下载支持它的模拟器smynesc解压下载的smynesc模拟器到一个文件夹再把游戏rom里面的nes文件解压出来(以魂斗罗为例是CONTRA.NES)这一点与前面介绍的其他模拟器不同点击smynesc.exe 出现找不梁搭到readmec.html框 不理他 继续后 出现设定目录 一般也不用理他 继续点 手把1 选项卡设定手柄 注意设定开始和蚂正选择键 确定橡物拿欢迎分享,转载请注明来源:内存溢出
评论列表(0条)