Автор Тема: мой флеш картридж для SNES  (Прочитано 17176 раз)

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

Оффлайн totin

  • Пользователь
  • Сообщений: 339
  • Пол: Мужской
    • Просмотр профиля
мой флеш картридж для SNES
« : 18 Май 2009, 06:07:51 »
долго мне хотелось сделать флеш карт для сеги и как только он был собран руки сразу потянулись к SNES`у и в этой теме я хочу показать что получилось.
в общем сначала был карт и внешний программатор, потом все объединилось в единое устройство.лишних денег на заказ платок пока нет,да и конструкция ещё не совершенна, так что  выглядит не очень, но зато работает (:
что мы можем:
*поддержка ромов lorom и hirom
*размер памяти 8mbyte
*можно записать до восьми игр и переключть ресетом
*подключение к персоналке через усб
вот такой франкинштейн получился (:
из серезынх недостатков можно отметить отсутствие поддержки сохранений в играх что для снес очень критично, но я планирую добавить эту возможность.
на ниже приведенных фотках можно увидеть некоторые точки эволюции картриджа. кстати внешний программатор который я использовал сначала заодно применял для сеги и n64 через переходники.
позже наверно ещё выложу схемы и прошивки, может кому пригодится.

Оффлайн aptyp

  • Пользователь
  • Сообщений: 6263
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #1 : 18 Май 2009, 06:22:26 »
А почему в консоли джойстиков нету

Оффлайн totin

  • Пользователь
  • Сообщений: 339
  • Пол: Мужской
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #2 : 18 Май 2009, 06:25:52 »
для тестирования мне они не нужны а просто так оставлять висеть нельзя потому что малой обязательно возжелает подергать за странный провод свисающий сверху

Оффлайн Петер Доннерветтер

  • Модератор
  • Сообщений: 3562
  • Пол: Мужской
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #3 : 18 Май 2009, 06:36:02 »
это ты картридж Killer Instinct раскурочил? :)
а что насчет поддержки дополнительных чипов?

Оффлайн totin

  • Пользователь
  • Сообщений: 339
  • Пол: Мужской
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #4 : 18 Май 2009, 06:39:09 »
ага, киллер инстинкт (: про спец чипы я думаю можно забыть

Оффлайн sergi

  • Пользователь
  • Сообщений: 1667
    • ВКонтакте
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #5 : 18 Май 2009, 09:15:31 »
Программатор для программирования картриджей снес несложно сделать, можно юзать хоть Рюмиковский точнее willem

проблема не в этом а вот в чем:
1 - локаут чип или модификация приставки
2 - разные типы сейвов
3 - разные хитропопые защиты типа размер сейва если больше будет то игру не пройдете ну и т.п.
4 - чипы - их там с десяток, поэтому к сожалению игры с ними играть не будут

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

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7281
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #6 : 18 Май 2009, 10:03:05 »
Да и вообще советую тототековскую флеху достать - у меня есть, в реале нехило они там угробили денег и средств - в флешке можно все типы сейвов держать и меню и прочее
даже самому перехотелось делать флеху для нее - неполная совместимость будет в любом случае :-\
Тотековская держит FX чипы?

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #7 : 18 Май 2009, 10:07:08 »
Программатор для программирования картриджей снес несложно сделать, можно юзать хоть Рюмиковский точнее willem

проблема не в этом а вот в чем:
1 - локаут чип или модификация приставки
2 - разные типы сейвов
3 - разные хитропопые защиты типа размер сейва если больше будет то игру не пройдете ну и т.п.
4 - чипы - их там с десяток, поэтому к сожалению игры с ними играть не будут

Да и вообще советую тототековскую флеху достать - у меня есть, в реале нехило они там угробили денег и средств - в флешке можно все типы сейвов держать и меню и прочее
даже самому перехотелось делать флеху для нее - неполная совместимость будет в любом случае :-\
Неполная совместимость будет в любом случае (FX чипы), даже говоря о тотековском произведении не все типы сейвов там заюзаны, Хотя если знать архитектуру, то становиться понятно, что типов сейвов там немного, а именно 2, просто записи тоже по страницам расположены, как и ROM, и страницы для HI и LO ROM по разному прикручены, как для ROM так и для SRAM. Вот и вся премудрость, вообще если говорить о севах, то максимально возможный размер "записульки" 1MBit, вот тока как там страницы раскиданы я не скажу, потому как жадный, скажу тока что DCC и спользует тока одну страницу, первую по адресу 0x206000 размером 0x2000, из которой пользуються тока адреса с 0x0000 по 0x07FF.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1667
    • ВКонтакте
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #8 : 18 Май 2009, 10:09:29 »
Нет не держит к сожалению, но через переходник DSP1 поддерживает

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #9 : 18 Май 2009, 10:20:26 »
Цитата: HardWareMan
Тотековская держит FX чипы?

 Разумеется нет!!! Эт даж по печатке видно. в мелкий XILINX низачто не влезет даж DSP-1, ток через переходник, с носителем FX чипа в паре.


Добавлено позже:

Да и цена в 95$ учитывая что китай рядом с тотеком, и все дешевые производители чипов так ваще непонятно откуда береться....
« Последнее редактирование: 19 Май 2009, 07:55:55 от Iron »

Оффлайн sergi

  • Пользователь
  • Сообщений: 1667
    • ВКонтакте
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #10 : 18 Май 2009, 10:21:36 »
FX это даже не чип а считай компьютер - ему оператива нужна обязательно, кварц
DSP1 тоже кварц нужен, но он какбы параллельно к рому прицеплен, а FX через себя пропускает ром и выдает нужную информацию на порт картриджа

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #11 : 18 Май 2009, 10:33:53 »
FX это даже не чип а считай компьютер - ему оператива нужна обязательно, кварц
DSP1 тоже кварц нужен, но он какбы параллельно к рому прицеплен, а FX через себя пропускает ром и выдает нужную информацию на порт картриджа
Для DSP в частности и для FX в целом выделена отдельная облать памяти и пристава получив данные из рома переколбашивает их через FX чип, то есть можно непрягаясь сделать T образный переходник, чтоб со стороны приставки был доступен FX чип, ROM и SRAM, а со стороны FX, - ROM, ничё сложного не вижу в этом...
 И вообще, LPT эт 92 год как максимум и горячее лужение не лучшее покрытие для ламелей... ну да пофигу, кому что нравиться...

Оффлайн sergi

  • Пользователь
  • Сообщений: 1667
    • ВКонтакте
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #12 : 18 Май 2009, 10:49:15 »
Ну DSP то можно а вот FX чтото сомнительно :-\

Оффлайн totin

  • Пользователь
  • Сообщений: 339
  • Пол: Мужской
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #13 : 18 Май 2009, 14:28:34 »
интересно, почему тототек так горяче любит LPT

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7281
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #14 : 18 Май 2009, 14:37:04 »
интересно, почему тототек так горяче любит LPT
Надежда на то, что ретроманы будут ретроманами во всем, даже в своем компе. :)
« Последнее редактирование: 18 Май 2009, 14:44:35 от HardWareMan »

Оффлайн totin

  • Пользователь
  • Сообщений: 339
  • Пол: Мужской
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #15 : 18 Май 2009, 14:53:59 »
кстати, HardWareMan, я всетаки решил после всех мучений избавиться от мерзких pl2303. сейчас глянул в сторону cp2102. очень дешевые, не требуют практически никакой обвязки и легко достать. пока что очень нравятся. ftdi к сожалению у нас стоит сейчас неприлично дорого

Оффлайн Taro-Kun

  • Пользователь
  • Сообщений: 135
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #16 : 19 Май 2009, 00:42:49 »
Ухты! По-моему на снес и без сохранений с чипами найдётся во что поиграть! Если появятся схемы или в продаже - обязательно заимею)

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7281
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #17 : 19 Май 2009, 07:17:05 »
кстати, HardWareMan, я всетаки решил после всех мучений избавиться от мерзких pl2303. сейчас глянул в сторону cp2102. очень дешевые, не требуют практически никакой обвязки и легко достать. пока что очень нравятся. ftdi к сожалению у нас стоит сейчас неприлично дорого
А неприлично - это сколько? Огласи все цены.
Далее, ср2102 не далеко ушел от пролифы pl2303.

Оффлайн totin

  • Пользователь
  • Сообщений: 339
  • Пол: Мужской
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #18 : 19 Май 2009, 16:23:24 »
cp2102 мне привезли за 35гр(4,7уе) а ft232 за 80гр(10,8уе) привезут. в столице правда почти вдвое дешевле, но я к сожалению не там

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #19 : 20 Май 2009, 06:17:42 »
 Ну вот я тока одного не понимаю, микроконтроллеры с встроенным USB стоят стока же скока и RS232 мосты, а скорости сов другие, зачем этот огород?
 Например AT90USB1287 48 свободных выводов под IO и стоит 7.8$ за шт.
 Или PIC18F4550 35 свободных ног под IO при цене в 8.2$ за шт... обидно господа, пролифа да силикон лабс... вот чё не сделают с усб, так обязательно мост юзается LPT или RS-232...  <_<
« Последнее редактирование: 20 Май 2009, 06:45:14 от masyanya »

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7281
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #20 : 20 Май 2009, 07:06:41 »
Ну вот я тока одного не понимаю, микроконтроллеры с встроенным USB стоят стока же скока и RS232 мосты, а скорости сов другие, зачем этот огород?
 Например AT90USB1287 48 свободных выводов под IO и стоит 7.8$ за шт.
 Или PIC18F4550 35 свободных ног под IO при цене в 8.2$ за шт... обидно господа, пролифа да силикон лабс... вот чё не сделают с усб, так обязательно мост юзается LPT или RS-232...  <_<
Я с тобой полностью согласен, однако не все умеют писать свои дрова под девайс. А в остальном да.

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #21 : 20 Май 2009, 07:30:59 »
Ааааааа, точна, я т уж забыл про сие мытарство.... :?

Оффлайн totin

  • Пользователь
  • Сообщений: 339
  • Пол: Мужской
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #22 : 20 Май 2009, 19:39:10 »
ээмм, подождите, какой огород? где скорости "совсем другие"? ну раз такое дело, давайте меряться  сами знаете чем (: я точно не знаю, но насколько я помню масянин флеш карт перешивает себя около двух минут из которых 30сек на самостирание и того 90сек чисто на прошивку 4 метров. у меня на ненависном профлинке в последних версиях софта прошивка+стирание занимает 1:25 те 55 сек на прошивку. поправьте меня если я не прав, но 55 сек мне кажется меньше чем 90. и это не смотря на то что код для атмеги пока далек от совершенства. да, и насчет огородов... два контроллера на борту это не огород? а драйверы писать не огород?зачем делать то что уже сделано, чтобы потом городно сказать что я изобрел велосипед? может все делают на rs232 мостах потому то это не плохой выбор? по цене такой вариант тоже будет по крайней мере не дороже. такое вот

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7281
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #23 : 21 Май 2009, 07:36:14 »
...у меня на ненависном профлинке в последних версиях софта прошивка+стирание занимает 1:25 те 55 сек на прошивку. поправьте меня если я не прав, но 55 сек мне кажется меньше чем 90. и это не смотря на то что код для атмеги пока далек от совершенства....
Стоп, будем последовательны.
1. 55 секунд это на 4МБ (32Мбита)?
2. Какие микросхемы флэш ты заюзал?
3. ЕМНИП, по JEDEC'у есть определенные ограничения, ты хочешь сказать ты их обошел?
4. И на какой скорости ты пролифу юзаешь?

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #24 : 21 Май 2009, 08:15:47 »
Цитата
да, и насчет огородов... два контроллера на борту это не огород?

 Я говорил о чипах у которых ног хватает чтобы драйвить шину адреса и данных минуя другие чипы по той же цене что и одна пролифа, ты чего читать не умеешь или в домике? >:(

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7281
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #25 : 21 Май 2009, 08:32:25 »
Так, не ссортесь. Давайте вести конструктивную беседу. Masyan'и карт я юзаю, и вижу что он проверяет запись. Проверка всегда занимает время. И то время, что оно занимает меня пока устраивает. Я сам читал датащиты на используемые плешки и поэтому знаю как должно быть. Так что, давайте все же подведем итог: кто как реализовал алго JEDEC'а. Без читерства, как есть: если ты не делаешь проверку или заточил под конкретный чип - так и скажи. Начинайтесь.

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #26 : 21 Май 2009, 09:38:21 »
... а говоря относительно моего 32MX+UF... на стирание уходит больше минуты. Есть конечно чипы которые труться за 25сек, как в даташите написано "TYPICALY", но эт старый JEDEC, в новых чипах стирание надо контролить, у меня 2 чипа трет за ~1мин 12 сек, плюс ко всему я юзаю AT90USB162 c расширением шины адреса на AT90USB162 посредством SCI, а SCI лимитирует скорость, на него тож процессорное время тратиться, так же у меня ведеться лог критических событий и пишеться прям в EEPROM AT90USB162, так же пулятся (Data Pull) записанные данные на лету (хотел бы я посмотреть как ты это делать будешь пролифой или ваще любым мостом), плюс ко всему поддержка разных типов записи в моем картридже тож накладывает свои ограничения, а так же софт отнимает время на обновление контролов и обработку треадов, без всего этого под линуксом из консоли треться 51 секунду, пишеться от15 до 54 что кстати согласуется с даташитом, а треться так ваще пулей, ибо тру я секторами, а их на 2 чипа 70, - 0.7s*70=49s (и то учитывая что время в 0.7s на сектор минимальное, а тут вся фишка в том что эти чипы держат тему Erase While Write) у меня стоит 2 чипа соотв на 2 множим (стр. 53 December 17, 2004 S29AL016D_00_A2:
 Sector Erase Time min: 0.7 max: 15s
 Chip Programming Time (Note 3) Word Mode min: 7.2s, мах: 21.6s
)... Мериться тут нечем, ж..пу с пальцем сравниваем.

Добавлено позже:
Так, не ссортесь. Давайте вести конструктивную беседу. Masyan'и карт я юзаю, и вижу что он проверяет запись. Проверка всегда занимает время. И то время, что оно занимает меня пока устраивает. Я сам читал датащиты на используемые плешки и поэтому знаю как должно быть. Так что, давайте все же подведем итог: кто как реализовал алго JEDEC'а. Без читерства, как есть: если ты не делаешь проверку или заточил под конкретный чип - так и скажи. Начинайтесь.
Вот выдержка из кода микропрограммы:
Bool WriteChank(U8 *mcommands)
{
   U8 i,Pointer,bCCR;
   U16 ptr=0;
   DDRB=0x00;
Disable_interrupt();

//Write error detection config register onto ATMEGA8515/AT90USB
   WriteRegister(CCR,_BV(fROMEN));
   //Setup DATA port to out

   PresetAddress(0x00,0x0A,0xAA);
   WriteByte(0xAA);
   PresetAddress(0x00,0x05,0x55);
   WriteByte(0x55);
   PresetAddress(0x00,0x0A,0xAA);
   WriteByte(0x20);
   PresetAddress(mcommands[1],mcommands[2],mcommands[3]);

   for(i=0;i<mcommands[4];i++)
   {
      Usb_select_endpoint(EP_MS_OUT);
      while(!Is_usb_read_enabled());

      for(Pointer=0;Pointer<64;Pointer++,ptr++)
      {
         WriteByte(0xA0);
         WriteLoByte(Usb_read_byte());
         WriteHiByte(Usb_read_byte());
         while(!(PINB&_BV(RDY)))
            if(bCCR=ReadRegister(CCR))
               StoreLastError(bCCR);
         OEClock();
      }
Enable_interrupt();
      Usb_ack_receive_out();
   }

//Exit from Bypass
   WriteByte(0x90);
   WriteByte(0x00);
//Hardware check writed data

   for(Pointer=0;Pointer<64;Pointer++,ptr++)
   {
//Check data
      if(IsLoopBack(Pointer))
      {
//Error detected
         Usb_select_endpoint(EP_MS_IN);
         while(!Is_usb_write_enabled());
         Usb_write_byte(GetLastError());
         return FALSE;
      }
      OEClock();
   }

   return TRUE;
}
 Из кода видим я юзаю Unlock Bypass под запись, а так жа видим что ерроры трансфиряться обратно по шине...
 

Добавлено позже:
А вообще-то непонимаю о чем спор, тут лимитирует уже скорость флешки то есть время на запись в неё... как не крути
Word Programming Time мин: 7µs макс: 210 µs

Добавлено позже:
и
Byte Programming Time мин: 5 макс: 150 µs

Оффлайн totin

  • Пользователь
  • Сообщений: 339
  • Пол: Мужской
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #27 : 21 Май 2009, 13:35:17 »
да, я ждал бурю негодования  :)

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

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

HardWareMan:
1. да, 4МБ (32Мбита) за 55 сек
2. я использую ST M29W320 70ns
3. даже не знаю что сказать
4. профила у меня на скорости 921600 килобит

у меня самостирается чип за 29сек,  хотя по датащиту 40сек типичное и 200 максимальное.

вот так я прошиваю:

inline void wd(unsigned int data, unsigned long int addr){
   
   DDRA = 0xff;
   DDRB = 0xff;
   SET_ADDR(addr);
   PORTA = data;
   PORTB = data >> 8;

   WE0;
   WE1;

   DDRA = 0;
   DDRB = 0;
}

inline void progBlock(){

   unsigned char data_a = 0;
   unsigned char data_b = 0;
   unsigned int len = (uartRX() << 8 | uartRX()) >> 1;
   

   while(len){
   
      data_a = uartRX();
      data_b = uartRX();
      busy();
      wd1(0xaa,0x555);
      wd1(0x55,0x2aa);
      wd1(0xa0,0x555);
      wd2(data_a, data_b, addr);
      addr++;
      len--;
   }


}


PS: масяня, ты злой
« Последнее редактирование: 21 Май 2009, 13:58:32 от totin »

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #28 : 22 Май 2009, 09:42:21 »
 Да чёт, палку то перегнул я...  :blush:
PS: масяня, ты злой
Эт точна  :), эт потому что у меня велосипед без сиденья был, а ща когда и его украли, ваще убивать буду!!!  :lol:

 Нууууууу, шатлы не шатлы, а проверка мне нужна шоб когда собираешь тестировать проще было, сразу видно где проблема.

Цитата
ну а спор фактически неочем, заладил ты просто со своим огородом и я хочу сказать что другие решения может и не лучше но и не хуже, тут скорее дело вкуса. кому что больше нравится.
Ну вот мы как раз и спорим на тему того что решения с мостами хуже или лучше, на мой взгляд хуже, потому что, хотя бы, не дает должной свободы разработчику, а в смысле достижения результата так помоему одинаково, намана чел. эт хорошо, тока заюзай ещё:
Unlock Bypass 0x555 0xAA 0x2AA 0x55 0x555 0x20
Unlock Bypass Program XXX 0xA0 PA PD
Unlock Bypass Reset XXX 0x90 XXX 0x00
 ещё быстрее писать будет.

Оффлайн totin

  • Пользователь
  • Сообщений: 339
  • Пол: Мужской
    • Просмотр профиля
Re: мой флеш картридж для SNES
« Ответ #29 : 22 Май 2009, 12:27:22 »
спасибо, попробую выжать ещё немного скорости