Модель консоли: Все PSP
Прошивка: 5.00 m33-6
Регистрация: 20.01.2010
Сообщений: 3,415
Вы сказали Спасибо: 2,368
Поблагодарили 1,617 раз(а) в 873 сообщениях
Сила репутации: 1Репутация: 1617 
(обеспечено прекрасное будущее)
|
Реформа детекта материнских плат...
- 1 часть...
Итак, я заметил, что в 3-х моделях материнских плат с одинаковым названием (версией) различается идентификатор 'pommel', что является идентификатором контроллера электропитания. Возможно это не так важно, но, я считаю, что это должно повлиять на версию мат.платы.
- 2 часть...
Также, в PSPident ущербен алгоритм детекта мат.платы, т.к. она может определяться одним лишь Tachyon'ом, т.е. из-за изменения любого другого идентификатора мы как ни в чём небывало пропустим новую версию.
Я замутил новый алгоритм на основе матрицы, который будет применяться в PSP EVEREST 2, также предлагаю Yoti добавить его в PSPident, и принять 1-ую реформу. В этом алгоритме учтены все идентификаторы (за исключением pommel в TA-094, который буду искать).
Алгоритм (v2)
#define UNKNOWN 0x00000000
typedef struct
{
u32 tachyon;
u32 baryon;
u32 pommel;
char *mobo_name;
} Motherboard;
Motherboard detmobo[] =
{
/* PSP-100x */
{ 0x00140000, 0x00030600, 0x00000103, "TA-079v1" },
{ 0x00200000, 0x00030600, 0x00000103, "TA-079v2" },
{ 0x00200000, 0x00040600, 0x00000103, "TA-079v3" },
{ 0x00300000, 0x00040600, 0x00000103, "TA-081v1" },
{ 0x00300000, 0x00040600, 0x00000104, "TA-081v2" },
{ 0x00400000, 0x00114000, 0x00000112, "TA-082" },
{ 0x00400000, 0x00121000, 0x00000112, "TA-086" },
/* PSP-200x */
{ 0x00500000, 0x0022B200, 0x00000123, "TA-085v1" },
{ 0x00500000, 0x00234000, 0x00000123, "TA-085v2" },
{ 0x00500000, 0x00243000, 0x00000123, "TA-088v1/v2" },
{ 0x00600000, 0x00243000, 0x00000123, "TA-088v3" },
{ 0x00500000, 0x00243000, 0x00000132, "TA-090v1" },
/* PSP-300x */
{ 0x00600000, 0x00263100, 0x00000132, "TA-090v2" },
{ 0x00600000, 0x00263100, 0x00000133, "TA-090v3" },
{ 0x00600000, 0x00285000, 0x00000133, "TA-092" },
{ 0x00810000, 0x002C4000, 0x00000141, "TA-093v1" },
{ 0x00810000, 0x002C4000, 0x00000143, "TA-093v2" },
{ 0x00810000, 0x002E4000, 0x00000154, "TA-095v1" },
{ 0x00820000, 0x002E4000, 0x00000154, "TA-095v2" },
/* PSP-N100x (PSPgo) */
{ 0x00720000, 0x00304000, 0x00000133, "TA-091" },
{ 0x00800000, 0x002A0000, UNKNOWN, "TA-094" },
/* PSP-E100x (PSP Essentials aka PSP Street) */
{ 0x00900000, 0x00403000, 0x00000154, "TA-096" },
/* DTP-T1000A */
{ 0x00100000, UNKNOWN, UNKNOWN, "Devkit" },
};
char *GetMoBoName()
{
char *ret_mobo = "Unknown";
int i;
for(i = 0; i < sizeof(detmobo) / sizeof(Motherboard); i++)
if(detmobo[i].tachyon == tachyon && (detmobo[i].baryon == baryon || detmobo[i].baryon == UNKNOWN) && (detmobo[i].pommel == pommel || detmobo[i].pommel == UNKNOWN))
ret_mobo = detmobo[i].mobo_name;
return ret_mobo;
}
Последний раз редактировалось frostegater; 09.12.2011 в 11:44.
|