public void CpuThreadStateTest() { var HlePspThread = new HleThread(PspEmulatorContext, new CpuThreadState(Processor)); MipsAssembler.Assemble(@" .code 0x08000000 li r31, 0x08000000 jal end nop end: addi r1, r1, 1 jr r31 nop "); HlePspThread.CpuThreadState.PC = 0x08000000; HlePspThread.Step(); }
public void CpuThreadStateBugTest() { var HlePspThread = new HleThread(new CpuThreadState(Processor)); MipsAssembler.Assemble(@" .code 0x08000000 li r31, 0x08000000 jal end nop end: jr r31 nop "); HlePspThread.CpuThreadState.PC = 0x08000000; Assert.Inconclusive(); Console.WriteLine("1"); HlePspThread.Step(); Console.WriteLine("2"); }
public void Execute(CpuThreadState FakeCpuThreadState) { var CpuProcessor = FakeCpuThreadState.CpuProcessor; if (CurrentFake == null) { CurrentFake = new HleThread(new CpuThreadState(CpuProcessor)); } CurrentFake.CpuThreadState.CopyRegistersFrom(FakeCpuThreadState); //HleCallback.SetArgumentsToCpuThreadState(CurrentFake.CpuThreadState); //CurrentFake.CpuThreadState.PC = HleCallback.Function; CurrentFake.CpuThreadState.RA = HleEmulatorSpecialAddresses.CODE_PTR_FINALIZE_CALLBACK; //Current.CpuThreadState.RA = 0; CpuProcessor.RunningCallback = true; while (CpuProcessor.RunningCallback) { //Console.WriteLine("AAAAAAA {0:X}", CurrentFake.CpuThreadState.PC); CurrentFake.Step(); } }