Автор Тема: PSone Bios Dumping Guide.  (Прочитано 21385 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #90 : 09 Май 2018, 18:04:52 »
Это Xplorer FX (он же Xplorer professional и X-terminator pro) он имеет на борту рабочий порт DB-25. Может в эту уж сторону смотреть с шаманизмом?

да, именно в эту, у тебя на компе LPT порт есть?

честно говоря я в афиге, по коду всё верно, чип должен детектится нормально, специально сравнил с кодом что писал для дрима, всё верно, ошибок нет. R2 пробовал нажимать? 6F 2F не меняется случаем?

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4460
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #91 : 09 Май 2018, 18:18:59 »
Где xflash-v12-b3-t1?
Не сохранял автор код первого теста, и что?

Оффлайн EVIL

  • Пользователь
  • Сообщений: 3158
  • Пол: Мужской
  • Based Department
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #92 : 09 Май 2018, 18:21:18 »
да, именно в эту, у тебя на компе LPT порт есть?

честно говоря я в афиге, по коду всё верно, чип должен детектится нормально, специально сравнил с кодом что писал для дрима, всё верно, ошибок нет. R2 пробовал нажимать? 6F 2F не меняется случаем?
Нету, но если повозиться с вечер, то может и появиться.

Конечно пробовал, ну а толку? Может там нужный кусок кода в комментарии на время запихнули, ну или не все так гладко?
Не сохранял автор код первого теста, и что?
Сравнивать труднее.

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #93 : 09 Май 2018, 18:28:08 »
Может там нужный кусок кода в комментарии на время запихнули, ну или все же не все так гладко?

извлеки из образа с третьей бетой EXE'шник и кинь мне, попробую в дизассемблере глянуть

Оффлайн EVIL

  • Пользователь
  • Сообщений: 3158
  • Пол: Мужской
  • Based Department
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #94 : 09 Май 2018, 18:33:48 »
извлеки из образа с третьей бетой EXE'шник и кинь мне, попробую в дизассемблере глянуть
Он в архиве с последним релизом по ссылке, что в прошлых постах.
Ну на * xflash.zip (20.6 КБ - загружено 212 раз.)
Она распространялась даже не в виде готового образа.

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #95 : 09 Май 2018, 19:37:42 »
да того же рот, компилятор что ли тупорылый, смотри прикол

вот так должно быть
void EepromDetect()
{
char *Temp;
u_char found;
Temp  = (char*)0x1F005555;  *Temp = 0xAA;
Temp  = (char*)0x1F002AAA;  *Temp = 0x55;
Temp  = (char*)0x1F005555;  *Temp = 0x90;
DelayMs(100);
Temp  = (char*)0x1F000000;  rom_id1 = *Temp;
Temp  = (char*)0x1F000001;  rom_id2 = *Temp;
Temp  = (char*)0x1F005555;  *Temp = 0xAA;
Temp  = (char*)0x1F002AAA;  *Temp = 0x55;
Temp  = (char*)0x1F005555;  *Temp = 0xF0;
DelayMs(100);
}

вот что получилось

Код: (ASM) [Выделить]
TEXT:80013524  # =============== S U B R O U T I N E =======================================
TEXT:80013524
TEXT:80013524
TEXT:80013524 EepromDetect:                            # CODE XREF: main+44p
TEXT:80013524                                          # main+FCp ...
TEXT:80013524
TEXT:80013524 var_10          = -0x10
TEXT:80013524 var_C           = -0xC
TEXT:80013524 var_8           = -8
TEXT:80013524
TEXT:80013524                 addiu   $sp, -0x20
TEXT:80013528                 sw      $s0, 0x20+var_10($sp)
TEXT:8001352C                 li      $s0, 0x55
TEXT:80013530                 li      $v0, 0x90
TEXT:80013534                 sw      $ra, 0x20+var_8($sp)
TEXT:80013538                 sw      $s1, 0x20+var_C($sp)
TEXT:8001353C                 sb      $s0, 0x1F002AAA
TEXT:80013544                 sb      $v0, 0x1F005555
TEXT:8001354C                 jal     DelayMs
TEXT:80013550                 li      $a0, 0x64
TEXT:80013554                 lbu     $v1, 0x1F000000
TEXT:8001355C                 lbu     $a1, 0x1F000001
TEXT:80013564                 li      $v0, 0xF0
TEXT:80013568                 sb      $s0, 0x1F002AAA
TEXT:80013570                 sb      $v0, 0x1F005555
TEXT:80013578                 sb      $v1, 0x44($gp)
TEXT:8001357C                 sb      $a1, 0x45($gp)
TEXT:80013580                 jal     DelayMs
TEXT:80013584                 li      $a0, 0x64
TEXT:80013588                 lw      $ra, 0x20+var_8($sp)
TEXT:8001358C                 lw      $s1, 0x20+var_C($sp)
TEXT:80013590                 lw      $s0, 0x20+var_10($sp)
TEXT:80013594                 jr      $ra
TEXT:80013598                 addiu   $sp, 0x20
TEXT:80013598  # End of function EepromDetect

Код: (C) [Выделить]
void EepromDetect()
{
char *Temp;
u_char found;

Temp  = (char*)0x1F002AAA;  *Temp = 0x55;
Temp  = (char*)0x1F005555;  *Temp = 0x90;
DelayMs(100);

Temp  = (char*)0x1F002AAA;  *Temp = 0x55;
Temp  = (char*)0x1F005555;  *Temp = 0xF0;
Temp  = (char*)0x1F000000;  rom_id1 = *Temp;
Temp  = (char*)0x1F000001;  rom_id2 = *Temp;
DelayMs(100);
}

компилятор сука оптимизировал, ясен пень что чип не определяется

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #96 : 09 Май 2018, 19:44:54 »
да того же рот, компилятор что ли тупорылый, смотри прикол

вот так должно быть
void EepromDetect()
{
char *Temp;
u_char found;
Temp  = (char*)0x1F005555;  *Temp = 0xAA;
Temp  = (char*)0x1F002AAA;  *Temp = 0x55;
Temp  = (char*)0x1F005555;  *Temp = 0x90;
DelayMs(100);
Temp  = (char*)0x1F000000;  rom_id1 = *Temp;
Temp  = (char*)0x1F000001;  rom_id2 = *Temp;
Temp  = (char*)0x1F005555;  *Temp = 0xAA;
Temp  = (char*)0x1F002AAA;  *Temp = 0x55;
Temp  = (char*)0x1F005555;  *Temp = 0xF0;
DelayMs(100);
}

вот что получилось

Код: (ASM) [Выделить]
TEXT:80013524  # =============== S U B R O U T I N E =======================================
TEXT:80013524
TEXT:80013524
TEXT:80013524 EepromDetect:                            # CODE XREF: main+44p
TEXT:80013524                                          # main+FCp ...
TEXT:80013524
TEXT:80013524 var_10          = -0x10
TEXT:80013524 var_C           = -0xC
TEXT:80013524 var_8           = -8
TEXT:80013524
TEXT:80013524                 addiu   $sp, -0x20
TEXT:80013528                 sw      $s0, 0x20+var_10($sp)
TEXT:8001352C                 li      $s0, 0x55
TEXT:80013530                 li      $v0, 0x90
TEXT:80013534                 sw      $ra, 0x20+var_8($sp)
TEXT:80013538                 sw      $s1, 0x20+var_C($sp)
TEXT:8001353C                 sb      $s0, 0x1F002AAA
TEXT:80013544                 sb      $v0, 0x1F005555
TEXT:8001354C                 jal     DelayMs
TEXT:80013550                 li      $a0, 0x64
TEXT:80013554                 lbu     $v1, 0x1F000000
TEXT:8001355C                 lbu     $a1, 0x1F000001
TEXT:80013564                 li      $v0, 0xF0
TEXT:80013568                 sb      $s0, 0x1F002AAA
TEXT:80013570                 sb      $v0, 0x1F005555
TEXT:80013578                 sb      $v1, 0x44($gp)
TEXT:8001357C                 sb      $a1, 0x45($gp)
TEXT:80013580                 jal     DelayMs
TEXT:80013584                 li      $a0, 0x64
TEXT:80013588                 lw      $ra, 0x20+var_8($sp)
TEXT:8001358C                 lw      $s1, 0x20+var_C($sp)
TEXT:80013590                 lw      $s0, 0x20+var_10($sp)
TEXT:80013594                 jr      $ra
TEXT:80013598                 addiu   $sp, 0x20
TEXT:80013598  # End of function EepromDetect

Код: (C) [Выделить]
void EepromDetect()
{
char *Temp;
u_char found;

Temp  = (char*)0x1F002AAA;  *Temp = 0x55;
Temp  = (char*)0x1F005555;  *Temp = 0x90;
DelayMs(100);

Temp  = (char*)0x1F002AAA;  *Temp = 0x55;
Temp  = (char*)0x1F005555;  *Temp = 0xF0;
Temp  = (char*)0x1F000000;  rom_id1 = *Temp;
Temp  = (char*)0x1F000001;  rom_id2 = *Temp;
DelayMs(100);
}

компилятор сука оптимизировал, ясен пень что чип не определяется
А уровень оптимизации -03 пробовал убирать?

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #97 : 09 Май 2018, 20:03:44 »
А уровень оптимизации -03 пробовал убирать?

попробовал, лучше, но всё равно с косяком

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #98 : 09 Май 2018, 20:11:06 »
попробовал, лучше, но всё равно с косяком
Интересно даже. К выходным до дев станции доберусь, попробую ковырнуть тоже.

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #99 : 09 Май 2018, 20:41:00 »
чуток подредактировал код, собрал без оптимизации
в дизассемблере вроде всё красиво, пробуйте

Не нашлось никакой инфы?

в общем гугление дало результат, нарвался и на дизасм БИОСА и всё стало на свои места, я наконец понял как происходит загрузка стороннего ПО, мне это долго не давало покоя, а всё оказалось легко и просто, эту функцию заложила в БИОС сама SONY

Сигнал Нога Flash Нога CPU Нога Paralell IO
  CE   22 (30)    98          4
  WE   31 (7)   100 64
  OE   24 (32)   101 30
 
номера ног Flash указаны для SST29EE020 в корпусе PLCC32 (TSOP32)
Нога CPU указана для установки в SLIM консоль
« Последнее редактирование: 10 Май 2018, 00:15:49 от megavolt85 »

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #100 : 10 Май 2018, 08:34:11 »
в общем гугление дало результат, нарвался и на дизасм БИОСА и всё стало на свои места, я наконец понял как происходит загрузка стороннего ПО, мне это долго не давало покоя, а всё оказалось легко и просто, эту функцию заложила в БИОС сама SONY
Сигнал Нога Flash Нога CPU Нога Paralell IO
  CE   22 (30)    98          4
  WE   31 (7)   100 64
  OE   24 (32)   101 30
 
номера ног Flash указаны для SST29EE020 в корпусе PLCC32 (TSOP32)
Нога CPU указана для установки в SLIM консоль
Сегодня как раз собирался этим заняться.

Оффлайн EVIL

  • Пользователь
  • Сообщений: 3158
  • Пол: Мужской
  • Based Department
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #101 : 10 Май 2018, 15:28:41 »
чуток подредактировал код, собрал без оптимизации
в дизассемблере вроде всё красиво, пробуйте

в общем гугление дало результат, нарвался и на дизасм БИОСА и всё стало на свои места, я наконец понял как происходит загрузка стороннего ПО, мне это долго не давало покоя, а всё оказалось легко и просто, эту функцию заложила в БИОС сама SONY

Сигнал Нога Flash Нога CPU Нога Paralell IO
  CE   22 (30)    98          4
  WE   31 (7)   100 64
  OE   24 (32)   101 30
 
номера ног Flash указаны для SST29EE020 в корпусе PLCC32 (TSOP32)
Нога CPU указана для установки в SLIM консоль
Вроде все нормально шьется. Но все же рандомно глючило. Т.е. Теперь они и шарки про на составной памяти должны шиться, хотя в комментах почему-то только про Xplorer пишется.

Если пихать его уже после загрузки диска и шить потом, то все нормально, а если до и грузить диск с него, то ждут рандомные глюки. Но с ним и просто так игры тормозят, например видео в них. Может у тебя и на то конкретное объяснение есть и оно из описанного и вытекает? Или дело в том, что у этой версии есть еще и своя оперативка, дабы память оперативную ковырять можно было и это проблемы и создает. А еще там есть in game menu и оно явно тоже в памяти висит. 


Вот X-Flash v1.2 Beta 5 - 2 образа дисков, биосы со скринами и релиз бета 3 с комментами автора и утилитой для сборки прошивок в файл.
Я чужой образ редактировал, но выглядит все это кривовато, хотя на моей запускается.

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #102 : 10 Май 2018, 19:13:45 »
EVIL, тормозит потому что выполняется код не в RAM, хоть флешь и не медленная, но до скорости оперативки ей всё же далеко
выход есть, но он тебе не понравится  :) во первых надо распаять на плойку ещё один RAM чип, во вторых надо патчить софт, чтоб он из RAM работал, ну или писать свой софт
по поводу того что шьётся : Xplorer, Xplorer FX 1, Xplorer FX 2, Xplorer FX 3, AR/GS Pro
если есть что то не прошиваемое, то пиши, всё решаемо.

Оффлайн EVIL

  • Пользователь
  • Сообщений: 3158
  • Пол: Мужской
  • Based Department
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #103 : 11 Май 2018, 02:11:11 »
EVIL, тормозит потому что выполняется код не в RAM, хоть флешь и не медленная, но до скорости оперативки ей всё же далеко
выход есть, но он тебе не понравится  :) во первых надо распаять на плойку ещё один RAM чип, во вторых надо патчить софт, чтоб он из RAM работал, ну или писать свой софт
по поводу того что шьётся : Xplorer, Xplorer FX 1, Xplorer FX 2, Xplorer FX 3, AR/GS Pro
если есть что то не прошиваемое, то пиши, всё решаемо.
Будь бы у меня еще их так много. Пусть пробуют. Теперь она обязана быть универсальной, но не ясно, достаточно ли там чипов памяти, чтобы покрыть все устройства.
Решение есть - это нечто подобное, что выполняется с сд и висит где-то на карте памяти и в оперативке. Гуглится: psx cheat engine compilation.
Ну и может кто накинет прошивок сверху. Там и так уже тонна устройств, но может есть еще. Тогда вообще станет всё и для всего.

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #104 : 13 Май 2018, 14:24:31 »
EVIL, я тут toolchain собираю, решил PSXSDK освоить, ну и как контрольную работу решил накидать новый флешер, но так как плойки у меня нет, то нужно чтоб кто нибудь потестил, ты как на это смотришь?

Оффлайн EVIL

  • Пользователь
  • Сообщений: 3158
  • Пол: Мужской
  • Based Department
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #105 : 13 Май 2018, 16:49:37 »
EVIL, я тут toolchain собираю, решил PSXSDK освоить, ну и как контрольную работу решил накидать новый флешер, но так как плойки у меня нет, то нужно чтоб кто нибудь потестил, ты как на это смотришь?
Если бы я не был готов кому-то помогать, то и не ходил бы сюда.

Если решится вопрос коннекта с пк (а это вроде x-killer и xp), то я и не против, либо, если это не потребует много болваносов.
Другой вопрос - а надо ли? Тем более, что уже есть.
Тут нужен широкий спектр устройств, а их нет. Нужно пара человек, что готовы поломать свое добро на тестах и починить сами, а таких нет, хотя с наличием уже имеющейся приблуды вроде это и отпадает.
Плюс встает вопрос о расширении функционала, иначе зачем оно все..
Неясно, реализуемо оно, но добавить туда например дамп проши на кп для удобного его вытаскивания, а заодно и дамп биоса( хотя такое уже есть). Ну и непонятно есть ли в природе для картриджей такие проши, что позволят запускать диск на нечипованой приставке или менять биос на другой регион для обхода, например (как в сатурне). Это бы тоже сделало это более привлекательным для юзера, если добавить такие проши в лист.
Ну и имеющийся софт для проверки падов видит далеко не все оригинальные джои, поэтому и этим бы тоже можно было заняться. И добавить что-то для работы с кп.
Вот "все в одном" бы явно привлекло к себе пользователя, а только флешер, да при наличии рабочего - немного спорно.
« Последнее редактирование: 13 Май 2018, 20:59:31 от EVIL »

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #106 : 13 Май 2018, 17:18:03 »
EVIL, флешер будет с поддержкой кучи типов памяти, на данный момент поддерживаются лишь 18 чипов и это вместе с однотипными (29EE010, 29EE010A)
дамп на карту памяти реализовать вообще не проблема, всё остальное в процессе, как говорится аппетит приходит во время еды  :)

Оффлайн EVIL

  • Пользователь
  • Сообщений: 3158
  • Пол: Мужской
  • Based Department
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #107 : 13 Май 2018, 17:41:04 »
Можешь поживиться.
pad test не видит и половины ориг. джоев, не говоря о вторых дуалшоках.
http://shendosoft.blogspot.ru/2013/07/psx-bios-dumper-26-released.html
http://shendosoft.blogspot.ru/2014/03/padtest-ps1-homebrew.html

Вопрос о кучерявых прошах (вроде pseudo saturn) пока открыт.


аппетит приходит во время еды  :)
Учитывая такие амбиции можно представить готовый продукт
« Последнее редактирование: 13 Май 2018, 18:08:12 от EVIL »

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #108 : 13 Май 2018, 17:56:55 »
Народ. Никто случаем не занимался переделкой бп от слимки к фатке? Есть рабочая плата 5ххх серии, но нечем запитать.

Оффлайн EVIL

  • Пользователь
  • Сообщений: 3158
  • Пол: Мужской
  • Based Department
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #109 : 13 Май 2018, 18:06:01 »
Народ. Никто случаем не занимался переделкой бп от слимки к фатке? Есть рабочая плата 5ххх серии, но нечем запитать.
Как ты его переделаешь? Если там одно напряжение на выходе, а надо не одно.
Бывает конечно колхоз с dc-dc преобразователями, но зочем...
Да и зачем уходить настолько в оффтоп.

Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #110 : 13 Май 2018, 18:10:43 »
Как ты его переделаешь? Если там одно напряжение на выходе, а надо не одно.
Бывает конечно колхоз с dc-dc преобразователями, но зочем...
Да и зачем уходить настолько в оффтоп.
Даа. Проблемка. Есть убитый от 100х серии. Но без деталей смысл лезть туда.

Оффлайн EVIL

  • Пользователь
  • Сообщений: 3158
  • Пол: Мужской
  • Based Department
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #111 : 13 Май 2018, 18:23:03 »
Даа. Проблемка. Есть убитый от 100х серии. Но без деталей смысл лезть туда.
А ты слазь, он не укусит


Оффлайн dedok179

  • Пользователь
  • Сообщений: 496
  • Пол: Мужской
    • Youtube
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #112 : 13 Май 2018, 18:41:37 »
Вот оно. Ну и кнопка побита. Кнопка есть, конденсатор есть. Резисторы можно поискать, а последнюю штуковину я хз чем заменить. У меня нет таких в наличии.

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #113 : 13 Май 2018, 18:49:13 »
EVIL, ну со вторым дуалшоком понятно что не работает, а вот с оригинальными не совсем понятно, хотя подозреваю что сильно часто опрашивается джой, не любят фирменные чтоб их дёргали чаще 60-ти раз в секунду, а лучше ещё реже

Оффлайн EVIL

  • Пользователь
  • Сообщений: 3158
  • Пол: Мужской
  • Based Department
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #114 : 13 Май 2018, 18:59:58 »
Вот оно. Ну и кнопка побита. Кнопка есть, конденсатор есть. Резисторы можно поискать, а последнюю штуковину я хз чем заменить. У меня нет таких в наличии.

Плавкий предохранитель. Должен продаваться даже не только в радиомагазинах, а много где. Номинал должен быть рядом.
Ну и раз там уже нет этого конденсатора, то ты уверен, что он ранее не был взорван из-за неверного напряжения сети и это блок не на 110, а на 220? Конденсатор на входе там точно разный.

EVIL, ну со вторым дуалшоком понятно что не работает, а вот с оригинальными не совсем понятно, хотя подозреваю что сильно часто опрашивается джой, не любят фирменные чтоб их дёргали чаще 60-ти раз в секунду, а лучше ещё реже
По идее и со вторым должен хоть частично. Явно, что он с каждой кнопки значение от 0 до 255 не снимет, но все же...

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #115 : 13 Май 2018, 20:38:11 »
По идее и со вторым должен хоть частично.

вот кусок кода TwinPad плагина

// Command 0x45 Read extended status 1

// return values for cmd45:
u8 stdmodel[2][8] = { {0xff, 0x5a,
   0x03, // 03 - dualshock2, 01 - dualshock (Guitar Hero!?)
   0x02, // number of modes
   0x01, // current mode: 01 - analog, 00 - digital
   0x02,
   0x01,
   0x00},
  {0xff, 0x5a,
   0x03, // 03 - dualshock2, 01 - dualshock
   0x02, // number of modes
   0x01, // current mode: 01 - analog, 00 - digital
   0x02,
   0x01,
   0x00} };

видимо PadTest проверяет ответ на cmd45, видит что третий байт ответа 0x03 и не считает это за джойстик

Оффлайн EVIL

  • Пользователь
  • Сообщений: 3158
  • Пол: Мужской
  • Based Department
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #116 : 13 Май 2018, 20:58:26 »
вот кусок кода TwinPad плагина

// Command 0x45 Read extended status 1

// return values for cmd45:
u8 stdmodel[2][8] = { {0xff, 0x5a,
   0x03, // 03 - dualshock2, 01 - dualshock (Guitar Hero!?)
   0x02, // number of modes
   0x01, // current mode: 01 - analog, 00 - digital
   0x02,
   0x01,
   0x00},
  {0xff, 0x5a,
   0x03, // 03 - dualshock2, 01 - dualshock
   0x02, // number of modes
   0x01, // current mode: 01 - analog, 00 - digital
   0x02,
   0x01,
   0x00} };

видимо PadTest проверяет ответ на cmd45, видит что третий байт ответа 0x03 и не считает это за джойстик
Надо будет проверить, может я что-то попутал. Но помню, что детектил он все крайне избирательно.
Кстати, а что там в коде на счет необычных падов? А то я даже не пробовал. Есть ли тесты для них и вообще где-то это реализовано? т.е. вытянуть с эмуля, например. А то было их не так мало.
У меня лишь один
197299-0

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #117 : 13 Май 2018, 21:09:54 »
EVIL, как правило в эмулях реализовано только стандартное железо, экзотики нет. так что или вешать логер на шину и мониторить обмен с экзотикой, или дизасмить игру которая работает с этой экзотикой

Оффлайн EVIL

  • Пользователь
  • Сообщений: 3158
  • Пол: Мужской
  • Based Department
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #118 : 13 Май 2018, 21:25:25 »
EVIL, как правило в эмулях реализовано только стандартное железо, экзотики нет. так что или вешать логер на шину и мониторить обмен с экзотикой, или дизасмить игру которая работает с этой экзотикой
Всякое бывает... Может и есть где. Редко, но нечто такое делают, вроде мышек.
 Кстати, игру трудно вспомнить, но где-то видел даже его шевелящуюся 3д модель в настройках. Т.е. некоторые делали основательно и походу для собственных тестов и освоения железки, а еще по причине "простопотомушта", хотя даже и на сегу есть игры со встроенным тестом джоя. Видимо это не редкость, если дать разработчику волю, чего не увидишь у нинтенды.

Да и просто выводить это в виде графики далеко не обязательно. Банально должно хватать и символов, либо вообще тупо регистрируемых значений.

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
PSone Bios Dumping Guide.
« Ответ #119 : 14 Май 2018, 01:17:32 »
По идее и со вторым должен хоть частично.

вот тебе точный ответ на этот вопрос. pad test написан на PSXSDK, смотрим как в этом SDK полятся джои

unsigned char psxsdkPadArr[PAD_READ_RAW_SIZE];

void PSX_PollPad(int pad_num, psx_pad_state *pad_state)
{
unsigned char *arr = psxsdkPadArr;

pad_read_raw(pad_num, arr);

pad_state->status = arr[0];
pad_state->id = arr[1];

pad_state->buttons = (arr[3]<<8)|arr[4];
pad_state->buttons = ~pad_state->buttons;

switch(pad_state->id)
{
case 0xFF:
pad_state->type = PADTYPE_NONE;
break;
case 0x41:
pad_state->type = PADTYPE_NORMALPAD;
break;
case 0x53:
pad_state->type = PADTYPE_ANALOGJOY;
pad_state->extra.analogJoy.x[0] = arr[5]-128;
pad_state->extra.analogJoy.y[0] = arr[6]-128;
pad_state->extra.analogJoy.x[1] = arr[7]-128;
pad_state->extra.analogJoy.y[1] = arr[8]-128;
break;
case 0x73:
pad_state->type = PADTYPE_ANALOGPAD;
pad_state->extra.analogPad.x[0] = arr[5]-128;
pad_state->extra.analogPad.y[0] = arr[6]-128;
pad_state->extra.analogPad.x[1] = arr[7]-128;
pad_state->extra.analogPad.y[1] = arr[8]-128;
break;
case 0x23:
pad_state->type = PADTYPE_NEGCON;
pad_state->extra.negCon.steering = arr[5]-128;
pad_state->extra.negCon.one = arr[6];
pad_state->extra.negCon.two = arr[7];
pad_state->extra.negCon.shoulder = arr[8];
break;
case 0x31:
pad_state->type = PADTYPE_KONAMIGUN;
break;
default:
pad_state->type = PADTYPE_UNKNOWN;
}
}

у PS2 DUALSHOK id 0x79, как видишь обработчика для этого типа нет, значит попадаем на default, а у нас там PADTYPE_UNKNOWN, вот и приплыли, джой не поддерживается, хотя кнопки вроде как должна отображаться, но опять же, не известно добавлял ли автор проверку типа джойстика, если добавил, то всё сходится
ну да ладно, добавим нам не жалко  :lol:
« Последнее редактирование: 14 Май 2018, 01:47:23 от megavolt85 »