diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/IEmuCore.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/IEmuCore.cs index 1583993d..44841572 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/IEmuCore.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/IEmuCore.cs @@ -7,18 +7,30 @@ namespace AxibugEmuOnline.Client { GameObject gameObject { get; } + /// 获得模拟器核心中的状态快照对象 object GetState(); + /// 获得模拟器核心中的状态快照字节数据 byte[] GetStateBytes(); + /// 加载状态快照 + /// 该对象应该来自核心的方法的返回值,或是从返回的byte数组构建 void LoadState(object state); + /// 加载状态快照 + /// 该对象应该来自核心的返回的byte数组 void LoadStateFromBytes(byte[] data); + /// 暂停核心推帧 void Pause(); + /// 恢复核心推帧(从Pause状态恢复) void Resume(); - void SetupScheme(); + /// 启动模拟器逻辑 MsgBool StartGame(RomFile romFile); + /// 重置核心,通常由模拟器核心提供的功能 void DoReset(); + /// 获得模拟器核心的控制器设置器 + /// IControllerSetuper GetControllerSetuper(); - + /// 核心所属平台 RomPlatformType Platform { get; } + /// 获取当前模拟器帧序号,在加载快照和Reset后,应当重置为0 uint Frame { get; } } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppEmu.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppEmu.cs index d994bb40..db5da709 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppEmu.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppEmu.cs @@ -63,7 +63,7 @@ namespace AxibugEmuOnline.Client.Manager LaunchUI.Instance.HideMainMenu(); InGameUI.Instance.Show(romFile, m_emuCore); - m_emuCore.SetupScheme(); + CommandDispatcher.Instance.Current = CommandDispatcher.Instance.Gaming; m_controllerSetuper = m_emuCore.GetControllerSetuper(); diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/NesEmulator/NesEmulator.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/NesEmulator/NesEmulator.cs index b6977b31..8532f5b2 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/NesEmulator/NesEmulator.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/NesEmulator/NesEmulator.cs @@ -103,11 +103,6 @@ namespace AxibugEmuOnline.Client NesCore.Reset(); } - public void SetupScheme() - { - CommandDispatcher.Instance.Current = CommandDispatcher.Instance.Gaming; - } - public void LoadState(object state) { NesCore.LoadState((State)state);