1641 lines
66 KiB
C#
1641 lines
66 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Reflection;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.Windows.Forms.DataVisualization.Charting;
|
|
|
|
namespace ABE
|
|
{
|
|
public partial class Form1 : Form
|
|
{
|
|
|
|
|
|
|
|
public Form1()
|
|
{
|
|
InitializeComponent();
|
|
|
|
this.list_0 = this.method_1();
|
|
|
|
}
|
|
public static bool triedalready = false;
|
|
public static bool notsupported = false;
|
|
private Class24 _RomHeader;
|
|
private string _FileName;
|
|
private string _FileDir;
|
|
private byte _ImageChecksum;
|
|
private byte _ImageChecksum2;
|
|
private byte _GeneratedChecksum;
|
|
private byte _GeneratedChecksum2;
|
|
private Class30 class30_0;
|
|
private readonly List<Interface0> list_0;
|
|
private byte[] url = { 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x74, 0x65, 0x63, 0x68, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x75, 0x70, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76, 0x67, 0x61, 0x62, 0x69, 0x6f, 0x73, 0x2f, 0x3f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x3d, 0x26, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x72, 0x3d, 0x26, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x3d, 0x26, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3d };
|
|
private byte[] url2 = { 0x26, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x3d, 0x26, 0x6d, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x3d, 0x26, 0x6d, 0x65, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x3d, 0x26, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x3d };
|
|
private byte[] ti = { 0x41, 0x42, 0x45, 0x20, 0x76, 0x7b, 0x30, 0x7d, 0x2e, 0x7b, 0x31, 0x7d, 0x7b, 0x32, 0x7d };
|
|
private byte[] mv = { 0x4d, 0x56 };
|
|
private byte[] mhz = { 0x4d, 0x48, 0x7a, 0x40 };
|
|
private byte[] VFR = { 0x56, 0x46, 0x52 };
|
|
private byte[] vmv = { 0x56, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x20, 0x4d, 0x56 };
|
|
private byte[] cmhz = { 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x4d, 0x48, 0x7a };
|
|
private byte[] TFR = { 0x54, 0x46, 0x52 };
|
|
private byte[] ptarget = { 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x20, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74 };
|
|
private byte[] fan = { 0x46, 0x61, 0x6e };
|
|
private byte[] tempc = { 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x20, 0x43 };
|
|
private byte[] fans = { 0x46, 0x61, 0x6e, 0x20, 0x53, 0x70, 0x65, 0x65, 0x64, 0x20, 0x25 };
|
|
private List<Interface0> method_1()
|
|
{
|
|
return new List<Interface0>
|
|
{
|
|
};
|
|
}
|
|
|
|
internal Class24 RomHeader
|
|
{
|
|
get
|
|
{
|
|
return this._RomHeader;
|
|
}
|
|
set
|
|
{
|
|
this._RomHeader = value;
|
|
this.UpdateDisplay();
|
|
}
|
|
}
|
|
|
|
private bool CheckifXOC()
|
|
{
|
|
if (class30_0.byte_1[0x5226] == 0x30 && class30_0.byte_1[0x5227] == 0x36 && class30_0.byte_1[0x5228] == 0x37 && class30_0.byte_1[0x5229] == 0x37)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
private bool CheckMD5()
|
|
{
|
|
Class25 @class = this.class30_0.list_0[0];
|
|
if (CheckifXOC())
|
|
{
|
|
Class24.ThisBiosType = 4;
|
|
return true;
|
|
}
|
|
|
|
if (@class.class24_0.class26_0.card == 3060)
|
|
{
|
|
Class24.ThisBiosType = 6;
|
|
return true;
|
|
}
|
|
else if (@class.class24_0.class26_0.card == 3070)
|
|
{
|
|
Class24.ThisBiosType = 7;
|
|
return true;
|
|
}
|
|
|
|
switch (this.RomHeader.Hash)
|
|
{
|
|
case "cf8b37fe940a85050b212e87798b339e":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "4760b62bdbb01260de56597c3d85ac4a":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "e4511fe6d20827b85058186f97b42c55":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "8017929d9a182440c581a6ed107bbdce":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "889c2f6b5a436cb3ed56c4e18899eeb9":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "ae2c678973f9c4daa053a53205126905":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "68ec3d602eb615bb417b20abf07719d6":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "58566f6ba754c95b8838d4276a662f61":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "2733eb04d8c0ec2a7d561b7306ad38e6":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
//3080
|
|
case "2e8a6d0da567f87345a70c279b81f325":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "3fb11fab95af362775dbf034cad119a2":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "81a0f234218a494bc4d92b4d94b2b68f":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "711bde3d69b017178eb8da387700b0a2":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "c9078ea00d8cd5f2819994d0eddc5088":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "a7badc1b16426818f4c0d49463cef098":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "43aff3b5a7777abd6a94c1d31e868c36":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "888cf1df22663c4e56025a6927558c56":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "edcf0861f45d29fbae4695c27a06a1c1":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "ea51d0d6dde4b41548f3ee6f7cfc816f":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "f51900c425b32be1db67c7f7e67e89f3":
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
return true;
|
|
case "aa212fd0e4c7b4a0ddecb21acbcdc019": //3080 FE
|
|
Class24.ThisBiosType = 3;
|
|
msgbox(4);
|
|
triedalready = true;
|
|
return true;
|
|
default:
|
|
if (Class24.ThisBiosType == 0)
|
|
{
|
|
Class24.ThisBiosType = 2;
|
|
Type2Warning();
|
|
}
|
|
else
|
|
{
|
|
Class24.ThisBiosType = 1;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|
|
|
|
private void msgbox(int message)
|
|
{
|
|
switch (message)
|
|
{
|
|
case 1:
|
|
MessageBox.Show("UID Saved!");
|
|
break;
|
|
case 2:
|
|
MessageBox.Show("UID applied to Bios!");
|
|
break;
|
|
case 3:
|
|
MessageBox.Show("Incorrect sized UID file!");
|
|
break;
|
|
case 4:
|
|
MessageBox.Show("Warning 3080 FE limited support.");
|
|
break;
|
|
case 5:
|
|
MessageBox.Show(lblName.Text + " not supported");
|
|
break;
|
|
case 6:
|
|
MessageBox.Show(h2s(Class24.easteregg));
|
|
break;
|
|
|
|
}
|
|
}
|
|
public string hexformat = "{0:X2} - [{1:X2}] / {2:X2} - [{3:X2}]";
|
|
public string hexformat2 = "{0:X4} - {1:X4}";
|
|
|
|
public string estring()
|
|
{
|
|
return "";
|
|
}
|
|
|
|
public string zstring()
|
|
{
|
|
return 0.ToString();
|
|
}
|
|
|
|
private void Type2Warning()
|
|
{
|
|
//MessageBox.Show("Type2 Bios have less support then Type1.");
|
|
}
|
|
|
|
|
|
private void ResetVFRTable()
|
|
{
|
|
for (int y = 0; y < Class24.Temperture.Length; y++)
|
|
{
|
|
Class24.Temperture[y] = 99 - y;
|
|
}
|
|
CreateVFRChart();
|
|
CreateTFRChart();
|
|
}
|
|
|
|
|
|
private void ResetFanTable()
|
|
{
|
|
for (int y = 0; y < Class24.FanTarget.Length; y++)
|
|
{
|
|
Class24.FanScaler[y] = y;
|
|
Class24.FanTarget[y] = y;
|
|
}
|
|
CreateFanChart();
|
|
}
|
|
|
|
|
|
|
|
private void UpdateDisplay()
|
|
{
|
|
if (this.RomHeader == null)
|
|
{
|
|
return;
|
|
}
|
|
this.lblName.Text = this.RomHeader.String_1.Replace("\r\n", " ");
|
|
this.lblGPU.Text = this.RomHeader.String_3;
|
|
this.lblBIOS.Text = this.RomHeader.String_2;
|
|
this.lblDevID.Text = string.Format(hexformat2, this.RomHeader.class26_0.UInt16_0, this.RomHeader.class26_0.UInt16_1);
|
|
this.lblSubVendor.Text = this.RomHeader.String_4.ToUpper();
|
|
this.lblDate.Text = this.RomHeader.String_0;
|
|
this.lblChkSum.Text = string.Format(hexformat, this.ImageChecksum, this.GeneratedChecksum, this.ImageChecksum2, this.GeneratedChecksum2);
|
|
|
|
if (this.ImageChecksum == this.GeneratedChecksum && this.ImageChecksum2 == this.GeneratedChecksum2)
|
|
{
|
|
this.lblChkSum.BackColor = Color.LightGreen;
|
|
}
|
|
else
|
|
{
|
|
this.lblChkSum.BackColor = Color.LightCoral;
|
|
}
|
|
this.lblFilename.Text = this.FileName;
|
|
lblHash.Text = this.RomHeader.Hash;
|
|
lblDefaultPL.Text = this.RomHeader.GetDefaultPL;
|
|
lblMaxPL.Text = this.RomHeader.GetMaxPL;
|
|
lblMinimumPL.Text = this.RomHeader.GetMinimumPL;
|
|
lblDefault8pinPL.Text = this.RomHeader.GetDefault8pinPL;
|
|
lblMax8pinPL.Text = this.RomHeader.GetMax8pinPL;
|
|
lblDefaultSRCPL.Text = this.RomHeader.GetDefaultSRCPL;
|
|
lblDefaultSRC2PL.Text = this.RomHeader.GetDefaultSRC2PL;
|
|
lblDefaultSRC3PL.Text = this.RomHeader.GetDefaultSRC3PL;
|
|
lblMaxSRCPL.Text = this.RomHeader.GetMaxSRCPL;
|
|
lblMaxSRC2PL.Text = this.RomHeader.GetMaxSRC2PL;
|
|
lblMaxSRC3PL.Text = this.RomHeader.GetMaxSRC3PL;
|
|
lblDefaultChipPL.Text = this.RomHeader.GetDefaultChipPL;
|
|
lblMaxChipPL.Text = this.RomHeader.GetMaxChipPL;
|
|
lblDefaultSlotPL.Text = this.RomHeader.GetDefaultSlotPL;
|
|
lblMaxSlotPL.Text = this.RomHeader.GetMaxSlotPL;
|
|
lblDefaultVRAMPL.Text = this.RomHeader.GetDefaultVRAMPL;
|
|
lblMaxVRAMPL.Text = this.RomHeader.GetMaxVRAMPL;
|
|
lblUnknownPL.Text = this.RomHeader.GetUnknownPL;
|
|
lblDefAUX1PL.Text = this.RomHeader.GetDefAUX1PL;
|
|
lblDefAUX2PL.Text = this.RomHeader.GetDefAUX2PL;
|
|
lblDefAUX3PL.Text = this.RomHeader.GetDefAUX3PL;
|
|
lblDefAUX4PL.Text = this.RomHeader.GetDefAUX4PL;
|
|
lblMaxAUX1PL.Text = this.RomHeader.GetMaxAUX1PL;
|
|
lblMaxAUX2PL.Text = this.RomHeader.GetMaxAUX2PL;
|
|
lblMaxAUX3PL.Text = this.RomHeader.GetMaxAUX3PL;
|
|
lblMaxAUX4PL.Text = this.RomHeader.GetMaxAUX4PL;
|
|
|
|
if (this.RomHeader.GetBoostClock == zstring())
|
|
{
|
|
lblBoostClock.Text = this.RomHeader.class26_0.referenceclocks.ToString();
|
|
}
|
|
else
|
|
{
|
|
lblBoostClock.Text = this.RomHeader.GetBoostClock;
|
|
}
|
|
Class24.BoostClock = int.Parse(lblBoostClock.Text);
|
|
|
|
ResetVFRTable();
|
|
ResetFanTable();
|
|
|
|
if (this.lblBaseClock.Text == estring())
|
|
{
|
|
lblBaseClock.Text = trackBarBaseClock.Value.ToString();
|
|
}
|
|
if (this.lblFBClock.Text == estring())
|
|
{
|
|
lblFBClock.Text = trackBarFBClock.Value.ToString();
|
|
}
|
|
if (this.lblVideoClock.Text == estring())
|
|
{
|
|
lblVideoClock.Text = trackBarVideoClock.Value.ToString();
|
|
}
|
|
if (this.lblTempLimit.Text == estring())
|
|
{
|
|
lblTempLimit.Text = trackBarTempLimit.Value.ToString();
|
|
}
|
|
|
|
trackBarBoostClock.Value = int.Parse(lblBoostClock.Text);
|
|
}
|
|
|
|
|
|
|
|
|
|
public byte ImageChecksum2
|
|
{
|
|
get
|
|
{
|
|
return this._ImageChecksum2;
|
|
}
|
|
set
|
|
{
|
|
this._ImageChecksum2 = value;
|
|
this.UpdateDisplay();
|
|
}
|
|
}
|
|
|
|
public byte GeneratedChecksum2
|
|
{
|
|
get
|
|
{
|
|
return this._GeneratedChecksum2;
|
|
}
|
|
set
|
|
{
|
|
this._GeneratedChecksum2 = value;
|
|
this.UpdateDisplay();
|
|
}
|
|
}
|
|
|
|
public byte ImageChecksum
|
|
{
|
|
get
|
|
{
|
|
return this._ImageChecksum;
|
|
}
|
|
set
|
|
{
|
|
this._ImageChecksum = value;
|
|
this.UpdateDisplay();
|
|
}
|
|
}
|
|
|
|
public byte GeneratedChecksum
|
|
{
|
|
get
|
|
{
|
|
return this._GeneratedChecksum;
|
|
}
|
|
set
|
|
{
|
|
this._GeneratedChecksum = value;
|
|
this.UpdateDisplay();
|
|
}
|
|
}
|
|
|
|
public string FileName
|
|
{
|
|
get
|
|
{
|
|
return this._FileName;
|
|
}
|
|
set
|
|
{
|
|
this._FileName = value;
|
|
this.UpdateDisplay();
|
|
}
|
|
}
|
|
|
|
public string FileDir
|
|
{
|
|
get
|
|
{
|
|
return this._FileDir;
|
|
}
|
|
set
|
|
{
|
|
this._FileDir = value;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public void ResetDisplay(bool unsupported = false)
|
|
{
|
|
string emptystring = estring();
|
|
this.lblName.Text = (unsupported ? h2s(Class24.Unsupported) : emptystring);
|
|
this.lblGPU.Text = emptystring;
|
|
this.lblBIOS.Text = emptystring;
|
|
this.lblDevID.Text = emptystring;
|
|
this.lblSubVendor.Text = emptystring;
|
|
this.lblDate.Text = emptystring;
|
|
this.lblFilename.Text = emptystring;
|
|
this.lblChkSum.Text = emptystring;
|
|
this.lblMinimumPL.Text = emptystring;
|
|
this.lblDefaultPL.Text = emptystring;
|
|
this.lblMaxPL.Text = emptystring;
|
|
this.lblDefault8pinPL.Text = emptystring;
|
|
this.lblMax8pinPL.Text = emptystring;
|
|
this.lblDefaultSRCPL.Text = emptystring;
|
|
this.lblMaxSRCPL.Text = emptystring;
|
|
this.lblDefaultChipPL.Text = emptystring;
|
|
this.lblMaxChipPL.Text = emptystring;
|
|
this.lblDefaultSlotPL.Text = emptystring;
|
|
this.lblMaxSlotPL.Text = emptystring;
|
|
this.lblDefaultVRAMPL.Text = emptystring;
|
|
this.lblMaxVRAMPL.Text = emptystring;
|
|
this.lblUnknownPL.Text = emptystring;
|
|
this.lblDefAUX1PL.Text = emptystring;
|
|
this.lblDefAUX2PL.Text = emptystring;
|
|
this.lblDefAUX3PL.Text = emptystring;
|
|
this.lblDefAUX4PL.Text = emptystring;
|
|
this.lblMaxAUX1PL.Text = emptystring;
|
|
this.lblMaxAUX2PL.Text = emptystring;
|
|
this.lblMaxAUX3PL.Text = emptystring;
|
|
this.lblMaxAUX4PL.Text = emptystring;
|
|
this.lblDefaultSRC2PL.Text = emptystring;
|
|
this.lblDefaultSRC3PL.Text = emptystring;
|
|
this.lblMaxSRC2PL.Text = emptystring;
|
|
this.lblMaxSRC3PL.Text = emptystring;
|
|
this.lblBoostClock.Text = emptystring;
|
|
this.lblBaseClock.Text = emptystring;
|
|
this.lblFBClock.Text = emptystring;
|
|
this.lblVideoClock.Text = emptystring;
|
|
this.lblTempLimit.Text = emptystring;
|
|
GridDefaults();
|
|
DisableControls();
|
|
this.lblChkSum.BackColor = SystemColors.Control;
|
|
}
|
|
|
|
private void GridDefaults()
|
|
{
|
|
Class24.Voltage = new[] { 700, 706, 712, 718, 725, 731, 737, 743, 750, 756, 762, 768, 775, 781, 787, 793, 800, 806, 812, 818, 825, 831, 837, 843, 850, 856, 862, 868, 875, 881, 887, 893, 900, 906, 912, 918, 925, 931, 937, 943, 950, 956, 962, 968, 975, 981, 987, 993, 1000, 1006, 1012, 1018, 1025, 1031, 1037, 1043, 1050, 1056, 1062, 1068, 1075, 1081, 1087, 1093, 1100, 1106, 1112, 1118, 1125, 1131, 1137, 1143, 1150, 1156, 1162, 1168, 1175, 1181, 1187, 1193, 1200, 1206, 1212, 1218, 1225, 1231, 1237, 1243, 1250 };
|
|
Class24.Frequency = new[] { 1245, 1275, 1290, 1305, 1335, 1350, 1365, 1380, 1410, 1400, 1425, 1440, 1455, 1470, 1485, 1515, 1530, 1545, 1560, 1575, 1590, 1605, 1620, 1635, 1650, 1665, 1680, 1695, 1710, 1725, 1725, 1740, 1755, 1770, 1785, 1800, 1800, 1815, 1830, 1830, 1845, 1860, 1875, 1875, 1890, 1890, 1905, 1920, 1920, 1935, 1935, 1950, 1950, 1965, 1965, 1980, 1980, 1995, 1995, 1995, 2010, 2010, 2010, 2025, 2025, 2025, 2025, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2055, 2055, 2055, 2055, 2055, 2055, 2055, 2055, 2055, 2055, 2055, 2055, 2055, 2055, 2055 };
|
|
|
|
}
|
|
|
|
private void DisableControls()
|
|
{
|
|
this.lblDefaultPL.Enabled = false;
|
|
this.lblMaxPL.Enabled = false;
|
|
this.Btn_Save.Enabled = false;
|
|
this.lblMinimumPL.Enabled = false;
|
|
this.lblDefault8pinPL.Enabled = false;
|
|
this.lblMax8pinPL.Enabled = false;
|
|
this.lblDefaultSRCPL.Enabled = false;
|
|
this.lblMaxSRCPL.Enabled = false;
|
|
this.lblDefaultChipPL.Enabled = false;
|
|
this.lblMaxChipPL.Enabled = false;
|
|
this.lblDefaultSlotPL.Enabled = false;
|
|
this.lblMaxSlotPL.Enabled = false;
|
|
this.lblDefaultVRAMPL.Enabled = false;
|
|
this.lblMaxVRAMPL.Enabled = false;
|
|
this.lblUnknownPL.Enabled = false;
|
|
this.lblDefAUX1PL.Enabled = false;
|
|
this.lblDefAUX2PL.Enabled = false;
|
|
this.lblDefAUX3PL.Enabled = false;
|
|
this.lblDefAUX4PL.Enabled = false;
|
|
this.lblMaxAUX1PL.Enabled = false;
|
|
this.lblMaxAUX2PL.Enabled = false;
|
|
this.lblMaxAUX3PL.Enabled = false;
|
|
this.lblMaxAUX4PL.Enabled = false;
|
|
this.lblDefaultSRC2PL.Enabled = false;
|
|
this.lblDefaultSRC3PL.Enabled = false;
|
|
this.lblMaxSRC2PL.Enabled = false;
|
|
this.lblMaxSRC3PL.Enabled = false;
|
|
this.label65.Enabled = false;
|
|
this.trackBarBoostClock.Enabled = false;
|
|
this.lblBoostClock.Enabled = false;
|
|
//this.tcSettings.Enabled = false;
|
|
}
|
|
|
|
private void Btn_open_Click(object sender, EventArgs e)
|
|
{
|
|
OpenFileDialog openFileDialog = new OpenFileDialog();
|
|
openFileDialog.DefaultExt = h2s(Class24.rom);
|
|
openFileDialog.Filter = h2s(Class24.defs);
|
|
triedalready = false;
|
|
notsupported = false;
|
|
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
|
{
|
|
this.method_3(openFileDialog.FileName);
|
|
}
|
|
}
|
|
|
|
private void method_2()
|
|
{
|
|
ResetDisplay(false);
|
|
foreach (Interface0 @interface in this.list_0)
|
|
{
|
|
@interface.Reset();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
private void method_3(string string_0)
|
|
{
|
|
try
|
|
{
|
|
|
|
|
|
this.method_2();
|
|
this.class30_0 = new Class30(string_0);
|
|
Class25 @class = this.class30_0.list_0[0];
|
|
this.RomHeader = @class.class24_0;
|
|
if (RomHeader.Boolean_0 && CheckMD5())
|
|
{
|
|
|
|
this.FileName = new FileInfo(string_0).Name;
|
|
this.FileDir = string_0;
|
|
|
|
if (@class.class24_0.class26_0.card != 3080 && @class.class24_0.class26_0.card != 3090)
|
|
{
|
|
if (!notsupported)
|
|
{
|
|
notsupported = true;
|
|
msgbox(5);
|
|
}
|
|
DisableControls();
|
|
return;
|
|
}
|
|
|
|
if (lblDefaultPL.Text == zstring() || lblMaxPL.Text == zstring() || lblMinimumPL.Text == zstring())
|
|
{
|
|
if (!triedalready)
|
|
{
|
|
DialogResult dialogResult = MessageBox.Show(h2s(Class24.t2fault), estring(), MessageBoxButtons.YesNo);
|
|
if (dialogResult == DialogResult.Yes)
|
|
{
|
|
Class24.ThisBiosType = 0;
|
|
triedalready = true;
|
|
this.method_3(FileDir);
|
|
}
|
|
}
|
|
}
|
|
|
|
this.ImageChecksum = @class.Byte_0;
|
|
this.GeneratedChecksum = @class.method_2(false);
|
|
this.ImageChecksum2 = @class.Byte_2;
|
|
this.GeneratedChecksum2 = @class.method_2(true);
|
|
this.lblMinimumPL.Enabled = true;
|
|
this.lblDefaultPL.Enabled = true;
|
|
this.lblMaxPL.Enabled = true;
|
|
this.Btn_Save.Enabled = true;
|
|
this.lblDefault8pinPL.Enabled = true;
|
|
this.lblMax8pinPL.Enabled = true;
|
|
this.lblDefaultSRCPL.Enabled = true;
|
|
this.lblMaxSRCPL.Enabled = true;
|
|
this.lblDefaultChipPL.Enabled = true;
|
|
this.lblMaxChipPL.Enabled = true;
|
|
this.lblDefaultSlotPL.Enabled = true;
|
|
this.lblMaxSlotPL.Enabled = true;
|
|
this.lblDefaultVRAMPL.Enabled = true;
|
|
this.lblMaxVRAMPL.Enabled = true;
|
|
this.lblUnknownPL.Enabled = true;
|
|
this.lblDefAUX1PL.Enabled = true;
|
|
this.lblDefAUX2PL.Enabled = true;
|
|
this.lblDefAUX3PL.Enabled = true;
|
|
this.lblDefAUX4PL.Enabled = true;
|
|
this.lblMaxAUX1PL.Enabled = true;
|
|
this.lblMaxAUX2PL.Enabled = true;
|
|
this.lblMaxAUX3PL.Enabled = true;
|
|
this.lblMaxAUX4PL.Enabled = true;
|
|
this.lblDefaultSRC2PL.Enabled = true;
|
|
this.lblDefaultSRC3PL.Enabled = true;
|
|
this.lblMaxSRC2PL.Enabled = true;
|
|
this.lblMaxSRC3PL.Enabled = true;
|
|
this.label65.Enabled = true;
|
|
this.trackBarBoostClock.Enabled = true;
|
|
this.lblBoostClock.Enabled = true;
|
|
//this.tcSettings.Enabled = true;
|
|
return;
|
|
}
|
|
this.ResetDisplay(true);
|
|
}
|
|
catch
|
|
{
|
|
this.ResetDisplay(true);
|
|
}
|
|
}
|
|
|
|
private void Form1_Load(object sender, EventArgs e)
|
|
{
|
|
tcSettings.Enabled = false;
|
|
this.method_2();
|
|
Version version = Assembly.GetExecutingAssembly().GetName().Version;
|
|
this.Text = string.Format(h2s(ti), version.Major, version.Minor, version.Build);
|
|
string[] commandLineArgs = Environment.GetCommandLineArgs();
|
|
if (commandLineArgs.Length > 1 && (commandLineArgs[1].ToLower().EndsWith(".bin") || commandLineArgs[1].ToLower().EndsWith(".rom")))
|
|
{
|
|
this.method_3(commandLineArgs[1]);
|
|
}
|
|
}
|
|
|
|
private void lblBIOS_Click(object sender, EventArgs e)
|
|
{
|
|
if (lblBIOS.Text.Length == 14)
|
|
{
|
|
System.Diagnostics.Process.Start(h2s(url) + lblBIOS.Text + h2s(url2));
|
|
}
|
|
}
|
|
|
|
private bool notnull()
|
|
{
|
|
if (lblMinimumPL.Text.Length != 0 &&
|
|
lblDefaultPL.Text.Length != 0 &&
|
|
lblMaxPL.Text.Length != 0 &&
|
|
lblDefault8pinPL.Text.Length != 0 &&
|
|
lblMax8pinPL.Text.Length != 0 &&
|
|
lblDefaultSRCPL.Text.Length != 0 &&
|
|
lblMaxSRCPL.Text.Length != 0 &&
|
|
lblDefaultChipPL.Text.Length != 0 &&
|
|
lblMaxChipPL.Text.Length != 0 &&
|
|
lblDefaultSlotPL.Text.Length != 0 &&
|
|
lblMaxSlotPL.Text.Length != 0 &&
|
|
lblDefaultVRAMPL.Text.Length != 0 &&
|
|
lblMaxVRAMPL.Text.Length != 0 &&
|
|
lblUnknownPL.Text.Length != 0)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
private void EditBiosBoardPowerLimit(byte max)
|
|
{
|
|
if (notnull())
|
|
{
|
|
Class25 @class = this.class30_0.list_0[0];
|
|
switch (max)
|
|
{
|
|
case 0:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[5], int.Parse(lblMinimumPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[5], int.Parse(lblMinimumPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[5], int.Parse(lblMinimumPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[5], int.Parse(lblMinimumPL.Text));
|
|
}
|
|
break;
|
|
case 1:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[6], int.Parse(lblDefaultPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[6], int.Parse(lblDefaultPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[6], int.Parse(lblDefaultPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[6], int.Parse(lblDefaultPL.Text));
|
|
}
|
|
break;
|
|
case 2:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[7], int.Parse(lblMaxPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[7], int.Parse(lblMaxPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[7], int.Parse(lblMaxPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[7], int.Parse(lblMaxPL.Text));
|
|
}
|
|
break;
|
|
case 3:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[21], int.Parse(lblDefault8pinPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[21], int.Parse(lblDefault8pinPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[21], int.Parse(lblDefault8pinPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[21], int.Parse(lblDefault8pinPL.Text));
|
|
}
|
|
break;
|
|
case 4:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[22], int.Parse(lblMax8pinPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[22], int.Parse(lblMax8pinPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[22], int.Parse(lblMax8pinPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[22], int.Parse(lblMax8pinPL.Text));
|
|
}
|
|
break;
|
|
case 5:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[9], int.Parse(lblDefaultSRCPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[9], int.Parse(lblDefaultSRCPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[9], int.Parse(lblDefaultSRCPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[9], int.Parse(lblDefaultSRCPL.Text));
|
|
}
|
|
break;
|
|
case 6:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[12], int.Parse(lblMaxSRCPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[12], int.Parse(lblMaxSRCPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[12], int.Parse(lblMaxSRCPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[12], int.Parse(lblMaxSRCPL.Text));
|
|
}
|
|
break;
|
|
case 7:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[15], int.Parse(lblDefaultChipPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[15], int.Parse(lblDefaultChipPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[15], int.Parse(lblDefaultChipPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[15], int.Parse(lblDefaultChipPL.Text));
|
|
}
|
|
break;
|
|
case 8:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[16], int.Parse(lblMaxChipPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[16], int.Parse(lblMaxChipPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[16], int.Parse(lblMaxChipPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[16], int.Parse(lblMaxChipPL.Text));
|
|
}
|
|
break;
|
|
case 9:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[19], int.Parse(lblDefaultSlotPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[19], int.Parse(lblDefaultSlotPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[19], int.Parse(lblDefaultSlotPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[19], int.Parse(lblDefaultSlotPL.Text));
|
|
}
|
|
break;
|
|
case 10:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[20], int.Parse(lblMaxSlotPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[20], int.Parse(lblMaxSlotPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[20], int.Parse(lblMaxSlotPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[20], int.Parse(lblMaxSlotPL.Text));
|
|
}
|
|
break;
|
|
case 11:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[17], int.Parse(lblDefaultVRAMPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[17], int.Parse(lblDefaultVRAMPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[17], int.Parse(lblDefaultVRAMPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[17], int.Parse(lblDefaultVRAMPL.Text));
|
|
}
|
|
break;
|
|
case 12:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[18], int.Parse(lblMaxVRAMPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[18], int.Parse(lblMaxVRAMPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[18], int.Parse(lblMaxVRAMPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[18], int.Parse(lblMaxVRAMPL.Text));
|
|
}
|
|
break;
|
|
case 13:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[8], int.Parse(lblUnknownPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[8], int.Parse(lblUnknownPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[8], int.Parse(lblUnknownPL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[8], int.Parse(lblUnknownPL.Text));
|
|
}
|
|
break;
|
|
case 14:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[10], int.Parse(lblDefaultSRC2PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[10], int.Parse(lblDefaultSRC2PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[10], int.Parse(lblDefaultSRC2PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[10], int.Parse(lblDefaultSRC2PL.Text));
|
|
}
|
|
break;
|
|
case 15:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[11], int.Parse(lblDefaultSRC3PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[11], int.Parse(lblDefaultSRC3PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[11], int.Parse(lblDefaultSRC3PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[11], int.Parse(lblDefaultSRC3PL.Text));
|
|
}
|
|
break;
|
|
case 16:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[13], int.Parse(lblMaxSRC2PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[13], int.Parse(lblMaxSRC2PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[13], int.Parse(lblMaxSRC2PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[13], int.Parse(lblMaxSRC2PL.Text));
|
|
}
|
|
break;
|
|
case 17:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[14], int.Parse(lblMaxSRC3PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[14], int.Parse(lblMaxSRC3PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[14], int.Parse(lblMaxSRC3PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[14], int.Parse(lblMaxSRC3PL.Text));
|
|
}
|
|
break;
|
|
case 18:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[23], int.Parse(lblDefAUX1PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[23], int.Parse(lblDefAUX1PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[23], int.Parse(lblDefAUX1PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[23], int.Parse(lblDefAUX1PL.Text));
|
|
}
|
|
break;
|
|
case 19:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[24], int.Parse(lblDefAUX2PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[24], int.Parse(lblDefAUX2PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[24], int.Parse(lblDefAUX2PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[24], int.Parse(lblDefAUX2PL.Text));
|
|
}
|
|
break;
|
|
case 20:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[25], int.Parse(lblDefAUX3PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[25], int.Parse(lblDefAUX3PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[25], int.Parse(lblDefAUX3PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[25], int.Parse(lblDefAUX3PL.Text));
|
|
}
|
|
break;
|
|
case 21:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[26], int.Parse(lblDefAUX4PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[26], int.Parse(lblDefAUX4PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[26], int.Parse(lblDefAUX4PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[26], int.Parse(lblDefAUX4PL.Text));
|
|
}
|
|
break;
|
|
case 22:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[27], int.Parse(lblMaxAUX1PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[27], int.Parse(lblMaxAUX1PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[27], int.Parse(lblMaxAUX1PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[27], int.Parse(lblMaxAUX1PL.Text));
|
|
}
|
|
break;
|
|
case 23:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[28], int.Parse(lblMaxAUX2PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[28], int.Parse(lblMaxAUX2PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[28], int.Parse(lblMaxAUX2PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[28], int.Parse(lblMaxAUX2PL.Text));
|
|
}
|
|
break;
|
|
case 24:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[29], int.Parse(lblMaxAUX3PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[29], int.Parse(lblMaxAUX3PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[29], int.Parse(lblMaxAUX3PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[29], int.Parse(lblMaxAUX3PL.Text));
|
|
}
|
|
break;
|
|
case 25:
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[30], int.Parse(lblMaxAUX4PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[30], int.Parse(lblMaxAUX4PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[30], int.Parse(lblMaxAUX4PL.Text));
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[30], int.Parse(lblMaxAUX4PL.Text));
|
|
}
|
|
break;
|
|
case 26:
|
|
if (lblBoostClock.Text == trackBarBoostClock.Value.ToString())
|
|
{
|
|
if (Class24.ThisBiosType == 1)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type1[31], int.Parse(lblBoostClock.Text) * 1000);
|
|
}
|
|
else if (Class24.ThisBiosType == 2)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type2[31], int.Parse(lblBoostClock.Text) * 1000);
|
|
}
|
|
else if (Class24.ThisBiosType == 3)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.Type3[31], int.Parse(lblBoostClock.Text) * 1000);
|
|
}
|
|
else if (Class24.ThisBiosType == 4)
|
|
{
|
|
Class29.setpower(class30_0.byte_1, Class24.XOC[31], int.Parse(lblBoostClock.Text) * 1000);
|
|
}
|
|
}
|
|
break;
|
|
|
|
|
|
default:
|
|
break;
|
|
}
|
|
this.GeneratedChecksum2 = @class.method_2(true);
|
|
this.lblChkSum.Text = string.Format(hexformat, this.ImageChecksum, this.GeneratedChecksum, this.ImageChecksum2, this.GeneratedChecksum2);
|
|
if (this.ImageChecksum == this.GeneratedChecksum && this.ImageChecksum2 == this.GeneratedChecksum2)
|
|
{
|
|
this.lblChkSum.BackColor = Color.LightGreen;
|
|
}
|
|
else
|
|
{
|
|
this.lblChkSum.BackColor = Color.LightCoral;
|
|
DialogResult dialogResult = MessageBox.Show(h2s(Class24.csfault), estring(), MessageBoxButtons.YesNo);
|
|
if (dialogResult == DialogResult.Yes)
|
|
{
|
|
@class.Byte_2 = GeneratedChecksum2;
|
|
ImageChecksum2 = @class.Byte_2;
|
|
UpdateDisplay();
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
Point? prevPosition = null;
|
|
ToolTip tooltip = new ToolTip();
|
|
|
|
private void chart_MouseMove(object sender, MouseEventArgs e)
|
|
{
|
|
var pos = e.Location;
|
|
if (prevPosition.HasValue && pos == prevPosition.Value)
|
|
return;
|
|
tooltip.RemoveAll();
|
|
prevPosition = pos;
|
|
var results = chart1.HitTest(pos.X, pos.Y, true, ChartElementType.PlottingArea);
|
|
foreach (var result in results)
|
|
{
|
|
if (result.ChartElementType == ChartElementType.PlottingArea)
|
|
{
|
|
var yVal = result.ChartArea.AxisY.PixelPositionToValue(pos.Y);
|
|
var xVal = result.ChartArea.AxisX.PixelPositionToValue(pos.X);
|
|
tooltip.Show(((int)yVal).ToString() + h2s(mhz) + ((int)xVal).ToString() + h2s(mv), chart1, pos.X, pos.Y - 15);
|
|
}
|
|
}
|
|
}
|
|
private void chart2_MouseMove(object sender, MouseEventArgs e)
|
|
{
|
|
var pos = e.Location;
|
|
if (prevPosition.HasValue && pos == prevPosition.Value)
|
|
return;
|
|
tooltip.RemoveAll();
|
|
prevPosition = pos;
|
|
var results = chart2.HitTest(pos.X, pos.Y, true, ChartElementType.DataPoint);
|
|
foreach (var result in results)
|
|
{
|
|
if (result.ChartElementType == ChartElementType.DataPoint)
|
|
{
|
|
var yVal = result.ChartArea.AxisY.PixelPositionToValue(pos.Y);
|
|
var xVal = result.ChartArea.AxisX.PixelPositionToValue(pos.X);
|
|
tooltip.Show(((int)yVal).ToString() + "% @ " + ((int)xVal).ToString() + "C", chart2, pos.X, pos.Y - 15);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void chart3_MouseMove(object sender, MouseEventArgs e)
|
|
{
|
|
var pos = e.Location;
|
|
if (prevPosition.HasValue && pos == prevPosition.Value)
|
|
return;
|
|
tooltip.RemoveAll();
|
|
prevPosition = pos;
|
|
var results = chart3.HitTest(pos.X, pos.Y, true, ChartElementType.DataPoint);
|
|
foreach (var result in results)
|
|
{
|
|
if (result.ChartElementType == ChartElementType.DataPoint)
|
|
{
|
|
var yVal = result.ChartArea.AxisY.PixelPositionToValue(pos.Y);
|
|
var xVal = result.ChartArea.AxisX.PixelPositionToValue(pos.X);
|
|
tooltip.Show(((int)yVal).ToString() + "% @ " + ((int)xVal).ToString() + "C", chart3, pos.X, pos.Y - 15);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void CreateVFRChart()
|
|
{
|
|
chart1.Series.Clear();
|
|
var series = new Series(h2s(VFR));
|
|
series.ChartType = SeriesChartType.StepLine;
|
|
series.Color = Color.Black;
|
|
series.Points.DataBindXY(Class24.Voltage, Class24.Frequency);
|
|
chart1.Series.Add(series);
|
|
chart1.ChartAreas[0].AxisX.Title = h2s(vmv);
|
|
chart1.ChartAreas[0].AxisY.Title = h2s(cmhz);
|
|
}
|
|
|
|
private void CreateTFRChart()
|
|
{
|
|
chart3.Series.Clear();
|
|
var series = new Series(h2s(TFR));
|
|
series.ChartType = SeriesChartType.Spline;
|
|
series.Color = Color.Black;
|
|
series.Points.DataBindXY(Class24.FanScaler, Class24.Temperture);
|
|
chart3.Series.Add(series);
|
|
chart3.ChartAreas[0].AxisX.Title = h2s(tempc);
|
|
chart3.ChartAreas[0].AxisY.Title = h2s(ptarget);
|
|
}
|
|
|
|
private void CreateFanChart()
|
|
{
|
|
chart2.Series.Clear();
|
|
var series = new Series(h2s(fan));
|
|
series.ChartType = SeriesChartType.Spline;
|
|
series.Color = Color.Black;
|
|
series.Points.DataBindXY(Class24.FanScaler, Class24.FanTarget);
|
|
chart2.Series.Add(series);
|
|
chart2.ChartAreas[0].AxisX.Title = h2s(tempc);
|
|
chart2.ChartAreas[0].AxisY.Title = h2s(fans);
|
|
}
|
|
|
|
public void method_1(string string_1)
|
|
{
|
|
foreach (Class25 @class in this.list_0)
|
|
{
|
|
@class.method_1();
|
|
}
|
|
File.WriteAllBytes(string_1, class30_0.byte_1);
|
|
}
|
|
|
|
private void method_4(string string_0)
|
|
{
|
|
if (this.class30_0 != null)
|
|
{
|
|
this.class30_0.method_1(string_0);
|
|
}
|
|
}
|
|
|
|
private void Btn_Save_Click(object sender, EventArgs e)
|
|
{
|
|
if (this.class30_0 != null)
|
|
{
|
|
SaveFileDialog saveFileDialog = new SaveFileDialog();
|
|
saveFileDialog.DefaultExt = h2s(Class24.rom);
|
|
saveFileDialog.Filter = h2s(Class24.defs);
|
|
if (saveFileDialog.ShowDialog() == DialogResult.OK)
|
|
{
|
|
|
|
this.method_4(saveFileDialog.FileName);
|
|
this.method_3(saveFileDialog.FileName);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void lblMinimumPL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(0);
|
|
}
|
|
|
|
private void lblDefaultPL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(1);
|
|
}
|
|
|
|
private void lblMaxPL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(2);
|
|
}
|
|
|
|
private void lblDefault8pinPL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(3);
|
|
}
|
|
|
|
private void lblMax8pinPL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(4);
|
|
}
|
|
|
|
private void lblDefaultSRCPL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(5);
|
|
}
|
|
|
|
private void lblMaxSRCPL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(6);
|
|
}
|
|
|
|
private void lblDefaultChipPL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(7);
|
|
}
|
|
|
|
private void lblMaxChipPL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(8);
|
|
}
|
|
|
|
private void lblDefaultSlotPL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(9);
|
|
}
|
|
|
|
private void lblMaxSlotPL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(10);
|
|
}
|
|
|
|
private void lblDefaultVRAMPL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(11);
|
|
}
|
|
|
|
private void lblMaxVRAMPL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(12);
|
|
}
|
|
|
|
private void lblUnknownPL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(13);
|
|
}
|
|
|
|
private void lblDefaultSRC2PL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(14);
|
|
}
|
|
|
|
private void lblDefaultSRC3PL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(15);
|
|
}
|
|
|
|
private void lblMaxSRC2PL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(16);
|
|
}
|
|
|
|
private void lblMaxSRC3PL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(17);
|
|
}
|
|
|
|
private void lblDefAUX1PL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(18);
|
|
}
|
|
|
|
private void lblDefAUX2PL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(19);
|
|
}
|
|
|
|
private void lblDefAUX3PL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(20);
|
|
}
|
|
|
|
private void lblDefAUX4PL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(21);
|
|
}
|
|
|
|
private void lblMaxAUX1PL_VisibleChanged(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(22);
|
|
}
|
|
|
|
private void lblMaxAUX2PL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(23);
|
|
}
|
|
|
|
private void lblMaxAUX3PL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(24);
|
|
}
|
|
|
|
private void lblMaxAUX4PL_Validated(object sender, EventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(25);
|
|
}
|
|
|
|
private void trackBarBoostClock_Validating(object sender, System.ComponentModel.CancelEventArgs e)
|
|
{
|
|
EditBiosBoardPowerLimit(26);
|
|
}
|
|
|
|
private void lblBoostClock_Validated(object sender, EventArgs e)
|
|
{
|
|
trackBarBoostClock.Value = int.Parse(lblBoostClock.Text);
|
|
EditBiosBoardPowerLimit(26);
|
|
}
|
|
|
|
private void button1_Click(object sender, EventArgs e)
|
|
{
|
|
Clipboard.SetText(h2s(Class24.CSVHead) + Environment.NewLine + databasedump());
|
|
}
|
|
|
|
private string h2s(byte[] inp)
|
|
{
|
|
return Encoding.ASCII.GetString(inp);
|
|
|
|
}
|
|
|
|
private string databasedump()
|
|
{
|
|
byte[] c = { 0x2c };
|
|
string comma = h2s(c);
|
|
return
|
|
lblSubVendor.Text + comma +
|
|
lblBIOS.Text + comma +
|
|
lblDate.Text + comma +
|
|
lblDevID.Text + comma +
|
|
lblHash.Text + comma +
|
|
lblBaseClock.Text + comma +
|
|
lblBoostClock.Text + comma +
|
|
lblFBClock.Text + comma +
|
|
lblDefaultPL.Text + comma +
|
|
lblMaxPL.Text + comma +
|
|
lblDefault8pinPL.Text + comma +
|
|
lblMax8pinPL.Text + comma +
|
|
lblDefaultSlotPL.Text + comma +
|
|
lblMaxSlotPL.Text + comma +
|
|
lblDefaultChipPL.Text + comma +
|
|
lblMaxChipPL.Text + comma +
|
|
lblDefaultSRCPL.Text + comma +
|
|
lblDefaultSRC2PL.Text + comma +
|
|
lblDefaultSRC3PL.Text + comma +
|
|
lblMaxSRCPL.Text + comma +
|
|
lblMaxSRC2PL.Text + comma +
|
|
lblMaxSRC3PL.Text + comma +
|
|
lblDefaultVRAMPL.Text + comma +
|
|
lblMaxVRAMPL.Text + comma +
|
|
lblDefAUX1PL.Text + comma +
|
|
lblDefAUX2PL.Text + comma +
|
|
lblDefAUX3PL.Text + comma +
|
|
lblDefAUX4PL.Text + comma +
|
|
lblMaxAUX1PL.Text + comma +
|
|
lblMaxAUX2PL.Text + comma +
|
|
lblMaxAUX3PL.Text + comma +
|
|
lblMaxAUX4PL.Text + comma +
|
|
lblUnknownPL.Text + comma;
|
|
|
|
|
|
}
|
|
|
|
private void lFilename_MouseDoubleClick(object sender, MouseEventArgs e)
|
|
{
|
|
button1.Visible = true;
|
|
button2.Visible = true;
|
|
Btn_Save.Visible = true;
|
|
tableLayoutPanel1.Enabled = true;
|
|
tcSettings.Enabled = true;
|
|
}
|
|
|
|
private void trackBarBoostClock_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
lblBoostClock.Text = trackBarBoostClock.Value.ToString();
|
|
}
|
|
|
|
|
|
private void trackBarBaseClock_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
lblBaseClock.Text = trackBarBaseClock.Value.ToString();
|
|
}
|
|
|
|
private void trackBarVideoClock_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
lblVideoClock.Text = trackBarVideoClock.Value.ToString();
|
|
}
|
|
|
|
private void trackBarFBClock_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
lblFBClock.Text = trackBarFBClock.Value.ToString();
|
|
}
|
|
|
|
private void trackBarTempLimit_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
lblTempLimit.Text = trackBarTempLimit.Value.ToString();
|
|
}
|
|
|
|
private void ExtractUID_Click(object sender, EventArgs e)
|
|
{
|
|
byte[] UID = new byte[0xFFF];
|
|
for (int i = 0; i < UID.Length; i++)
|
|
{
|
|
UID[i] = class30_0.byte_1[0x4000 + i];
|
|
}
|
|
if (UID != null)
|
|
{
|
|
SaveFileDialog saveFileDialog = new SaveFileDialog();
|
|
saveFileDialog.DefaultExt = h2s(Class24.UUID);
|
|
saveFileDialog.Filter = h2s(Class24.UID);
|
|
if (saveFileDialog.ShowDialog() == DialogResult.OK)
|
|
{
|
|
File.WriteAllBytes(saveFileDialog.FileName, UID);
|
|
msgbox(1);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void InjectUID_Click(object sender, EventArgs e)
|
|
{
|
|
OpenFileDialog openFileDialog = new OpenFileDialog();
|
|
openFileDialog.DefaultExt = h2s(Class24.UUID);
|
|
openFileDialog.Filter = h2s(Class24.UID);
|
|
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
|
{
|
|
byte[] UID = File.ReadAllBytes(openFileDialog.FileName);
|
|
if (UID.Length == 4095)
|
|
{
|
|
for (int i = 0; i < UID.Length; i++)
|
|
{
|
|
class30_0.byte_1[0x4000 + i] = UID[i];
|
|
}
|
|
msgbox(2);
|
|
}
|
|
else
|
|
{
|
|
msgbox(3);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
|
|
{
|
|
|
|
if (e.TabPageIndex == 0 || e.TabPageIndex == 1)
|
|
{
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (button1.Visible == false)
|
|
e.Cancel = true;
|
|
}
|
|
}
|
|
|
|
private void button2_Click(object sender, EventArgs e)
|
|
{
|
|
string currentDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
|
|
string[] files = Directory.GetFiles(currentDirectory, h2s(Class24.rom));
|
|
string dumplog = h2s(Class24.CSVHead) + Environment.NewLine;
|
|
foreach (string s in files)
|
|
{
|
|
triedalready = false;
|
|
notsupported = false;
|
|
this.method_3(s);
|
|
dumplog += databasedump() + Environment.NewLine;
|
|
}
|
|
Clipboard.SetText(dumplog);
|
|
|
|
}
|
|
|
|
private void lChkSum_DoubleClick(object sender, EventArgs e)
|
|
{
|
|
msgbox(6);
|
|
}
|
|
}
|
|
}
|