v1.4.4
This commit is contained in:
commit
9c94d113d3
10260 changed files with 1237388 additions and 0 deletions
265
attic/SBDiagnose/CheckSum.pas
Normal file
265
attic/SBDiagnose/CheckSum.pas
Normal file
|
@ -0,0 +1,265 @@
|
|||
unit CheckSum;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, Forms;
|
||||
|
||||
type
|
||||
TChecksumCRC32 = class
|
||||
public
|
||||
constructor Create;
|
||||
procedure Reset;
|
||||
procedure Provide(Data: PByte; Length: Integer);
|
||||
function Checksum: Integer;
|
||||
private
|
||||
FCrc: Integer;
|
||||
FCrcTable: array[0..255] of Integer;
|
||||
end;
|
||||
|
||||
TFile = class
|
||||
public
|
||||
FileName: String;
|
||||
Missing: Boolean;
|
||||
FileSize: Integer;
|
||||
Crc: Integer;
|
||||
end;
|
||||
|
||||
TChecksums = class
|
||||
public
|
||||
constructor Create(const PathName: String);
|
||||
destructor Destroy; override;
|
||||
|
||||
procedure Scan;
|
||||
procedure Load;
|
||||
procedure Save;
|
||||
|
||||
procedure Compare(BaseLine: TChecksums; Log: TStrings);
|
||||
private
|
||||
FFiles: TStringList;
|
||||
FCrc: TChecksumCRC32;
|
||||
FPathName: String;
|
||||
|
||||
procedure Process(const FileName: String);
|
||||
procedure InnerScan(const PathName: String);
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
uses SysUtils, StrUtils;
|
||||
|
||||
constructor TChecksumCRC32.Create;
|
||||
var
|
||||
c, n, k: Integer;
|
||||
begin
|
||||
Reset;
|
||||
for n := 0 to 255 do begin
|
||||
c := n;
|
||||
for k := 0 to 7 do begin
|
||||
if c and 1 = 1 then
|
||||
c := Integer($edb88320) xor Integer(Cardinal(c) shr 1)
|
||||
else
|
||||
c := (c shr 1);
|
||||
end;
|
||||
FCrcTable[n] := c;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TChecksumCRC32.Reset;
|
||||
begin
|
||||
FCrc := Integer($ffffffff);
|
||||
end;
|
||||
|
||||
procedure TChecksumCRC32.Provide(Data: PByte; Length: Integer);
|
||||
var
|
||||
c, n: Integer;
|
||||
begin
|
||||
c := FCrc;
|
||||
for n := 0 to Length-1 do
|
||||
c := FCrcTable[(c xor PByte(Integer(Data) + n)^) and $ff] xor Integer(Cardinal(c) shr 8);
|
||||
FCrc := c;
|
||||
end;
|
||||
|
||||
function TChecksumCRC32.Checksum: Integer;
|
||||
begin
|
||||
Result := FCrc xor Integer($ffffffff);
|
||||
end;
|
||||
|
||||
constructor TChecksums.Create(const PathName: String);
|
||||
begin
|
||||
FCrc := TChecksumCRC32.Create;
|
||||
FFiles := TStringList.Create;
|
||||
FFiles.Sorted := True;
|
||||
FFiles.Duplicates := dupIgnore;
|
||||
FFiles.CaseSensitive := False;
|
||||
FPathName := IncludeTrailingPathDelimiter(PathName);
|
||||
end;
|
||||
|
||||
destructor TChecksums.Destroy;
|
||||
var
|
||||
I: Integer;
|
||||
begin
|
||||
for I := 0 to FFiles.Count -1 do
|
||||
FFiles.Objects[I].Free;
|
||||
FreeAndNil(FFiles);
|
||||
FreeAndNil(FCrc);
|
||||
end;
|
||||
|
||||
function FileSize(fileName : wideString) : Int64;
|
||||
var
|
||||
Sr : TSearchRec;
|
||||
begin
|
||||
Result := 0;
|
||||
if FindFirst(fileName, faAnyFile, Sr) = 0 then
|
||||
Result := Sr.FindData.nFileSizeLow;
|
||||
FindClose(Sr) ;
|
||||
end;
|
||||
|
||||
procedure TChecksums.Scan;
|
||||
begin
|
||||
InnerScan(FPathName);
|
||||
end;
|
||||
|
||||
procedure TChecksums.InnerScan(const PathName: String);
|
||||
var
|
||||
Sr : TSearchRec;
|
||||
begin
|
||||
Application.ProcessMessages;
|
||||
if FindFirst(PathName + '*', faAnyFile, Sr) = 0 then begin
|
||||
try
|
||||
repeat
|
||||
if not AnsiStartsStr('.', Sr.Name) and not AnsiEndsText('.checksum', Sr.Name) then begin
|
||||
if Sr.Attr and faDirectory <> 0 then begin
|
||||
InnerScan(IncludeTrailingPathDelimiter(PathName + Sr.Name));
|
||||
end else begin
|
||||
Process(PathName + Sr.Name);
|
||||
end;
|
||||
end;
|
||||
until FindNext(Sr) <> 0;
|
||||
finally
|
||||
FindClose(Sr);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TChecksums.Process(const FileName: String);
|
||||
var
|
||||
FS: TFileStream;
|
||||
Len: Integer;
|
||||
Buffer: array[0..4095] of Byte;
|
||||
Entry: TFile;
|
||||
begin
|
||||
Entry := TFile.Create;
|
||||
Entry.FileName := AnsiLowerCase(FileName);
|
||||
Entry.Missing := not FileExists(Filename);
|
||||
|
||||
Entry.FileSize := 0;
|
||||
Entry.Crc := 0;
|
||||
|
||||
if not Entry.Missing then begin
|
||||
Entry.FileSize := FileSize(FileName);
|
||||
try
|
||||
FS := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone);
|
||||
try
|
||||
FCrc.Reset;
|
||||
while FS.Position <> FS.Size do begin
|
||||
Len := FS.Read(Buffer[0], 4096);
|
||||
FCrc.Provide(@Buffer[0], Len);
|
||||
end;
|
||||
Entry.Crc := FCrc.Checksum;
|
||||
finally
|
||||
FreeAndNil(FS);
|
||||
end;
|
||||
except
|
||||
end;
|
||||
end;
|
||||
FFiles.AddObject(Entry.FileName, Entry);
|
||||
end;
|
||||
|
||||
procedure Split(const S: String; Parts: TStringList);
|
||||
begin
|
||||
Parts.Clear;
|
||||
ExtractStrings(['|'], [], PChar(S), Parts);
|
||||
end;
|
||||
|
||||
procedure TChecksums.Load;
|
||||
var
|
||||
Data: TStringList;
|
||||
Parts: TStringList;
|
||||
I : Integer;
|
||||
Entry: TFile;
|
||||
begin
|
||||
if not FileExists(FPathName+'sb.checksum') then
|
||||
Exit;
|
||||
Data := TStringList.Create;
|
||||
Parts := TStringList.Create;
|
||||
Data.LoadFromFile(FPathName+'sb.checksum');
|
||||
for I := 0 to Data.Count -1 do begin
|
||||
Split(Data.Strings[I], Parts);
|
||||
if Parts.Count <> 3 then
|
||||
raise Exception.Create('Checksum file parse error');
|
||||
Entry := TFile.Create;
|
||||
Entry.FileName := FPathName + Parts[0];
|
||||
Entry.Missing := False;
|
||||
Entry.FileSize := StrToInt(Parts[1]);
|
||||
Entry.Crc := StrToInt(Parts[2]);
|
||||
FFiles.AddObject(Entry.FileName, Entry);
|
||||
end;
|
||||
Parts.Free;
|
||||
Data.Free;
|
||||
end;
|
||||
|
||||
procedure TChecksums.Save;
|
||||
var
|
||||
Data: TStringList;
|
||||
I : Integer;
|
||||
Entry: TFile;
|
||||
PathName: String;
|
||||
begin
|
||||
PathName := AnsiLowerCase(FPathName);
|
||||
Data := TStringList.Create;
|
||||
for I := 0 to FFiles.Count -1 do begin
|
||||
Entry := TFile(FFiles.Objects[I]);
|
||||
if not Entry.Missing then
|
||||
Data.Append(AnsiReplaceStr(Entry.FileName, PathName, '') + '|' + IntToStr(Entry.FileSize) + '|0x' + IntToHex(Entry.Crc, 8));
|
||||
end;
|
||||
Data.SaveToFile(FPathName+'sb.checksum');
|
||||
Data.Free;
|
||||
end;
|
||||
|
||||
procedure TChecksums.Compare(BaseLine: TChecksums; Log: TStrings);
|
||||
var
|
||||
I: Integer;
|
||||
L: TStringList;
|
||||
Base: TFile;
|
||||
Local: TFile;
|
||||
A: Integer;
|
||||
begin
|
||||
L := TStringList.Create;
|
||||
L.Sorted := True;
|
||||
L.Duplicates := dupIgnore;
|
||||
L.CaseSensitive := False;
|
||||
for I := 0 to FFiles.Count-1 do
|
||||
L.Add(FFiles.Strings[I]);
|
||||
for I := 0 to BaseLine.FFiles.Count-1 do
|
||||
L.Add(BaseLine.FFiles.Strings[I]);
|
||||
for I := 0 to L.Count-1 do begin
|
||||
Base := nil;
|
||||
Local := nil;
|
||||
if FFiles.Find(L[I], A) then
|
||||
Local := TFile(FFiles.Objects[A]);
|
||||
if BaseLine.FFiles.Find(L[I], A) then
|
||||
Base := TFile(BaseLine.FFiles.Objects[A]);
|
||||
|
||||
if Local = nil then
|
||||
Log.Append('File ' + L[I] + ' is missing.')
|
||||
else if Base = nil then
|
||||
Log.Append('File ' + L[I] + ' is not part of the baseline.')
|
||||
else if Base.FileSize <> Local.FileSize then
|
||||
Log.Append('File ' + L[I] + ' is the wrong size, expected ' +IntToStr(Base.FileSize) + ' but found ' + IntToStr(Local.FileSize) + '.')
|
||||
else if Base.Crc <> Local.Crc then
|
||||
Log.Append('File ' + L[I] + ' did not match checksum.');
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
38
attic/SBDiagnose/SBDiagnose.cfg
Normal file
38
attic/SBDiagnose/SBDiagnose.cfg
Normal file
|
@ -0,0 +1,38 @@
|
|||
-$A8
|
||||
-$B-
|
||||
-$C+
|
||||
-$D+
|
||||
-$E-
|
||||
-$F-
|
||||
-$G+
|
||||
-$H+
|
||||
-$I+
|
||||
-$J-
|
||||
-$K-
|
||||
-$L+
|
||||
-$M-
|
||||
-$N+
|
||||
-$O+
|
||||
-$P+
|
||||
-$Q-
|
||||
-$R-
|
||||
-$S-
|
||||
-$T-
|
||||
-$U-
|
||||
-$V+
|
||||
-$W-
|
||||
-$X+
|
||||
-$YD
|
||||
-$Z1
|
||||
-cg
|
||||
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||
-H+
|
||||
-W+
|
||||
-M
|
||||
-$M16384,1048576
|
||||
-K$00400000
|
||||
-LE"e:\program files (x86)\borland\delphi7\Projects\Bpl"
|
||||
-LN"e:\program files (x86)\borland\delphi7\Projects\Bpl"
|
||||
-w-UNSAFE_TYPE
|
||||
-w-UNSAFE_CODE
|
||||
-w-UNSAFE_CAST
|
136
attic/SBDiagnose/SBDiagnose.dof
Normal file
136
attic/SBDiagnose/SBDiagnose.dof
Normal file
|
@ -0,0 +1,136 @@
|
|||
[FileVersion]
|
||||
Version=7.0
|
||||
[Compiler]
|
||||
A=8
|
||||
B=0
|
||||
C=1
|
||||
D=1
|
||||
E=0
|
||||
F=0
|
||||
G=1
|
||||
H=1
|
||||
I=1
|
||||
J=0
|
||||
K=0
|
||||
L=1
|
||||
M=0
|
||||
N=1
|
||||
O=1
|
||||
P=1
|
||||
Q=0
|
||||
R=0
|
||||
S=0
|
||||
T=0
|
||||
U=0
|
||||
V=1
|
||||
W=0
|
||||
X=1
|
||||
Y=1
|
||||
Z=1
|
||||
ShowHints=1
|
||||
ShowWarnings=1
|
||||
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||
NamespacePrefix=
|
||||
SymbolDeprecated=1
|
||||
SymbolLibrary=1
|
||||
SymbolPlatform=1
|
||||
UnitLibrary=1
|
||||
UnitPlatform=1
|
||||
UnitDeprecated=1
|
||||
HResultCompat=1
|
||||
HidingMember=1
|
||||
HiddenVirtual=1
|
||||
Garbage=1
|
||||
BoundsError=1
|
||||
ZeroNilCompat=1
|
||||
StringConstTruncated=1
|
||||
ForLoopVarVarPar=1
|
||||
TypedConstVarPar=1
|
||||
AsgToTypedConst=1
|
||||
CaseLabelRange=1
|
||||
ForVariable=1
|
||||
ConstructingAbstract=1
|
||||
ComparisonFalse=1
|
||||
ComparisonTrue=1
|
||||
ComparingSignedUnsigned=1
|
||||
CombiningSignedUnsigned=1
|
||||
UnsupportedConstruct=1
|
||||
FileOpen=1
|
||||
FileOpenUnitSrc=1
|
||||
BadGlobalSymbol=1
|
||||
DuplicateConstructorDestructor=1
|
||||
InvalidDirective=1
|
||||
PackageNoLink=1
|
||||
PackageThreadVar=1
|
||||
ImplicitImport=1
|
||||
HPPEMITIgnored=1
|
||||
NoRetVal=1
|
||||
UseBeforeDef=1
|
||||
ForLoopVarUndef=1
|
||||
UnitNameMismatch=1
|
||||
NoCFGFileFound=1
|
||||
MessageDirective=1
|
||||
ImplicitVariants=1
|
||||
UnicodeToLocale=1
|
||||
LocaleToUnicode=1
|
||||
ImagebaseMultiple=1
|
||||
SuspiciousTypecast=1
|
||||
PrivatePropAccessor=1
|
||||
UnsafeType=0
|
||||
UnsafeCode=0
|
||||
UnsafeCast=0
|
||||
[Linker]
|
||||
MapFile=0
|
||||
OutputObjs=0
|
||||
ConsoleApp=1
|
||||
DebugInfo=0
|
||||
RemoteSymbols=0
|
||||
MinStackSize=16384
|
||||
MaxStackSize=1048576
|
||||
ImageBase=4194304
|
||||
ExeDescription=
|
||||
[Directories]
|
||||
OutputDir=
|
||||
UnitOutputDir=
|
||||
PackageDLLOutputDir=
|
||||
PackageDCPOutputDir=
|
||||
SearchPath=
|
||||
Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOfficeXP
|
||||
Conditionals=
|
||||
DebugSourceDirs=
|
||||
UsePackages=0
|
||||
[Parameters]
|
||||
RunParams=
|
||||
HostApplication=
|
||||
Launcher=
|
||||
UseLauncher=0
|
||||
DebugCWD=
|
||||
[Language]
|
||||
ActiveLang=
|
||||
ProjectLang=
|
||||
RootDir=
|
||||
[Version Info]
|
||||
IncludeVerInfo=0
|
||||
AutoIncBuild=0
|
||||
MajorVer=1
|
||||
MinorVer=0
|
||||
Release=0
|
||||
Build=0
|
||||
Debug=0
|
||||
PreRelease=0
|
||||
Special=0
|
||||
Private=0
|
||||
DLL=0
|
||||
Locale=1043
|
||||
CodePage=1252
|
||||
[Version Info Keys]
|
||||
CompanyName=
|
||||
FileDescription=
|
||||
FileVersion=1.0.0.0
|
||||
InternalName=
|
||||
LegalCopyright=
|
||||
LegalTrademarks=
|
||||
OriginalFilename=
|
||||
ProductName=
|
||||
ProductVersion=1.0.0.0
|
||||
Comments=
|
15
attic/SBDiagnose/SBDiagnose.dpr
Normal file
15
attic/SBDiagnose/SBDiagnose.dpr
Normal file
|
@ -0,0 +1,15 @@
|
|||
program SBDiagnose;
|
||||
|
||||
uses
|
||||
Forms,
|
||||
SBDiagnoseForm in 'SBDiagnoseForm.pas' {Form1},
|
||||
CheckSum in 'CheckSum.pas';
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
Application.Initialize;
|
||||
Application.Title := 'Starbound Diagnostics';
|
||||
Application.CreateForm(TForm1, Form1);
|
||||
Application.Run;
|
||||
end.
|
BIN
attic/SBDiagnose/SBDiagnose.res
Normal file
BIN
attic/SBDiagnose/SBDiagnose.res
Normal file
Binary file not shown.
175
attic/SBDiagnose/SBDiagnoseForm.dfm
Normal file
175
attic/SBDiagnose/SBDiagnoseForm.dfm
Normal file
|
@ -0,0 +1,175 @@
|
|||
object Form1: TForm1
|
||||
Left = 714
|
||||
Top = 318
|
||||
Width = 851
|
||||
Height = 547
|
||||
Caption = 'Starbound Diagnostics'
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'MS Sans Serif'
|
||||
Font.Style = []
|
||||
Icon.Data = {
|
||||
0000010001002020000001002000A81000001600000028000000200000004000
|
||||
000001002000000000000020000000000000000000000000000000000000FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF016ABA
|
||||
F95D6ABAFAFF6ABAFAFF6ABAFAFF6ABAFAFF5B9ADFFF4B75C0FF4B75C0FFFFFF
|
||||
FF01FFFFFF016AB9F98B6ABAFAFF6ABAFAFF6ABAFAFF6ABAFAFF6ABAFAFF6ABA
|
||||
FAFF67B4F5FF4B75C0FF4B75C0FF4976C045FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF016ABA
|
||||
F95D6ABAFAFF6ABAFAFF6ABAFAFF6ABAFAFF5B9ADFFF4B75C0FF4B75C0FFFFFF
|
||||
FF01FFFFFF016AB9F98B6ABAFAFF6ABAFAFF6ABAFAFF6ABAFAFF6ABAFAFF6ABA
|
||||
FAFF67B4F5FF4B75C0FF4B75C0FF4976C045FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01704D4D2B6E4C4C716E4C4C716E4C4C716E4C4C717073
|
||||
86A37293B4FF7293B4FF7293B4FF7293B4FF6A81A5FF616C93FF616C93FFDAC4
|
||||
D871DAC4D871ACC0E5BF9BBEEBFF9BBEEBFF9BBEEBFF9BBEEBFF73A8E4FF5C9B
|
||||
E0FF5A98DDF74A75C08F4A75C08F4775BD27FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF016E4D4D5F6F4D4DFF6F4D4DFF6F4D4DFF6F4D4DFF7454
|
||||
52FF7D625BFF7D625BFF7D625BFF7D625BFF7D625BFF7D625BFF7D625BFFDAC5
|
||||
D9FFDAC5D9FFDAC5D9FFDAC5D9FFDAC5D9FFDAC5D9FFDAC5D9FF7E91C9FF4B75
|
||||
C0FF4A75BEEBFFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF016E4D4D5F6F4D4DFF6F4D4DFF6F4D4DFF6F4D4DFF7454
|
||||
52FF7D625BFF7D625BFF7D625BFF7D625BFF7D625BFF7D625BFF7D625BFFDAC5
|
||||
D9FFDAC5D9FFDAC5D9FFDAC5D9FFDAC5D9FFDAC5D9FFDAC5D9FF7E91C9FF4B75
|
||||
C0FF4A75BEEBFFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF015555550366333305663333057C615AD17C615AFF6A4E
|
||||
4CFF492B32FF492B32FF492B32FF492B32FF775965FFAF91A2FFAF91A2FFDAC5
|
||||
D9FFDAC5D9FFDAC5D9FFDAC5D9FFDAC5D9FFDAC5D9FFDAC5D9FFD8C4D8FFD8C3
|
||||
D8FFCCB7CBFF492A30FB492A30FB48293143FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF017C6159CF7D625BFF6A4E
|
||||
4CFF492B32FF492B32FF492B32FF492B32FF775965FFB092A3FFB092A3FFDAC5
|
||||
D9FFDAC5D9FFDAC5D9FFDAC5D9FFDAC5D9FFDAC5D9FFDAC5D9FFDAC5D9FFDAC5
|
||||
D9FFCEB8CBFF492B32FF492B32FF492C3345FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01614344CF614445FF6245
|
||||
46FF644847FF644847FF4B2D34FF492B32FF816672FFC6ADBFFFC6ADBFFFDAC5
|
||||
D9FFDAC5D9FFDFCFE1FFE4D8E7FFE4D8E7FFE4D8E7FFE4D8E7FFDDCCDEFFDAC5
|
||||
D9FFCEB8CBFF492B32FF492B32FF492C3345FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01482B32CF492B32FF5B3E
|
||||
40FF7D625BFF7D625BFF4D3035FF492B32FF8A707DFFDAC5D9FFDAC5D9FFDAC5
|
||||
D9FFDAC5D9FFE4D9E8FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFE0D2E3FFDAC5
|
||||
D9FFCEB8CBFF492B32FF492B32FF492C3345FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF014C2D33CF4C2D34FF5D40
|
||||
42FF7D625BFF7D625BFF4D3035FF492B32FF8A707DFFDAC5D9FFDAC5D9FFDBC7
|
||||
DBFFDBC7DBFFE5DAE9FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFE1D4E4FFDBC7
|
||||
DBFFCFBBCDFF492B32FF492B32FF492C3345FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF016D4D4DCF6F4D4DFF7454
|
||||
52FF7D625BFF7D625BFF4D3035FF492B32FF8A707DFFDAC5D9FFDAC5D9FFEDEA
|
||||
F5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEA
|
||||
F5FFDFDAE5FF492B32FF492B32FF492C3345FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF016D4D4DCF6F4D4DFF7454
|
||||
52FF7D625BFF7D625BFF4D3035FF492B32FF8A707DFFDAC5D9FFDAC5D9FFEDEA
|
||||
F5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEA
|
||||
F5FFDFDAE5FF492B32FF492B32FF492C3345FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01775954CF775A55FF795C
|
||||
57FF7D625BFF7D625BFF4D3035FF492B32FF8A707DFFDAC5D9FFDAC5D9FFEDEA
|
||||
F5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEA
|
||||
F5FFDFDAE5FF492B32FF492B32FF492C3345FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF017C6159CF7D625BFF7D62
|
||||
5BFF7D625BFF7D625BFF4D3035FF492B32FF8A707DFFDAC5D9FFDAC5D9FFEDEA
|
||||
F5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEA
|
||||
F5FFDFDAE5FF492B32FF492B32FF492C3345FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF017C6159CF7D625BFF7D62
|
||||
5BFF7D625BFF7D625BFF53353AFF4F3036FF8E7480FFDAC5D9FFDAC5D9FFEDEA
|
||||
F5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEAE5F1FFE9E3
|
||||
F0FFDDD5E1FF4F3036FF4F3036FF4D303745FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF017C6159CF7D625BFF7D62
|
||||
5BFF7D625BFF7D625BFF704E4EFF6F4D4DFF9F838CFFDAC5D9FFDAC5D9FFEDEA
|
||||
F5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFE0D2E3FFDAC5
|
||||
D9FFD1BBCDFF6F4D4DFF6F4D4DFF6E4D4D45FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF017C6159CF7D625BFF7D62
|
||||
5BFF7D625BFF7D625BFF704E4EFF6F4D4DFF9F838CFFDAC5D9FFDAC5D9FFEDEA
|
||||
F5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFEDEAF5FFE0D2E3FFDAC5
|
||||
D9FFD1BBCDFF6F4D4DFF6F4D4DFF6E4D4D45FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF017D635A3B7A615A497C62
|
||||
5B897D625BFF7D625BFF795C57FF795C57FF977B80FFBBA0B2FFBBA0B2FFDFCF
|
||||
E0FFDFCFE0FFE6DDEBFFEDEAF5FFEBE7F3FFDFCFE0FFDFCFE0FFC8B1C2FFBBA0
|
||||
B2FFB99DAEF16C4C4C496C4C4C496B505013FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF017E62
|
||||
5A5D7D625BFF7D625BFF7D625BFF7D625BFF94777BFFB092A3FFB092A3FFDAC5
|
||||
D9FFDAC5D9FFE4D9E8FFEDEAF5FFEBE6F2FFDAC5D9FFDAC5D9FFBFA4B6FFB092
|
||||
A3FFAF92A1EBFFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01785D
|
||||
575D795C57FF795C57FF7C615AFF7D625BFF8D7172FFA2858FFFA2858FFFC1AA
|
||||
B7FFC1AAB7FFC8B9C2FFCFC5CBFFCDC3CAFFC1AAB7FFC1AAB7FFAB8F9BFF9E7F
|
||||
8CFF9E7E8BEBFFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF016D4C
|
||||
4C5D6F4D4DFF6F4D4DFF7B6059FF7D625BFF7D625BFF7D625BFF7D625BFF7D62
|
||||
5BFF7D625BFF7D625BFF7D625BFF7D625BFF7D625BFF7D625BFF745452FF6F4D
|
||||
4DFF6E4D4DEBFFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF016D4C
|
||||
4C5D6F4D4DFF6F4D4DFF7B6059FF7D625BFF7D625BFF7D625BFF7D625BFF7D62
|
||||
5BFF7D625BFF7D625BFF7D625BFF7D625BFF7D625BFF7D625BFF745452FF6F4D
|
||||
4DFF6E4D4DEBFFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01785D
|
||||
575D7A5E58FF7A5E58FF7C615AFF7D625BFF7D625BFF7D625BFF7D625BFF7D62
|
||||
5BFF7D625BFF7489A1FF6DA9DCFF6DA9DCFF6DA9DCFF6DA9DCFF6BA7DAFF6AA5
|
||||
D9FF69A5DBFB69BAF8CF69BAF8CF6BBBFA39FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF017E62
|
||||
5A5D7D625BFF7D625BFF7D625BFF7D625BFF7D625BFF7D625BFF7D625BFF7D62
|
||||
5BFF7D625BFF7292B1FF6ABAFAFF6ABAFAFF6ABAFAFF6ABAFAFF6ABAFAFF6ABA
|
||||
FAFF6ABAFAFF6ABAFAFF6ABAFAFF6BB8F745FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF017E62
|
||||
5A5D7D625BFF7D625BFF7D625BFF7D625BFF8C726FFF9E8588FF9E8588FF7D62
|
||||
5BFF7D625BFF6C84A6FF5EA1E5FF5FA3E7FF6ABAFAFF6ABAFAFF6ABAFAFF6ABA
|
||||
FAFF6AB9F9F76ABAFAA36ABAFAA36BBAF92DFFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF017E62
|
||||
5A5D7D625BFF7D625BFF7D625BFF7D625BFFA78E94FFDAC5D9FFDAC5D9FF7D62
|
||||
5BFF7D625BFF616C92FF4B75C0FF4D7BC5FF6ABAFAFF6ABAFAFF6ABAFAFF6ABA
|
||||
FAFF6AB9F9EBFFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF017E62
|
||||
5A5D7D625BFF7D625BFF7D625BFF7D625BFFA78E94FFDAC5D9FFDAC5D9FF7D62
|
||||
5BFF7D625BFF616C92FF4B75C0FF4D7BC5FF6ABAFAFF6ABAFAFF6ABAFAFF6ABA
|
||||
FAFF6AB9F9EBFFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01704C
|
||||
4C5D704E4EFF704E4EFF7B6059FF7D625BFF806660FF856B66FF856B66FF7D62
|
||||
5BFF7D625BFF7A6260FF786364FF786464FF7B6A69FF7B6A69FF735E61FF6E57
|
||||
5DFF6D565DEBFFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF016D4C
|
||||
4C5D6F4D4DFF6F4D4DFF7B6059FF7D625BFF7D625BFF7D625BFF7D625BFF7D62
|
||||
5BFF7D625BFF7D625BFF7D625BFF7D625BFF7D625BFF7D625BFF745452FF6F4D
|
||||
4DFF6E4D4DEBFFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01704B
|
||||
4B3D6F4C4CA76F4C4CA7765854F7785A56FF7A5E58FF7D625BFF7D625BFF7D62
|
||||
5BFF7D625BFF7D625BFF7D625BFF7C615AFF785A56FF785A56FF735350C76F4C
|
||||
4CA76F4C4C99FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF016F4D4DE76F4D4DFF755653FF7D625BFF7D625BFF7D62
|
||||
5BFF7D625BFF7D625BFF7D625BFF7B6059FF6F4D4DFF6F4D4DFF6D4C4C5DFFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFF
|
||||
FF01FFFFFF01FFFFFF016F4D4DE76F4D4DFF755653FF7D625BFF7D625BFF7D62
|
||||
5BFF7D625BFF7D625BFF7D625BFF7B6059FF6F4D4DFF6F4D4DFF6D4C4C5DFFFF
|
||||
FF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FFFFFF01FF80
|
||||
C00FFF80C00FFF00C00FF000003FF000003FFC00000FFC00000FFC00000FFC00
|
||||
000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00000FFC00
|
||||
000FFF00003FFF80003FFF80003FFF80003FFF80003FFF80000FFF80000FFF80
|
||||
000FFF80003FFF80003FFF80003FFF80003FFF80003FFFE001FFFFE001FF}
|
||||
OldCreateOrder = False
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object Log: TMemo
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 835
|
||||
Height = 489
|
||||
Align = alCustom
|
||||
Anchors = [akLeft, akTop, akRight, akBottom]
|
||||
ScrollBars = ssBoth
|
||||
TabOrder = 0
|
||||
end
|
||||
object ProgressBar1: TProgressBar
|
||||
Left = 0
|
||||
Top = 492
|
||||
Width = 835
|
||||
Height = 17
|
||||
Align = alBottom
|
||||
TabOrder = 1
|
||||
end
|
||||
object Timer1: TTimer
|
||||
Interval = 100
|
||||
OnTimer = Timer1Timer
|
||||
Left = 216
|
||||
Top = 240
|
||||
end
|
||||
end
|
272
attic/SBDiagnose/SBDiagnoseForm.pas
Normal file
272
attic/SBDiagnose/SBDiagnoseForm.pas
Normal file
|
@ -0,0 +1,272 @@
|
|||
unit SBDiagnoseForm;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||
Dialogs, ExtCtrls, StdCtrls, CheckSum, ComCtrls;
|
||||
|
||||
type
|
||||
TForm1 = class(TForm)
|
||||
Log: TMemo;
|
||||
Timer1: TTimer;
|
||||
ProgressBar1: TProgressBar;
|
||||
procedure Timer1Timer(Sender: TObject);
|
||||
private
|
||||
procedure ScanBaseInformation;
|
||||
procedure ScanSteamInformation;
|
||||
procedure ScanSteamOverlay;
|
||||
procedure ScanCompatFlags;
|
||||
procedure ScanHsSrvDll;
|
||||
procedure ScanChecksums;
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
Form1: TForm1;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
Registry, StrUtils;
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
function GetEnvVarValue(const VarName: String): String;
|
||||
var
|
||||
BufSize: Integer;
|
||||
begin
|
||||
BufSize := GetEnvironmentVariable(PChar(VarName), nil, 0);
|
||||
if BufSize > 0 then
|
||||
begin
|
||||
SetLength(Result, BufSize - 1);
|
||||
GetEnvironmentVariable(PChar(VarName), PChar(Result), BufSize);
|
||||
end
|
||||
else
|
||||
Result := '';
|
||||
end;
|
||||
|
||||
function ErrorMessage: String;
|
||||
var
|
||||
Error: DWORD;
|
||||
begin
|
||||
Error := GetLastError;
|
||||
Result := IntToStr(Error) + ' ' + SysErrorMessage(Error);
|
||||
end;
|
||||
|
||||
procedure TForm1.ScanBaseInformation;
|
||||
var
|
||||
Handle: HMODULE;
|
||||
ProcessAffinityMask: DWORD;
|
||||
SystemAffinityMask: DWORD;
|
||||
begin
|
||||
Log.Lines.Append('Number of processors: '+GetEnvVarValue('NUMBER_OF_PROCESSORS'));
|
||||
Log.Lines.Append('Processor architecture: '+GetEnvVarValue('PROCESSOR_ARCHITECTURE'));
|
||||
Log.Lines.Append('Processor: '+GetEnvVarValue('PROCESSOR_IDENTIFIER'));
|
||||
|
||||
Handle := GetCurrentProcess;
|
||||
if not GetProcessAffinityMask(Handle, ProcessAffinityMask, SystemAffinityMask) then begin
|
||||
Log.Lines.Append('ProcessAffinityMask: Failed to query, error: '+ErrorMessage);
|
||||
end
|
||||
else begin
|
||||
Log.Lines.Append('ProcessAffinityMask: '+IntToHex(Integer(ProcessAffinityMask), 8));
|
||||
Log.Lines.Append('SystemAffinityMask: '+IntToHex(Integer(SystemAffinityMask), 8));
|
||||
end;
|
||||
|
||||
Log.Lines.Append('WindowsVersion: '+IntToStr(Win32MajorVersion)+'.'+IntToStr(Win32MinorVersion)+'.'+IntToStr(Win32BuildNumber)+' '+Win32CSDVersion);
|
||||
|
||||
if (Win32MajorVersion < 5) or ((Win32MajorVersion = 5) and (Win32MinorVersion < 1)) then begin
|
||||
Log.Lines.Append('Versions of windows before Windows XP are not supported.');
|
||||
end;
|
||||
if (Win32MajorVersion = 5) and (Win32MinorVersion > 0) then begin
|
||||
Log.Lines.Append('Windows XP detected, it is recommended to use a more recent version of windows.');
|
||||
end;
|
||||
|
||||
Log.Lines.Append('');
|
||||
end;
|
||||
|
||||
procedure TForm1.ScanSteamInformation;
|
||||
begin
|
||||
Log.Lines.Append('EnvAppId: '+GetEnvVarValue('SteamAppId'));
|
||||
Log.Lines.Append('');
|
||||
end;
|
||||
|
||||
procedure TForm1.ScanSteamOverlay;
|
||||
var
|
||||
Handle: HMODULE;
|
||||
begin
|
||||
Handle := GetModuleHandle('GameOverlayRenderer');
|
||||
if Handle <> 0 then begin
|
||||
Log.Lines.Append('The Steam Overlay has been detected.');
|
||||
Log.Lines.Append('Disabling the Steam overlay may improve render performance.');
|
||||
Log.Lines.Append('http://community.playstarbound.com/index.php?threads/sbdiagnose-faq.52470/');
|
||||
Log.Lines.Append('');
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TForm1.ScanCompatFlags;
|
||||
var
|
||||
Registry: TRegistry;
|
||||
Steam: Boolean;
|
||||
Starbound: Boolean;
|
||||
procedure Scan;
|
||||
var
|
||||
I: Integer;
|
||||
Entries: TStringList;
|
||||
begin
|
||||
Entries := TStringList.Create;
|
||||
if Registry.OpenKey('Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\', False) then begin
|
||||
Registry.GetValueNames(Entries);
|
||||
for I := 0 to Entries.Count-1 do begin
|
||||
if AnsiContainsText(Entries[i], '\steam.exe') then
|
||||
Steam := True;
|
||||
if AnsiContainsText(Entries[i], '\starbound.exe') then
|
||||
Starbound := True;
|
||||
if AnsiContainsText(Entries[i], '\starbound_opengl.exe') then
|
||||
Starbound := True;
|
||||
if AnsiContainsText(Entries[i], '\starbound\win32\') then
|
||||
Starbound := True;
|
||||
end;
|
||||
Registry.CloseKey;
|
||||
end;
|
||||
Entries.Free;
|
||||
Registry.Free;
|
||||
end;
|
||||
begin
|
||||
if (GetEnvVarValue('__COMPAT_LAYER') <> '') then begin
|
||||
Log.Lines.Append('Environment Compatibility Flags: '+GetEnvVarValue('__COMPAT_LAYER'));
|
||||
Log.Lines.Append('');
|
||||
end;
|
||||
|
||||
Steam := False;
|
||||
Starbound := False;
|
||||
|
||||
Registry := TRegistry.Create;
|
||||
Registry.RootKey := HKEY_CURRENT_USER;
|
||||
Scan;
|
||||
|
||||
Registry := TRegistry.Create;
|
||||
Registry.RootKey := HKEY_LOCAL_MACHINE;
|
||||
Scan;
|
||||
|
||||
Registry := TRegistry.Create;
|
||||
Registry.RootKey := HKEY_CURRENT_USER;
|
||||
Registry.Access := $000f013f;
|
||||
Scan;
|
||||
|
||||
Registry := TRegistry.Create;
|
||||
Registry.RootKey := HKEY_LOCAL_MACHINE;
|
||||
Registry.Access := $000f013f;
|
||||
Scan;
|
||||
|
||||
if Steam then begin
|
||||
Log.Lines.Append('Steam is running in compatibility mode.');
|
||||
Log.Lines.Append('Running steam in compatbility mode can cause stability and performance problems.');
|
||||
Log.Lines.Append('http://community.playstarbound.com/index.php?threads/sbdiagnose-faq.52470/');
|
||||
Log.Lines.Append('');
|
||||
end;
|
||||
if Starbound then begin
|
||||
Log.Lines.Append('Starbound is running in compatibility mode.');
|
||||
Log.Lines.Append('Running starbound in compatbility mode can cause stability and performance problems.');
|
||||
Log.Lines.Append('http://community.playstarbound.com/index.php?threads/sbdiagnose-faq.52470/');
|
||||
Log.Lines.Append('');
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TForm1.ScanHsSrvDll;
|
||||
var
|
||||
Handle: HMODULE;
|
||||
begin
|
||||
Handle := LoadLibraryEx('hssrv.dll', 0, LOAD_LIBRARY_AS_DATAFILE);
|
||||
if Handle = 0 then
|
||||
Handle := GetModuleHandle('HsSrv');
|
||||
if Handle <> 0 then begin
|
||||
Log.Lines.Append('HsSrv.dll detected (Asus Xonar Drivers).');
|
||||
Log.Lines.Append('There have been reports of this driver having compatibility issues with starbound.');
|
||||
Log.Lines.Append('http://community.playstarbound.com/index.php?threads/sbdiagnose-faq.52470/');
|
||||
Log.Lines.Append('');
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TForm1.ScanChecksums;
|
||||
var
|
||||
A, B: TChecksums;
|
||||
F: String;
|
||||
begin
|
||||
F := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + '..\assets\';
|
||||
Log.Lines.Add('Scanning checksums...');
|
||||
Application.ProcessMessages;
|
||||
try
|
||||
if not FileExists(F + 'sb.checksum') then begin
|
||||
Log.Lines.Add('No baseline found, creating.');
|
||||
Application.ProcessMessages;
|
||||
A := TChecksums.Create(F);
|
||||
A.Scan;
|
||||
A.Save;
|
||||
A.Free;
|
||||
end else begin
|
||||
A := TChecksums.Create(F);
|
||||
A.Scan;
|
||||
Log.Lines.Add('Loading baseline.');
|
||||
Application.ProcessMessages;
|
||||
B := TChecksums.Create(F);
|
||||
B.Load;
|
||||
|
||||
Log.Lines.Add('Comparing checksums.');
|
||||
Application.ProcessMessages;
|
||||
A.Compare(B, Log.Lines);
|
||||
|
||||
A.Free;
|
||||
end;
|
||||
except
|
||||
on E: Exception do
|
||||
Log.Lines.Add('Failed to scan checksums: ' + E.ClassName + ': ' + E.Message);
|
||||
end;
|
||||
Log.Lines.Add('done.');
|
||||
Log.Lines.Add('');
|
||||
end;
|
||||
|
||||
procedure TForm1.Timer1Timer(Sender: TObject);
|
||||
begin
|
||||
Timer1.Enabled := False;
|
||||
Log.Lines.Append('Scanning System');
|
||||
Log.Lines.Append('');
|
||||
Application.ProcessMessages;
|
||||
|
||||
ProgressBar1.Position := 10;
|
||||
Application.ProcessMessages;
|
||||
|
||||
ScanChecksums;
|
||||
|
||||
ProgressBar1.Position := 50;
|
||||
Application.ProcessMessages;
|
||||
|
||||
ScanBaseInformation;
|
||||
|
||||
ProgressBar1.Position := 60;
|
||||
Application.ProcessMessages;
|
||||
|
||||
ScanSteamInformation;
|
||||
|
||||
ProgressBar1.Position := 70;
|
||||
Application.ProcessMessages;
|
||||
|
||||
ScanSteamOverlay;
|
||||
|
||||
ProgressBar1.Position := 80;
|
||||
Application.ProcessMessages;
|
||||
|
||||
ScanCompatFlags;
|
||||
|
||||
ProgressBar1.Position := 90;
|
||||
Application.ProcessMessages;
|
||||
|
||||
ScanHsSrvDll;
|
||||
|
||||
ProgressBar1.Position := ProgressBar1.Max;
|
||||
ProgressBar1.Enabled := False;
|
||||
Log.Lines.Append('Done.');
|
||||
end;
|
||||
|
||||
end.
|
BIN
attic/SBDiagnose/starbound.ico
Normal file
BIN
attic/SBDiagnose/starbound.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
Loading…
Add table
Add a link
Reference in a new issue