From cad555d7abf79e6523930699ecd454558d687c2c Mon Sep 17 00:00:00 2001 From: "ALIENJACK\\alien" Date: Wed, 17 Jul 2024 12:43:43 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=AE=8C=E7=BE=8E=E9=9F=B3=E6=95=88!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + .../Assets/MyNes.Core/NesEmu.cs | 73 ++++++------------ .../Assets/Resources/Roms/tortoise4.nes.bytes | Bin 0 -> 262160 bytes .../Resources/Roms/tortoise4.nes.bytes.meta | 7 ++ .../Assets/Scene/EmuTest.unity | 2 +- .../Assets/Script/Emu/AudioProvider.cs | 29 +++++-- .../Assets/Script/Emu/UguiVideoProvider.cs | 4 +- .../Assets/Script/Manager/AppEmu.cs | 6 +- .../Assets/Script/NesCoreProxy.cs | 5 -- .../Assets/Script/RingBuffer.cs | 73 ++++++++++++++++++ .../Assets/Script/RingBuffer.cs.meta | 11 +++ 11 files changed, 140 insertions(+), 72 deletions(-) create mode 100644 AxibugEmuOnline.Client/Assets/Resources/Roms/tortoise4.nes.bytes create mode 100644 AxibugEmuOnline.Client/Assets/Resources/Roms/tortoise4.nes.bytes.meta create mode 100644 AxibugEmuOnline.Client/Assets/Script/RingBuffer.cs create mode 100644 AxibugEmuOnline.Client/Assets/Script/RingBuffer.cs.meta diff --git a/.gitignore b/.gitignore index 17915f1..44e618d 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,5 @@ /AxibugEmuOnline.Client/ProjectSettings/Packages/ /AxibugEmuOnline.Web/config.cfg /AxibugEmuOnline.Client/ProjectSettings/ProjectVersion.txt +/AxibugEmuOnline.Client/ProjectSettings/AutoStreamingSettings.asset +/AxibugEmuOnline.Client/Logs diff --git a/AxibugEmuOnline.Client/Assets/MyNes.Core/NesEmu.cs b/AxibugEmuOnline.Client/Assets/MyNes.Core/NesEmu.cs index 133b7aa..f39d630 100644 --- a/AxibugEmuOnline.Client/Assets/MyNes.Core/NesEmu.cs +++ b/AxibugEmuOnline.Client/Assets/MyNes.Core/NesEmu.cs @@ -5169,6 +5169,7 @@ namespace MyNes.Core { Tracer.WriteLine("Running in a thread ... using custom frame limiter."); FrameLimiterEnabled = true; + currentFrame = 0; mainThread = new Thread(EmuClock); mainThread.Start(); } @@ -5263,9 +5264,6 @@ namespace MyNes.Core if (mainThread != null) { Tracer.WriteLine("Aborting thread .."); - while (mainThread.IsAlive) - { - } mainThread.Abort(); mainThread = null; } @@ -5274,43 +5272,29 @@ namespace MyNes.Core NesEmu.EmuShutdown?.Invoke(null, new EventArgs()); } - internal static void EMUClockFrame() - { - emu_frame_done = false; - while (!emu_frame_done && ON) - { - if (!PAUSED) - { - CPUClock(); - } - else - { - Thread.Sleep(100); - } - } - } - - public static void ExecuteOneFrame() - { - while (!ppu_frame_finished) - { - CPUClock(); - } - - FrameFinished(); - } - + private static Stopwatch sw = new Stopwatch(); + private static double fixTime; + public static int currentFrame; private static void EmuClock() { while (ON) { if (!PAUSED) { - CPUClock(); - if (ppu_frame_finished) + var waitTime = GetTime() + fps_time_period + fixTime; + + while (!ppu_frame_finished) + CPUClock(); + + FrameFinished(); + + fixTime = waitTime - GetTime(); + while (fixTime > 0) { - FrameFinished(); - } + fixTime = waitTime - GetTime(); + }; + + continue; } render_audio_get_is_playing(out render_audio_is_playing); @@ -5408,24 +5392,6 @@ namespace MyNes.Core audio_timer = 0.0; } fps_time_token = GetTime() - fps_time_start; - if (FrameLimiterEnabled) - { - if (fps_time_token > 0.0) - { - fps_time_dead = fps_time_period - fps_time_token; - if (fps_time_dead > 0.0) - { - Thread.Sleep((int)Math.Floor(fps_time_dead * 1000.0)); - fps_time_dead = GetTime() - fps_time_start; - while (fps_time_period - fps_time_dead > 0.0) - { - fps_time_dead = GetTime() - fps_time_start; - } - } - } - fps_time_last = GetTime(); - fps_time_frame_time = fps_time_last - fps_time_start; - } fps_time_start = GetTime(); } @@ -5445,6 +5411,11 @@ namespace MyNes.Core fps_time_period = period; } + public static void RevertFramePeriod() + { + fps_time_period = 1 / emu_time_target_fps; + } + public static void ApplyRegionSetting() { switch ((RegionSetting)MyNesMain.EmuSettings.RegionSetting) diff --git a/AxibugEmuOnline.Client/Assets/Resources/Roms/tortoise4.nes.bytes b/AxibugEmuOnline.Client/Assets/Resources/Roms/tortoise4.nes.bytes new file mode 100644 index 0000000000000000000000000000000000000000..46a85a021f79f8a1099a68f1f4fc6aac9d32bb7f GIT binary patch literal 262160 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 literal 0 HcmV?d00001 diff --git a/AxibugEmuOnline.Client/Assets/Resources/Roms/tortoise4.nes.bytes.meta b/AxibugEmuOnline.Client/Assets/Resources/Roms/tortoise4.nes.bytes.meta new file mode 100644 index 0000000..db26e21 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Resources/Roms/tortoise4.nes.bytes.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4933f61382c34574db545f3d9e72b51d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Scene/EmuTest.unity b/AxibugEmuOnline.Client/Assets/Scene/EmuTest.unity index 451cb5d..52bcb3a 100644 --- a/AxibugEmuOnline.Client/Assets/Scene/EmuTest.unity +++ b/AxibugEmuOnline.Client/Assets/Scene/EmuTest.unity @@ -815,7 +815,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &2100984176 RectTransform: m_ObjectHideFlags: 0 diff --git a/AxibugEmuOnline.Client/Assets/Script/Emu/AudioProvider.cs b/AxibugEmuOnline.Client/Assets/Script/Emu/AudioProvider.cs index f163ecc..73889b1 100644 --- a/AxibugEmuOnline.Client/Assets/Script/Emu/AudioProvider.cs +++ b/AxibugEmuOnline.Client/Assets/Script/Emu/AudioProvider.cs @@ -23,7 +23,7 @@ namespace AxibugEmuOnline.Client private AudioSource m_as; private Stopwatch sw = Stopwatch.StartNew(); - private Queue _buffer = new Queue(2048); + private RingBuffer _buffer = new RingBuffer(4096); public double FPS { get; private set; } @@ -43,9 +43,27 @@ namespace AxibugEmuOnline.Client { int step = channels; + var bufferCount = _buffer.Available(); + if (bufferCount < 4096) + { + double fps = 1 / 61d; + NesEmu.SetFramePeriod(ref fps); + } + else if (bufferCount > 8124) + { + double fps = 1 / 59d; + NesEmu.SetFramePeriod(ref fps); + } + else + { + NesEmu.RevertFramePeriod(); + } for (int i = 0; i < data.Length; i += step) { - var rawFloat = _buffer.Count <= 0 ? lastData : _buffer.Dequeue() / 124f; + float rawFloat = lastData; + if (_buffer.TryRead(out short rawData)) + rawFloat = rawData / 124f; + data[i] = rawFloat; for (int fill = 1; fill < step; fill++) data[i + fill] = rawFloat; @@ -63,14 +81,9 @@ namespace AxibugEmuOnline.Client FPS = 1d / delta.TotalSeconds; - if (_buffer.Count > 2048) - { - _buffer.Clear(); - } - for (int i = 0; i < samples_a; i++) { - _buffer.Enqueue(buffer[i]); + _buffer.Write(buffer[i]); } } diff --git a/AxibugEmuOnline.Client/Assets/Script/Emu/UguiVideoProvider.cs b/AxibugEmuOnline.Client/Assets/Script/Emu/UguiVideoProvider.cs index 0523599..9e68832 100644 --- a/AxibugEmuOnline.Client/Assets/Script/Emu/UguiVideoProvider.cs +++ b/AxibugEmuOnline.Client/Assets/Script/Emu/UguiVideoProvider.cs @@ -44,14 +44,14 @@ namespace AxibugEmuOnline.Client res.b = b / 255f; } - public void Update() + public void Update() { var colors = m_texRawBuffer; m_rawBufferWarper.SetPixels(colors); m_rawBufferWarper.Apply(); Graphics.Blit(m_rawBufferWarper, m_drawCanvas.texture as RenderTexture); - m_fpsText.text = $"Audio:{NesCoreProxy.Instance.AudioCom.FPS}"; + m_fpsText.text = $"fps:{NesCoreProxy.Instance.AudioCom.FPS}"; } public void WriteErrorNotification(string message, bool instant) diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs index 75561b6..cfe41aa 100644 --- a/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs +++ b/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs @@ -10,12 +10,8 @@ namespace AxibugEmuOnline.Client.Manager public void Init(IVideoProvider videoCom, IAudioProvider audioCom) { MyNesMain.Initialize(this, videoCom, audioCom); - NesEmu.LoadGame("kirby.nes", out var successed, true); - } - public void ExecuteFrameLogic() - { - //NesEmu.ExecuteOneFrame(); + NesEmu.LoadGame("tortoise4.nes", out var successed, true); } public void Dispose() diff --git a/AxibugEmuOnline.Client/Assets/Script/NesCoreProxy.cs b/AxibugEmuOnline.Client/Assets/Script/NesCoreProxy.cs index 8643eda..2b5348b 100644 --- a/AxibugEmuOnline.Client/Assets/Script/NesCoreProxy.cs +++ b/AxibugEmuOnline.Client/Assets/Script/NesCoreProxy.cs @@ -21,11 +21,6 @@ namespace AxibugEmuOnline.Client m_appEnum.Init(VideoCom, AudioCom); } - private void Update() - { - m_appEnum.ExecuteFrameLogic(); - } - private void OnDestroy() { Instance = null; diff --git a/AxibugEmuOnline.Client/Assets/Script/RingBuffer.cs b/AxibugEmuOnline.Client/Assets/Script/RingBuffer.cs new file mode 100644 index 0000000..20f5613 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/RingBuffer.cs @@ -0,0 +1,73 @@ +using System; +using System.Threading; + +public class RingBuffer +{ + private readonly T[] buffer; + private readonly int capacity; + private int writePos; + private int readPos; + private int count; + + public RingBuffer(int capacity) + { + this.capacity = capacity; + this.buffer = new T[capacity]; + this.writePos = 0; + this.readPos = 0; + this.count = 0; + } + + public void Write(T item) + { + int localWritePos; + int localReadPos; + + do + { + localWritePos = Volatile.Read(ref writePos); + localReadPos = Volatile.Read(ref readPos); + + int nextWritePos = (localWritePos + 1) % capacity; + + if (nextWritePos == localReadPos) + { + // 缓冲区已满,覆盖最旧的未读数据 + Interlocked.CompareExchange(ref readPos, (localReadPos + 1) % capacity, localReadPos); + } + } + while (Interlocked.CompareExchange(ref writePos, (localWritePos + 1) % capacity, localWritePos) != localWritePos); + + buffer[localWritePos] = item; + Interlocked.Increment(ref count); + } + + public bool TryRead(out T item) + { + item = default(T); + + int localReadPos; + int localWritePos; + + do + { + localReadPos = Volatile.Read(ref readPos); + localWritePos = Volatile.Read(ref writePos); + + if (localReadPos == localWritePos) + { + return false; // 缓冲区为空 + } + } + while (Interlocked.CompareExchange(ref readPos, (localReadPos + 1) % capacity, localReadPos) != localReadPos); + + item = buffer[localReadPos]; + Interlocked.Decrement(ref count); + return true; + } + + public int Available() + { + return Volatile.Read(ref count); + } +} diff --git a/AxibugEmuOnline.Client/Assets/Script/RingBuffer.cs.meta b/AxibugEmuOnline.Client/Assets/Script/RingBuffer.cs.meta new file mode 100644 index 0000000..902ec9a --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/RingBuffer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6bd0f6c1647ed3f49a59e7f06406f49b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 1770e2fc4502a318c5b8aa8ecb7bd624b8e10add Mon Sep 17 00:00:00 2001 From: "ALIENJACK\\alien" Date: Wed, 17 Jul 2024 12:50:18 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=A0=B8=E5=BF=83=E6=A8=A1=E6=8B=9F?= =?UTF-8?q?=E5=99=A8=E5=81=9A=E6=88=90prefab?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AxibugEmuOnline.Client/Assets/Prefabs.meta | 8 + .../Assets/Prefabs/NesCoreProxy.prefab | 509 ++++++++++++++++ .../Assets/Prefabs/NesCoreProxy.prefab.meta | 7 + .../Assets/Scene/EmuTest.unity | 552 ++---------------- .../Assets/Script/Emu/AudioProvider.cs | 2 + .../Assets/Script/Emu/UguiVideoProvider.cs | 9 +- .../Assets/Script/NesCoreProxy.cs | 4 - 7 files changed, 584 insertions(+), 507 deletions(-) create mode 100644 AxibugEmuOnline.Client/Assets/Prefabs.meta create mode 100644 AxibugEmuOnline.Client/Assets/Prefabs/NesCoreProxy.prefab create mode 100644 AxibugEmuOnline.Client/Assets/Prefabs/NesCoreProxy.prefab.meta diff --git a/AxibugEmuOnline.Client/Assets/Prefabs.meta b/AxibugEmuOnline.Client/Assets/Prefabs.meta new file mode 100644 index 0000000..b05ee29 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8d7ded91aab4c0b42abba5042aaceb39 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Prefabs/NesCoreProxy.prefab b/AxibugEmuOnline.Client/Assets/Prefabs/NesCoreProxy.prefab new file mode 100644 index 0000000..a8a472c --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Prefabs/NesCoreProxy.prefab @@ -0,0 +1,509 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8662582774585465456 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8662582774585465455} + - component: {fileID: 8662582774585465453} + - component: {fileID: 8662582774585465454} + m_Layer: 5 + m_Name: canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &8662582774585465455 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582774585465456} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: -1, z: 1} + m_Children: [] + m_Father: {fileID: 8662582775350046794} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8662582774585465453 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582774585465456} + m_CullTransparentMesh: 1 +--- !u!114 &8662582774585465454 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582774585465456} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Texture: {fileID: 8400000, guid: 5d4a385f133f9074583d64ab2172a03b, type: 2} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!1 &8662582774971523582 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8662582774971523581} + - component: {fileID: 8662582774971523580} + - component: {fileID: 8662582774971523579} + m_Layer: 5 + m_Name: Audio + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8662582774971523581 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582774971523582} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: -1, z: 1} + m_Children: [] + m_Father: {fileID: 8662582775439058149} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!82 &8662582774971523580 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582774971523582} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 0 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!114 &8662582774971523579 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582774971523582} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 765129d4fad76714191795975893ea9c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_coreProxy: {fileID: 8662582775964487075} + m_as: {fileID: 8662582774971523580} +--- !u!1 &8662582775350046795 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8662582775350046794} + - component: {fileID: 8662582775350046791} + - component: {fileID: 8662582775350046790} + m_Layer: 5 + m_Name: video + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8662582775350046794 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582775350046795} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8662582774585465455} + - {fileID: 8662582775359084755} + m_Father: {fileID: 8662582775439058149} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8662582775350046791 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582775350046795} + m_CullTransparentMesh: 1 +--- !u!114 &8662582775350046790 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582775350046795} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f2632911774df3c488ec24b39651c4de, type: 3} + m_Name: + m_EditorClassIdentifier: + m_coreProxy: {fileID: 8662582775964487075} + m_drawCanvas: {fileID: 8662582774585465454} + m_fpsText: {fileID: 8662582775359084754} +--- !u!1 &8662582775359084756 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8662582775359084755} + - component: {fileID: 8662582775359084753} + - component: {fileID: 8662582775359084754} + m_Layer: 5 + m_Name: fps + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8662582775359084755 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582775359084756} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 8662582775350046794} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 160, y: 30} + m_Pivot: {x: 1, y: 0} +--- !u!222 &8662582775359084753 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582775359084756} + m_CullTransparentMesh: 1 +--- !u!114 &8662582775359084754 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582775359084756} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 8 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 1 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: +--- !u!1 &8662582775439058150 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8662582775439058149} + - component: {fileID: 8662582775439058146} + - component: {fileID: 8662582775439058147} + - component: {fileID: 8662582775439058148} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8662582775439058149 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582775439058150} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 8662582775350046794} + - {fileID: 8662582774971523581} + m_Father: {fileID: 8662582775964487076} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!223 &8662582775439058146 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582775439058150} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!114 &8662582775439058147 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582775439058150} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!114 &8662582775439058148 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582775439058150} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!1 &8662582775964487077 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8662582775964487076} + - component: {fileID: 8662582775964487075} + m_Layer: 0 + m_Name: NesCoreProxy + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8662582775964487076 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582775964487077} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8662582775439058149} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8662582775964487075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8662582775964487077} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac8cd27a180bf3e489b2ca27c821bffe, type: 3} + m_Name: + m_EditorClassIdentifier: + VideoCom: {fileID: 8662582775350046790} + AudioCom: {fileID: 8662582774971523579} diff --git a/AxibugEmuOnline.Client/Assets/Prefabs/NesCoreProxy.prefab.meta b/AxibugEmuOnline.Client/Assets/Prefabs/NesCoreProxy.prefab.meta new file mode 100644 index 0000000..70b5aae --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Prefabs/NesCoreProxy.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d75df7d1f5a2c824ab5013cbd79da7a4 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Scene/EmuTest.unity b/AxibugEmuOnline.Client/Assets/Scene/EmuTest.unity index 52bcb3a..a568da5 100644 --- a/AxibugEmuOnline.Client/Assets/Scene/EmuTest.unity +++ b/AxibugEmuOnline.Client/Assets/Scene/EmuTest.unity @@ -123,52 +123,6 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &258485946 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 258485947} - - component: {fileID: 258485948} - m_Layer: 0 - m_Name: NesCoreProxy - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &258485947 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 258485946} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 786008058} - m_Father: {fileID: 0} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &258485948 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 258485946} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: ac8cd27a180bf3e489b2ca27c821bffe, type: 3} - m_Name: - m_EditorClassIdentifier: - VideoCom: {fileID: 730321753} - AudioCom: {fileID: 1379369700} --- !u!1 &708549044 GameObject: m_ObjectHideFlags: 0 @@ -262,247 +216,6 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} ---- !u!1 &723385291 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 723385292} - - component: {fileID: 723385294} - - component: {fileID: 723385293} - m_Layer: 5 - m_Name: fps - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &723385292 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 723385291} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 730321749} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 0} - m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 160, y: 30} - m_Pivot: {x: 1, y: 0} ---- !u!114 &723385293 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 723385291} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 10 - m_MaxSize: 40 - m_Alignment: 8 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 1 - m_VerticalOverflow: 1 - m_LineSpacing: 1 - m_Text: ---- !u!222 &723385294 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 723385291} - m_CullTransparentMesh: 1 ---- !u!1 &730321748 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 730321749} - - component: {fileID: 730321752} - - component: {fileID: 730321753} - m_Layer: 5 - m_Name: video - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &730321749 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 730321748} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 2100984176} - - {fileID: 723385292} - m_Father: {fileID: 786008058} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &730321752 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 730321748} - m_CullTransparentMesh: 1 ---- !u!114 &730321753 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 730321748} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f2632911774df3c488ec24b39651c4de, type: 3} - m_Name: - m_EditorClassIdentifier: - m_drawCanvas: {fileID: 2100984177} - m_fpsText: {fileID: 723385293} ---- !u!1 &786008057 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 786008058} - - component: {fileID: 786008061} - - component: {fileID: 786008060} - - component: {fileID: 786008059} - m_Layer: 5 - m_Name: Canvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &786008058 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 786008057} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0, y: 0, z: 0} - m_Children: - - {fileID: 730321749} - - {fileID: 1379369698} - m_Father: {fileID: 258485947} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0, y: 0} ---- !u!114 &786008059 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 786008057} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} - m_Name: - m_EditorClassIdentifier: - m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 - m_BlockingMask: - serializedVersion: 2 - m_Bits: 4294967295 ---- !u!114 &786008060 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 786008057} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} - m_Name: - m_EditorClassIdentifier: - m_UiScaleMode: 0 - m_ReferencePixelsPerUnit: 100 - m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} - m_ScreenMatchMode: 0 - m_MatchWidthOrHeight: 0 - m_PhysicalUnit: 3 - m_FallbackScreenDPI: 96 - m_DefaultSpriteDPI: 96 - m_DynamicPixelsPerUnit: 1 - m_PresetInfoIsWorld: 0 ---- !u!223 &786008061 -Canvas: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 786008057} - m_Enabled: 1 - serializedVersion: 3 - m_RenderMode: 0 - m_Camera: {fileID: 0} - m_PlaneDistance: 100 - m_PixelPerfect: 0 - m_ReceivesEvents: 1 - m_OverrideSorting: 0 - m_OverridePixelPerfect: 0 - m_SortingBucketNormalizedSize: 0 - m_AdditionalShaderChannelsFlag: 0 - m_SortingLayerID: 0 - m_SortingOrder: 0 - m_TargetDisplay: 0 --- !u!1 &1232273651 GameObject: m_ObjectHideFlags: 0 @@ -652,221 +365,60 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1379369697 -GameObject: +--- !u!1001 &8662582775744815903 +PrefabInstance: m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1379369698} - - component: {fileID: 1379369699} - - component: {fileID: 1379369700} - m_Layer: 5 - m_Name: Audio - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1379369698 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1379369697} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: -1, z: 1} - m_Children: [] - m_Father: {fileID: 786008058} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!82 &1379369699 -AudioSource: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1379369697} - m_Enabled: 1 - serializedVersion: 4 - OutputAudioMixerGroup: {fileID: 0} - m_audioClip: {fileID: 0} - m_PlayOnAwake: 0 - m_Volume: 1 - m_Pitch: 1 - Loop: 0 - Mute: 0 - Spatialize: 0 - SpatializePostEffects: 0 - Priority: 128 - DopplerLevel: 1 - MinDistance: 1 - MaxDistance: 500 - Pan2D: 0 - rolloffMode: 0 - BypassEffects: 0 - BypassListenerEffects: 0 - BypassReverbZones: 0 - rolloffCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 8662582775964487076, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 8662582775964487076, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8662582775964487076, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8662582775964487076, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8662582775964487076, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} + propertyPath: m_LocalRotation.w value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - - serializedVersion: 3 - time: 1 + objectReference: {fileID: 0} + - target: {fileID: 8662582775964487076, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} + propertyPath: m_LocalRotation.x value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - panLevelCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 + objectReference: {fileID: 0} + - target: {fileID: 8662582775964487076, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} + propertyPath: m_LocalRotation.y value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - spreadCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 + objectReference: {fileID: 0} + - target: {fileID: 8662582775964487076, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} + propertyPath: m_LocalRotation.z value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - reverbZoneMixCustomCurve: - serializedVersion: 2 - m_Curve: - - serializedVersion: 3 - time: 0 - value: 1 - inSlope: 0 - outSlope: 0 - tangentMode: 0 - weightedMode: 0 - inWeight: 0.33333334 - outWeight: 0.33333334 - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 ---- !u!114 &1379369700 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1379369697} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 765129d4fad76714191795975893ea9c, type: 3} - m_Name: - m_EditorClassIdentifier: - m_as: {fileID: 1379369699} ---- !u!1 &2100984175 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2100984176} - - component: {fileID: 2100984178} - - component: {fileID: 2100984177} - m_Layer: 5 - m_Name: canvas - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &2100984176 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2100984175} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: -1, z: 1} - m_Children: [] - m_Father: {fileID: 730321749} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &2100984177 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2100984175} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Texture: {fileID: 8400000, guid: 5d4a385f133f9074583d64ab2172a03b, type: 2} - m_UVRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 ---- !u!222 &2100984178 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2100984175} - m_CullTransparentMesh: 1 + objectReference: {fileID: 0} + - target: {fileID: 8662582775964487076, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8662582775964487076, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8662582775964487076, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8662582775964487077, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} + propertyPath: m_Name + value: NesCoreProxy + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d75df7d1f5a2c824ab5013cbd79da7a4, type: 3} diff --git a/AxibugEmuOnline.Client/Assets/Script/Emu/AudioProvider.cs b/AxibugEmuOnline.Client/Assets/Script/Emu/AudioProvider.cs index 73889b1..e109138 100644 --- a/AxibugEmuOnline.Client/Assets/Script/Emu/AudioProvider.cs +++ b/AxibugEmuOnline.Client/Assets/Script/Emu/AudioProvider.cs @@ -19,6 +19,8 @@ namespace AxibugEmuOnline.Client private bool m_isPlaying; + [SerializeField] + private NesCoreProxy m_coreProxy; [SerializeField] private AudioSource m_as; diff --git a/AxibugEmuOnline.Client/Assets/Script/Emu/UguiVideoProvider.cs b/AxibugEmuOnline.Client/Assets/Script/Emu/UguiVideoProvider.cs index 9e68832..e158880 100644 --- a/AxibugEmuOnline.Client/Assets/Script/Emu/UguiVideoProvider.cs +++ b/AxibugEmuOnline.Client/Assets/Script/Emu/UguiVideoProvider.cs @@ -11,10 +11,13 @@ namespace AxibugEmuOnline.Client { public class UguiVideoProvider : MonoBehaviour, IVideoProvider { + public string Name => "Unity UI Video"; public string ID => nameof(UguiVideoProvider).GetHashCode().ToString(); + [SerializeField] + private NesCoreProxy m_coreProxy; [SerializeField] private RawImage m_drawCanvas; [SerializeField] @@ -30,7 +33,7 @@ namespace AxibugEmuOnline.Client { m_rawBufferWarper = new Texture2D(256, 240); //m_drawCanvas.texture = RenderTexture.GetTemporary(256, 240, 0, UnityEngine.Experimental.Rendering.GraphicsFormat.B8G8R8A8_SRGB); - } + } public void GetColor(uint value, ref Color res) { @@ -44,14 +47,14 @@ namespace AxibugEmuOnline.Client res.b = b / 255f; } - public void Update() + public void Update() { var colors = m_texRawBuffer; m_rawBufferWarper.SetPixels(colors); m_rawBufferWarper.Apply(); Graphics.Blit(m_rawBufferWarper, m_drawCanvas.texture as RenderTexture); - m_fpsText.text = $"fps:{NesCoreProxy.Instance.AudioCom.FPS}"; + m_fpsText.text = $"fps:{m_coreProxy.AudioCom.FPS:00.00}"; } public void WriteErrorNotification(string message, bool instant) diff --git a/AxibugEmuOnline.Client/Assets/Script/NesCoreProxy.cs b/AxibugEmuOnline.Client/Assets/Script/NesCoreProxy.cs index 2b5348b..dd30dea 100644 --- a/AxibugEmuOnline.Client/Assets/Script/NesCoreProxy.cs +++ b/AxibugEmuOnline.Client/Assets/Script/NesCoreProxy.cs @@ -8,8 +8,6 @@ namespace AxibugEmuOnline.Client { public class NesCoreProxy : MonoBehaviour { - public static NesCoreProxy Instance { get; private set; } - public UguiVideoProvider VideoCom; public AudioProvider AudioCom; @@ -17,13 +15,11 @@ namespace AxibugEmuOnline.Client private void Start() { - Instance = this; m_appEnum.Init(VideoCom, AudioCom); } private void OnDestroy() { - Instance = null; m_appEnum.Dispose(); } } From 1fe5204014a22718651bf94716ec23794a3ca2b2 Mon Sep 17 00:00:00 2001 From: "ALIENJACK\\alien" Date: Wed, 17 Jul 2024 13:18:45 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=BF=AD=E4=BB=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/Script/Emu/AudioProvider.cs | 32 +++++++++++++++---- .../Assets/Script/Manager/AppEmu.cs | 2 +- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/AxibugEmuOnline.Client/Assets/Script/Emu/AudioProvider.cs b/AxibugEmuOnline.Client/Assets/Script/Emu/AudioProvider.cs index e109138..8580c1c 100644 --- a/AxibugEmuOnline.Client/Assets/Script/Emu/AudioProvider.cs +++ b/AxibugEmuOnline.Client/Assets/Script/Emu/AudioProvider.cs @@ -18,7 +18,7 @@ namespace AxibugEmuOnline.Client public bool AllowFrequencyChange => true; private bool m_isPlaying; - + private bool m_started; [SerializeField] private NesCoreProxy m_coreProxy; [SerializeField] @@ -43,18 +43,18 @@ namespace AxibugEmuOnline.Client float lastData = 0; void OnAudioFilterRead(float[] data, int channels) { + if (!m_started) return; + int step = channels; var bufferCount = _buffer.Available(); if (bufferCount < 4096) { - double fps = 1 / 61d; - NesEmu.SetFramePeriod(ref fps); + NesEmu.SetFramePeriod(ref fps_nes_missle); } else if (bufferCount > 8124) { - double fps = 1 / 59d; - NesEmu.SetFramePeriod(ref fps); + NesEmu.SetFramePeriod(ref fps_pl_faster); } else { @@ -75,6 +75,9 @@ namespace AxibugEmuOnline.Client } private TimeSpan lastElapsed; + private double fps_nes_missle; + private double fps_pl_faster; + public void SubmitSamples(ref short[] buffer, ref int samples_a) { var current = sw.Elapsed; @@ -99,8 +102,6 @@ namespace AxibugEmuOnline.Client playing = m_isPlaying; } - - public void ShutDown() { } @@ -111,6 +112,23 @@ namespace AxibugEmuOnline.Client 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) diff --git a/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs b/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs index cfe41aa..92750a7 100644 --- a/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs +++ b/AxibugEmuOnline.Client/Assets/Script/Manager/AppEmu.cs @@ -11,7 +11,7 @@ namespace AxibugEmuOnline.Client.Manager { MyNesMain.Initialize(this, videoCom, audioCom); - NesEmu.LoadGame("tortoise4.nes", out var successed, true); + NesEmu.LoadGame("kirby.nes", out var successed, true); } public void Dispose()