| Эмуляция > Эмуляторы консолей 6 поколения и выше |
| Эмуляция XBOX |
| << < (77/167) > >> |
| sergaking:
Вся необходимая информация находится под спойлером ниже: Cxbx-Reloaded * Исходный код * Лист совместимости Cxbx-Reloaded * Wiki-страница * Последняя master-сборка * Ранние сборки - также содержат предварительные сборки, предлагаемые к слиянию с основной веткой * Discord-канал - поддержка, общение (естественно на тему эмулятора и не очень), медиа-контент. Cxbx * Домашняя страница: Cxbx, The Xbox Emulator * Блог разработчика: Blueshogun's Cxbx Dev Blog * Официальный лист совместимости: Cxbx compatibility list * SVN исходники проекта: SourceForge.net Repository - [cxbx] * Git исходники Cxbx-Reloaded: Cxbx-Reloaded: Xbox (Original) Emulator * Инструкция к эмулятору: Cxbx инструкция * Скачать последние ревизии: EmuCR: Cxbx Dxbx * Домашняя страница: The official Dxbx site * Страница проекта в Sourceforge: Dxbx - Free Sourceforge Project * SVN исходники проекта: SourceForge.net Repository - [dxbx] * Официальный FAQ (англ): Dxbx FAQ * Скачать эмулятор: Последние официальные сборки XQEMU * Официальный сайт: Official website * Страничка разработки эмулятора: https://github.com/xqemu/xqemu XEMU * Домашняя страница и список совместимости: https://xemu.app * Git исходники: https://github.com/mborgerson/xemuЯвляется ответвлением от XQEMU. На 21 год обладает 45% совместимостью от всей библиотеки Xbox. По системным требованиям между Cxbx-Reloaded и XQEMU. |
| Lost Soul:
Все Винду по 100 рэ дружно скимнулись! А то надоело уже смотреть на эти дохлые эмули бокса, если развернуться хорошо, то и Америкосы подкинут бабосов, вон как эмуль псп новый пилят, аж искры летят... Думаете на халяву? Нет! За бабки! |
| SEGADreamFAN:
Кикстартер в помощь. Вон, одна мамаша благодаря своей маленькой дочке уже прилично насобирала, разместив объявление, что доча будет РПГ делать. |
| Wind:
Не ну правда неужели нет людей умеющих банальные драйвера для винды писать? ;). Туда всего что и нужно засунуть старт виртуализации - это самый сложный момент в эмуляции куба. |
| s1nka:
--- Цитата: Wind --- а я если нужно бы подтолкнул в нужном направлении --- Конец цитаты --- Меня можешь подтолкнуть в нужном направлении. Драйвера не писал. |
| Wind:
Я тоже не писал, но когда-то я читать не умел, так что это не проблема, почитай про виртулаизацию. Vanderpool и pacifica если поймешь суть, то дело за малым |
| Unit2k:
Винд специально заходит в тему и дразнит народ. <_< |
| Wind:
Почему дразнит, я точно знаю что я на это время не выкрою, а вот помочь подсказать уж время точно найду |
| Dizzy:
--- Цитата: SEGADreamFAN ---Кикстартер в помощь. --- Конец цитаты --- Нельзя, иначе автор получит письмо счастья от майкрософт. Эмуль iOS на кикстартере и вообще свернули по этой причине. --- Цитата: Wind ---Почему дразнит, я точно знаю что я на это время не выкрою, а вот помочь подсказать уж время точно найду --- Конец цитаты --- Можно создать темы на разных форумах, мол, автор эмулятора Demul готов подсказать страждущим, как сделать эмулятор первого бокса. С переводами редко прокатывает, но вдруг кто захочет. |
| sonygod:
Dizzy, Из русских всем будет либо лень либо ненужно. |
| Photon9:
--- Цитата: sonygod ---Dizzy, Из русских всем будет либо лень либо ненужно. --- Конец цитаты --- Ну относительно ненужно не думаю, а вот то что лень это да, ну и незнание вопроса |
| sonygod:
Photon9, Суровые программеры у нас привыкли работать за бабосы. Ну а относительно второго то нужно это очень немногим. |
| ~Scorpion-:
sonygod, Чего ты хрень несешь какую-то? |
| sonygod:
~Scorpion-, Это правда жизни. |
| gepar:
--- Цитата: Dizzy ---Можно создать темы на разных форумах, мол, автор эмулятора Demul готов подсказать страждущим, как сделать эмулятор первого бокса. С переводами редко прокатывает, но вдруг кто захочет. --- Конец цитаты --- Интересующихся много небось (я вот например, лол), да только вот так чтобы заниматься эмулятором да ещё и в придачу изучением чего да как это же времени куча надо. Я бы лично легко занимался бы вот так копанием доков связанных с железякой чтобы написать эмулятор, расписывал бы свой прогресс в бложике, а потом перед сном ещё писал бы что-то бесплатное под андроид, но это только если бы у меня в гараже стояло хорошее авто, на моём банквоском счету лежала пара сотень тысяч денег, а на кровати лежала красавица жена и ждала пока я довоюю с очередным багом в коде просиживая за visual studio со словами "щас-щас, уже иду" ... Но всего этого добиваться надо так что вот и получаеться что, как выразился sonygod, программисты денег хотят, хотя оно и не удивительно. Но это меня понесло что-то :) Wind, а какие вообще познания надо у юного пейсателя эмулятора-то? Я так догадываюсь winapi и dx, а чего ещё? И вообще чем в основном ты занимаешься пока пишешь эмулятор, я вот с программированием ознакомлен, но вот ни малейшего понятия не имею как это всё дело происходит. Как всё выглядит примерно? Сейчас, я так понимаю, они пошли по пути что ищут в боксовском api функцию типа drawCircle(hwnd,NULL,pen,3) и переводят её в винапишную тупо подбирая существующую выполняющую то же действие (или дописывают мелкий кусок кода, но в общем-то по сути "транслируют" код), ну а как предлагаешь поступить ты? |
| MetalliC:
--- Цитата: gepar ---а какие вообще познания надо у юного пейсателя эмулятора-то? Я так догадываюсь winapi и dx, а чего ещё? --- Конец цитаты --- имхо основное - знать принципы работы и построения компов и игровых систем, в смысле как оно работает внутри --- Цитата: gepar ---Как всё выглядит примерно? --- Конец цитаты --- долго и нудно разбираешься что и как работает в железяке (или что у нас не правильно работает), а как разберешься за часок-другой пишешь что надо, а то и быстрее короче по большей части решение паззлов из серии "сколько черных кошек в темной комнате и что они делают" ;) --- Цитата: gepar ---Сейчас, я так понимаю, они пошли по пути что ищут в боксовском api функцию типа drawCircle(hwnd,NULL,pen,3) и переводят её в винапишную тупо подбирая существующую выполняющую то же действие (или дописывают мелкий кусок кода, но в общем-то по сути "транслируют" код), ну а как предлагаешь поступить ты? --- Конец цитаты --- ну да, в имеющихся "эмуляторах" где-то статическая рекомпиляция с боксовским exe-шником на входе и обычным PE-шным на выходе. более лучшее решение - использовать средства виртуализации современных процов, на прошлой странице они же упоминались - vanderpool http://ru.wikipedia.org/wiki/VT-d и pacifica http://en.wikipedia.org/wiki/X86_virtualization#AMD_virtualization_.28AMD-V.29 |
| Dizzy:
--- Цитата: gepar ---Интересующихся много небось (я вот например, лол), да только вот так чтобы заниматься эмулятором да ещё и в придачу изучением чего да как это же времени куча надо. --- Конец цитаты --- Надо делать опенсурс с SVN. Глядишь, желающие методом ковыряния на досуге что-то и родят. А потом кто-нибудь приведёт это в порядок. |
| gepar:
--- Цитата: MetalliC ---долго и нудно разбираешься что и как работает в железяке (или что у нас не правильно работает), а как разберешься за часок-другой пишешь что надо, а то и быстрее --- Конец цитаты --- Не, ты не понял, это сейчас уже так. Но надо же было с чего-то начать, как костяк создаёться меня интересует. Вот с чего начиналось это всё, ну допустим есть задача эмулировать дримкаст, для начала 2д графику ... да или чего уж там, биос и заставку сега в начале абы как чтобы рисовало, вот что для этого делалось? Хотя это вопрос к Винду больше, ты же, как я помню, присоединился к разработке позже. Мне интересно как это выглядит, в идеале покажите ещё кусок кода. Только это, мне тот что попроще (не в плане синтаксиса, а в плане производимых действий) и даёт что-то ощутимое и которое сразу понятно где и как выглядит(не знаю, допустим код эмуляции заставки с надписью сега в начале игры), а не "вот этот код для отрисовки прозрачной тени которая только появилась частично в dx11 так что для старых видеокарт мы тут вот юзаем преобразовние Фурье...". Ну как-то так, думаю в этот раз я понятнее выразился :) --- Цитата: Dizzy ---Надо делать опенсурс с SVN. Глядишь, желающие методом ковыряния на досуге что-то и родят. А потом кто-нибудь приведёт это в порядок. --- Конец цитаты --- Для этого надо хоть что-то сделать сначала чтобы было что выкладывать, от создания одного лишь пустого проекта с main где написано return 0 (а может и не написано, смотря на чём проект создан :) ) о котором узнает 3.5 анонимуса никто не набежит помогать. Вон тебе как пример - nullDC, сам проект большой и известен всем, исходники открыты; ну как, помогают ? А ведь это не просто громкий заголовок, а рабочий эмулятор. |
| MetalliC:
--- Цитата: gepar ---для начала 2д графику ... --- Конец цитаты --- не используется оно в играх, только картинка с лого и надписью мол сделано по лицензии Сеги в 2д показывается, всё остальное даже просто картинки рендерится в 3д --- Цитата: gepar ---да или чего уж там, биос и заставку сега в начале абы как чтобы рисовало, вот что для этого делалось? --- Конец цитаты --- емнип когда Винд начинал делать эмулятор тех.доки на дрим еще не было, так что всё вычислялось методом изучения логов и научного тыка. я могу рассказать как уже с моим участием раскуривались неизвестные системы типа cavesh3, hikaru, galeco3d: - сначала вычисляются основные части карты памяти системы - биос или "exe-шник" игры загоняется в IDA и изучается - когда выяснили где рам/ром/флеш/итп делается скелет драйвера системы (ессно ядро процессора у нас уже есть) - после этого под отладчиком гоняем код игр, смотрим что он откуда и куда читает/пишет, вычисляем собственно что в тех областях памяти, параллельно вычисляется какие обработчики прерываний есть и от чего они могут идти вот по началу где-то так |
| Wind:
Если совсем с нуля писать, то начинаешь с эмуляции проца и как выше сказал MetalliC, построения карты памяти. Из простых примеров как я уже не раз писал это PCSX2 времен запуска первой демки. Минимум кода и дает понять суть как оно устроено. Из понятных и законченных примеров это PCSX1. Общая суть классического эмулятора следующая рассказываю на примере дрима находим доку по процу (в 90% случаев информация доступная и открытая) в основном изучаем набор инструкций и того как они кодируются. Далее выясняем с какого адреса стартует система у sh4 стартовый адрес фиксированый и всегда равен 0xa0000000. Верхнии 3 бита адреса отвечают за режимы кеширования включение мму т.е. по сути верхнии 3 бита не несут полезной нагрузки. По сути 0xa0000000 = 0x80000000 = 0x00000000 и т.д. Выяснив с какой точки происходит старт системы подсовываем на этот адрес "биос". И вот с этого момента начиная эмуляция уже. Алгоритм примерно такой считываем команду с текущего указателя на код, и декодируем ее согласно доке. Например считали первую команду биоса и ей оказалась 0xe3ff это команда интерпретируется как mov rn, imm. Приведу очень упрощенный пример разбора команды (0xe3ff >> 12) = 0xe дает на понять что это команда mov. ((0xe3ff >> 8) & 0xf) = 0x3 = это порядковый номер регистра (всего их 16 у sh4). ((0xe3ff & 0xff) = 0xff это собственно какое значение присвоить. В итоге получается что в первая команда присвоить регистру под номером 3 значение 0xff. Увеличиваем счетчик циклов (каждая команда должна выполнятся строго определенное кол-во времени). Читаем следующую команду декодируем, исполняем то что нужно и т.д. Одновременно с продвижением по коду строим обвязку типа dma контролеров. Процесс на ранних стадиях конечно весьма нудный. В случае коробки проц эмулировать не нужно, его нужно виртуализировать, к сожалению понятностью того как это все запускается документация не блещет и примеров мало, так что займет разбор всего этого добра какое-то время. Добавлено позже: Заинтерисвовшимся почитаейте блог товарища про виртуализацию http://stalkervirt.blogspot.ru/2010/08/hardware-virtualization-part-3.html |
| iddqd:
http://www.emucr.com/2013/04/cxbx-wip-news-more-on-virtua-cop-3.html |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |