CSPspEmu.Hle.Modules.ge.sceGe_user.sceGeContinue C# (CSharp) Method

sceGeContinue() private method

private sceGeContinue ( ) : int
return int
        public int sceGeContinue()
        {
            var currentList = GpuProcessor.GetCurrentGpuDisplayList();
            if (currentList == null)
            {
                return 0;
            }

            if (currentList.Status.Value == DisplayListStatusEnum.Paused)
            {
                if (!GpuProcessor.IsBreak)
                {
                    if (currentList.Signal == SignalBehavior.PSP_GE_SIGNAL_HANDLER_PAUSE)
                    {
                        return unchecked((int)SceKernelErrors.ERROR_BUSY);
                    }

                    currentList.Status.SetValue(DisplayListStatusEnum.Drawing);
                    currentList.Signal = SignalBehavior.PSP_GE_SIGNAL_NONE;

                    // TODO Restore context of DL is necessary
                    // TODO Restore BASE

                    // We have a list now, so it's not complete.
                    //drawCompleteTicks = (u64) - 1;
                }
                else
                {
                    currentList.Status.SetValue(DisplayListStatusEnum.Queued);
                }
            }
            else if (currentList.Status.Value == DisplayListStatusEnum.Drawing)
            {
                if (SysMemUserForUser.sceKernelGetCompiledSdkVersion() >= 0x02000000)
                {
                    return unchecked((int)SceKernelErrors.ERROR_ALREADY);
                }
                return -1;
            }
            else
            {
                if (SysMemUserForUser.sceKernelGetCompiledSdkVersion() >= 0x02000000)
                {
                    return unchecked((int)0x80000004);
                }
                return -1;
            }

            //ProcessDLQueue();
            return 0;
        }