Эмулятор картиджа запущен

Pagina 1/5
| 2 | 3 | 4 | 5

Door AlexBel

Champion (268)

afbeelding van AlexBel

12-08-2009, 19:12

Запустил сегодня свой девайс. Назначение девайса - аппаратная эмуляция реальных игровых картриджей MSX, загружая в них .rom-файлы. В дальнейшем планируется развитие в виде добавления функции эмуляции дисковода, но это потом.
В девайсе имеется:
1. FPGA FLEX6000 EPF6016TC144
2. 512 килобайт статического ОЗУ
3. Контроллер Atmel ATmega128
4. SD-карта.
Фото девайса, кому интересно: http://crazyroom.ru/8bit/files/TR-card.jpg
На настоящий момент работают 16-килобайтные игрушки, имеющие адрес запуска 0x4000 или 0x8000. 32-килобайтные (и выше) пока не пробовал, надо кое-что доработать.

Вопрос. Для запуска игр объемом 32 килобайта требуется маппер? Или можно просто подключать как ПЗУ на адреса A0-A14 и подавать /CS12 на /OE и /SLTSL на /CS?

Aangemeld of registreer om reacties te plaatsen

Van Wierzbowsky

Guardian (3606)

afbeelding van Wierzbowsky

12-08-2009, 22:30

32kb ROMы насколько я помню грузятся прямо в ОЗУ с 4000h, две страницы по 16кб. Если хочешь, посмотри бинарные загрузчики CasLink'а. А сколько будет стоить такая железячка?

Van AlexBel

Champion (268)

afbeelding van AlexBel

13-08-2009, 04:49

32kb ROMы насколько я помню грузятся прямо в ОЗУ с 4000h, две страницы по 16кб. Если хочешь, посмотри бинарные загрузчики CasLink'а. А сколько будет стоить такая железячка?

Спасибо, буду пробовать.

Я не собираюсь делать коммерцию на этой железке. Когда все будет более-менее "причесано", просто выложу съему, пладу и прошивки. Кто хочет - пусть делает.

Van AlexBel

Champion (268)

afbeelding van AlexBel

13-08-2009, 19:01

Все, 32-килобайтные игры работают. Оказывается, надо подключать к А14 ПЗУ не А14 адреса процессора, а инверсию CS2, а на /OE ПЗУ подавать и с /CS1 и с /CS2. Дошел до этого логическим путем, попробовал - все заработало.

Сделал схему - в память одновременно грузятся 16 игр по 32 килобайта, переключаются по кругу кнопкой "сброс" - все работает. Общее время загрузки (конфигурация FPGA + файл с играми объемом 512 килобайт) грузится примерно за 43-45 секунд.

Van Wierzbowsky

Guardian (3606)

afbeelding van Wierzbowsky

13-08-2009, 22:24

А сколько стоят чипы для платы? И как такие мелкие ножки паять к плате? Я как-то чиповал PlayStation2 - там надо было припаять 5 тонюсеньких проводов к похожему чипу. Паяльник заточил до состояния иголки, гемора было... А самому паять такой чип к плате это вообще смертоубийство... Я бы заплатил за готовую платку...

Кстати а защита игрушек будет детектировать этот картридж? А то некоторые ROMы если их кидать в ОЗУ отказывались работать, проверяя свое адресное пространство за запись...

Van AlexBel

Champion (268)

afbeelding van AlexBel

13-08-2009, 22:25

Вопрос: хочу попробовать запустить игру размером более 32 килобайт и использующую картридж. При этом крайне желательно, чтобы игра могла запускаться на MSX1 и было описание маппера. Что посоветуете?

Van AlexBel

Champion (268)

afbeelding van AlexBel

13-08-2009, 22:32

А сколько стоят чипы для платы? И как такие мелкие ножки паять к плате? Я как-то чиповал PlayStation2 - там надо было припаять 5 тонюсеньких проводов к похожему чипу. Паяльник заточил до состояния иголки, гемора было... А самому паять такой чип к плате это вообще смертоубийство... Я бы заплатил за готовую платку...

Честно говоря, сколько стоит флекс - не знаю, мне подарили несколько штук, что оказалось весьма кстати для разработок. Но, думаю, узнать его стоимость несложно. Остальные микросхемы... Память обошлась рублей в 200, контроллер я, как и флекс, не покупал, а просто списал для себя на работе, но его цена, думаю, от 150 до 200р.

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

Продавать девайс я, как уже не писал, не планирую, но, возможно, когда его можно будет "выпускать в свет", будет заказано несколько плат на заводе.

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

Van tnt23

Master (148)

afbeelding van tnt23

14-08-2009, 10:31

А как браузер будет общаться с картриджем? какие-нибудь специально выделенные в адресном пространстве картриджа порты?

Van AlexBel

Champion (268)

afbeelding van AlexBel

14-08-2009, 16:24

А как браузер будет общаться с картриджем? какие-нибудь специально выделенные в адресном пространстве картриджа порты?

Необязательно через порты. Можно через память. Или сделать специальные регистры, которые будут отображаться в определенном пространстве памяти, или использовать для этого определенные адреса SRAM (хотя мне кажется это технически не лучшим вариантом). Можно, конечно, и порты - думаю, это не столь принципиально.

Van AlexBel

Champion (268)

afbeelding van AlexBel

14-08-2009, 16:26

Кстати а защита игрушек будет детектировать этот картридж? А то некоторые ROMы если их кидать в ОЗУ отказывались работать, проверяя свое адресное пространство за запись...

Если честно - я пока об этом не думал. Но, думаю, если есть описание на систему защиты картриджа, то ее можно попробовать обойти. Вообще, если игра проверяет себя только на факт нахождения в ОЗУ - такую защиту обойти несложно. Думаю, на моем девайсе такая игра запустилась бы и сейчас, поскольку после заливки ROM-а память аппаратно блокируется на запись и MSX видит ее как обычное ПЗУ.

Van igorx

Master (160)

afbeelding van igorx

15-08-2009, 09:18

Кстати а защита игрушек будет детектировать этот картридж? А то некоторые ROMы если их кидать в ОЗУ отказывались работать, проверяя свое адресное пространство за запись...

Если честно - я пока об этом не думал. Но, думаю, если есть описание на систему защиты картриджа, то ее можно попробовать обойти. Вообще, если игра проверяет себя только на факт нахождения в ОЗУ - такую защиту обойти несложно. Думаю, на моем девайсе такая игра запустилась бы и сейчас, поскольку после заливки ROM-а память аппаратно блокируется на запись и MSX видит ее как обычное ПЗУ.

На MSX игра по простому можно проверить запускается ли она из ROM или RAM фактически 2мя способами
1. Попробовать записать в свои адреса что-то если запись прошла успешно, RAM ну и следующие действия фантазия разработчика.
2. Разбираясь с состояние маппера.

Есть еще экзотика из GBAшных картов повесить в адреса ROM кусок SRAM/ и использовать его для записи чего-либо.
А содержание подписывать.

Для описываемого здесь карта достаточно ввести запрет записи в RAM со стороны MSX в режиме отличном от заливки в RAM игры.

Pagina 1/5
| 2 | 3 | 4 | 5