2010年8月19日のブックマーク (2件)

  • めくるめくランタイムコンパイラの世界 - .mjtの日記復帰計画

    平たく言えば、最適化はともかくとして、"高速なシーケンサとしてCPUを使いたい"がために作られる小さなコンパイラというジャンルのライブラリがある。 必要性 これらのライブラリは、パフォーマンスに関する魔法の薬では無い。ある特定の目的のためには良く働くが、通常のコンパイラよりも特殊な目的のために設計されている。 大抵、"コンパイルすべきプログラムがコンパイル時に決定できない"場合に用いられる。qemuやnanojitの場合は実行対象のプログラムであり、orcの場合はデコードのパラメタ等。 従来は、パラメタに応じてコードを全て書くとか、コードの自己書き換えのようなことが行われていた。 http://www.geocities.jp/daichi1969/synthprog/index.html#osc3 このコードは、Ring/Sync/FMの状態に応じて動作する「汎用の」ルーチンと言える。し

    めくるめくランタイムコンパイラの世界 - .mjtの日記復帰計画
    kash1wa
    kash1wa 2010/08/19
  • VSYNCベースでないサウンドドライバ - .mjtの日記復帰計画

    http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%BC%E3%83%A4%E3%83%B3 アーケード版のサウンドドライバーは300分の1秒で動いていたため、これを実現しないと、風船の割れる音が鳴らなかった。強引にファミコンで300分の1秒の処理を実現させている。 これ当なんだろうか。。でも確かにVSYNCベースでないサウンドドライバはファミコンや同世代の8bit機では見たことが無い。VSYNCベースでないサウンドドライバを使う動機には、強引にPCM再生しているような場合が有るが、ファミコンには元々PCM再生機能が有り、さらにカートリッジ側にも音源を積めるのでこれといって需要が無かったのだろう。 C64のようなプラットフォームではCPUパワーの都合で2V駆動(= 25Hz)*1のサウンドドライバを使うケースが有るが、ファミコンではそもそも2V駆動の

    VSYNCベースでないサウンドドライバ - .mjtの日記復帰計画