![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 35
|
http://nesdev.com/
это мне поможет? |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 1,195
|
В образе картриджа нет никакой структуры или определённого формата для "сценарий, гарфика и прочее". Всё, что там есть - код и данные. Нет никакого способа без выполнения кода автоматически определить, какие данные где находятся и к чему относятся. Собственно сценарий игры существует только в виде кода, а не некой абстрактной сущности. Для выполнения кода нужно его интерпретировать, это и будет эмуляция.
"Драйвера эмуляции различных чипов" всё те же интерпретаторы, как и эмулятор процессора. |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 57
|
"Собственно сценарий игры существует только в виде кода" - это и есть некая абстракция. На картридже записан байт код содержащий ресурсы игры. Есть например множество утилит вытаскивающих ресурсы из rom файлов SNES. И как они это делают? Они парсят байт код образа и достают ресурсы. Цель эмуляторов существующих и принцип работы например psxeven в том что он эмулирует программно полностью работу приставки каждый чип, каждое устрйоство и тд. Но это незначит что это единственный вариант, это незначит что нельзя распарсить байт код и получить из него свой исполняемый код который не будет требовать всех этих систем но будет работать.
forhaxed я думаю вы не понимаете на сколько это сложно сделать ![]() |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 1,195
|
Никакого "байт-кода, содержащего ресурсы игры" не существует. Есть код, есть данные. Ресурсы - это данные, набор байт с неизвестной в общем случае структурой. Исключение составляют несжатая графика на 8-16 битных приставках, структуру которой жёстко диктует устройство видеоконтроллера, несжатый цифровой звук, и более современные приставки, на которых гораздо чаще встречаются стандартные форматы хранения графических и звуковых данных.
Парсинг кода и непосредственное исполнение = эмуляция. Парсинг и трансляция в код другого процессора = рекомпиляция, без исполнения статическая (не используется со времён первых эмуляторов), с исполнением динамическая (активно используется в эмуляторах производительных систем). В любом случае, код без эмуляции устройств ввода-вывода бесполезен. Устройства вы статически "распарсить" не сможете. |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 57
|
Смысл самому что то приудмывать? Определение эмуляции есть в теме выше).
И для любого здравомыслящего человека понятно устройство кариджа каким образом хранится на нем данные . И каким образом они взаимодействуют с самой приставкой.И вообще вы сами говорите "Никакого "байт-кода, содержащего ресурсы игры" не существует" далее противоречешая этой фраза "Парсинг кода и непосредственное исполнение = эмуляция. Парсинг и трансляция в код другого процессора ..рекомпиляция...". Если разсмотреть это в простом примере то это как перевести книгу с испанского на русский. А приницп работы современных эмуляторов ну к пример psxeven это выучить испанский и прочитать книгу. Ну и вообще хватит этого оффтопа). Если нечгео по теме сказать зачем продалжать безцельно писать посты? Мне кажется что если forhaxed вообще задает подобные вопросы на форуме мало вероятно что его знания позволят написать этот эмулятор в ближайшее время без дополнительных знаний. Поэтому VVall раз вы обладаете огромными знаниями в данной теме возможно вы приведете список литературы содержащий описания этих механизмов. Последний раз редактировалось Tahion; 18.04.2010 в 13:57. |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 1,195
|
Какое отношение определение слова "эмуляция" имеет к внутреннему устройству эмуляторов? Где вы нашли противоречие во фразах, говорящих о совершенно разных вещах (придуманном вами байт-коде ресурсов и абсолютно конкретном исполняемом коде) - абсолютная загадка, как и ваша аналогия между переводом с языка на язык (нерешаемая программно задача) и простейшей интерпретацией.
Литературы на конкретную тему прикладной эмуляции приставок и прочего нет и быть не может, так как легальность этого дела под большим вопросом. Я, как и очень многие, начал с широко известного текста How to write a computer emulator. Если интересует глубокая теория, в информатике это раздел виртуализации. В любом случае, для написания эмулятора надо очень хорошо знать устройство эмулируемой системы. Автор темы уже нашёл сайт, где есть вся необходимая информация. Но по второму его посту смутно понятно, что ему нужно готовое решение, которого не существует (за исключением собственно nesbox), поэтому вдаваться в детали просто не имеет смысла. |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 57
|
Цитата:
.Цитата:
Цитата:
А какраз перевод с 1 языка на другой это интерпретация |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Tahion, ресурсы и код - две РАЗНЫХ составляющих, никакого "байт-кода ресурсов" нет. Котлеты отдельно, мухи - отдельно. Пример - файл swf. Есть библиотека ресурсов, а есть исполняемый байт-код.
Эмуляция и интепретация - два разных подхода. Одно дело читать файл ресурсов, другое - исполнять исполняемый код. Сотни программ читают формат *.pdf, однако же никто не называет их эмуляторами Adobe Acrobat. А здесь задача совсем другая. Ее можно сравнить с задачей написать на AS3 свой флэш-плеер, т.е. некий swf-файл, который загружает в себя другой swf-файл в виде массива байтов и парсящий его на ресурсы и код. Если с первым еще вполне реально справиться (вспомнить тот же gordon), то вот разобрать по байтам и исполнить байткод будет, мягко говоря, проблематично.
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 19.04.2010 в 00:56. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|