diff --git a/chip/pm4_me.pas b/chip/pm4_me.pas index 7f044ff7..18ef94cc 100644 --- a/chip/pm4_me.pas +++ b/chip/pm4_me.pas @@ -6,6 +6,7 @@ unit pm4_me; interface uses + sysutils, mqueue, LFQueue, @@ -182,6 +183,13 @@ begin GPU_REGS.CX_REG:=CX_REG; GPU_REGS.UC_REG:=UC_REG; + for i:=0 to 31 do + begin + Assert(CX_REG^.SPI_PS_INPUT_CNTL[i].OFFSET =0,'SPI_PS_INPUT_CNTL['+IntToStr(i)+']='+IntToStr(CX_REG^.SPI_PS_INPUT_CNTL[i].OFFSET )); + Assert(CX_REG^.SPI_PS_INPUT_CNTL[i].DEFAULT_VAL=0,'SPI_PS_INPUT_CNTL['+IntToStr(i)+']='+IntToStr(CX_REG^.SPI_PS_INPUT_CNTL[i].DEFAULT_VAL)); + Assert(CX_REG^.SPI_PS_INPUT_CNTL[i].FLAT_SHADE =0,'SPI_PS_INPUT_CNTL['+IntToStr(i)+']='+IntToStr(CX_REG^.SPI_PS_INPUT_CNTL[i].FLAT_SHADE )); + end; + {fdump_ps:=}DumpPS(GPU_REGS); {fdump_vs:=}DumpVS(GPU_REGS); diff --git a/gui/main.pas b/gui/main.pas index e22a4e20..5fbfcd73 100644 --- a/gui/main.pas +++ b/gui/main.pas @@ -432,36 +432,45 @@ begin FGameList.FGrid:=ListGrid; //load config - m:=nil; - JReader:=nil; - try - m:=TMemoryStream.Create; - m.LoadFromFile(fpps4File); - JReader:=TJSONStreamReader.Create(m,[joUTF8,joComments]); - JReader.Execute(FConfigInfo); - except - on E: Exception do - MessageDlgEx(E.Message,mtError,[mbOK],Self); + if FileExists(fpps4File) then + begin + m:=nil; + JReader:=nil; + try + m:=TMemoryStream.Create; + m.LoadFromFile(fpps4File); + JReader:=TJSONStreamReader.Create(m,[joUTF8,joComments]); + JReader.Execute(FConfigInfo); + except + on E: Exception do + MessageDlgEx(E.Message,mtError,[mbOK],Self); + end; + FreeAndNil(JReader); + FreeAndNil(m); end; - FreeAndNil(JReader); - - obj:=TGameListObject.Create; - obj.GameList:=FGameList; //load game list - m.Clear; - try - m:=TMemoryStream.Create; - m.LoadFromFile(GameListFile); - JReader:=TJSONStreamReader.Create(m,[joUTF8,joComments]); - JReader.Execute(obj); - except - on E: Exception do - MessageDlgEx(E.Message,mtError,[mbOK],Self); - end; - FreeAndNil(JReader); + if FileExists(GameListFile) then + begin + obj:=TGameListObject.Create; + obj.GameList:=FGameList; - FreeAndNil(obj); + m:=nil; + JReader:=nil; + try + m:=TMemoryStream.Create; + m.LoadFromFile(GameListFile); + JReader:=TJSONStreamReader.Create(m,[joUTF8,joComments]); + JReader.Execute(obj); + except + on E: Exception do + MessageDlgEx(E.Message,mtError,[mbOK],Self); + end; + FreeAndNil(JReader); + FreeAndNil(m); + + FreeAndNil(obj); + end; //update grid C:=FGameList.GetArrayCount; @@ -494,7 +503,13 @@ begin FreeAndNil(jstream); FreeAndNil(list); - M.SaveToFile(GameListFile); + try + M.SaveToFile(GameListFile); + except + on E: Exception do + MessageDlgEx(E.Message,mtError,[mbOK],Self); + end; + FreeAndNil(M); end; @@ -858,7 +873,13 @@ begin FConfigInfo.WriteJSON('',jstream); FreeAndNil(jstream); - M.SaveToFile(fpps4File); + try + M.SaveToFile(fpps4File); + except + on E: Exception do + MessageDlgEx(E.Message,mtError,[mbOK],Self); + end; + FreeAndNil(M); end;