public void ElfLoaderConstructorTest() { var PspConfig = new PspConfig(); var PspEmulatorContext = new PspEmulatorContext(PspConfig); PspEmulatorContext.SetInstanceType <PspMemory, LazyPspMemory>(); var Memory = PspEmulatorContext.GetInstance <PspMemory>(); var MemoryStream = new PspMemoryStream(Memory); var MemoryPartition = new MemoryPartition(PspMemory.MainOffset, PspMemory.MainOffset + PspMemory.MainSize); var ElfLoader = new ElfLoader(); ElfLoader.Load(File.OpenRead("../../../TestInput/minifire.elf")); ElfLoader.AllocateAndWrite(MemoryStream, MemoryPartition); Assert.AreEqual(1, ElfLoader.ProgramHeaders.Length); Assert.AreEqual(3, ElfLoader.SectionHeaders.Length); Assert.AreEqual( "['','.rodata.sceModuleInfo']".Replace('\'', '"'), ElfLoader.SectionHeadersByName.Keys.ToJson() ); //ElfLoader.LoadAllocateMemory(MemoryPartition); //ElfLoader.LoadWriteToMemory(MemoryStream); //var ModuleInfo = ElfLoader.ModuleInfo; var PC = ElfLoader.Header.EntryPoint; //var GP = ModuleInfo.GP; Assert.AreEqual(0x08900008, (int)PC); //Assert.AreEqual(0x00004821, (int)GP); }
public static void ClassInit(TestContext context) { PspConfig = new PspConfig(); PspEmulatorContext = new PspEmulatorContext(PspConfig); PspEmulatorContext.SetInstanceType <PspMemory, LazyPspMemory>(); Memory = PspEmulatorContext.GetInstance <PspMemory>(); }
public void ElfLoaderConstructorTest() { var PspConfig = new PspConfig(); var PspEmulatorContext = new PspEmulatorContext(PspConfig); PspEmulatorContext.SetInstanceType<PspMemory, LazyPspMemory>(); var Memory = PspEmulatorContext.GetInstance<PspMemory>(); var MemoryStream = new PspMemoryStream(Memory); var MemoryPartition = new MemoryPartition(PspMemory.MainOffset, PspMemory.MainOffset + PspMemory.MainSize); var ElfLoader = new ElfLoader(); ElfLoader.Load(File.OpenRead("../../../TestInput/minifire.elf")); ElfLoader.AllocateAndWrite(MemoryStream, MemoryPartition); Assert.AreEqual(1, ElfLoader.ProgramHeaders.Length); Assert.AreEqual(3, ElfLoader.SectionHeaders.Length); Assert.AreEqual( "['','.rodata.sceModuleInfo']".Replace('\'', '"'), ElfLoader.SectionHeadersByName.Keys.ToJson() ); //ElfLoader.LoadAllocateMemory(MemoryPartition); //ElfLoader.LoadWriteToMemory(MemoryStream); //var ModuleInfo = ElfLoader.ModuleInfo; var PC = ElfLoader.Header.EntryPoint; //var GP = ModuleInfo.GP; Assert.AreEqual(0x08900008, (int)PC); //Assert.AreEqual(0x00004821, (int)GP); }
/// <summary> /// /// </summary> public override void InitializeComponent() { this.Config = PspEmulatorContext.PspConfig; this.Memory = PspEmulatorContext.GetInstance <PspMemory>(); this.TextureCache = PspEmulatorContext.GetInstance <TextureCache>(); this.VertexReader = new VertexReader(); }
public override void InitializeComponent() { this.IsRunning = true; this.CpuProcessor = PspEmulatorContext.GetInstance <CpuProcessor>(); this.GpuProcessor = PspEmulatorContext.GetInstance <GpuProcessor>(); this.PspAudio = PspEmulatorContext.GetInstance <PspAudio>(); this.PspConfig = PspEmulatorContext.PspConfig; this.PspRtc = PspEmulatorContext.GetInstance <PspRtc>(); this.PspDisplay = PspEmulatorContext.GetInstance <PspDisplay>(); this.PspController = PspEmulatorContext.GetInstance <PspController>(); this.MipsEmiter = new MipsEmiter(); this.Kirk = new Kirk(); this.Kirk.kirk_init(); this.HleOutputHandler = PspEmulatorContext.GetInstance <HleOutputHandler>(); // @TODO FIX! New Instances!? this.ThreadManager = PspEmulatorContext.GetInstance <HleThreadManager>(); this.SemaphoreManager = PspEmulatorContext.GetInstance <HleSemaphoreManager>(); this.EventFlagManager = PspEmulatorContext.GetInstance <HleEventFlagManager>(); this.MemoryManager = new HleMemoryManager(this.CpuProcessor.Memory); this.ModuleManager = PspEmulatorContext.GetInstance <HleModuleManager>(); this.CallbackManager = PspEmulatorContext.GetInstance <HleCallbackManager>(); this.HleIoManager = PspEmulatorContext.GetInstance <HleIoManager>(); this.HleRegistryManager = PspEmulatorContext.GetInstance <HleRegistryManager>(); this.HleInterruptManager = PspEmulatorContext.GetInstance <HleInterruptManager>(); }
public static void ClassInit(TestContext context) { PspConfig = new PspConfig(); PspEmulatorContext = new PspEmulatorContext(PspConfig); PspEmulatorContext.SetInstanceType<PspMemory, LazyPspMemory>(); Memory = PspEmulatorContext.GetInstance<PspMemory>(); }
/// <summary> /// /// </summary> public override void InitializeComponent() { base.InitializeComponent(); this.Config = PspEmulatorContext.PspConfig; this.TextureCache = new TextureCacheOpengl(this.Memory, this); this.VertexReader = new VertexReader(); this.TextureCache = new TextureCacheOpengl(Memory, this); }
public void SetUp() { PspConfig = new PspConfig(); PspEmulatorContext = new PspEmulatorContext(PspConfig); PspEmulatorContext.SetInstanceType<PspMemory, LazyPspMemory>(); Processor = PspEmulatorContext.GetInstance<CpuProcessor>(); MipsAssembler = new MipsAssembler(new PspMemoryStream(PspEmulatorContext.GetInstance<PspMemory>())); }
public void SetUp() { PspConfig = new PspConfig(); PspEmulatorContext = new PspEmulatorContext(PspConfig); PspEmulatorContext.SetInstanceType <PspMemory, LazyPspMemory>(); Processor = PspEmulatorContext.GetInstance <CpuProcessor>(); MipsAssembler = new MipsAssembler(new PspMemoryStream(PspEmulatorContext.GetInstance <PspMemory>())); }
public override void InitializeComponent() { this.PspConfig = PspEmulatorContext.PspConfig; if (this.PspConfig.UseCoRoutines) { this.CoroutinePool = new CoroutinePool(); } else { } Reset(); }
public override void InitializeComponent() { this.PspConfig = PspEmulatorContext.PspConfig; if (this.PspConfig.UseCoRoutines) { this.CoroutinePool = new CoroutinePool(); } else { } NativeBreakpoints = new HashSet<uint>(); RegisteredNativeSyscalls = new Dictionary<int, Action<CpuThreadState, int>>(); IsRunning = true; }
public void SetUp() { PspConfig = new PspConfig(); PspConfig.HleModulesDll = Assembly.GetExecutingAssembly(); PspEmulatorContext = new PspEmulatorContext(PspConfig); PspEmulatorContext.SetInstanceType<PspMemory, LazyPspMemory>(); PspEmulatorContext.SetInstanceType<GpuImpl, GpuImplNull>(); PspEmulatorContext.SetInstanceType<PspAudioImpl, AudioImplNull>(); Memory = PspEmulatorContext.GetInstance<PspMemory>(); ThreadManager = PspEmulatorContext.GetInstance<HleThreadManager>(); Processor = PspEmulatorContext.GetInstance<CpuProcessor>(); MipsAssembler = new MipsAssembler(new PspMemoryStream(Memory)); }
static public void Init() { PspConfig = new PspConfig(); foreach (var _FileName in new[] { Path.GetDirectoryName(typeof(Program).Assembly.Location) + @"\CSPspEmu.Hle.Modules.dll", Application.ExecutablePath, }) { if (File.Exists(_FileName)) { PspConfig.HleModulesDll = Assembly.LoadFile(_FileName); break; } } }
public void CreateDelegateTest() { var PspConfig = new PspConfig(); var PspEmulatorContext = new PspEmulatorContext(PspConfig); PspEmulatorContext.SetInstanceType<PspMemory, LazyPspMemory>(); var Memory = PspEmulatorContext.GetInstance<PspMemory>(); var Processor = PspEmulatorContext.GetInstance<CpuProcessor>(); var CpuThreadState = new CpuThreadState(Processor); var MipsEmiter = new MipsMethodEmiter(new MipsEmiter(), Processor, 0); CpuThreadState.GPR[1] = 1; CpuThreadState.GPR[2] = 2; CpuThreadState.GPR[3] = 3; MipsEmiter.OP_3REG_Unsigned(1, 2, 2, () => { MipsEmiter.SafeILGenerator.BinaryOperation(SafeBinaryOperator.AdditionSigned); }); MipsEmiter.OP_3REG_Unsigned(0, 2, 2, () => { MipsEmiter.SafeILGenerator.BinaryOperation(SafeBinaryOperator.AdditionSigned); }); MipsEmiter.OP_2REG_IMM_Signed(10, 0, 1000, () => { MipsEmiter.SafeILGenerator.BinaryOperation(SafeBinaryOperator.AdditionSigned); }); MipsEmiter.CreateDelegate()(CpuThreadState); Assert.AreEqual(4, CpuThreadState.GPR[1]); Assert.AreEqual(0, CpuThreadState.GPR[0]); Assert.AreEqual(1000, CpuThreadState.GPR[10]); }
/// <summary> /// /// </summary> /// <param name="PspConfig"></param> /// <param name="Memory"></param> public override void InitializeComponent() { if (sizeof(GpuStateStruct) > sizeof(uint) * 512) { throw (new InvalidProgramException("GpuStateStruct too big. Maybe x64? . Size: " + sizeof(GpuStateStruct))); } this.PspConfig = PspEmulatorContext.PspConfig; this.Memory = PspEmulatorContext.GetInstance <PspMemory>(); this.GpuImpl = PspEmulatorContext.GetInstance <GpuImpl>(); this.DisplayListQueue = new LinkedList <GpuDisplayList>(); this.DisplayListFreeQueue = new Queue <GpuDisplayList>(); for (int n = 0; n < DisplayLists.Length; n++) { var DisplayList = new GpuDisplayList(Memory, this, n); this.DisplayLists[n] = DisplayList; //this.DisplayListFreeQueue.Enqueue(DisplayLists[n]); EnqueueFreeDisplayList(DisplayLists[n]); } }
public void CreateDelegateTest() { var PspConfig = new PspConfig(); var PspEmulatorContext = new PspEmulatorContext(PspConfig); PspEmulatorContext.SetInstanceType <PspMemory, LazyPspMemory>(); var Memory = PspEmulatorContext.GetInstance <PspMemory>(); var Processor = PspEmulatorContext.GetInstance <CpuProcessor>(); var CpuThreadState = new CpuThreadState(Processor); var MipsEmiter = new MipsMethodEmiter(new MipsEmiter(), Processor); CpuThreadState.GPR[1] = 1; CpuThreadState.GPR[2] = 2; CpuThreadState.GPR[3] = 3; MipsEmiter.OP_3REG_Unsigned(1, 2, 2, OpCodes.Add); MipsEmiter.OP_3REG_Unsigned(0, 2, 2, OpCodes.Add); MipsEmiter.OP_2REG_IMM_Signed(10, 0, 1000, OpCodes.Add); MipsEmiter.CreateDelegate()(CpuThreadState); Assert.AreEqual(4, CpuThreadState.GPR[1]); Assert.AreEqual(0, CpuThreadState.GPR[0]); Assert.AreEqual(1000, CpuThreadState.GPR[10]); }
/// <summary> /// /// </summary> public override void InitializeComponent() { this.Config = PspEmulatorContext.PspConfig; this.TextureCache.OpenglGpuImpl = this; this.VertexReader = new VertexReader(); }
public override void InitializeComponent() { this.PspConfig = PspEmulatorContext.PspConfig; this.Memory = PspEmulatorContext.GetInstance<PspMemory>(); Reset(); }
/// <summary> /// /// </summary> /// <param name="PspConfig"></param> /// <param name="Memory"></param> public override void InitializeComponent() { if (sizeof(GpuStateStruct) > sizeof(uint) * 512) { ConsoleUtils.SaveRestoreConsoleColor(ConsoleColor.Red, () => { Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); Console.WriteLine("GpuStateStruct too big. Maybe x64? . Size: " + sizeof(GpuStateStruct)); Console.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); }); } this.PspConfig = PspEmulatorContext.PspConfig; this.DisplayListQueue = new LinkedList<GpuDisplayList>(); this.DisplayListFreeQueue = new Queue<GpuDisplayList>(); for (int n = 0; n < DisplayLists.Length; n++) { var DisplayList = new GpuDisplayList(Memory, this, n); this.DisplayLists[n] = DisplayList; //this.DisplayListFreeQueue.Enqueue(DisplayLists[n]); EnqueueFreeDisplayList(DisplayLists[n]); } }
/// <summary> /// /// </summary> public override void InitializeComponent() { this.Config = PspEmulatorContext.PspConfig; this.Memory = PspEmulatorContext.GetInstance<PspMemory>(); this.TextureCache = PspEmulatorContext.GetInstance<TextureCache>(); this.VertexReader = new VertexReader(); }
/// <summary> /// /// </summary> /// <param name="PspConfig"></param> /// <param name="Memory"></param> public override void InitializeComponent() { if (sizeof(GpuStateStruct) > sizeof(uint) * 512) { throw (new InvalidProgramException("GpuStateStruct too big. Maybe x64? . Size: " + sizeof(GpuStateStruct))); } this.PspConfig = PspEmulatorContext.PspConfig; this.Memory = PspEmulatorContext.GetInstance<PspMemory>(); this.GpuImpl = PspEmulatorContext.GetInstance<GpuImpl>(); this.DisplayListQueue = new LinkedList<GpuDisplayList>(); this.DisplayListFreeQueue = new Queue<GpuDisplayList>(); for (int n = 0; n < DisplayLists.Length; n++) { var DisplayList = new GpuDisplayList(Memory, this, n); this.DisplayLists[n] = DisplayList; //this.DisplayListFreeQueue.Enqueue(DisplayLists[n]); EnqueueFreeDisplayList(DisplayLists[n]); } }
public override void InitializeComponent() { this.PspConfig = PspEmulatorContext.PspConfig; this.Memory = PspEmulatorContext.GetInstance <PspMemory>(); Reset(); }
/// <summary> /// Constructor. /// </summary> public PspEmulator() { PspConfig = new PspConfig(); }