ReC98/libs/kaja/kaja.inc

119 lines
5.0 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; Function numbers for the PMD and MMD drivers, according to PMDDATA.DOC and
; MMDFUNC.DOC. Functions prefixed with KAJA are available in both drivers.
; Only includes functions that are actually used in the games.
KAJA_SONG_PLAY equ 00h
KAJA_SONG_STOP equ 01h
KAJA_SONG_FADE equ 02h
KAJA_GET_SONG_MEASURE equ 05h
KAJA_GET_SONG_ADDRESS equ 06h
KAJA_GET_VOLUME equ 08h
PMD_GET_DRIVER_VERSION equ 09h
PMD_GET_SE_ADDRESS equ 0Bh
PMD_SE_PLAY equ 0Ch
PMD_GET_WORKAREA_ADDRESS equ 10h
kajacall macro func, param := <0>
call snd_kaja_interrupt pascal, (func shl 8) or (param and 0ffh)
endm
PMD = 60h
MMD = 61h
MMD_TICKS_PER_QUARTER_NOTE = 48
ONKAI_REST = -1
ONKAI_OCTAVE_MASK = 0F0h
ONKAI_NOTE_MASK = 00Fh
qq struc
dw ? ; 演奏中のアドレス (曲データ先頭番地+1からのoffset)
dw ? ; 演奏が終わった時の戻り先アドレス (同上)
leng db ? ; 現在発音中の音符の 残り Length
qdat db ? ; gatetime値。gatetime 残りLength が成立した時点で、Keyoff
dw ? ; 演奏中の音程。音源によって値は変化する。
dw ? ; Detune ±値
dw ? ; LFO ±値
dw ? ; ポルタメントの±値(全体)
dw ? ; ポルタメントの±値(一回に変動する値)
dw ? ; ポルタメントの±値余り。1ずつ減って行く
db ? ; Volume (FM:0127 SSG:015 PCM:0255)
db ? ; 音階Shift値 (半音単位、符号付き8bit)
db ? ; LFO DELAY 変動値
db ? ; SPEED 変動値
db ? ; STEP 変動値
db ? ; TIME 変動値
db ? ; DELAY 設定値
db ? ; SPEED 設定値
db ? ; STEP 設定値
db ? ; TIME 設定値
db ? ; LFOSwitch B0/tone B1/vol B2/同期 B3/portament 1でON
db ? ; Volume PUSH (Wコマンド等で、一時的に音量を変えた時の値 +1)
db ? ; MD command depth
db ? ; MD command speed 変動値
db ? ; MD command speed 設定値
db ? ; 旧PSGエンベロープの状態 AL中=0 SR中=1 RR中=2 無し=3 =-1
db ? ; 新PSGエンベロープの状態 AR中=1 DR中=2 SR中=3 RR中=4 無し=0
db ? ; PSGエンベロープ 新AR 旧AL
db ? ; 新DR 旧AD
db ? ; 新SR 旧SR
db ? ; 新RR 旧RR
db ? ; 新SL
db ? ; 新AL
db ? ; 新AR 旧AL のカウンタ(変動値)
db ? ; 新DR のカウンタ(変動値)
db ? ; 新SR 旧SR のカウンタ(変動値)
db ? ; 新RR 旧RR のカウンタ(変動値)
db ? ; 新音量値(015) 旧音量値(-15+15)
db ? ; 拡張フラグ B0:Detune B1:LFO1 B2:Envelope B5:LFO2 1で拡張
db ? ; FM Panning + AMD + PMD / YM2608 0b4h0b6hに出力する値と同じ
db ? ; PSG の音色 [TONE/NOISE/MIX] YM2203/2608 07HにORする値と同じ
db ? ; 音色番号
db ? ; ループしたら1 終了したら3
db ? ; FM Carrier位置
db ? ; SLOT 1 TL値
db ? ; SLOT 3 TL値
db ? ; SLOT 2 TL値
db ? ; SLOT 4 TL値
db ? ; FM slotmask値
db ? ; FM 音色定義用maskdata値
db ? ; LFOの波形 MWで指定する値と同じ
db ? ; PartMask Bit0:INT60HのPart_Mask/1:効果音/6:mコマンド/7:早送り
db ? ; bit0,27 / 0でkeyon 1でkeyoff中 , bit1 / 1でkeyoffさせない
db ? ; 音量LFOのマスクslot
db ? ; qの値
db ? ; Qの値
db ? ; HardLFO delay 設定値
db ? ; HardLFO delay 変動値
dw ? ; LFO2 ±値
db ? ; LFO2 DELAY 変動値
db ? ; SPEED 変動値
db ? ; STEP 変動値
db ? ; TIME 変動値
db ? ; DELAY 設定値
db ? ; SPEED 設定値
db ? ; STEP 設定値
db ? ; TIME 設定値
db ? ; LFO2 MDB command depth
db ? ; LFO2 MDB command speed 変動値
db ? ; LFO2 MDB command speed 設定値
db ? ; LFO2 の波形 MWBで指定する値と同じ
db ? ; 音量LFO2のマスクslot
db ? ; LFO1 MDA Counter変動値
db ? ; LFO1 MDA Counter設定値
db ? ; LFO2 MDA Counter変動値
db ? ; LFO2 MDA Counter設定値
onkai db ? ; 演奏中の音階 オクターブ×16 + 音階(cb=011),rest=255
db ? ; Slot delay
db ? ; Slot delay counter
db ? ; Slot delay Mask
db ? ; 音色のalg/fb
db ? ; 新音階/休符データを処理したらinc
db ? ; q 最低保証値
dw ? ; ppz8用fnum値上位
db ? ; 演奏中音階データ (転調処理前 / ?fh:rest)
db ? ; マスター転調値
db ? ; q ランダム範囲
db ? ; 予約
qq ends