所需资料:https://www.romhacking.net/documents/634/
以下是洛克人3-6(CAPCOM1990)中的所有指令,其中大部分指令都是需要学的,附注部分解释
.dw l84D9_cmd0_triplet(三连音专用)
(资料图片)
.dw l84DD_cmd1_connect (音之间连接,需要在连接的音前用,然后最后一个连接的音结束)
.dw l84E1_cmd2_dotted_note (附点音符)
.dw l84E8_cmd3_octave_jump
.dw l8575_cmd4_set_flags
.dw l84F1_cmd5_set_speed (相当于BPM)
.dw l84FF_cmd6_set_note_sustain_len (ADSR中的S)
.dw l865A_cmd7_set_volume(设置音量上限)
.dw l866F_cmd8_set_instrument (设置演奏乐器)
.dw l8505_cmd9_set_octave (设置八度)
.dw l8510_cmdA_global_transpose (所有音轨移调)
.dw l8515_cmdB_channel_transpose (单音轨移调)
.dw l86A1_cmdC_pitch_tune
.dw l86A7_cmdD_pitch_slide
.dw l851B_cmdE_loop1
.dw l851F_cmdF_loop2
.dw l8523_cmd10_loop3
.dw l8527_cmd11_loop4
.dw l851B_cmd12_break1
.dw l851F_cmd13_break2
.dw l8523_cmd14_break3
.dw l8527_cmd15_break4
.dw l855A_cmd16_jump
.dw l8580_cmd17_stop
.dw l86AD_cmd18_set_duty_cycle (设置方波占空比,起到调音色作用)
音符与代码之间的关系(x值范围00-1F):
全音符=Ex
二分音符=Cx
四分音符=Ax
八分音符=8x
十六分音符=6x
三十二分音符=4x
特别地,x=00时,此时作为休止符处理,因此只有当非0的时候才是一个带有音阶的音符。
五线谱部分
需要找的要素:BPM,调性,节拍(可忽略因为大部分都是4/4拍),谱号
至于调性,需要利用谱号与节拍的之间的♯或♭来寻找。为什么要找调性,是因为每个音在正常情况下,它们之间是有间隔的,而且在写入的对应数据的时候,根据一一对应关系来寻找就不容易看错。至于曲子用大调和小调表示都没太大问题,我个人习惯用大调来表示。调性寻找方法参照:https://www.sin80.com/pub/staff-key-signature(不需要死记硬背)
从2个♭来看,这是一首降b大调曲子,知道之后,如何通过指令来写入
由于是所有乐器都是降b,所以可以使用0A来写入,其中0A后面的值,如果是负值,就表示降x个半音,正值就表示升x个半音,默认0A 00就相当于是一首C大调曲子,以这个为例,由于是降b,相当于A♯(为了表示清楚),所以正确写法是0A FE。
至于x大调是什么意思呢,简单来说,如果有留意到简谱上(1=x),就明白了,以x为基础作为1。。。
BPM怎么写入正确的数值,这里需要用到节拍和BPM的定义,以及利用nsfimport输出1分钟长度(位置于0E 10在256rows,900BPM软件里头的状态下)的文件,由于上图是4/4拍,所以是以一个四分音符为一拍,一个小节有四拍。所以寻找就是使用循环n个Ax来达到相近的1分钟位置,上图BPM是114,所以要循环71(16进制数,这里减1是因为未循环前已经用了1次)来找正确的05后面的两个数值。。。。。。
找到后就可以对着五线谱开写了,然后要注意1234567和调性对应关系。其默认对应关系是(以C大调为例)
1=x1=C
2=x3=D
3=x5=E
4=x6=F
5=x8=G
6=xA=A
7=xC=B
大调中音与音之间的间隔关系如下:全全半全全全半
由于图中为降b大调,所以实际对应关系为
1=A+
2=C
3=D
4=D+
5=F
6=G
7=A
理清实际对应关系后,就可以正式开写了,注意一下特殊符号就行,如♮还原调。
抽取这个,结果是......09 02 0A FE B4 AF AE B4 B2 AD AA AC……此处省略。
X 关闭
Copyright © 2015-2022 欧洲造纸网版权所有 备案号:沪ICP备2022005074号-23 联系邮箱: 58 55 97 3@qq.com