mckの系譜、資料

Last-modified: 2022-06-10 (金) 10:47:14

mck(ドライバ), mckc(コンパイラ)履歴

2004年xx月xx日 (mck) : ppmck 1st.release
2004年xx月xx日 (mck) : pmck 1st.release
2004年07月19日 (mckc)mckスレ5_658にて : mckcパッチ
2004年03月21日 (mckc)mckスレ4_442にて : mckcパッチまとめ(4_046+4_356のバイナリ)
2004年03月08日 (mckc)mckスレ4_356にて : mckcパッチ
2004年01月11日 (mck) mckスレ4_049にて : mckパッチ(4_046のコンパイル方法)
2004年01月10日 (mck) mckスレ4_046にて : mckパッチ
2004年01月10日 (mckc)mckスレ4_046にて : mckcパッチ
2004年01月03日 (mck) mckスレ4_010にて : mckパッチ(本家掲示板からの転載)
2003年xx月xx日 (mckc):mckc FDS enable patch by [OK]
2003年09月11日 (mckc):mckc 0.27 release
2003年09月03日 (mck) mckスレ3_209にて : mckパッチ
2003年02月28日 (mck) :mck 0228 release

系譜

現況
mck0228 ( https://geolog.mydns.jp/www.geocities.co.jp/Playtown-Denei/9628/mck/mck_0228.zip )
  |
  +-------EN bug fix(3-209),    ( http://kamakura.cool.ne.jp/gamemusic/util/sounddrv.h
        |: :| loop bug fix(4-10),  http://kamakura.cool.ne.jp/gamemusic/util/fds.h
        FDS EH bug fix(4-46)     この2つのファイルをmck0228に上書きして使う )
          |
          +----pmck (vrc7 enable version)
               |  http://www.emucamp.com/boukichi/
               |
               +----ppmck (VRC7 VRC6 MMC5 FME-7enable version)
                  http://takamatsu.cool.ne.jp/dutycycle/ppmck.html
mckc Ver. 0.27 ( http://manbowj.hp.infoseek.co.jp/tools/mckc027.zip )
  |
  +-------FDS enable patch([OK]),
        FDS bug fix(4-46), (この3つを当てたもの
        file.c patch(4-356) http://kamakura.cool.ne.jp/gamemusic/util/mckc4-442.zip )
          |
          +----pmckc (vrc7 enable version)
               |  http://www.emucamp.com/boukichi/
               |
               +----ppmckc (VRC7 VRC6 MMC5 FME-7enable version)
                  http://takamatsu.cool.ne.jp/dutycycle/ppmck.html

(上の図には入っていませんが、mckcにはさらに5-658氏のパッチが当たります。@MW,@MH,@t,K,MH,MHOF が追加)

> ハードウェアエフェクトパッチ(5-658)を適用することで使えるようになります。


ドライバ(mck現バージョン)の概要

言語

6502アセンブラで書かれている

  • NESASMで6502バイナリimageへ
  • コンパイラmckcが出力したデータなどをinclude

時間解像度

演奏の時間解像度はVSYNC1フレーム単位

  • 演奏データの時間解像度もフレーム単位(step単位ではない)
  • MML段階での演奏解像度は任意
    • mckcが変換し、VSYNC単位に
    • フレーム単位のため, stepタイプよりテンポの自由度が高い(事実上緩急含め任意)
    • mckcの段階でもフレーム単位の指定が可
  • 1音符1~255フレーム (0フレーム指定はドライバデータとしては不可)
  • 255フレーム以上もドライバコマンド$f4により可

音程

基本音階はoct4bit, note4bit (note半音単位で12+4個)

  • 基本12音の周波数テーブルを持ち、octでシフトし、デチューンetc.により周波数加算
  • デチューン, ポルタメントは周波数タイプ(centタイプではない)
  • 乗算や対数テーブルによるcent単位などの周波数操作はなし

各種エンベロープ
いずれも1フレーム単位のテーブルで、途中からのループ可

  • ピッチエンベロープ:周波数タイプ(centタイプではない)
    • 相対変化
  • 音量エンベロープ
    • 絶対指定
  • ノートエンベロープ:半音単位
    • 相対変化
  • デューティーエンベロープ
    pulseのデューティー比を制御
    • 絶対指定

備考

  • 詳しくはmck.txtやソース, mckc.txtやソースをどうぞ
  • 補完訂正よろ

ppmck資料

NSF規格書

自作NSFへの音源ドライバー情報埋め込み(案)

  • 仕様(案)
    filensf_drv.txt
  • 対応音源ドライバ
    • NES Sound Driver & Library (nsd.lib)
    • FamiTracker NSF Driver
    • OFGS
  • 対応NSFプレイヤ
    • TNS-HFC4 (1.10~)
    • hoot (2013/06/02版~)

NSFe

NSF2 (標準化はまだ)

開発者向け参考ページへのリンク