Приставки > Джойстики и прочие манипуляторы
SEGA MD Vibro
(1/4) > >>
Rumata:
Где-то в году 2005 (в Китае, думаю, раньше) наше солнышко GlorySun замутило вибро-джойстики для Сеги. Был сделан специальный джойстик и к нему некоторое количество специальных хаков. Всё это прошло тихо и незаметно. Никакой рекламы не было, только в прайсах появился маленький раздельчик. Сами картриджи тоже ни чем особо не отличались, на боксах, вроде, ещё была какая-то мелкая наклейка. В общем всё это успешно кануло в вечность
И тут на меня внезапно относительно недавно вышло это чюдо:









Со схемой, честно признаюсь, не разбирался, не досугъ

Есть некоторое количество дампов, в прайсе было больше, но что есть - то есть. Я тут уже дин выкладывал, Segaman (если не ошибаюсь) интересовался. На всякий случай продублирую.
! В заголовке коммент "vibro" - это моё, иначе дампы хрен отличишь. В оригинале ничего нет.
bgr:
Хотеть, даже два :D
Контроллер джоя тоже имеет изменения или же используется стандартный сигнал порта джоев?
Rumata:
Ещё не разбирался. Вот оттащу на работу, помою, там же всё во флюсе. Да ещё напаяно как попало. Буду под мелкоскопом смотреть.
Думаю, что микросхема стандартная. Свою мутить дорого.
murgatroid_79:
 :wow: Очень интересно.
Видимо один бит порта джоя ,в определенный момент,работает на вывод...или два бита,в противофазе. :-\
Какой там моторчик (на какой ток) ?
Ведь на плате никакого ключа/транзистора даже нет o_0
SavitarSvit:
Что за Vibro, на контроллере написано Shaking!
Rumata:

--- Цитата: murgatroid_79 от 08 Июль 2024, 21:15:11 ---Ведь на плате никакого ключа/транзистора даже нет
--- Конец цитаты ---
Есть. SS8050. Рядом с выключателем. И кстати таки микросхема используется.

--- Цитата: murgatroid_79 от 08 Июль 2024, 21:15:11 ---Видимо один бит порта джоя
--- Конец цитаты ---
Видимо да. Я даже когда-то пытался что-то смотреть, только тогда возможности разобрать джойстик не было.
bgr:
Rumata, у тебя Джой рабочий? Надо бы проверить его совместимость со всякими клонами, думаю, что из-за дополнительной логики он не на всех будет корректно работать.
Так же есть мнение, что многие дампы русских версий, сделанные в районе 2005 года уже хакнуты под джой 🤔
Так что проверяй или отправь кому-то :D
Но если подробно опишешь устройство Джоя - тоже хорошо :)
Кстати, ты такими джоями не торговал?  :lol:
Rumata:
Возможно рабочий :) По крайней мере выглядит хорошо.
Не вижу, почему бы ему не работать с клонами.
Устройства там, по сути, никакого нет. Ключ, базой уходящий в каплю.
Хакала GlorySun, много или нет - не ведомо, но в прайсе это шло отдельно.



При чём в реальности было доступно не всё.

И я не торговал, я ремонтировал. А поскольку всё было под пломбой, то лезть внутрь резону не было.
bgr:
Интересный списочек. В итоге долго это продолжалось? Около года, а после забыли?
Я нашёл старый прайсик от нью-гейм, там этот Джой стоил 232 рубля, русские версии на 60 рублей дороже английских, при чем без разницы какая игра, но вот русских рпг, кроме финалки в прайсе не было, и финалка самая дорогая, мол новинка, на русском, да и к тому же рпг, тоже в районе цены этого джоя :lol:
А сколько прибавляли к прайсу за вибрацию?  :lol:
Rumata:
Ну так русская "финалка" - это тоже ГлориСан.
За цены не скажу, не запоминал, не интересно. И вряд ли сейчас можно найти тот прайс.
bgr:
В общем, купил несколько кариков с вибрацией.

Сегодня получил. Аладдин и мк3У. Аладдин с этикеткой русская версия, весь побитый, внутри пазы переломаны, поддет деревяшкой и... на плате контра хард корпс новодельная с переводом от шедевра и хаком на три хит поинта. А в мк3У - обычный мк3.

В общем, едет ещё карик, но уже ясно, что эксперемент не удался. Ориентироваться на наклейки не имеет смысла, потому что всем срать какую наклейку куда лепить, что было - то и взяли.

Так же наткнулся на объявление в Новосибирске на джой, но его уже нет.

Rumata, это ты его выкупил?  >:(

Отправь мне джой на безвременный тестинг за барыши или за ши-ши. Я прочекаю дампы на наличие вибрации, накатаю подробный обзор, что поможет и в хацкинге и просто интересно будет. Есть все основания предполагать, что пираты долгое время юзали хакнутые Ромы и сами того не зная.

Нарыл инфу, что игра зиро толлеренс с переводом от нью гейм поддерживала вибрацию. Так же новодельные многоигровки с меню середины и конца 00х тоже запускали вибру нон-стоп, но это скорее из-за кривизны написанного софта под меню.

Добавлено позже:
А вот и пример самой многоигровки:
Rumata:

--- Цитата: bgr от 17 Июль 2024, 19:05:02 ---Rumata, это ты его выкупил?
--- Конец цитаты ---
Кого? o_0


--- Цитата: bgr от 17 Июль 2024, 19:05:02 ---Нарыл инфу, что игра зиро толлеренс с переводом от нью гейм поддерживала вибрацию
--- Конец цитаты ---
Эта информация есть в посте #7  :biggrin:
Да, табличка из прайса, но комменты (рус / англ) мои. Если не отмечено - значит у нас этого не было.


--- Цитата: bgr от 17 Июль 2024, 19:05:02 ---Я прочекаю дампы на наличие вибрации
--- Конец цитаты ---
Дамп в первом просте. Как раз английский, то есть все отличия от оригинала - это вибрация. Там порядка 370 байт.

Кстати, 4 года назад этот вопрос уже поднимался: https://www.emu-land.net/forum/index.php/topic,84094.msg1454229.html
bgr:

--- Цитата: Rumata от 17 Июль 2024, 19:39:49 ---Кого?
--- Конец цитаты ---
Джой :lol:


--- Цитата: Rumata от 17 Июль 2024, 19:39:49 ---Дамп в первом просте. Как раз английский, то есть все отличия от оригинала - это вибрация. Там порядка 370 байт.
--- Конец цитаты ---
Дык я про то, что обычные ромы могут обозначены в сэте как p1 или hc1 и так далее...  Поскольку многие карики могли быть не обозначены, ну или при дампинге не обращали внимания на всякие надписи.


--- Цитата: Rumata от 17 Июль 2024, 19:39:49 ---Эта информация есть в посте #7 
--- Конец цитаты ---
Дык, что именно перевод от ньюгейм не написано :)

Ко мне карики приехали в боксах и ньюгейм и симбас, вот интересно, они под каждую контору пилили ром или чисто на заказ, мол кто хочет повыпендриваться, тот и заказывает 🤔


--- Цитата: Rumata от 17 Июль 2024, 19:39:49 ---Кстати, 4 года назад этот вопрос уже поднимался: https://www.emu-land.net/forum/index.php/topic,84094.msg1454229.html
--- Конец цитаты ---
Я как раз тогда отошёл от всей ретро мути :D

Но тогда у тебя хоть прайс был, знал, что именно 27 игр было, ща бы список не помешал  :)
Rumata:
Занималась всем этим ГлориСан. Они одно время достаточно активно фигурировали на нашем рынке. Какие у них были взаимоотношения с Москвой - я не знаю. Кстати, московский прайс - тоже не истина в последней инстанции.
bgr:

--- Цитата: Rumata от 07 Июль 2024, 21:27:53 ---Есть некоторое количество дампов
--- Конец цитаты ---
Я ща только въехал. Есть некоторое количество дампов, но выложил ты один. То есть, я прав, что многие русские версии дампились без разбора и содержат на борту вибрацию, но это никто не проверял? 🤔
Или ты зажал дампы? 🤨

На гбо писали, что у этого джойстика отваливалась крестовина, возможно, это просто слэнг и крестовина просто не реагировала, по схеме как раз тумблер расположен на этих дорожках🤔

С какой вероятностью кривая распайка и данная схема убивает функционал капли? 🤔

Можно ли воспроизвести данный Джой своими руками? Контроллер там ведь стандартный, просто он дополнительно передаёт сигнал на схему моторчика? 🤔
bgr:
Rumata, делись джойстиком >:(
Я его в дело пущу, лучше так, чем у тебя сто лет лежать будет :D

Продолжаю собирать инфу, нарыл некоторое количество фотографий картриджей, ну и парочку купил, без Джоя или дампера не разобраться хакнутые там ромы или нет :neznayu:

Что я нашёл:

- Дюну, перевод там от китайцев, поэтому есть вероятность, что имеющийся в интернете ром уже с вибро

- Desert strike (в картридже с наклейкой "русская версия" оказалась английская)

- aladdin (перевод от ньюгейм с потертыми копирайтами)

Ну, и на последок, во вложении прикрепляю рекламку приставки magic drive, которая комплектовалась такими же джойстиками, но со своим логотипом, так же как и и приставка в виде дримовского джоя продавалась весьма не продолжительный срок.


Добавлено позже:
З.Ы. Более шакального jpg не будет, даже не просите.
stargazer:
Внесу свои 5 копеек в эту тему :)

Немного поковырял ROM из первого поста, рассмотрел фотографии платы, привожу результаты своих изысканий :)
Сразу скажу, что ничего из этого на практике не проверялось и такого джойстика у меня нет, так что вполне возможно, я где-то ошибся.

Обмен данными выглядит так: после стандартных 4-х опросов для 6-и кнопочного джойстика 2 младших бита (соответствующие кнопкам вверх и вниз)
порта джойстика переводятся в режим вывода. Бит 6 (сигнал select), вероятно, используется для клок для загрузки данных. Далее в два этапа
загружаются 4 бита данных вибрации (уровень вибрации ?) Игра использует только значения 3,2,0 причем они всегда одинаковые для обоих пар.
Также используется счетчик, который уменьшается на 1 каждый кадр, и когда он достигает 0, значение данных тоже становиться 0. Игра использует
только 2 значения счетчика 255 и 30.
Я написал алгоритм работы с джойстиком данного хака в виде С кода.
# define DELAY_INPUT() asm volatile("nop \n\t nop"); //Usual delay for reading controllers
# define SMALL_DELAY() asm volatile("nop");

typedef unsigned char u8;
typedef unsigned short u16;

struct vibro
{
    u8 value; //only bits 0,1,4,5 are used
    u8 counter;
};

void reset_vibro_data(struct vibro *p_vibro)
{
    p_vibro->value = 0x33;
    p_vibro->counter = 0xff;
}

//Called from vblank (after handle_vibro_controller())
void update_vibro_counter(struct vibro *p_vibro)
{
    if (p_vibro->counter == 0)
        p_vibro->value = 0;
    else
        p_vibro->counter--;
}

void set_vibro_data(struct vibro *p_vibro, u16 param)
{
    if ( param < 0x8000 )
        return;

    if (param < 0xfffc )
        p_vibro->value = 0x33;
    else
        p_vibro->value = 0x22;

    p_vibro->counter = 0x1e;
}

//Called from vblank interrupt handler
void handle_vibro_controller(struct vibro *p_vibro)
{
    volatile u8 * data_port = (volatile u8 *)0xA10003;
    //1st phase
    *data_port = 0x40; //Set select signal
    DELAY_INPUT();
    u8 btns_lo = *data_port;
    *data_port = 0; //Reset select singal
    DELAY_INPUT();
    u8 btns_hi = *data_port;
   
    //2nd phase
    *data_port = 0x40; //Set select signal
    DELAY_INPUT();
    *data_port = 0; //Reset select signal
    DELAY_INPUT();
   
    //3rd phase
    *data_port = 0x40; //Set select signal
    DELAY_INPUT();
    *data_port = 0; //Reset select signal
    DELAY_INPUT();
    u8 dummy_read = *data_port;

    //4th phase
    *data_port = 0x40; //Set select signal
    DELAY_INPUT();
    dummy_read = *data_port;
    *data_port = 0x0; //Reset select signal
    DELAY_INPUT();

    //5th phase
    *data_port = 0x40; //Set select signal
    volatile u8 * control_port = (volatile u8 *)0xA10009;
    *control_port = 0xff; //Set all pins as outputs, enable external interrupt. Should it be 0x43 instead ?

    //Write bits 4, 5 to data port
    u8 vibro_hi_bits = (p_vibro->value >> 4) & 3;
    *data_port = vibro_hi_bits;
    vibro_hi_bits |= 0x40; //Latch data ?
    SMALL_DELAY();
    *data_port = vibro_hi_bits;
    DELAY_INPUT();
   
    //Write bits 0, 1 to data port
    u8 vibro_lo_bits = p_vibro->value & 3;
    *data_port = vibro_lo_bits;
    vibro_lo_bits |= 0x40; //Latch data ?
    SMALL_DELAY();
    *data_port = vibro_lo_bits;
    DELAY_INPUT();
    *control_port = 0x40; //Return port to standard pad mode (bit 6 is output, others are input, interrupt is disabled)

    //process intput...
}
В принципе, можно взять какую-нибудь 5-вольтовую Ардуину, подключить ее к этому джойстику и попробовать послать какую-нибудь команду.

Обвязка капли:

Интересно, как осуществляется управление вибромотором, через ШИМ или линейно через ЦАП ?
И для чего там делитель напряжения (а скорее всего это он, раз там стоят 1% резисторы), это какое-то референсное напряжение, 3.4В ?
bgr:
stargazer, я хочу сдампить свои карики, чтобы можно было сделать вывод, какие команды используются и к чему они привязаны.

--- Цитата: stargazer от 14 Август 2024, 23:49:02 ---Игра использует только значения 3,2,0 причем они всегда одинаковые для обоих пар.
--- Конец цитаты ---
Они привязаны к звукам или же к командам, таким как изменение хитпоинтов? Z80 одновременно с этими командами нагружается? Насчёт одинаковых значений - вполне логично, что два контроллера будут работать одинаково.

--- Цитата: stargazer от 14 Август 2024, 23:49:02 ---Также используется счетчик, который уменьшается на 1 каждый кадр, и когда он достигает 0, значение данных тоже становиться 0. Игра использует
только 2 значения счетчика 255 и 30.
--- Конец цитаты ---
А зачем? 🤔

--- Цитата: stargazer от 14 Август 2024, 23:49:02 ---Я написал алгоритм работы с джойстиком данного хака в виде С кода.
--- Конец цитаты ---
Полезная штука, когда нет ни Джоя, ни ардуино😁

З.Ы. Недавно попалась mega drive shock, но продаван не отправляет, в итоге ушла консолька🙄
Rumata:

--- Цитата: stargazer от 14 Август 2024, 23:49:02 ---Обвязка капли:
--- Конец цитаты ---
Да, так и есть. Что, в общем-то, не даёт ничего. Ключ с мотором до неприличия стандартны. Делитель... а фиг его знает. На 1% я бы внимания обращать не стал, зачастую просто используется что было. Жаль второго нет, а то можно было бы каплю вскрыть, может там не один чип :neznayu:


--- Цитата: stargazer от 14 Август 2024, 23:49:02 ---Обмен данными выглядит так:
--- Конец цитаты ---
Вот это уже интересно :thumbup:
bgr:
Rumata, ты Ромы никакие не проверял?

--- Цитата: Rumata от 15 Август 2024, 22:21:50 ---Жаль второго нет, а то можно было бы каплю вскрыть, может там не один чип
--- Конец цитаты ---
Подари мне его и будет не жаль😁
Навигация
Главная страница сообщений
Следующая страница

Перейти к полной версии