dev_basemynes #9
@ -5,91 +5,91 @@ namespace MyNes.Core
|
|||||||
{
|
{
|
||||||
public class INes : IRom
|
public class INes : IRom
|
||||||
{
|
{
|
||||||
public bool HasBattery { get; private set; }
|
public bool HasBattery { get; private set; }
|
||||||
|
|
||||||
public bool IsPlaychoice10 { get; private set; }
|
public bool IsPlaychoice10 { get; private set; }
|
||||||
|
|
||||||
public bool IsVSUnisystem { get; private set; }
|
public bool IsVSUnisystem { get; private set; }
|
||||||
|
|
||||||
public override void Load(string fileName, bool loadDumps)
|
public override void Load(string fileName, bool loadDumps)
|
||||||
{
|
{
|
||||||
FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
|
var fileStream = MyNesMain.FileManager.OpenRomFile(fileName);
|
||||||
if (fileStream.Length < 16)
|
if (fileStream.Length < 16)
|
||||||
{
|
{
|
||||||
fileStream.Close();
|
fileStream.Close();
|
||||||
base.IsValid = false;
|
base.IsValid = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
byte[] array = new byte[16];
|
byte[] array = new byte[16];
|
||||||
fileStream.Read(array, 0, 16);
|
fileStream.Read(array, 0, 16);
|
||||||
byte[] buffer = new byte[fileStream.Length - 16];
|
byte[] buffer = new byte[fileStream.Length - 16];
|
||||||
fileStream.Read(buffer, 0, (int)(fileStream.Length - 16));
|
fileStream.Read(buffer, 0, (int)(fileStream.Length - 16));
|
||||||
base.SHA1 = "";
|
base.SHA1 = "";
|
||||||
byte[] array2 = new SHA1Managed().ComputeHash(buffer);
|
byte[] array2 = new SHA1Managed().ComputeHash(buffer);
|
||||||
foreach (byte b in array2)
|
foreach (byte b in array2)
|
||||||
{
|
{
|
||||||
base.SHA1 += b.ToString("x2").ToLower();
|
base.SHA1 += b.ToString("x2").ToLower();
|
||||||
}
|
}
|
||||||
if (array[0] != 78 || array[1] != 69 || array[2] != 83 || array[3] != 26)
|
if (array[0] != 78 || array[1] != 69 || array[2] != 83 || array[3] != 26)
|
||||||
{
|
{
|
||||||
fileStream.Close();
|
fileStream.Close();
|
||||||
base.IsValid = false;
|
base.IsValid = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
base.PRGCount = array[4];
|
base.PRGCount = array[4];
|
||||||
base.CHRCount = array[5];
|
base.CHRCount = array[5];
|
||||||
switch (array[6] & 9)
|
switch (array[6] & 9)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
base.Mirroring = Mirroring.Horz;
|
base.Mirroring = Mirroring.Horz;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
base.Mirroring = Mirroring.Vert;
|
base.Mirroring = Mirroring.Vert;
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
case 9:
|
case 9:
|
||||||
base.Mirroring = Mirroring.Full;
|
base.Mirroring = Mirroring.Full;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
HasBattery = (array[6] & 2) != 0;
|
HasBattery = (array[6] & 2) != 0;
|
||||||
base.HasTrainer = (array[6] & 4) != 0;
|
base.HasTrainer = (array[6] & 4) != 0;
|
||||||
if ((array[7] & 0xF) == 0)
|
if ((array[7] & 0xF) == 0)
|
||||||
{
|
{
|
||||||
base.MapperNumber = (byte)((array[7] & 0xF0) | (array[6] >> 4));
|
base.MapperNumber = (byte)((array[7] & 0xF0) | (array[6] >> 4));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
base.MapperNumber = (byte)(array[6] >> 4);
|
base.MapperNumber = (byte)(array[6] >> 4);
|
||||||
}
|
}
|
||||||
IsVSUnisystem = (array[7] & 1) != 0;
|
IsVSUnisystem = (array[7] & 1) != 0;
|
||||||
IsPlaychoice10 = (array[7] & 2) != 0;
|
IsPlaychoice10 = (array[7] & 2) != 0;
|
||||||
if (loadDumps)
|
if (loadDumps)
|
||||||
{
|
{
|
||||||
fileStream.Seek(16L, SeekOrigin.Begin);
|
fileStream.Seek(16L, SeekOrigin.Begin);
|
||||||
if (base.HasTrainer)
|
if (base.HasTrainer)
|
||||||
{
|
{
|
||||||
base.Trainer = new byte[512];
|
base.Trainer = new byte[512];
|
||||||
fileStream.Read(base.Trainer, 0, 512);
|
fileStream.Read(base.Trainer, 0, 512);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
base.Trainer = new byte[0];
|
base.Trainer = new byte[0];
|
||||||
}
|
}
|
||||||
base.PRG = new byte[base.PRGCount * 16384];
|
base.PRG = new byte[base.PRGCount * 16384];
|
||||||
fileStream.Read(base.PRG, 0, base.PRGCount * 16384);
|
fileStream.Read(base.PRG, 0, base.PRGCount * 16384);
|
||||||
if (base.CHRCount > 0)
|
if (base.CHRCount > 0)
|
||||||
{
|
{
|
||||||
base.CHR = new byte[base.CHRCount * 8192];
|
base.CHR = new byte[base.CHRCount * 8192];
|
||||||
fileStream.Read(base.CHR, 0, base.CHRCount * 8192);
|
fileStream.Read(base.CHR, 0, base.CHRCount * 8192);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
base.CHR = new byte[0];
|
base.CHR = new byte[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
base.IsValid = true;
|
base.IsValid = true;
|
||||||
fileStream.Dispose();
|
fileStream.Dispose();
|
||||||
fileStream.Close();
|
fileStream.Close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
namespace MyNes.Core
|
namespace MyNes.Core
|
||||||
{
|
{
|
||||||
@ -217,5 +218,6 @@ namespace MyNes.Core
|
|||||||
string GetWorkingFolderPath();
|
string GetWorkingFolderPath();
|
||||||
public Stream OpenDatabaseFile();
|
public Stream OpenDatabaseFile();
|
||||||
public Stream OpenPaletteFile();
|
public Stream OpenPaletteFile();
|
||||||
|
public Stream OpenRomFile(string path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5141,47 +5141,39 @@ namespace MyNes.Core
|
|||||||
success = false;
|
success = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
string text = Path.GetExtension(fileName).ToLower();
|
Tracer.WriteLine("Checking INES header ...");
|
||||||
if (text != null && text == ".nes")
|
INes nes = new INes();
|
||||||
|
nes.Load(fileName, loadDumps: true);
|
||||||
|
if (nes.IsValid)
|
||||||
{
|
{
|
||||||
Tracer.WriteLine("Checking INES header ...");
|
emu_request_mode = RequestMode.None;
|
||||||
INes nes = new INes();
|
CurrentFilePath = fileName;
|
||||||
nes.Load(fileName, loadDumps: true);
|
if (ON)
|
||||||
if (nes.IsValid)
|
|
||||||
{
|
{
|
||||||
emu_request_mode = RequestMode.None;
|
ShutDown();
|
||||||
CurrentFilePath = fileName;
|
|
||||||
if (ON)
|
|
||||||
{
|
|
||||||
ShutDown();
|
|
||||||
}
|
|
||||||
Tracer.WriteLine("INES header is valid, loading game ...");
|
|
||||||
ApplyRegionSetting();
|
|
||||||
MEMInitialize(nes);
|
|
||||||
ApplyAudioSettings();
|
|
||||||
ApplyFrameSkipSettings();
|
|
||||||
ApplyPaletteSetting();
|
|
||||||
PORTSInitialize();
|
|
||||||
hardReset();
|
|
||||||
Tracer.WriteLine("EMU is ready.");
|
|
||||||
success = true;
|
|
||||||
emu_frame_clocking_mode = !useThread;
|
|
||||||
ON = true;
|
|
||||||
PAUSED = false;
|
|
||||||
if (useThread)
|
|
||||||
{
|
|
||||||
Tracer.WriteLine("Running in a thread ... using custom frame limiter.");
|
|
||||||
FrameLimiterEnabled = true;
|
|
||||||
mainThread = new Thread(EmuClock);
|
|
||||||
mainThread.Start();
|
|
||||||
}
|
|
||||||
MyNesMain.VideoProvider.SignalToggle(started: true);
|
|
||||||
MyNesMain.AudioProvider.SignalToggle(started: true);
|
|
||||||
}
|
}
|
||||||
else
|
Tracer.WriteLine("INES header is valid, loading game ...");
|
||||||
|
ApplyRegionSetting();
|
||||||
|
MEMInitialize(nes);
|
||||||
|
ApplyAudioSettings();
|
||||||
|
ApplyFrameSkipSettings();
|
||||||
|
ApplyPaletteSetting();
|
||||||
|
PORTSInitialize();
|
||||||
|
hardReset();
|
||||||
|
Tracer.WriteLine("EMU is ready.");
|
||||||
|
success = true;
|
||||||
|
emu_frame_clocking_mode = !useThread;
|
||||||
|
ON = true;
|
||||||
|
PAUSED = false;
|
||||||
|
if (useThread)
|
||||||
{
|
{
|
||||||
success = false;
|
Tracer.WriteLine("Running in a thread ... using custom frame limiter.");
|
||||||
|
FrameLimiterEnabled = true;
|
||||||
|
mainThread = new Thread(EmuClock);
|
||||||
|
mainThread.Start();
|
||||||
}
|
}
|
||||||
|
MyNesMain.VideoProvider.SignalToggle(started: true);
|
||||||
|
MyNesMain.AudioProvider.SignalToggle(started: true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -5298,6 +5290,16 @@ namespace MyNes.Core
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void ExecuteOneFrame()
|
||||||
|
{
|
||||||
|
while (!ppu_frame_finished)
|
||||||
|
{
|
||||||
|
CPUClock();
|
||||||
|
}
|
||||||
|
|
||||||
|
FrameFinished();
|
||||||
|
}
|
||||||
|
|
||||||
private static void EmuClock()
|
private static void EmuClock()
|
||||||
{
|
{
|
||||||
while (ON)
|
while (ON)
|
||||||
|
@ -11,13 +11,13 @@ namespace MyNes.Core
|
|||||||
public static void WriteLine(string message)
|
public static void WriteLine(string message)
|
||||||
{
|
{
|
||||||
Tracer.EventRaised?.Invoke(null, new TracerEventArgs(message, TracerStatus.Normal));
|
Tracer.EventRaised?.Invoke(null, new TracerEventArgs(message, TracerStatus.Normal));
|
||||||
Debug.Log(message);
|
//Debug.Log(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WriteLine(string message, string category)
|
public static void WriteLine(string message, string category)
|
||||||
{
|
{
|
||||||
Tracer.EventRaised?.Invoke(null, new TracerEventArgs($"{category}: {message}", TracerStatus.Normal));
|
Tracer.EventRaised?.Invoke(null, new TracerEventArgs($"{category}: {message}", TracerStatus.Normal));
|
||||||
Debug.Log(message);
|
//Debug.Log(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WriteLine(string message, TracerStatus status)
|
public static void WriteLine(string message, TracerStatus status)
|
||||||
@ -28,10 +28,10 @@ namespace MyNes.Core
|
|||||||
case TracerStatus.Error: Debug.LogError(message); break;
|
case TracerStatus.Error: Debug.LogError(message); break;
|
||||||
case TracerStatus.Infromation:
|
case TracerStatus.Infromation:
|
||||||
case TracerStatus.Normal:
|
case TracerStatus.Normal:
|
||||||
Debug.Log(message);
|
//Debug.Log(message);
|
||||||
break;
|
break;
|
||||||
case TracerStatus.Warning:
|
case TracerStatus.Warning:
|
||||||
Debug.LogWarning(message);
|
//Debug.LogWarning(message);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Binary file not shown.
@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 4664d2ef3d138e141b308c242abd4327
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Binary file not shown.
@ -1,5 +1,6 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: dee4e4661b99068439cc932db923d849
|
guid: ac852e7a0b9604940b0f7e0180fd2707
|
||||||
|
folderAsset: yes
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 040fea71e1812ce45bd2b72c8ad2e2ae
|
guid: 01dd757415143ae46921461228964dd5
|
||||||
TextScriptImporter:
|
TextScriptImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
@ -1,6 +1,6 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 23a003aef20e19f4d8c45acd32012718
|
guid: ecb5d904338d35c43bb3b98249b36394
|
||||||
DefaultImporter:
|
TextScriptImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
Binary file not shown.
@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 5df1a0f25b9a1864493e694ce7b40cc4
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Binary file not shown.
@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 333f6913aec8b2b41807add4cf643f6a
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -167,59 +167,8 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: ac8cd27a180bf3e489b2ca27c821bffe, type: 3}
|
m_Script: {fileID: 11500000, guid: ac8cd27a180bf3e489b2ca27c821bffe, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
VideoCom: {fileID: 0}
|
VideoCom: {fileID: 730321753}
|
||||||
AudioCom: {fileID: 0}
|
AudioCom: {fileID: 1379369700}
|
||||||
--- !u!1 &455467288
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 455467291}
|
|
||||||
- component: {fileID: 455467290}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: GameObject
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!114 &455467290
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 455467288}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 00080631f10e2834db28c37a11188a74, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
sampleRate: 44100
|
|
||||||
channels: 2
|
|
||||||
bufferLength: 1024
|
|
||||||
audioClip: {fileID: 0}
|
|
||||||
audioSource: {fileID: 0}
|
|
||||||
audioBuffer: []
|
|
||||||
isRunning: 1
|
|
||||||
--- !u!4 &455467291
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 455467288}
|
|
||||||
serializedVersion: 2
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 253.16292, y: 149.09415, z: -2.2723875}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!1 &708549044
|
--- !u!1 &708549044
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -314,6 +263,85 @@ Transform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 730321749}
|
||||||
|
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
|
--- !u!1 &730321748
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -324,7 +352,6 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 730321749}
|
- component: {fileID: 730321749}
|
||||||
- component: {fileID: 730321752}
|
- component: {fileID: 730321752}
|
||||||
- component: {fileID: 730321751}
|
|
||||||
- component: {fileID: 730321753}
|
- component: {fileID: 730321753}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: video
|
m_Name: video
|
||||||
@ -332,7 +359,7 @@ GameObject:
|
|||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 0
|
m_IsActive: 1
|
||||||
--- !u!224 &730321749
|
--- !u!224 &730321749
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -342,9 +369,11 @@ RectTransform:
|
|||||||
m_GameObject: {fileID: 730321748}
|
m_GameObject: {fileID: 730321748}
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: -1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children:
|
||||||
|
- {fileID: 2100984176}
|
||||||
|
- {fileID: 723385292}
|
||||||
m_Father: {fileID: 786008058}
|
m_Father: {fileID: 786008058}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
@ -352,33 +381,6 @@ RectTransform:
|
|||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!114 &730321751
|
|
||||||
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: 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: 0}
|
|
||||||
m_UVRect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
width: 1
|
|
||||||
height: 1
|
|
||||||
--- !u!222 &730321752
|
--- !u!222 &730321752
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -399,7 +401,8 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: f2632911774df3c488ec24b39651c4de, type: 3}
|
m_Script: {fileID: 11500000, guid: f2632911774df3c488ec24b39651c4de, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_image: {fileID: 730321751}
|
m_drawCanvas: {fileID: 2100984177}
|
||||||
|
m_fpsText: {fileID: 723385293}
|
||||||
--- !u!1 &786008057
|
--- !u!1 &786008057
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -809,6 +812,78 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_as: {fileID: 1379369699}
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 730321749}
|
||||||
|
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: 0}
|
||||||
|
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
|
||||||
--- !u!1660057539 &9223372036854775807
|
--- !u!1660057539 &9223372036854775807
|
||||||
SceneRoots:
|
SceneRoots:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -817,4 +892,3 @@ SceneRoots:
|
|||||||
- {fileID: 708549046}
|
- {fileID: 708549046}
|
||||||
- {fileID: 258485947}
|
- {fileID: 258485947}
|
||||||
- {fileID: 1359344834}
|
- {fileID: 1359344834}
|
||||||
- {fileID: 455467291}
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
using MyNes.Core;
|
using MyNes.Core;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -20,8 +22,10 @@ namespace AxibugEmuOnline.Client
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private AudioSource m_as;
|
private AudioSource m_as;
|
||||||
|
|
||||||
|
private Stopwatch sw = Stopwatch.StartNew();
|
||||||
|
private Queue<short> _buffer = new Queue<short>(2048);
|
||||||
|
|
||||||
private Queue<short> _buffer = new Queue<short>();
|
public double FPS { get; private set; }
|
||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
@ -34,35 +38,34 @@ namespace AxibugEmuOnline.Client
|
|||||||
m_as.Play();
|
m_as.Play();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float lastData = 0;
|
||||||
void OnAudioFilterRead(float[] data, int channels)
|
void OnAudioFilterRead(float[] data, int channels)
|
||||||
{
|
{
|
||||||
while (_buffer.Count >= data.Length / 2)
|
|
||||||
{
|
|
||||||
//Thread.Sleep(10);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
int step = channels;
|
int step = channels;
|
||||||
for (int i = 0; i < data.Length; i += step)
|
for (int i = 0; i < data.Length; i += step)
|
||||||
{
|
{
|
||||||
var rawData = _buffer.Count > 0 ? _buffer.Dequeue() : 0;
|
var rawFloat = _buffer.Count <= 0 ? lastData : _buffer.Dequeue() / 124f;
|
||||||
var rawFloat = rawData / 124f;
|
|
||||||
data[i] = rawFloat;
|
data[i] = rawFloat;
|
||||||
for (int fill = 1; fill < step; fill++)
|
for (int fill = 1; fill < step; fill++)
|
||||||
data[i + fill] = rawFloat;
|
data[i + fill] = rawFloat;
|
||||||
}
|
|
||||||
|
|
||||||
|
lastData = rawFloat;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int EmuAudioTimeSample = 0;
|
private TimeSpan lastElapsed;
|
||||||
public void SubmitSamples(ref short[] buffer, ref int samples_a)
|
public void SubmitSamples(ref short[] buffer, ref int samples_a)
|
||||||
{
|
{
|
||||||
EmuAudioTimeSample += samples_a;
|
var current = sw.Elapsed;
|
||||||
|
var delta = current - lastElapsed;
|
||||||
|
lastElapsed = current;
|
||||||
|
|
||||||
|
FPS = 1d / delta.TotalSeconds;
|
||||||
|
|
||||||
for (int i = 0; i < samples_a; i++)
|
for (int i = 0; i < samples_a; i++)
|
||||||
{
|
{
|
||||||
_buffer.Enqueue(buffer[i]);
|
_buffer.Enqueue(buffer[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TogglePause(bool paused)
|
public void TogglePause(bool paused)
|
||||||
|
@ -15,17 +15,21 @@ namespace AxibugEmuOnline.Client
|
|||||||
|
|
||||||
public string ID => nameof(UguiVideoProvider).GetHashCode().ToString();
|
public string ID => nameof(UguiVideoProvider).GetHashCode().ToString();
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private RawImage m_drawCanvas;
|
||||||
|
[SerializeField]
|
||||||
|
private Text m_fpsText;
|
||||||
|
|
||||||
private Color[] m_texRawBuffer = new Color[256 * 240];
|
private Color[] m_texRawBuffer = new Color[256 * 240];
|
||||||
private Texture2D m_rawBufferWarper;
|
private Texture2D m_rawBufferWarper;
|
||||||
[SerializeField]
|
|
||||||
private RawImage m_image;
|
|
||||||
private RenderTexture m_drawRT;
|
private RenderTexture m_drawRT;
|
||||||
private Color temp = Color.white;
|
private Color temp = Color.white;
|
||||||
|
|
||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
m_rawBufferWarper = new Texture2D(256, 240);
|
m_rawBufferWarper = new Texture2D(256, 240);
|
||||||
m_image.texture = RenderTexture.GetTemporary(256, 240, 0, UnityEngine.Experimental.Rendering.GraphicsFormat.B8G8R8A8_UNorm);
|
m_drawCanvas.texture = RenderTexture.GetTemporary(256, 240, 0, UnityEngine.Experimental.Rendering.GraphicsFormat.B8G8R8A8_UNorm);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void GetColor(uint value, ref Color res)
|
public void GetColor(uint value, ref Color res)
|
||||||
@ -45,7 +49,9 @@ namespace AxibugEmuOnline.Client
|
|||||||
var colors = m_texRawBuffer;
|
var colors = m_texRawBuffer;
|
||||||
m_rawBufferWarper.SetPixels(colors);
|
m_rawBufferWarper.SetPixels(colors);
|
||||||
m_rawBufferWarper.Apply();
|
m_rawBufferWarper.Apply();
|
||||||
Graphics.Blit(m_rawBufferWarper, m_image.texture as RenderTexture);
|
Graphics.Blit(m_rawBufferWarper, m_drawCanvas.texture as RenderTexture);
|
||||||
|
|
||||||
|
m_fpsText.text = $"Audio:{NesCoreProxy.Instance.AudioCom.FPS}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public void WriteErrorNotification(string message, bool instant)
|
public void WriteErrorNotification(string message, bool instant)
|
||||||
|
@ -7,10 +7,15 @@ namespace AxibugEmuOnline.Client.Manager
|
|||||||
{
|
{
|
||||||
public class AppEmu : IFileManager
|
public class AppEmu : IFileManager
|
||||||
{
|
{
|
||||||
public void Init(IVideoProvider videoCom,IAudioProvider audioCom)
|
public void Init(IVideoProvider videoCom, IAudioProvider audioCom)
|
||||||
{
|
{
|
||||||
MyNesMain.Initialize(this, videoCom, audioCom);
|
MyNesMain.Initialize(this, videoCom, audioCom);
|
||||||
NesEmu.LoadGame("E:/kirby.nes", out var successed, true);
|
NesEmu.LoadGame("kirby.nes", out var successed, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ExecuteFrameLogic()
|
||||||
|
{
|
||||||
|
//NesEmu.ExecuteOneFrame();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
@ -36,5 +41,12 @@ namespace AxibugEmuOnline.Client.Manager
|
|||||||
{
|
{
|
||||||
return $"{Application.persistentDataPath}/MyNes";
|
return $"{Application.persistentDataPath}/MyNes";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Stream OpenRomFile(string path)
|
||||||
|
{
|
||||||
|
var ta = Resources.Load<TextAsset>($"Roms/{path}");
|
||||||
|
MemoryStream ms = new MemoryStream(ta.bytes);
|
||||||
|
return ms;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,11 @@ namespace AxibugEmuOnline.Client
|
|||||||
m_appEnum.Init(VideoCom, AudioCom);
|
m_appEnum.Init(VideoCom, AudioCom);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
m_appEnum.ExecuteFrameLogic();
|
||||||
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
Instance = null;
|
Instance = null;
|
||||||
|
@ -155,13 +155,18 @@ PlayerSettings:
|
|||||||
useHDRDisplay: 0
|
useHDRDisplay: 0
|
||||||
hdrBitDepth: 0
|
hdrBitDepth: 0
|
||||||
m_ColorGamuts: 00000000
|
m_ColorGamuts: 00000000
|
||||||
targetPixelDensity: 0
|
targetPixelDensity: 30
|
||||||
resolutionScalingMode: 0
|
resolutionScalingMode: 0
|
||||||
resetResolutionOnWindowResize: 0
|
resetResolutionOnWindowResize: 0
|
||||||
androidSupportedAspectRatio: 1
|
androidSupportedAspectRatio: 1
|
||||||
androidMaxAspectRatio: 2.1
|
androidMaxAspectRatio: 2.1
|
||||||
applicationIdentifier: {}
|
applicationIdentifier:
|
||||||
buildNumber: {}
|
Standalone: com.DefaultCompany.AxibugEmuOnline.Client
|
||||||
|
buildNumber:
|
||||||
|
Standalone: 0
|
||||||
|
VisionOS: 0
|
||||||
|
iPhone: 0
|
||||||
|
tvOS: 0
|
||||||
overrideDefaultApplicationIdentifier: 0
|
overrideDefaultApplicationIdentifier: 0
|
||||||
AndroidBundleVersionCode: 1
|
AndroidBundleVersionCode: 1
|
||||||
AndroidMinSdkVersion: 22
|
AndroidMinSdkVersion: 22
|
||||||
@ -180,12 +185,12 @@ PlayerSettings:
|
|||||||
strictShaderVariantMatching: 0
|
strictShaderVariantMatching: 0
|
||||||
VertexChannelCompressionMask: 4054
|
VertexChannelCompressionMask: 4054
|
||||||
iPhoneSdkVersion: 988
|
iPhoneSdkVersion: 988
|
||||||
iOSTargetOSVersionString:
|
iOSTargetOSVersionString: 12.0
|
||||||
tvOSSdkVersion: 0
|
tvOSSdkVersion: 0
|
||||||
tvOSRequireExtendedGameController: 0
|
tvOSRequireExtendedGameController: 0
|
||||||
tvOSTargetOSVersionString:
|
tvOSTargetOSVersionString: 12.0
|
||||||
VisionOSSdkVersion: 0
|
VisionOSSdkVersion: 0
|
||||||
VisionOSTargetOSVersionString:
|
VisionOSTargetOSVersionString: 1.0
|
||||||
uIPrerenderedIcon: 0
|
uIPrerenderedIcon: 0
|
||||||
uIRequiresPersistentWiFi: 0
|
uIRequiresPersistentWiFi: 0
|
||||||
uIRequiresFullScreen: 1
|
uIRequiresFullScreen: 1
|
||||||
@ -313,7 +318,7 @@ PlayerSettings:
|
|||||||
locationUsageDescription:
|
locationUsageDescription:
|
||||||
microphoneUsageDescription:
|
microphoneUsageDescription:
|
||||||
bluetoothUsageDescription:
|
bluetoothUsageDescription:
|
||||||
macOSTargetOSVersion:
|
macOSTargetOSVersion: 10.13.0
|
||||||
switchNMETAOverride:
|
switchNMETAOverride:
|
||||||
switchNetLibKey:
|
switchNetLibKey:
|
||||||
switchSocketMemoryPoolSize: 6144
|
switchSocketMemoryPoolSize: 6144
|
||||||
@ -563,7 +568,8 @@ PlayerSettings:
|
|||||||
scriptingDefineSymbols: {}
|
scriptingDefineSymbols: {}
|
||||||
additionalCompilerArguments: {}
|
additionalCompilerArguments: {}
|
||||||
platformArchitecture: {}
|
platformArchitecture: {}
|
||||||
scriptingBackend: {}
|
scriptingBackend:
|
||||||
|
Standalone: 1
|
||||||
il2cppCompilerConfiguration: {}
|
il2cppCompilerConfiguration: {}
|
||||||
il2cppCodeGeneration: {}
|
il2cppCodeGeneration: {}
|
||||||
managedStrippingLevel: {}
|
managedStrippingLevel: {}
|
||||||
@ -651,7 +657,7 @@ PlayerSettings:
|
|||||||
embeddedLinuxEnableGamepadInput: 1
|
embeddedLinuxEnableGamepadInput: 1
|
||||||
hmiLogStartupTiming: 0
|
hmiLogStartupTiming: 0
|
||||||
hmiCpuConfiguration:
|
hmiCpuConfiguration:
|
||||||
apiCompatibilityLevel: 6
|
apiCompatibilityLevel: 3
|
||||||
activeInputHandler: 0
|
activeInputHandler: 0
|
||||||
windowsGamepadBackendHint: 0
|
windowsGamepadBackendHint: 0
|
||||||
cloudProjectId:
|
cloudProjectId:
|
||||||
|
@ -19,7 +19,7 @@ MonoBehaviour:
|
|||||||
width: 1920
|
width: 1920
|
||||||
height: 989
|
height: 989
|
||||||
m_ShowMode: 4
|
m_ShowMode: 4
|
||||||
m_Title: Console
|
m_Title: Hierarchy
|
||||||
m_RootView: {fileID: 9}
|
m_RootView: {fileID: 9}
|
||||||
m_MinSize: {x: 875, y: 300}
|
m_MinSize: {x: 875, y: 300}
|
||||||
m_MaxSize: {x: 10000, y: 10000}
|
m_MaxSize: {x: 10000, y: 10000}
|
||||||
@ -41,7 +41,7 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 580
|
y: 580
|
||||||
width: 1175
|
width: 1174
|
||||||
height: 359
|
height: 359
|
||||||
m_MinSize: {x: 101, y: 121}
|
m_MinSize: {x: 101, y: 121}
|
||||||
m_MaxSize: {x: 4001, y: 4021}
|
m_MaxSize: {x: 4001, y: 4021}
|
||||||
@ -70,12 +70,12 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 0
|
y: 0
|
||||||
width: 1175
|
width: 1174
|
||||||
height: 939
|
height: 939
|
||||||
m_MinSize: {x: 100, y: 100}
|
m_MinSize: {x: 100, y: 100}
|
||||||
m_MaxSize: {x: 8096, y: 16192}
|
m_MaxSize: {x: 8096, y: 16192}
|
||||||
vertical: 1
|
vertical: 1
|
||||||
controlID: 16
|
controlID: 41
|
||||||
--- !u!114 &4
|
--- !u!114 &4
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 52
|
m_ObjectHideFlags: 52
|
||||||
@ -93,7 +93,7 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 579
|
y: 579
|
||||||
width: 417
|
width: 418
|
||||||
height: 360
|
height: 360
|
||||||
m_MinSize: {x: 232, y: 271}
|
m_MinSize: {x: 232, y: 271}
|
||||||
m_MaxSize: {x: 10002, y: 10021}
|
m_MaxSize: {x: 10002, y: 10021}
|
||||||
@ -119,14 +119,14 @@ MonoBehaviour:
|
|||||||
- {fileID: 4}
|
- {fileID: 4}
|
||||||
m_Position:
|
m_Position:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 1175
|
x: 1174
|
||||||
y: 0
|
y: 0
|
||||||
width: 417
|
width: 418
|
||||||
height: 939
|
height: 939
|
||||||
m_MinSize: {x: 100, y: 100}
|
m_MinSize: {x: 100, y: 100}
|
||||||
m_MaxSize: {x: 8096, y: 16192}
|
m_MaxSize: {x: 8096, y: 16192}
|
||||||
vertical: 1
|
vertical: 1
|
||||||
controlID: 77
|
controlID: 100
|
||||||
--- !u!114 &6
|
--- !u!114 &6
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 52
|
m_ObjectHideFlags: 52
|
||||||
@ -144,10 +144,10 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 0
|
y: 0
|
||||||
width: 417
|
width: 418
|
||||||
height: 579
|
height: 579
|
||||||
m_MinSize: {x: 200, y: 200}
|
m_MinSize: {x: 202, y: 221}
|
||||||
m_MaxSize: {x: 4000, y: 4000}
|
m_MaxSize: {x: 4002, y: 4021}
|
||||||
m_ActualView: {fileID: 16}
|
m_ActualView: {fileID: 16}
|
||||||
m_Panes:
|
m_Panes:
|
||||||
- {fileID: 16}
|
- {fileID: 16}
|
||||||
@ -177,7 +177,7 @@ MonoBehaviour:
|
|||||||
m_MinSize: {x: 300, y: 100}
|
m_MinSize: {x: 300, y: 100}
|
||||||
m_MaxSize: {x: 24288, y: 16192}
|
m_MaxSize: {x: 24288, y: 16192}
|
||||||
vertical: 0
|
vertical: 0
|
||||||
controlID: 140
|
controlID: 139
|
||||||
--- !u!114 &8
|
--- !u!114 &8
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 52
|
m_ObjectHideFlags: 52
|
||||||
@ -197,8 +197,8 @@ MonoBehaviour:
|
|||||||
y: 0
|
y: 0
|
||||||
width: 328
|
width: 328
|
||||||
height: 939
|
height: 939
|
||||||
m_MinSize: {x: 275, y: 50}
|
m_MinSize: {x: 276, y: 71}
|
||||||
m_MaxSize: {x: 4000, y: 4000}
|
m_MaxSize: {x: 4001, y: 4021}
|
||||||
m_ActualView: {fileID: 15}
|
m_ActualView: {fileID: 15}
|
||||||
m_Panes:
|
m_Panes:
|
||||||
- {fileID: 15}
|
- {fileID: 15}
|
||||||
@ -299,7 +299,7 @@ MonoBehaviour:
|
|||||||
m_MinSize: {x: 200, y: 100}
|
m_MinSize: {x: 200, y: 100}
|
||||||
m_MaxSize: {x: 16192, y: 16192}
|
m_MaxSize: {x: 16192, y: 16192}
|
||||||
vertical: 0
|
vertical: 0
|
||||||
controlID: 76
|
controlID: 99
|
||||||
--- !u!114 &13
|
--- !u!114 &13
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 52
|
m_ObjectHideFlags: 52
|
||||||
@ -317,7 +317,7 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 0
|
y: 0
|
||||||
width: 1175
|
width: 1174
|
||||||
height: 580
|
height: 580
|
||||||
m_MinSize: {x: 201, y: 221}
|
m_MinSize: {x: 201, y: 221}
|
||||||
m_MaxSize: {x: 4001, y: 4021}
|
m_MaxSize: {x: 4001, y: 4021}
|
||||||
@ -346,9 +346,9 @@ MonoBehaviour:
|
|||||||
m_Tooltip:
|
m_Tooltip:
|
||||||
m_Pos:
|
m_Pos:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 1175
|
x: 1174
|
||||||
y: 652
|
y: 652
|
||||||
width: 415
|
width: 416
|
||||||
height: 339
|
height: 339
|
||||||
m_SerializedDataModeController:
|
m_SerializedDataModeController:
|
||||||
m_DataMode: 0
|
m_DataMode: 0
|
||||||
@ -371,7 +371,7 @@ MonoBehaviour:
|
|||||||
m_SkipHidden: 0
|
m_SkipHidden: 0
|
||||||
m_SearchArea: 1
|
m_SearchArea: 1
|
||||||
m_Folders:
|
m_Folders:
|
||||||
- Assets
|
- Assets/Script/Emu
|
||||||
m_Globs: []
|
m_Globs: []
|
||||||
m_OriginalText:
|
m_OriginalText:
|
||||||
m_ImportLogFlags: 0
|
m_ImportLogFlags: 0
|
||||||
@ -379,16 +379,16 @@ MonoBehaviour:
|
|||||||
m_ViewMode: 1
|
m_ViewMode: 1
|
||||||
m_StartGridSize: 16
|
m_StartGridSize: 16
|
||||||
m_LastFolders:
|
m_LastFolders:
|
||||||
- Assets
|
- Assets/Script/Emu
|
||||||
m_LastFoldersGridSize: 16
|
m_LastFoldersGridSize: 16
|
||||||
m_LastProjectPath: E:\AxibugEmuOnline\AxibugEmuOnline.Client
|
m_LastProjectPath: E:\AxibugEmuOnline\AxibugEmuOnline.Client
|
||||||
m_LockTracker:
|
m_LockTracker:
|
||||||
m_IsLocked: 0
|
m_IsLocked: 0
|
||||||
m_FolderTreeState:
|
m_FolderTreeState:
|
||||||
scrollPos: {x: 0, y: 0}
|
scrollPos: {x: 0, y: 0}
|
||||||
m_SelectedIDs: 56410000
|
m_SelectedIDs: 38610000
|
||||||
m_LastClickedID: 16726
|
m_LastClickedID: 24888
|
||||||
m_ExpandedIDs: 00000000564100006c41000000ca9a3b
|
m_ExpandedIDs: 00000000645f0000a25f000000ca9a3b
|
||||||
m_RenameOverlay:
|
m_RenameOverlay:
|
||||||
m_UserAcceptedRename: 0
|
m_UserAcceptedRename: 0
|
||||||
m_Name:
|
m_Name:
|
||||||
@ -416,7 +416,7 @@ MonoBehaviour:
|
|||||||
scrollPos: {x: 0, y: 0}
|
scrollPos: {x: 0, y: 0}
|
||||||
m_SelectedIDs:
|
m_SelectedIDs:
|
||||||
m_LastClickedID: 0
|
m_LastClickedID: 0
|
||||||
m_ExpandedIDs: 0000000056410000
|
m_ExpandedIDs: 00000000645f0000
|
||||||
m_RenameOverlay:
|
m_RenameOverlay:
|
||||||
m_UserAcceptedRename: 0
|
m_UserAcceptedRename: 0
|
||||||
m_Name:
|
m_Name:
|
||||||
@ -443,7 +443,7 @@ MonoBehaviour:
|
|||||||
m_ListAreaState:
|
m_ListAreaState:
|
||||||
m_SelectedInstanceIDs:
|
m_SelectedInstanceIDs:
|
||||||
m_LastClickedInstanceID: 0
|
m_LastClickedInstanceID: 0
|
||||||
m_HadKeyboardFocusLastEvent: 0
|
m_HadKeyboardFocusLastEvent: 1
|
||||||
m_ExpandedInstanceIDs: c6230000
|
m_ExpandedInstanceIDs: c6230000
|
||||||
m_RenameOverlay:
|
m_RenameOverlay:
|
||||||
m_UserAcceptedRename: 0
|
m_UserAcceptedRename: 0
|
||||||
@ -539,9 +539,9 @@ MonoBehaviour:
|
|||||||
m_Tooltip:
|
m_Tooltip:
|
||||||
m_Pos:
|
m_Pos:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 1175
|
x: 1174
|
||||||
y: 73
|
y: 73
|
||||||
width: 415
|
width: 416
|
||||||
height: 558
|
height: 558
|
||||||
m_SerializedDataModeController:
|
m_SerializedDataModeController:
|
||||||
m_DataMode: 0
|
m_DataMode: 0
|
||||||
@ -558,7 +558,7 @@ MonoBehaviour:
|
|||||||
scrollPos: {x: 0, y: 0}
|
scrollPos: {x: 0, y: 0}
|
||||||
m_SelectedIDs:
|
m_SelectedIDs:
|
||||||
m_LastClickedID: 0
|
m_LastClickedID: 0
|
||||||
m_ExpandedIDs: 40fbffff
|
m_ExpandedIDs: dae5ffff24fbfffffe5e00000a5f0000145f0000
|
||||||
m_RenameOverlay:
|
m_RenameOverlay:
|
||||||
m_UserAcceptedRename: 0
|
m_UserAcceptedRename: 0
|
||||||
m_Name:
|
m_Name:
|
||||||
@ -604,7 +604,7 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 653
|
y: 653
|
||||||
width: 1172
|
width: 1174
|
||||||
height: 338
|
height: 338
|
||||||
m_SerializedDataModeController:
|
m_SerializedDataModeController:
|
||||||
m_DataMode: 0
|
m_DataMode: 0
|
||||||
@ -1050,14 +1050,14 @@ MonoBehaviour:
|
|||||||
m_OverrideSceneCullingMask: 6917529027641081856
|
m_OverrideSceneCullingMask: 6917529027641081856
|
||||||
m_SceneIsLit: 1
|
m_SceneIsLit: 1
|
||||||
m_SceneLighting: 1
|
m_SceneLighting: 1
|
||||||
m_2DMode: 0
|
m_2DMode: 1
|
||||||
m_isRotationLocked: 0
|
m_isRotationLocked: 0
|
||||||
m_PlayAudio: 0
|
m_PlayAudio: 0
|
||||||
m_AudioPlay: 0
|
m_AudioPlay: 0
|
||||||
m_Position:
|
m_Position:
|
||||||
m_Target: {x: 0, y: 0, z: 0}
|
m_Target: {x: 253.16292, y: 149.09415, z: -2.2723875}
|
||||||
speed: 2
|
speed: 2
|
||||||
m_Value: {x: 0, y: 0, z: 0}
|
m_Value: {x: 253.16292, y: 149.09415, z: -2.2723875}
|
||||||
m_RenderMode: 0
|
m_RenderMode: 0
|
||||||
m_CameraMode:
|
m_CameraMode:
|
||||||
drawMode: 0
|
drawMode: 0
|
||||||
@ -1085,17 +1085,17 @@ MonoBehaviour:
|
|||||||
m_Size: {x: 0, y: 0}
|
m_Size: {x: 0, y: 0}
|
||||||
yGrid:
|
yGrid:
|
||||||
m_Fade:
|
m_Fade:
|
||||||
m_Target: 1
|
m_Target: 0
|
||||||
speed: 2
|
speed: 2
|
||||||
m_Value: 1
|
m_Value: 0
|
||||||
m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4}
|
m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4}
|
||||||
m_Pivot: {x: 0, y: 0, z: 0}
|
m_Pivot: {x: 0, y: 0, z: 0}
|
||||||
m_Size: {x: 1, y: 1}
|
m_Size: {x: 1, y: 1}
|
||||||
zGrid:
|
zGrid:
|
||||||
m_Fade:
|
m_Fade:
|
||||||
m_Target: 0
|
m_Target: 1
|
||||||
speed: 2
|
speed: 2
|
||||||
m_Value: 0
|
m_Value: 1
|
||||||
m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4}
|
m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4}
|
||||||
m_Pivot: {x: 0, y: 0, z: 0}
|
m_Pivot: {x: 0, y: 0, z: 0}
|
||||||
m_Size: {x: 1, y: 1}
|
m_Size: {x: 1, y: 1}
|
||||||
@ -1103,17 +1103,17 @@ MonoBehaviour:
|
|||||||
m_GridAxis: 1
|
m_GridAxis: 1
|
||||||
m_gridOpacity: 0.5
|
m_gridOpacity: 0.5
|
||||||
m_Rotation:
|
m_Rotation:
|
||||||
m_Target: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226}
|
m_Target: {x: 0, y: 0, z: 0, w: 1}
|
||||||
speed: 2
|
speed: 2
|
||||||
m_Value: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226}
|
m_Value: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_Size:
|
m_Size:
|
||||||
m_Target: 10
|
m_Target: 260.2281
|
||||||
speed: 2
|
speed: 2
|
||||||
m_Value: 10
|
m_Value: 260.2281
|
||||||
m_Ortho:
|
m_Ortho:
|
||||||
m_Target: 0
|
m_Target: 1
|
||||||
speed: 2
|
speed: 2
|
||||||
m_Value: 0
|
m_Value: 1
|
||||||
m_CameraSettings:
|
m_CameraSettings:
|
||||||
m_Speed: 1
|
m_Speed: 1
|
||||||
m_SpeedNormalized: 0.5
|
m_SpeedNormalized: 0.5
|
||||||
@ -1156,7 +1156,7 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 73
|
y: 73
|
||||||
width: 1174
|
width: 1173
|
||||||
height: 559
|
height: 559
|
||||||
m_SerializedDataModeController:
|
m_SerializedDataModeController:
|
||||||
m_DataMode: 0
|
m_DataMode: 0
|
||||||
@ -1174,7 +1174,7 @@ MonoBehaviour:
|
|||||||
m_ShowGizmos: 0
|
m_ShowGizmos: 0
|
||||||
m_TargetDisplay: 0
|
m_TargetDisplay: 0
|
||||||
m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
|
m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
|
||||||
m_TargetSize: {x: 1174, y: 538}
|
m_TargetSize: {x: 1173, y: 538}
|
||||||
m_TextureFilterMode: 0
|
m_TextureFilterMode: 0
|
||||||
m_TextureHideFlags: 61
|
m_TextureHideFlags: 61
|
||||||
m_RenderIMGUI: 1
|
m_RenderIMGUI: 1
|
||||||
@ -1189,8 +1189,8 @@ MonoBehaviour:
|
|||||||
m_VRangeLocked: 0
|
m_VRangeLocked: 0
|
||||||
hZoomLockedByDefault: 0
|
hZoomLockedByDefault: 0
|
||||||
vZoomLockedByDefault: 0
|
vZoomLockedByDefault: 0
|
||||||
m_HBaseRangeMin: -587
|
m_HBaseRangeMin: -586.5
|
||||||
m_HBaseRangeMax: 587
|
m_HBaseRangeMax: 586.5
|
||||||
m_VBaseRangeMin: -269
|
m_VBaseRangeMin: -269
|
||||||
m_VBaseRangeMax: 269
|
m_VBaseRangeMax: 269
|
||||||
m_HAllowExceedBaseRangeMin: 1
|
m_HAllowExceedBaseRangeMin: 1
|
||||||
@ -1210,23 +1210,23 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 21
|
y: 21
|
||||||
width: 1174
|
width: 1173
|
||||||
height: 538
|
height: 538
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Translation: {x: 587, y: 269}
|
m_Translation: {x: 586.5, y: 269}
|
||||||
m_MarginLeft: 0
|
m_MarginLeft: 0
|
||||||
m_MarginRight: 0
|
m_MarginRight: 0
|
||||||
m_MarginTop: 0
|
m_MarginTop: 0
|
||||||
m_MarginBottom: 0
|
m_MarginBottom: 0
|
||||||
m_LastShownAreaInsideMargins:
|
m_LastShownAreaInsideMargins:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: -587
|
x: -586.5
|
||||||
y: -269
|
y: -269
|
||||||
width: 1174
|
width: 1173
|
||||||
height: 538
|
height: 538
|
||||||
m_MinimalGUI: 1
|
m_MinimalGUI: 1
|
||||||
m_defaultScale: 1
|
m_defaultScale: 1
|
||||||
m_LastWindowPixelSize: {x: 1174, y: 559}
|
m_LastWindowPixelSize: {x: 1173, y: 559}
|
||||||
m_ClearInEditMode: 1
|
m_ClearInEditMode: 1
|
||||||
m_NoCameraWarning: 1
|
m_NoCameraWarning: 1
|
||||||
m_LowResolutionForAspectRatios: 01000001000000000000
|
m_LowResolutionForAspectRatios: 01000001000000000000
|
||||||
@ -1254,7 +1254,7 @@ MonoBehaviour:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
x: 0
|
x: 0
|
||||||
y: 653
|
y: 653
|
||||||
width: 1174
|
width: 1173
|
||||||
height: 338
|
height: 338
|
||||||
m_SerializedDataModeController:
|
m_SerializedDataModeController:
|
||||||
m_DataMode: 0
|
m_DataMode: 0
|
||||||
|
35
etc/haoyue_emu.sql
Normal file
35
etc/haoyue_emu.sql
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
Navicat Premium Data Transfer
|
||||||
|
|
||||||
|
Source Server : localhost_3306
|
||||||
|
Source Server Type : MariaDB
|
||||||
|
Source Server Version : 100311
|
||||||
|
Source Host : localhost:3306
|
||||||
|
Source Schema : haoyue_emu
|
||||||
|
|
||||||
|
Target Server Type : MariaDB
|
||||||
|
Target Server Version : 100311
|
||||||
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 16/07/2024 10:56:10
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for romlist_nes
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `romlist_nes`;
|
||||||
|
CREATE TABLE `romlist_nes` (
|
||||||
|
`Id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
|
`Name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
|
`RomUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
|
`ImgUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
|
`GameType` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
|
`Note` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
|
`Hash` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`Id`) USING BTREE
|
||||||
|
) ENGINE = MyISAM AUTO_INCREMENT = 2702 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
Loading…
Reference in New Issue
Block a user