nes-fix triangle channel note length issue
This commit is contained in:
parent
4b4e6d9950
commit
452e6768a8
|
@ -460,7 +460,9 @@ namespace BizHawk.Emulation.Consoles.Nintendo
|
||||||
//except when linear counter or
|
//except when linear counter or
|
||||||
//length counter is 0
|
//length counter is 0
|
||||||
|
|
||||||
bool en = len_cnt != 0 && linear_counter != 0 || (seq != 16 && seq != 15);
|
//dont stop the triangle channel until its level is 0. makes it sound nicer.
|
||||||
|
bool need_declick = (seq != 16 && seq != 15);
|
||||||
|
bool en = len_cnt != 0 && linear_counter != 0 || need_declick;
|
||||||
|
|
||||||
//length counter and linear counter
|
//length counter and linear counter
|
||||||
//is clocked in frame counter.
|
//is clocked in frame counter.
|
||||||
|
@ -484,7 +486,7 @@ namespace BizHawk.Emulation.Consoles.Nintendo
|
||||||
public void clock_length_and_sweep()
|
public void clock_length_and_sweep()
|
||||||
{
|
{
|
||||||
//env_loopdoubles as "halt length counter"
|
//env_loopdoubles as "halt length counter"
|
||||||
if (len_cnt > 1)
|
if (len_cnt > 0 && halt_flag == 0)
|
||||||
len_cnt--;
|
len_cnt--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue