Приставки > Портативные
Sega MD Gopher
<< < (27/61) > >>
goodbye:
 o_0 шаман)))

не думаю что гофер сам себя перепрошить сможет))))) считать это одно.. а шить... для каждого чипа свой алгоритм по сути то )
для чтения у них стандарт, а для прошивки... хз хз :)
RusEm:
был бы нанд - согласился))) тут нор. с нор все проще )))
А насчет прошить - он читать может. значит и шить ))) вопрос в полчении доступа)))
Пока отложил нор на второй план, так как нечего зашивать во внутрь. Надеюсь segaman раскопает меню.
По поводу сохранялок есть идея. Задействовать нажатие кнопки mode. Придется ее вывести отдельно. 
Если я правильно понял архитектуру, то каждое нажатие сопровождается прерыванием, которое отбрабатывает код по адресу указанному в таблице прерывания. Если мои предположения верны и каждая игра имеет обработчик прерывания нажатия кнопок, то есть шанс сделать сохранялку.
Модифицируем лоадер , который грузит игру в рам таким образом, что после загрузки он патчит таблицу векторов прерывания. Запоминает старый адрес и на его место подставляет новый адрес расположенный также в том же адресном пространстве но уже за образом игры. По этому адресу будет лежать наш код который обрабатывает прерывание, ищит нажание нужной кнопкуи. Делает свое грязное дело и отдает управление оригинальному обработчику прерывания. Все просто.
Кто что скажет из спецов по этому поводу. Где я не вижу подводных камней?)))

Smoke:
RusEm, читай доку по мегадрайву.
Прерываний всего 3: кадровое (V-Int), строчное (H-Int) и внешнее. Внешнее - от периферии типа модема. Обработчик нажатия кнопок в каждой игре свой. Грубо говоря, во время нажатия кнопки, происходит запись значения в определенный регистр. Эту запись и нужно отслеживать, затем пускать нужный код
RusEm:
показал бы еще кто доку)))
А за ответ спасибо. буду думать дальше))
Smoke:
RusEm, http://elektropage.ru/publ/ourwork/tutorials/sega_tech_rus_1_5b/24-1-0-104
RusEm:
премного благодарен.
И вопрос насчет эмуля. как я понимаю сохранялка представляет из себя дамп RAM и адрес текущей инструкции?
Smoke:
Не только. Там еще и регистры м68к, содержимое VRAM, ее регистры, всякие колор рам, скролл рам, память z80, регистры z80, возможно что-то еще.
RusEm:
вот про это "ЕЩЕ" и хотелось бы узнать ))
SAMael:
Ребят, никто не в курсе правильной маркировки памяти МХ, ато она какаято не стандартная, даташит не могу нарыть.
Задолбался гуглить без результатно :?
Выглядит так, поидее можно заюзать в гофере.
у меня аналогичная микруха но написано 2Mb x 16
RusEm:
Китаезы зовут ее MX 1819-0072.. при беглом осмотре даташит не нашел
Segaman:
Я дико сомневаюсь, что гуф сможет сам себя шить.
SAMael:
RusEm, та фиг его знает как её обозвали )))
Segaman, ну дримкаст же шьет сам себя ;)
может и тут так можно реализовать?
RusEm:
Segaman, проясни плиз снова пару вопросов. меню стартует из нор памяти?? прога которая читает игры с флеш работает из рам? так??  игры с флешки тоже в рам грузятся?? а втроенные?
seger:
Меню и встроенные игры находятся в Flash, игры с SD карты грузятся в RAM. Флешку в которой меню и встроенные игры китайцы прошивают программатором
RusEm:
это и ежу понятно )))))я имею ввиду при старте. меню копируется в рам и оттуда выполняется?или непосредственно из нора?
Как я понял чтение сд карты организовано в виде отдельной игры которая запускается по соответствующему пункту. как утверждал segaman он копируется в рам и оттуда выполняется. читает список файлов из сд  и при запуске копирует игру с сд в рам и передает управление туда.
Меня больше интересует старт основной меню из нор или рам. и особо интересует момент копирования в рам любого куска и передача туда управления
goodbye:
хаос какой то) RusEm, ты точно понимаешь что ты пишешь ? :)
ты бы лучше сделал уже что нибудь))) потому как всё что ты пишешь... по-моему просто очень очевидно, и ничего сверхестесственного в этом нет.
всё работает так как работает. модить нужно с минимумом изменений. для максимального повторения мода. иначе бессмысленно собирать новый девайс, который сам себя шьет и по толщине как гэйм гир :))))))
не будет гофер себя шить.
RusEm:
эти странные вопросы я задаю чтобы понять как устроена организация памяти и как работает маппер.
Это нужно для того чтобы достучаться до НОР. просто здешние товарищи привыкли к одним терминам а я к другим. отсюда и недопонимание.
Как я вижу работу гофера. М68К адресует 16 Мбайт. у гофера же 16 МБайт нор памяти (которую некоторые называют ром, что в корне не верно) и 16 Мбайт аппаратной RAM (Не путать с областью RAM которую использует М68к)
Некоторое подобие MMU или как привыкли местные жители - маппер уже разруливает памятью.
Так вопрос весь в том, что  если прога из нор выполняется в норе - это одно. а если в рам , то это значит ее кто то туда грузит. например iROM (или как привыкли местные Встроенное ПЗУ)
Как сказал segaman,  irom отсутствует. значит прога котора зашита в нор и стартует первой.

Весь этот зоопарк я изучаю из за того, что если выполнить свой произвольный код с СД флешки. то он копируетсяв РАМ и выполняется оттуда. При этом он имеет адрес 0, так как область РАМ в этот момент отображена на область РОМ сеговского адресного пространства.
соответственно по 0 адресу мы не получим доступа к нор. (на этом адресе у на слежит нашга прога).
Соответственно как вижу ситуацию я - надо заставить маппер отобразить нор в один из слотов РОМ сеговского адресного пространства. После этого можно будет работать с нор памятью. Например мне для начал хватит прочитать ИД флеш. ДЛя этого надо записать по определенному адресу байт и прочитать по определенным адресам 2 байта.

Если это все прокатит и прочитаем ИД флеш, то  мы станем ближе в перепрошивке НОР самим же гофером.
Основной вопрос сейчас стоит в том, задествованы ли все управляющие линии флеш или нет. например линия WE.  На данный момент нет времени вызвонить. Попробую заняться этим на выходных.

ИЗ всего этого следует что запись нора возможна, если мы узнаем как замаппить нор и если  аппаратно управляющие выводы подключены.
Вот.

Поправьте если где ошибся
goodbye:
откуда ты взял 16мбайт аппаратной RAM ?

и почему ID у всех флешек должны быть одинаковыми ?... у тебя может быть одно у меня другое. что тогда ?
почему алгоритмы записи разных чипов должны совпасть ? там же куча параметров. всякие тайминги и т.п.
WE полюбому запаяна к питанию или ещё куда хз.. посмотри на неё %) ды прозвони контакты то.

откуда уверенность что сможешь прошить ? %))))) гофером.
даже если WE будет.. дальше то что ? тебе нужно будет писать прошивальщик. по сути нужен даташит на микруху, которого нет. там описаны задержки и алгоритм как нужно шить микруху. имхо я хз что и зачем делаешь %)
seger:
RAM в гуфере 8 или 4 мегабайта в зависимости от микросхемы
Segaman:
Короче.
Я включил гуфа. Программа из нор что лежит самая первая в списке ячеек памяти нор проинициализировала железо и проверила его на первый запуск. В каждой ячейке памяти нор лежат игры. Первая игра alex kidd лежит в 80000.
Далее гуф показал мне список из 21 одной встроенной игры. При выборе игры, ячейка переключается на эту игру и зарускает ее. 21 первая игра вовсе не игра, так как самим меню идет проверка на этот пункт. Если он выбран (sd card) программка чтения игор читается в рам ($ffff0000)и переходит туда. Там ячейка переключается под перезаписываемую память, а сама программа уже из оперативы читает список игр, если гуф был только включен, или сразу выводит заранее прочитанный список если гуф был сброшен.
Далее при запуске игры, она прочитывается в память и потом процессор переходит туда.

Как нистранно но ячейки работают еще и через перезаписываемую память. Те прошивка вполне себе запускаетя, как обычная игра, если убрать некоторые проверки.
Также для незнатоков есть меню теста гуфа. При включении гуфа надо зажать вверх +а+б+с
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

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