FM音源エミュレータ
往年のレトロPCに搭載されたFM音源*1のエミュレーションはどういう風になっているのかなあと思って、ググってみた。そして、ソースコードの著作者関連のところを引用。
ううっ http://mamedev.orgにつながらねえのは何故だ。。。 つながりました。
http://x.mame.net/download.html
UNIX用MAME。xmame-0.106.tar.bz2の中のsoundディレクトリにソースがある。fm.c、ym2151.cあたりが参考になりそう。
fm.c
/* ** ** File: fm.c -- software implementation of Yamaha FM sound generator ** ** Copyright (C) 2001, 2002, 2003 Jarek Burczynski (bujar at mame dot net) ** Copyright (C) 1998 Tatsuyuki Satoh , MultiArcadeMachineEmulator development ** ** Version 1.4 (final beta) ** */
ym2151.h
/* ** ** File: ym2151.h - header file for software implementation of YM2151 ** FM Operator Type-M(OPM) ** ** (c) 1997-2002 Jarek Burczynski (s0246@poczta.onet.pl, bujar@mame.net) ** Some of the optimizing ideas by Tatsuyuki Satoh ** ** Version 2.150 final beta May, 11th 2002 ** */
http://www.retropc.net/cisc/m88/download.html
c++で実装されたFM音源エンジン、fmgen。PC88エミュのM88関連。
fmgen.cpp
// --------------------------------------------------------------------------- // FM Sound Generator - Core Unit // Copyright (C) cisc 1998, 2003. // --------------------------------------------------------------------------- // $Id: fmgen.cpp,v 1.49 2003/09/02 14:51:04 cisc Exp $ // --------------------------------------------------------------------------- // 参考: // FM sound generator for M.A.M.E., written by Tatsuyuki Satoh. // // 謎: // OPNB の CSM モード(仕様がよくわからない) // // 制限: // ・AR!=31 で SSGEC を使うと波形が実際と異なる可能性あり // // 謝辞: // Tatsuyuki Satoh さん(fm.c) // Hiromitsu Shioya さん(ADPCM-A) // DMP-SOFT. さん(OPNB) // KAJA さん(test program) // ほか掲示板等で様々なご助言,ご支援をお寄せいただいた皆様に // ---------------------------------------------------------------------------
http://homepage1.nifty.com/mpuusan/x68sound/x68soundbody.htm
X68k Sound Generator。シャープのパソコンテレビ、X68000の音源エミュレータ。
・・・とまあ、ちょろっと検索しただけだと、こんくらいしか見付からん。
*1:YM2203-OPN、YM2608-OPNA、YM2151-OPM