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
я начал сам потиху разбирать код биоса. сначала пройду путь тот что уже описан, попробую добраться до чегото нового, того что нехватает...

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

в любом случае, хорошо знать какойто минимум , т.к просто подключить какуюто платку мало - надо же "чтото" будет заливать в память)))
Так а с какой целью ты все-таки хочешь его изучать - просто так, из спортивного интереса, для себя, либо же хочешь выгоды из этого какую-то получить?
с выгодой подклюения устройств или замены гдром)))
обнаружил прокачку на в самом почти начале)))
после инита контроллера памяти и пару сис регов, идет копирование кода прокачки в память (0x8c0000e0) и исполнение...

H'8c0000e0: H'd204 .. mov.l @(H'8c0000f4), R2 (H'001fffff)
H'8c0000e2: H'd106 .. mov.l @(H'8c0000fc), R1 (H'a05f74e4)
H'8c0000e4: H'2122 "! mov.l R2, @R1
H'8c0000e6: H'd204 .. mov.l @(H'8c0000f8), R2 (H'0007ffc0)
H'8c0000e8: H'6106 .a mov.l @R0+, R1
H'8c0000ea: H'2312 .# mov.l R1, @R3
H'8c0000ec: H'7304 .s add H'04, R3
H'8c0000ee: H'4210 .B dt R2
H'8c0000f0: H'8bfa .. bf H'8c0000e8
H'8c0000f2: H'8915 .. bt H'8c000120
H'8c0000f4: H'ffff .. ???
H'8c0000f6: H'001f .. mac.l @R1+, @R0+
H'8c0000f8: H'ffc0 .. fadd FR12, FR15
H'8c0000fa: H'0007 .. mul.l R0, R0
H'8c0000fc: H'74e4 .t sub H'1c, R4
H'8c0000fe: H'a05f _. bra H'8c0001c0

прикольно, этого в том красочном примере не было.
SWAT, из приведённого кода слуде что идёт как прокачка так переписывание всего биоса в память. начиная с адреса 0xa0000100 -> 0x8c000100

такой вопрос, после этого копирования к биосу уже нет никаких обращений? ведь по идее уже всё скопировано, и биос уже не используется??? или это копирование только ради проверки.
Да, в примере нету кода прокачки, есть только его загрузка. Потом биос используется для получения дефолтных шрифтов, их там много, чуть ли не пол биоса и используется часто. Ну а так вроде бы больше ничего, программа шелл грузится при старте. А ну и еще по идее там должен быть код драйвера для AICA, если там конечно не в PIO режиме сделано, в чем я сомневаюсь.
если только шрифты потом нужны, чисто как данные, это будет хорошо
получается можно закинуть в память с устройства свой код не опасаться что с биоса будет чтото исполняться (надеюсь).

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

где глянуть информацию о сисколах и конкретно и тех что работают с приводом?
http://lwn.net/Articles/263284/ есть такая ссыль, можноли пользоваться как источником информации о сисколах, или там под чтото другое написано. там вроде упоминается что при написании кода пользовались реверсом.
Обычно игры сисколы не переустанавливают, но такое имеет место быть, особенно в хакнутых бинарниках. А так большинство игр используют одну и ту же библиотеку для работы с сисколами из KATANA SDK или WinCE SDK.
Про сисколы можно посмотреть здесь - http://mc.pp.se/dc/syscalls.html но тут не все описано, часть еще можно посмотреть и в реверсе биоса.
По твоей ссылке, гдром юзается напрямую через G1, без сисколов.
да на прямую, какбы описывают низкий уровень работы с приводом, кстати код у них как в оригинале или близкий?
а потом они не оформляют в сискольную структуру все эти функции , чтобы потом установить/прописать её для сискольных вызовов?

также вопрос по isold , он подменяет сисколы? там все функции используются, в смысле все важны, или реально игры только некоторые юзают.

интересует описание что надо внутри каждой сискольной функции (по работе с гдром) делать , какие параметры передаются, и результаты возвращает, - это к вопросу запуска игр с моей платки. если я настрою транзакции по г1/г2 : чтение/запись в реги (PIO) и чтение по дма , я бы далее поменялбы сисколы и написал код уже на своё устройство.

вообщем, по тиху к исходничкам isold я подхожу, на них посмотреть можно или это уже секретная зона))) ???
этот вопрос можно освещать или личная интелектуальная собственность.
просто продолжить работу проще чем самому заново осваивать, это потеря времени...
(12.04.2012 12:39)cybdyn писал(а): [ -> ]да на прямую, какбы описывают низкий уровень работы с приводом, кстати код у них как в оригинале или близкий?
а потом они не оформляют в сискольную структуру все эти функции , чтобы потом установить/прописать её для сискольных вызовов?

Нет, зачем им это.

(12.04.2012 12:39)cybdyn писал(а): [ -> ]также вопрос по isold , он подменяет сисколы? там все функции используются, в смысле все важны, или реально игры только некоторые юзают.

Да подменяет. Сисколы перехватываются все, но не все эмулируются, некоторые, те что связаны с DMA, просто заглушками.

(12.04.2012 12:39)cybdyn писал(а): [ -> ]интересует описание что надо внутри каждой сискольной функции (по работе с гдром) делать , какие параметры передаются, и результаты возвращает, - это к вопросу запуска игр с моей платки. если я настрою транзакции по г1/г2 : чтение/запись в реги (PIO) и чтение по дма , я бы далее поменялбы сисколы и написал код уже на своё устройство.

вообщем, по тиху к исходничкам isold я подхожу, на них посмотреть можно или это уже секретная зона))) ???
этот вопрос можно освещать или личная интелектуальная собственность.
просто продолжить работу проще чем самому заново осваивать, это потеря времени...

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

"Сисколы перехватываются все" - в смысле, что ещё както динамически?)) или я не так понял.

ладно, посмотрим, если я сам не сделаю эту подддержу, спрошу помощи.
Информацию я собирал по крупицам с разных мест, эмуляторов, реверса биоса и прочее, а так же отслеживал работу сам.
Про перехват я немного не так выразился. По сути там всего 3 разных вектора сисколов: сисемный, драйвер flashrom и gdrom, некоторые в памяти дублируются. Я перехватываю системный и гдром, флешром я не перехватываю, так как мне это пока не нужно, может потом что то придумаю.
У каждого вектора по несколько команд разных, я эмулирую все основные, на некоторых заглушки, а некоторые, на которые инфы нет вообще, я вообще игнорю, но они и не используются нигде практически.
про сисколы я уже немного врубился по твоей ссылке.
по реверсу тоже увидел, как там инсталируют эти вектора, а потом вызовают инициализацию гдрома.

информацию о этих сисколах, то что удалось насобирал (чего они делают, как применять и т.д) будешь документировать?
Неа Smile Времени нету.
ой, да ладно))), сколько там у тех сисколов функций.
Достаточно.
SWAT не стоит боятся что DS станет не нужна, как раз напротив, это устроийство и любое другое будет запускать игры именно с вашей оболочки, иначе и быть не могёт))...

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

лично моё мнение, что не стоит тормозить прогресс, тем более люди итак заждались чегото новенького, чем запуск игр с SD или новой-красочной заставки на DS)))
а ситуация с изготовленным устройством myx пока как я понял плодов не принесла, и врятли даст, т.к там только PIO режим...
Зачем тебе погружатся в сисколы? Сделай устройство и драйвер если есть возможность и все. Я добавлю его поддержку в DS и загрузчики уже сам довольно быстро. Для того чтобы проверить твой девайс, сисколы совершенно не нужны.
да, сисколы может и рано, но незабУвай девелоперы люди Творческие!, иногда всё оч быстро решается, особенно под настроение и при хорошем расположение духа, и не мало важно при соответсвующей инфе под рукой..!!

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

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

твой вариант хорош по умолчанию, когда некуда деваться)).
по драйверу - какие его фунцкии надо реализовать? .h файл какойнить примерный.
1. Ну это же хорошо
2. Разве есть что то совершенное? Smile Никуда ты их больше не встроишь, сколько там места оригинальный код занимает ты видел? Мне и так то его не хватает...
3. Дык отлаживай девайс в чем проблема, загрузчики то тут причем вообще.
4. Я вообще не могу понять что ты пристал к этим сисколам и лоадерам, ты хочешь их эмулировать аппаратно что ли? Как вообще связана работа и отладка твоего девайса с ними?

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