Вход

Просмотр полной версии : UMD Version Checker - версия прошивки UMD-дисковода


ErikPshat
16.01.2010, 14:27
Вам интересно узнать версию прошивки, установленной в UMD-дисководе на заводе?

Тогда эта программа для вас!

UMD Version Checker Final

2960


Основана на исходных кодах и документации SilverSpring.
Фактически от исходников осталось ~5% кода.
Пример того, что выводилось изначально и только в файл umd-drive.txt:Ђ 2\ SCEI UMD ROM DRIVE 1.150AAug30 ,2005
Весь основной код по выводу на экран и в файл написан stillllll (http://www.pspx.ru/forum/member.php?u=255901). Так что все благодарности ему.
Моё только оформление и распределение кода.



Как обычно, копируем папку с программой в ms0:/PSP/GAME/
Запускаем из меню Игра -> Memory Stick™
Забираем из корня карты памяти текстовик umd-drive.txt и смотрим версию прошивки

Прошивка моего дисковода - 1.150А от 30 Августа 2005 года.
Просто интересно, какие версии существуют. Выкладывайте свои показания...

Источник (http://my.malloc.us/silverspring/2008/04/umd-firmware-version-checker/) SilverSpring ©

Во вложении программа с исходниками.

AEROS
16.01.2010, 16:28
PSP-2004,SCEI UMD ROM DRIVE 1.240ANov10 ,2006

alex90
16.01.2010, 20:14
PSP1004
Ђ 2\ SCEI UMD ROM DRIVE 1.090 Oct18 ,2004

DenDav
16.01.2010, 20:21
PSP-2004 SCEI UMD ROM DRIVE 1.240ANov10 ,2006 o_O
Выходит, что сони не стала делать новых приводов для слима, и оставили от фатки?

goldpxx
16.01.2010, 21:14
psp 2008 Ђ 2\ SCEI UMD ROM DRIVE 1.240ANov10 ,2006

ErikPshat
17.01.2010, 02:23
Выходит, что сони не стала делать новых приводов для слима, и оставили от фатки?Да не, судя по уже выложенным результатам, как раз у всех пока Слимок привод с прошивкой:

1.240A - Nov10 ,2006

stillllll
17.01.2010, 02:56
3008 - Ђ 2\ SCEI UMD ROM DRIVE 1.240ANov10 ,2006

Не нужно выводить содержимое файла. Нужно добавить описание стурктуры ATAPI_INQUIRY (первое, что нашел в гугле http://www.singlix.com/trdos/atapinq.html), но можно нагуглить и нормальный какой-нибудь atapi.h от какого-нибудь линукса и т.д.

typedef struct
{
char peripheral_device_type;
char removable;
char standard_ver;
char atapi_response;
int additional;
char vendor_id[8];
char product_id[16];
char product_rev[14];
}ATAPI_INQURIY;

И затем третьим параметром для _sceUmdExecInquiryCmd передавать указатель на эту нашу структуру (туда где сейчас buf).
После этого можно будет все красиво выводить по полям структуры на экран с помощью pspdebugscreenprintf =)

Coby
17.01.2010, 07:49
PSP 2008 SCEI UMD ROM DRIVE 1.240ANov10 ,2006

ErikPshat
17.01.2010, 10:59
Там ведь по окончанию программы данные записываются в текстовой файл umd.txt.

Ведь можно же просто после сохранения взять текст из файла типа так:

printf("ms0:/umd.txt", pspDebugScreenOut);

Или после этой строчки, когда 0х38 байт уже скопировалось в буфер:

u8 buf[0x38];
u8 param[4] = {0, 0, 0x38, 0};

вывести из буфера на экран типа так:

printf(pspDebugScreenOut, &buf);

stillllll
17.01.2010, 18:49
Ну вот как-то так: http://narod.ru/disk/16993026000/umd.zip.html
Проще придумать что-то вряд-ли возможно.

ErikPshat
17.01.2010, 19:57
stillllll, О_о, спасибо за урок! =)

Круто получилось. Все характеристики вывел!

А эти значения хоть что означают? Может их лучше в десятичном формате вывести. А то эти цифры ни о чём не говорят.
И ещё, весия прошивки всё-таки склеивается с месяцем. Видимо так оно в самой прошивке записано. Но видно, что съезжает влево от запятой.

Может можно как-то разделить прошивку от месяца, например взять первые 5 символов, потом сделать пробел, потом следующие 3 символа (месяц), опять пробел, потом два символа на число и 4 символа на год =)

stillllll
17.01.2010, 20:22
Там по ссылке, котрую ты давал на SilverSpring немного расписано что эти поля означают.
- the drive reports to the host as a “CDROM Device” (0×5 in the Device Type field).
- that the medium is removable (RMB bit set to 1).
- is not standard in either ANSI/ECMA/ISO (all set to 0)
- Response Data Format (2)
- ATAPI Transport Version (3)
- Vendor ID is “SCEI”
- Product ID is “UMD ROM DRIVE”
- a blank Product Revision Level
- Vendor Specific info “1.240 Nov10 ,2006″

ErikPshat
17.01.2010, 20:30
stillllll, понял.

Спасибо! Добавил в шапку.

ErikPshat
20.01.2010, 19:25
stillllll, и всё-таки, почему в текстовик не выводит то, что показывает на экране?

Вопрос поменялся. Раньше спрашивал, как из текстовика вывести на экран. Теперь, как с экрана вывести в текстовик ))).

Вероятно всё-таки нужно воспользоваться более гибко функцией sceUmdExecInquiryCmd

stillllll
20.01.2010, 22:37
Для того чтобы сохранить в файл выводимый текст, можно воспользоваться следующей строкой кода, которую я добавлял в первый вариант просто для "отладки", когда pspDebugScreenPrintf выводила мне крякозябры.
writeFile("ms0:/umd2.txt", outtxt, strlen(outtxt)); // хотя в файл выводится нормально

ErikPshat
21.01.2010, 10:04
stillllll, отлично! Всё работает.
Продолжим =)

char sony_spec[0x14]; //Выводим информацию о прошивке

strncpy(buftxt, ai.sony_spec, 0x14); // Копируем данные из буфера на экран и в файл

Получаем: 1.240ANov10 ,2006

Как здесь можно отсечь первые 6 байт (1.240A), чтобы они не выводились на экран?
Чтобы вывести только это: Nov10 ,2006

stillllll
21.01.2010, 18:04
Примерно как-то так:
strncpy(buftxt, &ai.sony_spec[6], 14);

Вторым параметром мы передаем указатель на 7 символ строки и уменьшаем число копируемых символов на 6 (третий параметр).

Но этот способ годится, только если дата будет начинаться с 7 символа.

Можно отделить версию и дату пробелом:

strncpy(buftxt, ai.sony_spec, 6);
strcat(buftxt, " ");
strncpy(buftxt, &ai.sony_spec[6], 14);

ErikPshat
23.01.2010, 02:27
stillllll, огромное тебе спасибо! Этот урок я выучил.

Ну тогда финальная версия с исходниками в шапке =)
В принципе от исходных исходников там ничего не осталось.

По моему неплохо получилось.

lupus
04.02.2010, 10:19
а какой в этом всём практический смысл, если не секрет?

stillllll
04.02.2010, 12:42
а какой в этом всём практический смысл, если не секрет?
Никакого. Все 4fun =)

myhouse_1991
04.02.2010, 18:37
Запустил на 3 PSP:
1) Мой PSP-2008 с платой ta-088v2
2) Другой PSP-2008 с платой ta-085v1
3) Другой PSP-3008 с платой ta-090v2

Выдались одни и те же результаты:
http://s002.radikal.ru/i198/1002/60/cf198873094b.png

Ну ещё есть пару мелких косяков у тебя с английским переводом:
Characteristics UMD Drive - по-русски звучало бы как характеристики UMD привод. Нужно указать принадлежность, используя фразу of
Characteristics of UMD Drive - по-русски звучало бы как характеристики UMD привода.

Based on the source code SilverSpring - а где любимая фраза by? )))

ErikPshat
04.02.2010, 20:10
myhouse_1991, ну так Гугль перевёл ))). Да и сам SilverSpring в исходниках не применяет by.
Ну, в общем исправил.

Это на Фатках старые версии прошивки.
Например у alex90 - 1.090 от 18 Октября 2004 года.
А у меня посвежее - 1.150А от 30 Августа 2005 года.
На Слимках и Брайтах - 1.240A от 10 Ноября 2006 года.
Ещё бы узнать, как обновить версию прошивки :)

pronvit
04.02.2010, 22:26
Ещё бы узнать, как обновить версию прошивки :)

да нафиг..))

Astra1111
11.02.2010, 18:12
да нафиг..))
Возможно это увеличит скорость чтения и уменьшит вероятность ошибок при чтении. Я так думаю)))

Rasiel-sama
18.07.2010, 13:02
Вот с моей PSP-1000, самой первой японки с платой ta79

http://s14.radikal.ru/i187/1007/64/f56dedfdf349.jpg