//[HlePspNotImplemented] public int sceDisplaySetFrameBuf(uint Address, int BufferWidth, GuPixelFormats PixelFormat, PspDisplay.SyncMode Sync) { Action UpdateInfo = () => { PspDisplay.CurrentInfo.Enabled = (Address != 0); if (PspDisplay.CurrentInfo.Enabled) { PspDisplay.CurrentInfo.FrameAddress = Address; PspDisplay.CurrentInfo.BufferWidth = BufferWidth; PspDisplay.CurrentInfo.PixelFormat = PixelFormat; } }; switch (Sync) { case PspDisplay.SyncMode.Immediate: UpdateInfo(); break; case PspDisplay.SyncMode.NextFrame: ThreadManager.Current.SetWaitAndPrepareWakeUp(HleThread.WaitType.Display, "sceDisplaySetFrameBuf", null, (WakeUp) => { PspDisplay.VBlankCallbackOnce(() => { UpdateInfo(); WakeUp(); }); }, HandleCallbacks: false); break; default: throw(new NotImplementedException("Not implemented " + Sync)); } return(0); }
public int sceDisplaySetFrameBuf(uint Address, int BufferWidth, GuPixelFormats PixelFormat, PspDisplay.SyncMode Sync) { //Console.WriteLine("sceDisplay.sceDisplaySetFrameBuf {0:X},{1},{2},{3}", Address, BufferWidth, PixelFormat, Sync); PspDisplay.CurrentInfo.Address = Address; PspDisplay.CurrentInfo.BufferWidth = BufferWidth; PspDisplay.CurrentInfo.PixelFormat = PixelFormat; PspDisplay.CurrentInfo.Sync = Sync; return(0); }