- 内蔵音源をmidi変換するスレ3曲目
785 :SOUND TEST :774[sage]:2010/01/29(金) 21:19:17 ID:hzGgiP7f - ワイルドアームズの人じゃなくて、色々逆mmlうぷった人だけど、
俺が途中まで解析したものは、垂れ流す。 多分、数書き込みに及ぶんで、宜しく。 −−−−− まず、ドライバーで使われるレジスターについて ※ x レジスタは、ch毎に+2される。つまり、 ch1: x = 0x00 ch2: x = 0x02 ch3: x = 0x04 ch4: x = 0x06 ch5: x = 0x08 ch6: x = 0x0A ch7: x = 0x0C ch8: x = 0x0E
|
- 内蔵音源をmidi変換するスレ3曲目
786 :SOUND TEST :774[sage]:2010/01/29(金) 21:20:56 ID:hzGgiP7f - ■Direct pageの内容(詳しくは、CPU"6502"の専門書等を参照)
$04 WORD temp 汎用 $08 BYTE Opcode 現在の op-code $0E BYTE $10 BYTE EchoVolL SPC-700 Reg:0x2C の内容と同等 $11 BYTE EchoVolR SPC-700 Reg:0x3C の内容と同等 $12 BYTE KeyOn SPC-700 Reg:0x4C の内容と同等 $13 BYTE KeyOff SPC-700 Reg:0x5C の内容と同等 $14 BYTE SpcFlag SPC-700 Reg:0x6C の内容と同等 $15 BYTE EchoFB SPC-700 Reg:0x0D の内容と同等 $16 BYTE PMSW SPC-700 Reg:0x2D の内容と同等 $17 BYTE NoiseSW SPC-700 Reg:0x3D の内容と同等 $18 BYTE EchoSW SPC-700 Reg:0x4D の内容と同等 $19 $1A BYTE EchoDelay SPC-700 Reg:0x7D の内容と同等 $1B $1C BYTE ChTruBit チャンネル(Bitに対応) $21 BYTE flag flag bit 0 : bit 1 : op-code=0x60でHigh / op-code=0x61でLow bit 2 : Subroutine実行中の時、high。 bit 3 : bit 4 : op-code=0xF0でHigh / op-code=0xF1でLow bit 5 : op-code=0x62〜0x7FでHigh bit 6 : Repeat制御用 (カッコ通過時にHigh) bit 7 : Repeat制御用 (リピート時にHigh) $22 BYTE x レジスタの退避 $24 BYTE ChIOp チャンネル番号(I/O用) $25 BYTE $29 WORD LengCounter 音長用のデクリメントカウンタ lowwer $2B BYTE Timer-1 カウント値 $2F+x WORD ptSEQ 演奏中のポインタ lower $4F+x BYTE $50+x BYTE GateTimeCnt $5F+x BYTE $60+x BYTE $6F+x BYTE PanSwL Panpot Sweep Length
|
- 内蔵音源をmidi変換するスレ3曲目
787 :SOUND TEST :774[sage]:2010/01/29(金) 21:22:27 ID:hzGgiP7f - ■メモリ空間の内容
(変数の、「ポインタ」と変数の「内容」について ) $00F2 BYTE I/O Sound DSP register $00F3 BYTE I/O Sound DSP data $0130+x WORD $0140+x WORD $0150+x WORD $0160+x WORD $0170+x WORD value ptSEQ 0xE6で保存する。 $0180+x WORD value ptSEQ 0xE8で保存する。 $0216 BYTE value volume $0225+x $0226+x BYTE value PanpotSweep 目標値 $0256+x BYTE value Transpose 移調 $0265+x BYTE value Note param.1 読み込んだ音長 [ticks] $0266+x BYTE value Gate Time $0275+x BYTE value Note param.2 $0285+x WORD value (音色Tableの [1]〜[2]) $0295+x BYTE value Master Volume (音色Tableの [7]) $0296+x BYTE value Note param.3 ????ヴェロシティー??? $02A5+x BYTE $02A6+x BYTE value Program Number $0305+x WORD value パンポット $0315+x WORD value Panpot Sweep Depth $03b6 BYTE
|
- 内蔵音源をmidi変換するスレ3曲目
788 :SOUND TEST :774[sage]:2010/01/29(金) 21:23:20 ID:hzGgiP7f - ■音色テーブル
$0698 WORD[9] offset 音色テーブル(音色番号25番以降)のアドレス $06aa BYTE[25][8] 音色テーブル(音色番号0〜24番) $0772 BYTE[ 7][8] 音色テーブル(音色番号25〜31番) ※多分、Default $07AA BYTE[13][8] 音色テーブル(パーカッション) $0842 BYTE[ 3][8] 音色テーブル(音色番号25〜27番) $085a BYTE[ 5][8] 音色テーブル(音色番号25〜29番) $0882 BYTE[ 3][8] 音色テーブル(音色番号25〜27番) $089a BYTE[ 1][8] 音色テーブル(音色番号25番) $08a2 BYTE[ 1][8] 音色テーブル(音色番号25番) $08aa BYTE[ 2][8] 音色テーブル(音色番号25〜26番) $08ba BYTE[ 1][8] 音色テーブル(音色番号25番) $08c2 BYTE[ 2][8] 音色テーブル(音色番号25〜26番) Program Changeは、このテーブルを参照して、SPC-700の音色を設定する。 本テーブルの構造体は8[BYTE]1組で、以下の通り。 [0] Voice Number (SPC-700に設定する音色) [1] Master Pitch (Lower)? [2] Master Pitch (Upper)? [3] ADSR1 SPC-700のreg.=0x05 の設定値 [4] ADSR2 SPC-700のreg.=0x06 の設定値 [5] Gain SPC-700のreg.=0x07 の設定値 [6] Panpot (0 〜 10(Center) 〜 20) [7] Master Volume (減算値。つまり00で音量最大)
|
- 内蔵音源をmidi変換するスレ3曲目
789 :SOUND TEST :774[sage]:2010/01/29(金) 21:33:13 ID:hzGgiP7f - ttp://www1.axfc.net/uploader/Sc/so/77679.lzh&key=mdr2
ごめん。分解して書くのがめんどくなったから、うぷった。
|
- 内蔵音源をmidi変換するスレ3曲目
791 :SOUND TEST :774[sage]:2010/01/29(金) 23:27:51 ID:hzGgiP7f - そういえば、お姉ちゃんが発端だったな。
でも、普通のお姉ちゃんからは、オタクみたいって避けられそうな話題だな。 こんな16進数沢山並べて。 俺は、逆に論理畑の人だからな。 だから、合奏やると、たまに論理的に考えちゃって、 よく指揮者に「もっと感情で!音楽に乗って!」って言われる。
|