Автор Тема: Эмуляция XBOX  (Прочитано 670548 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sergaking

  • Emu-Land Team
  • Сообщений: 2847
  • Пол: Мужской
  • Fighting and beat-'em-up fan
    • Просмотр профиля
Эмуляция XBOX
« : 06 Декабрь 2008, 03:35:16 »

Вся необходимая информация находится под спойлером ниже:

« Последнее редактирование: 12 Июнь 2018, 11:26:21 от Yaranga »

Оффлайн sonygod

  • Ушел с форума
  • Сообщений: 7916
  • Пол: Мужской
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1530 : 01 Апрель 2013, 21:49:47 »
Photon9, Суровые программеры у нас привыкли работать за бабосы. Ну а относительно второго то нужно это очень немногим.

Оффлайн ~Scorpion-

  • Пользователь
  • Сообщений: 9776
  • Пол: Мужской
  • Unstoppable!
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1531 : 01 Апрель 2013, 21:51:10 »
sonygod, Чего ты хрень несешь какую-то?

Оффлайн sonygod

  • Ушел с форума
  • Сообщений: 7916
  • Пол: Мужской
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1532 : 01 Апрель 2013, 21:53:37 »
~Scorpion-, Это правда жизни.

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1533 : 01 Апрель 2013, 22:21:40 »
Цитата: Dizzy
Можно создать темы на разных форумах, мол, автор эмулятора Demul готов подсказать страждущим, как сделать эмулятор первого бокса. С переводами редко прокатывает, но вдруг кто захочет.

Интересующихся много небось (я вот например, лол), да только вот так чтобы заниматься эмулятором да ещё и в придачу изучением чего да как это же времени куча надо. Я бы лично легко занимался бы вот так копанием доков связанных с железякой чтобы написать эмулятор, расписывал бы свой прогресс в бложике, а потом перед сном ещё писал бы что-то бесплатное под андроид, но это только если бы у меня в гараже стояло хорошее авто, на моём банквоском счету лежала пара сотень тысяч денег, а на кровати лежала красавица жена и ждала пока я довоюю с очередным багом в коде просиживая за visual studio со словами "щас-щас, уже иду" ... Но  всего этого добиваться надо так что вот и получаеться что, как выразился sonygod, программисты денег хотят, хотя оно и не удивительно.
Но это меня понесло что-то :)

Wind, а какие вообще познания надо у юного пейсателя эмулятора-то? Я так догадываюсь winapi и dx, а чего ещё? И вообще чем в основном ты занимаешься пока пишешь эмулятор, я вот с программированием ознакомлен, но вот ни малейшего понятия не имею как это всё дело происходит. Как всё выглядит примерно?
Сейчас, я так понимаю, они пошли по пути что ищут в боксовском api функцию типа drawCircle(hwnd,NULL,pen,3) и переводят её в винапишную тупо подбирая существующую выполняющую то же действие (или дописывают мелкий кусок кода, но в общем-то по сути "транслируют" код), ну а как предлагаешь поступить ты?

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1534 : 01 Апрель 2013, 23:35:02 »
Цитата: 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

  • Пользователь
  • Сообщений: 6018
  • Пол: Мужской
  • Флейм
    • Twitter
    • Steam
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1535 : 02 Апрель 2013, 00:54:05 »
Цитата: gepar
Интересующихся много небось (я вот например, лол), да только вот так чтобы заниматься эмулятором да ещё и в придачу изучением чего да как это же времени куча надо.

Надо делать опенсурс с SVN. Глядишь, желающие методом ковыряния на досуге что-то и родят. А потом кто-нибудь приведёт это в порядок.

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1536 : 02 Апрель 2013, 01:28:29 »
Цитата: MetalliC
долго и нудно разбираешься что и как работает в железяке (или что у нас не правильно работает), а как разберешься за часок-другой пишешь что надо, а то и быстрее

Не, ты не понял, это сейчас уже так. Но надо же было с чего-то начать, как костяк создаёться меня интересует. Вот с чего начиналось это всё, ну допустим есть задача эмулировать дримкаст, для начала 2д графику ... да или чего уж там, биос и заставку сега в начале абы как чтобы рисовало, вот что для этого делалось? Хотя это вопрос к Винду больше, ты же, как я помню, присоединился к разработке позже.
Мне интересно как это выглядит, в идеале покажите ещё кусок кода. Только это, мне тот что попроще (не в плане синтаксиса, а в плане производимых действий) и даёт что-то ощутимое и которое сразу понятно где и как выглядит(не знаю, допустим код эмуляции заставки с надписью сега в начале игры), а не "вот этот код для отрисовки прозрачной тени которая только появилась частично в dx11 так что для старых видеокарт мы тут вот юзаем преобразовние Фурье...". Ну как-то так, думаю в этот раз я понятнее выразился :)

Цитата: Dizzy
Надо делать опенсурс с SVN. Глядишь, желающие методом ковыряния на досуге что-то и родят. А потом кто-нибудь приведёт это в порядок.

Для этого надо хоть что-то сделать сначала чтобы было что выкладывать, от создания одного лишь пустого проекта с main где написано return 0 (а может и не написано, смотря на чём проект создан :) ) о котором узнает 3.5 анонимуса никто не набежит помогать. Вон тебе как пример - nullDC, сам проект большой и известен всем, исходники открыты; ну как, помогают ? А ведь это не просто громкий заголовок, а рабочий эмулятор.

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1537 : 02 Апрель 2013, 01:53:56 »
Цитата: gepar
для начала 2д графику ...

не используется оно в играх, только картинка с лого и надписью мол сделано по лицензии Сеги в 2д показывается, всё остальное даже просто картинки рендерится в 3д

Цитата: gepar
да или чего уж там, биос и заставку сега в начале абы как чтобы рисовало, вот что для этого делалось?

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

Оффлайн Wind

  • Пользователь
  • Сообщений: 1834
  • Пол: Мужской
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1538 : 02 Апрель 2013, 04:16:22 »
Если совсем с нуля писать, то начинаешь с эмуляции проца и как выше сказал 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
« Последнее редактирование: 02 Апрель 2013, 12:49:25 от Wind »

Оффлайн iddqd

  • Пользователь
  • Сообщений: 5885
  • Пол: Мужской
  • murderforkill
    • Просмотр профиля

Оффлайн iddqd

  • Пользователь
  • Сообщений: 5885
  • Пол: Мужской
  • murderforkill
    • Просмотр профиля
« Последнее редактирование: 07 Апрель 2013, 18:03:00 от iddqd »

Оффлайн iddqd

  • Пользователь
  • Сообщений: 5885
  • Пол: Мужской
  • murderforkill
    • Просмотр профиля

Оффлайн iddqd

  • Пользователь
  • Сообщений: 5885
  • Пол: Мужской
  • murderforkill
    • Просмотр профиля

Оффлайн k4ktuZ

  • Пользователь
  • Сообщений: 203
  • Пол: Мужской
  • Всегда чего то ищу.
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1543 : 31 Май 2013, 19:37:45 »
Ребят, введите быстро в курс дела, я тут полтора года не был, что на данный момент уже эмулируется с первой коробки (не с one конечно, майкокросовковцы какое то унылое ****** придумали) в какие игры уже нормально поиграть можно?

Оффлайн Unit2k

  • Пользователь
  • Сообщений: 9089
  • Пол: Мужской
    • ВКонтакте
    • Steam
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1544 : 31 Май 2013, 19:39:52 »
Футурама.

Оффлайн k4ktuZ

  • Пользователь
  • Сообщений: 203
  • Пол: Мужской
  • Всегда чего то ищу.
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1545 : 31 Май 2013, 19:46:24 »
и когда что изменится? зачем выходить новым билдам эмуля? мля где тот чувак который хотел поставить ос икса на виртуальную машину? блин просто портируйте серию DoA на пк и всё, начиная с третьей, такая дебильная и простая консоль а заэмулить не могут (((( :'( :( :( :(

Оффлайн SEGADreamFAN

  • Пользователь
  • Сообщений: 3892
  • Пол: Мужской
  • Lets PLAY!
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1546 : 31 Май 2013, 19:51:01 »
Майкрософт у себя на XBOX360 вполне себе успешно эмулирует (если не ошибаюсь).

Оффлайн k4ktuZ

  • Пользователь
  • Сообщений: 203
  • Пол: Мужской
  • Всегда чего то ищу.
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1547 : 31 Май 2013, 19:52:35 »
нет, там что то другое кажется, там не все игры работают и ис покупать чтоли надо

Оффлайн Kiruha2012

  • Пользователь
  • Сообщений: 635
  • Пол: Мужской
  • J-gamer
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1548 : 31 Май 2013, 20:05:11 »
Майкрософт у себя на XBOX360 вполне себе успешно эмулирует (если не ошибаюсь).
И то, даже там далеко не все игры запускаются.

Оффлайн Unit2k

  • Пользователь
  • Сообщений: 9089
  • Пол: Мужской
    • ВКонтакте
    • Steam
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1549 : 31 Май 2013, 20:07:24 »
на х360 норм все эмулится. Конечно не идеально, но совместимость не плохая на взломанном эмуле. Даже Дино Кризис 3 работает, со-скрипом правда.

Оффлайн Inspector_Popabol

  • Пользователь
  • Сообщений: 1946
  • Пол: Женский
  • ▲Олдфаг, гроза рачья ▲▲
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1550 : 31 Май 2013, 20:35:34 »
на х360 норм все эмулится. Конечно не идеально, но совместимость не плохая на взломанном эмуле. Даже Дино Кризис 3 работает, со-скрипом правда.
На европейках Panzer Dragon не робит — позор. Исправить один фриз поди дело двух минут, но майки не захотели.

Оффлайн gandalfthewhite

  • Пользователь
  • Сообщений: 1669
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1551 : 27 Июль 2013, 19:48:10 »
У меня на последних версиях вылетает ошибка msvcr100(пробовал дашборд 5849 запустить). Саму библиотеку качал, скидывал в папку эмулятора, вообще VCredist стоят 2005, 2008, 2010, 2012. Система XP SP3.

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1552 : 27 Июль 2013, 20:51:10 »
Цитата: Kiruha2012
И вообще, зачем эмулировать консоль без игр эксклюзивов?

Эксклюзивы  там есть + мультиплатформа того времени лучше всего выглядела обычно именно на x-box.
Добавлено позже:
Цитата: k4ktuZ
блин просто портируйте серию DoA на пк и всё, начиная с третьей

Да блин, чем оно люди ваще думают, ану портировать мне быстро %(%, DOA на ПК мне запили!

Оффлайн gandalfthewhite

  • Пользователь
  • Сообщений: 1669
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1553 : 28 Июль 2013, 13:27:12 »
У меня на последних версиях вылетает ошибка msvcr100(пробовал дашборд 5849 запустить). Саму библиотеку качал, скидывал в папку эмулятора, вообще VCredist стоят 2005, 2008, 2010, 2012. Система XP SP3.
Проблему решил. Просто переставил visual с++ 2010 redist.
Блин, эмулятор имеет прямой доступ к оборудованию на компе. Сегодня запустил в эмуляторе восстановление даша, он попросил меня нажать любую кнопку и он мне ушатал разделы на винте. Повезло, что акронис их сразу восстановил без потерь.

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1554 : 28 Июль 2013, 13:39:44 »
Цитата: gandalfthewhite
Блин, эмулятор имеет прямой доступ к оборудованию на компе.

Он просто транслирует вызовы в системные, если игра хочет сохраниться в файл 123.save в корень диска то он это и выполняет, если игра хочет сохранить FFFFFF в начало таблицы разеделов то он это и делает.

Оффлайн gandalfthewhite

  • Пользователь
  • Сообщений: 1669
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1555 : 28 Июль 2013, 13:45:17 »

Он просто транслирует вызовы в системные, если игра хочет сохраниться в файл 123.save в корень диска то он это и выполняет, если игра хочет сохранить FFFFFF в начало таблицы разеделов то он это и делает.
Надо сказать - это опасно.

Оффлайн gepar

  • Пользователь
  • Сообщений: 10150
  • Пол: Мужской
  • ▂ ▃ ▄ ▅ ▆ ▇ █
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1556 : 28 Июль 2013, 14:07:27 »
gandalfthewhite, ну эмулятор не проверяет куда хотят писать и что именно, ему дали лопату и сказали где копать вот он так и сделал, чего тут ещё добавить. Думай перед тем как что-то делать, у меня друг в 8ке которую я ему установил нажал пункт "восстановление ос с удалением данных" просто потому что ему было интересно что будет, винда честно написала в подсказке что всё ПО кроме стандартного она удалит и что эту операцию отменить нельзя, он нажал ок - винда удалила. После этого всего он позвонил и пожаловался что тупая винда снесла все программы и он не может их восстановить назад посему попросил установить их ему снова, ну и кто спрашиваеться виноват ? :) Вот и с тем что ты решил восстановить даш та же история, ты ведь знал что должно произойти.
Добавлено позже:
А вообще что в нём не делай так всё равно проку с эмулятора мало, не вижу смысла тыкать в него палочкой чтобы проверить что он умеет.

Оффлайн gandalfthewhite

  • Пользователь
  • Сообщений: 1669
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1557 : 28 Июль 2013, 14:17:33 »
gandalfthewhite, ну эмулятор не проверяет куда хотят писать и что именно, ему дали лопату и сказали где копать вот он так и сделал, чего тут ещё добавить. Думай перед тем как что-то делать, у меня друг в 8ке которую я ему установил нажал пункт "восстановление ос с удалением данных" просто потому что ему было интересно что будет, винда честно написала в подсказке что всё ПО кроме стандартного она удалит и что эту операцию отменить нельзя, он нажал ок - винда удалила. После этого всего он позвонил и пожаловался что тупая винда снесла все программы и он не может их восстановить назад посему попросил установить их ему снова, ну и кто спрашиваеться виноват ? :) Вот и с тем что ты решил восстановить даш та же история, ты ведь знал что должно произойти.
Добавлено позже:
А вообще что в нём не делай так всё равно проку с эмулятора мало, не вижу смысла тыкать в него палочкой чтобы проверить что он умеет.
Дело в том, что он в папке application data создал свою папку. В ней что то типа воссозданной структуры винта, на каждую папку-свой раздел. Поэтому подумал что он если надо создаст там папку под диск С.

Оффлайн Old_Shang_Tsung

  • Пользователь
  • Сообщений: 287
  • Пол: Мужской
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1558 : 24 Август 2013, 23:56:10 »
хм, а Dino Crisis-3 пашет на каком-нибудь из эмулей бокса?

Оффлайн s1nka

  • Пользователь
  • Сообщений: 1571
  • Пол: Мужской
    • Steam
    • Просмотр профиля
Re: Эмуляция XBOX
« Ответ #1559 : 25 Август 2013, 09:58:13 »
Old_Shang_Tsung, нет.