DC-SWAT Forum

Полная версия: BIOS Disassembling
Вы просматриваете yпpощеннyю веpсию форума. Пеpейти к полной веpсии.
Страниц: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
да я с тобой согласен...это я размышляю...

по началу дэвайс сажу на шину г1 (г2) , налаживаю одиночные запись чтение (PIO)
далее пробую DMA , в качестве носителя и мозга комп по усб.
делее можно HDD, SD, ...

кстати если шина г1 не блокируется в случае биоса который с SD мода грузит ядро, можно юзать её напрямую как ide (16 бит)

"Никуда ты их больше не встроишь, сколько там места оригинальный код занимает ты видел? Мне и так то его не хватает..." - код можно подкорректировать/упростить даже тот что есть, мне же не нужна 100% реализация всех оригинальных функций, с проверками там всякми.. часть логики работы возможно будет в контроллере устройства, а может и вся, дрим только запросы будет посылать и принимть поток данных.

в сисколах я так понял нет реализации ДМА. наверно ты про них имелл ввидду -что заглушки ставишь.

ладно, пока я пробиваю информация. когда начну - всё покажу, будет яснее))
В моем коде уже упрощать то нечего, там и так все минимально, особо то не разгуляешься. Львиную долю отжирает не мой код, а библиотека для работы с файловой системой и компрессия еще немного, которую выкидывать не очень то хотелось бы. Вот если перенести работу с файловой системой в девайс и уже тупо какими то командами гулять по ней, тогда можно было бы ужаться хорошо.
G1 блокируется если биос не оригинальный, не блокируется она только с одним волшебным биосом, содержащим загрузчик с SD, но ты его не переделаешь просто так, т.е. придется грузится тогда с SD сначала или пытаться, долго и мучительно, повторить такой же биос.
речь шла про место где сидит оригинальный код и его корректировку.

да, в плате будет контроллер, код может работать с фс систмой и др., хотя реально это и надо, нам же только начало имиджа надо знать по идее. дримка будет тупо запросы(команд пакеты) закидывать , поэтому мож даже проще подкорректировать родной протокол.
есть так же мысль (и она не новая)) ) откорректировав код для работы с гдром если он близок к IDE ATA(PI) то и втыкнуть туда (на Г1) обычный винт и т.п , а ОС грузить с bios+SD мода.
хотя я не уверен, оригинальную плату гдром хакнутый биос тоже требует?!.
но это не страшно, можно просто добавить микросхему регистр (273/373/573) в любом старом сидюке завались их, думаю на рынке тож. и 245/244 редирект линий.
CS0/CS1 с гдром на иде устройство (хдд).

приемущества:
1 - не требует никаих доп плат с альтерами, т.д .
2 - простой- недорогой - идёт в массы))
3 - скорость с использованием ДМА
4 - во время игры не надо никакой FS, подсистема работет с образом на уровне CD/GD диска. FS винта сидит в ОС, вибирает нужный стартовый адрес образа игры (ISO)
5 - и главное DS живёт и припевает в следующей версии)) , правда по старинке придётся делать биос и sd мод((..


1- вопрос со звуком как SD-моде не решён.((, насколько это критично не знаю.


как вам?
Не пойму как ты хочешь в 4 пункте обойтись без FS? По секторам читать с hdd образ диска что-ли? Так он же фрагментирован, один хрен нужно читать таблицу файловой системы, чтобы его собрать в кучу.
я основываюсь на том что работет и применяется в других консолях...
и это как раз к слову, что не имею инфы о сисколах...)))

про фрагментацию ты скорее прав, но тут образ записывается не системой, а какойто прогой (winhip или както так называется), можно её применить, исходники для портирования тоже имеются.

подобным способом работает OPL для пс2. образ игры лежит линейно начиная с какогото LBA, который берётся за начало как offset.
с хдд считывание идёт по секторам : 4 сектора = 1 фрэйм (512 * 4 = 2048)

единственно вопрос длины сектора в cd/gd образах там кажись не 2048?
скорее 2336 или 2352...
но опятьже есть компоновщики. если только дримка не требует RAW сектора?
Сектора там 2048, если это не аудио дорожка.
Это геморойно так закидывать образы... что то одни не удобства получаются.
кому как, хотя я неслышал жалоб от владельцев нэтворк адаптора на пс2.

2048 - т.е form1 - только данные испльзуются? и нету игр с XA секторами? эт хорошо.

тогда оставлять принцип с загрузчиком как в sd-мод.

ну, а у тебя какие мысли, чтобы просто и не геморгно?
с HD на G2 пока тишина, там что по идее планировал сделать, проверить новую версию DS, или были большие задумки?

кстати фрагментация обязательно используется? может когда мало места? и файл нельзя цельно записать, только фрагментами. или там независимо ?
Все таки цеплять на G1 как-то не хотелось бы при таком раскладе. Хотелось бы оставить GD привод на месте с возможностью диски запускать. Лучше на G2 девайс повешать, так и с диска загрузиться можно и HDD/SD и т.д. использовать.
тут речь о простом соединении, т.к G1 шина ATA подобная, никаких доп устройств.
в принципе можно сделать недорогой переключатель между приводом и хдд.

на G2 скорее всего уже надо чтото посложнее применять, чтобы получить быстрое устройство по скорости.
Решил присоединится к решению данной задачи. Со временем у меня тяжело, но дело стоящее.
У меня есть GD-Rom с дохлой головой (сама консоль живая). Поскольку замены не было, купил ещё один Dreamcast.
По последним TOSEC Sets появилась возможность получить нормальные рипы gd-дисков, но не на что записать...
IMHO решением проблемы будет платка со слотом SD-Card и FPGA, подключенная к G1 вместо штатного GD-Rom.
+ быстрота загрузки и полная работоспособность всего софта, это-ж не эмуляция, а имитация GD-Rom.
+ 2GB SD карточка не дорогая, льём на неё рип один-в-один.
У меня есть пара модулей от Terasic DE0-Nano с Altera Cyclon IV, разъём от старого GD-Rom, думаю для первого приближения этого вполне достаточно.
Как всё заработает можно будет страссировать платку на Циклоне с нужным количеством гейтов.

С распиновкой разъёма G1 вроде разобрался. Нужен полный перечень регистров GD-Rom и пакетных команд.

P.S. Если нужен реассемблер для Hitachi SH4, то я под DOS году эдак в 2001 написал его - могу запостить.
о, это хорошо когда ктото знает что такое альтера, циклон, гейты, уже есть о чём поговорить))...

реассемблер - в смысле диссасемблер? или чтото покруче?)) если просто, то в дисасме нет проблемы, а вот кто бы перевёл в нормальный вид чтобы понять смысл, тех оригинальных функций из сисколов, тогда можно было со стороны софта понять чего там посылается в гдром и что принемается или точнее ожидается))
какаято инфа правда есть основанная на реверсе и протокол вроде описан - называется SPI ("Сэга Пакэт Интэрфэйс", вроде).

по ходу там близко к АТА по регам. их мало. поэтому от плис надо только этот набор регов, режим дма + контроллер памяти (sram или sdram, смотря что воткнуть вплату) и со стороны переферии SD/HDD тож какой набор регов (параллельных, сдвиговых) . вообщем от плис не так много надо.
но (ИМХО) в плиске делать обработку команд это застрелиться. нужен хотбы в помощь простой контроллер. тем более тут прозвучало мнение что в нём же желательно FS код иметь ( FAT 16/32/..), чтобы с карты данные читать, записанные на компе как обычн файл
...это если по пути эмуляции гдром.

...есть ещё альтернатива делать свой интересфейс, потом дать SWATу драйвер , он переделает под загрузчик. но тада надо SD+BIOS мод городить. хотя учитывая что биос сидит на тойже шине а мы применяем плис, можно какнибудь и биос "свой" подставить, чтобы без этого "огорода" работало.

есть ещё не пахана поле с G2... ну это немного наверно другая история...

вообщем идей на самом деле много... остаётся только когданить перейти к практике)))

P.S - а опыт есть с плисами? подобные устройства делали?
>реассемблер - в смысле диссасемблер? или чтото покруче?))
Ну в принципе да, можно вручную/полуавтоматически указать на hex дамп и определить чем это является (данные, команда). По ходу процесса понять, что делается в программе. Единственное нужно помнить, что у SH4 ассемблера слева в мнемонике источник, а справа приёмник данных.

>какаято инфа правда есть основанная на реверсе и протокол вроде описан - называется SPI ("Сэга Пакэт Интэрфэйс", вроде).
Вот эту инфу нужно посмотреть.

>поэтому от плис надо только этот набор регов, режим дма + контроллер памяти
контроллер внешней памяти не нужен, достаточно той, что внутри fpga. Это для CD/HDD нужен большой объём кэша данных из-за медленности механники, а для flash эт ни к чему - итак всё быстро происходит. На платку нужно установить минимум компонентов с целью уменьшения стоимости.

>со стороны переферии SD/HDD тож какой набор регов
Ну HDD я не хочу подключать из-за сложности заливки в него имеджей, а флэшку вынул - воткнул в картридер, выполнил "dd if=имедж of=/dev/флэшка" - воткну в дримкаст и играй. Да и SD карточка это-ж просто SPI интерфейс с расширенными линиями данных.

>в плиске делать обработку команд это застрелиться. нужен хотбы в помощь простой контроллер.
Можно залить в FPGA тот-же NIOS софт процессор или своё ядрышко с минимумом команд для решения интерфейсных задач.

> тем более тут прозвучало мнение что в нём же желательно FS код иметь ( FAT 16/32/..), чтобы с карты данные читать, записанные на компе как обычн файл
Незачем, ведь флэшка по существу будет являться аналогом диска который по структуре размещения данных один-в-один оригинальный GD-Rom. А навешивание сверху ещё одной файловой структуры - эт нужно если бы было несколько имеджей на одном носителе.

>есть ещё альтернатива делать свой интересфейс, потом дать SWATу драйвер , он переделает под загрузчик. но тада надо SD+BIOS мод городить.
Я уважаю работу проделанную SWATом, но у меня другие цели/задачи.
Хотелось-бы заменить дохнущие GD-Rom на быстрое/простое устройство хранения информации с _минимумом_ специальных навыков для установки его в оригинальный dreamcast.

>хотя учитывая что биос сидит на тойже шине а мы применяем плис, можно какнибудь и биос "свой" подставить, чтобы без этого "огорода" работало.
Ну G1 это не шина, а просто порт ввода-вывода с dma, перехватить bios через порт не возможно.

>есть ещё не пахана поле с G2...
А в принципе всё аналогично просто адресное поле широкое, на эту шину я припаивал ethernet кристалл, когда переливал имеджи с оригинальных GD-Rom на писюк. Ну а потом остановился на обычном serial, его скорости хватало для загрузки моих программок/демок на дрим.

>опыт есть с плисами? подобные устройства делали?
Здесь следует разделить терминологии, с CPLD я не работал, а с FPGA проблем нет. FPGA просты для понимания, если немного прочитать про vhdl. Да и без этого в схематике можно просто нарисовать схему - скомпилировать и залить в FPGA.
думаю народ всё равно захочет несколько имиджей на флэху. каждый раз заливать по новой както не очень прикольно, - ну кому как.

кстати с заливкой на винт можно чтото придумать не вынимая)) мне приглянулись sd кардридеры. думаю там скорость приличная. проект нмного усложняется правда.

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

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

"Ну G1 это не шина, а просто порт ввода-вывода с dma, перехватить bios через порт не возможно." - биос это простое пзу (rom), используя CS можно бутить код с лубого места. его придётся подводить т.к на разъёме гдрома его нет.

по поводу простого размещения имиджа на флэшке не знаю, т.к нет инфы что требует дрим от диска. данные это понятно что 2048, вроде в SD они кратны 512 (поправьте если нет?!) , а вот с командами которые к примеру хотят субкод или доп данные почитать..чё делать..ещё вопрос по секторам с CDDA (необязательно).

ну а вообщем идея хорошая... остаётся только увидеть реализацию
да по сути какая разница винт или флешка,главное шоб работало.
эт точно. и практика покажет.
ещё главное начатьWink
Флешку можно разбить на разделы и в каждый залить отдельный образ.
в случае у ВалераК - идея ничего не разбивать а залить образ и применить это устройство как емулятор привода, под оригинальную ОС.

по-другому, нужен какойто менеджер выбора разделов или чегобы там ни было - т.е доп софт типа дрим шела, соответсвенно встаёт вопрос метода загрузки этого софта.
либо можно передать эту работу внутреннему контролееру который выполнит код работы с fs.
либо какаято смесь/комбинация этих методов...)))
Заливка одного образа на SD, да еще и через энное место (не у всех никсы стоят, да и не каждый вообще поймет что нужно сделать), это вообще не вариант, все это крайне не удобно. Хочется взять флешку, воткнуть в любой комп с любой осью и без проблем закинуть туда десяток образов. Затем воткнуть в дрим и через меню выбрать нужный образ, поиграть и выбрать другой (а не бежать опять к компу и колдовать). Так же хотелось бы иметь возможность использовать этот девайс не только для заливки образов.
И я согласен с alex'ом, не хотелось бы выбрасывать привод тем у кого он еще работает, шина G2 свободна и гораздо быстрее G1, а так же доступна без вскрытия корпуса и многоканальна.

ValeraK по поводу ethernet на G2, есть схема?
по g2 согласен - более удобно. но вопрос дизайна. если платка большая то как её расположить. если бы эти ZIP-драйвы продавались в массом колечестве))) было бы супер.
а так, как вариант попробовать вместо модема, сделать платку такой же геометрии.

а у тех у кого привод сдох - придётся биос мод делать... хотя на этот случай будет другая платка - во внуть)))
Страниц: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
URL ссылки