DC-SWAT Forum
BIOS Disassembling - Версия для печати

+- DC-SWAT Forum (http://www.dc-swat.ru/forum)
+-- Форум: Sega Dreamcast (/forum-2.html)
+--- Форум: Hardware (/forum-9.html)
+--- Тема: BIOS Disassembling (/thread-1752.html)

Страниц: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20


RE: BIOS Disassembling - cybdyn - 10.04.2012 00:43

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

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

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


RE: BIOS Disassembling - Rio - 10.04.2012 15:58

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


RE: BIOS Disassembling - cybdyn - 11.04.2012 11:27

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


RE: BIOS Disassembling - cybdyn - 11.04.2012 13:25

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

прикольно, этого в том красочном примере не было.


RE: BIOS Disassembling - cybdyn - 12.04.2012 01:09

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

такой вопрос, после этого копирования к биосу уже нет никаких обращений? ведь по идее уже всё скопировано, и биос уже не используется??? или это копирование только ради проверки.


RE: BIOS Disassembling - SWAT - 12.04.2012 08:17

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


RE: BIOS Disassembling - cybdyn - 12.04.2012 10:59

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

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

где глянуть информацию о сисколах и конкретно и тех что работают с приводом?
http://lwn.net/Articles/263284/ есть такая ссыль, можноли пользоваться как источником информации о сисколах, или там под чтото другое написано. там вроде упоминается что при написании кода пользовались реверсом.


RE: BIOS Disassembling - SWAT - 12.04.2012 12:19

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


RE: BIOS Disassembling - cybdyn - 12.04.2012 12:39

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

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

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

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


RE: BIOS Disassembling - SWAT - 12.04.2012 19:39

(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, но исходники я пока не публикую.


RE: BIOS Disassembling - cybdyn - 12.04.2012 23:42

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

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

ладно, посмотрим, если я сам не сделаю эту подддержу, спрошу помощи.


RE: BIOS Disassembling - SWAT - 13.04.2012 14:54

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


RE: BIOS Disassembling - cybdyn - 13.04.2012 16:36

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

информацию о этих сисколах, то что удалось насобирал (чего они делают, как применять и т.д) будешь документировать?


RE: BIOS Disassembling - SWAT - 14.04.2012 09:10

Неа Smile Времени нету.


RE: BIOS Disassembling - cybdyn - 14.04.2012 16:22

ой, да ладно))), сколько там у тех сисколов функций.


RE: BIOS Disassembling - SWAT - 15.04.2012 17:49

Достаточно.


RE: BIOS Disassembling - cybdyn - 15.04.2012 22:22

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

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

лично моё мнение, что не стоит тормозить прогресс, тем более люди итак заждались чегото новенького, чем запуск игр с SD или новой-красочной заставки на DS)))
а ситуация с изготовленным устройством myx пока как я понял плодов не принесла, и врятли даст, т.к там только PIO режим...


RE: BIOS Disassembling - SWAT - 16.04.2012 18:33

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


RE: BIOS Disassembling - cybdyn - 17.04.2012 00:20

да, сисколы может и рано, но незабУвай девелоперы люди Творческие!, иногда всё оч быстро решается, особенно под настроение и при хорошем расположение духа, и не мало важно при соответсвующей инфе под рукой..!!

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

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

твой вариант хорош по умолчанию, когда некуда деваться)).
по драйверу - какие его фунцкии надо реализовать? .h файл какойнить примерный.


RE: BIOS Disassembling - SWAT - 17.04.2012 11:27

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

Да нету никакой готовой инфы, неоткуда скачать и посмотреть.
По поводу драйвера, в идеале конечно чтобы был не только хедер, а готовый драйвер для работы с девайсом, т.е. логика тоже. Я бы уже его внедрил в систему куда быстрее, чем если бы писал сам. И вообще хоть скажи что этот девайс делать может, конкретно, а не абстрактно.