public void Run()
{
var CpuThreadState = new CpuThreadState(CpuProcessor);
var Dma = new Dma(CpuThreadState);
Console.SetWindowSize(120, 60);
Console.SetBufferSize(120, 8000);
var NandStream = File.OpenRead(NandPath);
var IplReader = new IplReader(new NandReader(NandStream));
var Info = IplReader.LoadIplToMemory(new PspMemoryStream(PspMemory));
uint StartPC = Info.EntryFunction;
var LLEState = new LLEState();
Dma.LLEState = LLEState;
LLEState.GPIO = new LleGPIO();
LLEState.NAND = new LleNAND(NandStream);
LLEState.Cpu = new LlePspCpu("CPU", InjectContext, CpuProcessor, StartPC);
LLEState.Me = new LlePspCpu("ME", InjectContext, CpuProcessor, StartPC);
LLEState.LleKirk = new LleKirk(PspMemory);
LLEState.Memory = PspMemory;
LLEState.Cpu.Start();
while (true) Thread.Sleep(int.MaxValue);
}