forked from sin365/AxibugEmuOnline
迭代
This commit is contained in:
parent
57d75cfdcb
commit
1fe5204014
@ -18,7 +18,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
public bool AllowFrequencyChange => true;
|
public bool AllowFrequencyChange => true;
|
||||||
|
|
||||||
private bool m_isPlaying;
|
private bool m_isPlaying;
|
||||||
|
private bool m_started;
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private NesCoreProxy m_coreProxy;
|
private NesCoreProxy m_coreProxy;
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
@ -43,18 +43,18 @@ namespace AxibugEmuOnline.Client
|
|||||||
float lastData = 0;
|
float lastData = 0;
|
||||||
void OnAudioFilterRead(float[] data, int channels)
|
void OnAudioFilterRead(float[] data, int channels)
|
||||||
{
|
{
|
||||||
|
if (!m_started) return;
|
||||||
|
|
||||||
int step = channels;
|
int step = channels;
|
||||||
|
|
||||||
var bufferCount = _buffer.Available();
|
var bufferCount = _buffer.Available();
|
||||||
if (bufferCount < 4096)
|
if (bufferCount < 4096)
|
||||||
{
|
{
|
||||||
double fps = 1 / 61d;
|
NesEmu.SetFramePeriod(ref fps_nes_missle);
|
||||||
NesEmu.SetFramePeriod(ref fps);
|
|
||||||
}
|
}
|
||||||
else if (bufferCount > 8124)
|
else if (bufferCount > 8124)
|
||||||
{
|
{
|
||||||
double fps = 1 / 59d;
|
NesEmu.SetFramePeriod(ref fps_pl_faster);
|
||||||
NesEmu.SetFramePeriod(ref fps);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -75,6 +75,9 @@ namespace AxibugEmuOnline.Client
|
|||||||
}
|
}
|
||||||
|
|
||||||
private TimeSpan lastElapsed;
|
private TimeSpan lastElapsed;
|
||||||
|
private double fps_nes_missle;
|
||||||
|
private double fps_pl_faster;
|
||||||
|
|
||||||
public void SubmitSamples(ref short[] buffer, ref int samples_a)
|
public void SubmitSamples(ref short[] buffer, ref int samples_a)
|
||||||
{
|
{
|
||||||
var current = sw.Elapsed;
|
var current = sw.Elapsed;
|
||||||
@ -99,8 +102,6 @@ namespace AxibugEmuOnline.Client
|
|||||||
playing = m_isPlaying;
|
playing = m_isPlaying;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void ShutDown()
|
public void ShutDown()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -111,6 +112,23 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
public void SignalToggle(bool started)
|
public void SignalToggle(bool started)
|
||||||
{
|
{
|
||||||
|
if (started)
|
||||||
|
{
|
||||||
|
switch (NesEmu.Region)
|
||||||
|
{
|
||||||
|
case EmuRegion.NTSC:
|
||||||
|
fps_nes_missle = 1 / 60.5d;
|
||||||
|
fps_pl_faster = 1 / 59.5d;
|
||||||
|
break;
|
||||||
|
case EmuRegion.PALB:
|
||||||
|
case EmuRegion.DENDY:
|
||||||
|
fps_nes_missle = 0.0125;
|
||||||
|
fps_pl_faster = 0.02;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
m_started = started;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetVolume(int Vol)
|
public void SetVolume(int Vol)
|
||||||
|
@ -11,7 +11,7 @@ namespace AxibugEmuOnline.Client.Manager
|
|||||||
{
|
{
|
||||||
MyNesMain.Initialize(this, videoCom, audioCom);
|
MyNesMain.Initialize(this, videoCom, audioCom);
|
||||||
|
|
||||||
NesEmu.LoadGame("tortoise4.nes", out var successed, true);
|
NesEmu.LoadGame("kirby.nes", out var successed, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
Loading…
Reference in New Issue
Block a user