| カテゴリ | 重要度 | ステータス | 解決状況 | 登録日時 | 最終更新 |
|---|---|---|---|---|---|
サウンド | 低 | 仮承認 | 未処理 | 2009-02-21 08:53 | 2009-03-09 01:40 |
| テスター | chowell | 担当者 |   | ソース | |
| バージョン | 0.129u4 | 発生バージョン | 修正バージョン | ||
| 修正コミット | プルリク | ||||
| フラグ | |||||
| セット | DISCRETE | ||||
| セット詳細 | |||||
| 概 要 | OPアンプのDISCRETE_MIXERについて、rNode[]を使うとコンデンサのcF指数が正しく再計算されない。 | ||||
| 詳 細 | For the DISC_MIXER_IS_OP_AMP (no rI) version of DISCRETE_MIXER, if a feedback capacitor cF is used, and rNode[]'s are also used, cF's exponent will be recalculated incorrectly. This doesn't affect any current games, since the only games which have an op-amp DISCRETE_MIXER with a cF don't have rNode[]'s. But it might affect future drivers or refinements of existing ones if left uncorrected. General circuit diagram of an op-amp DISCRETE_MIXER without rI:
cF
.----||---.
| |
rNode[0] r[0] c[0] | rF |
IN0 >--zzzz------zzzz----||---. +---ZZZZ--+
| | |
rNode[1] r[1] c[1] | | |\ |
IN1 >--zzzz------zzzz----||---+--------+ | \ |
. . . . | '--|- \ | cAmp
. . . . | | >--+---||-----> Netlist Node
. . . . | .--|+ /
. rNode[7] r[7] c[7] | | | /
IN7 >--zzzz------zzzz----||---' | |/
|
vRef >----------------------------------'
In DISCRETE_STEP(dst_mixer) within emu/sound/disc_mth.c, if cF is present, the following code runs (lines 1143-1153 in 129u4):
/* Do the low pass filtering for cF */
if (info->cF != 0)
{
if (r_node_bit_flag != 0)
{
/* Re-calculate exponent if resistor nodes are used */
context->exponent_c_f = RC_CHARGE_EXP(r_total * info->cF);
}
context->v_cap_f += (v - v_ref - context->v_cap_f) * context->exponent_c_f;
v = context->v_cap_f;
}
If there are rNode[]'s, cF's exponent is recalculated using the present total input resistance. But there is no check for the DISC_MIXER_IS_OP_AMP case, for which cF's exponent is based on cF * rF, with no effect from either the static or dynamic input resistances. In this case, the exponent recalculation is completely inappropriate and should be skipped. The effect would be to do low-pass filtering on the output with an incorrect cut-off frequency. | ||||
| 再現手順 | |||||
| 追加情報 | |||||
| 添付ファイル | |||||