Автор Тема: С чего начать делать эмулятор под Android OC (И вообще эмуляторы в целом)  (Прочитано 3461 раз)

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

Оффлайн Adams

  • Пользователь
  • Сообщений: 3
    • Просмотр профиля
Дайте наводку, с чего начать. Какую литературу,статьи и прочее

Оффлайн Dyons

  • Пользователь
  • Сообщений: 7137
  • инфернальный колдун
    • Youtube
    • Просмотр профиля
Эмулятор чего?

Оффлайн Adams

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

Оффлайн Skay

  • Пользователь
  • Сообщений: 4115
  • Пол: Мужской
    • Просмотр профиля
общий принцип https://habrahabr.ru/post/146496/
а так читаешь доки и пишешь  :neznayu:

Оффлайн Adams

  • Пользователь
  • Сообщений: 3
    • Просмотр профиля
Надеюсь это не тупой вопрос

А на каком языке пишется интерфейс?
Например: я хотел сделать интерфейс как у аркадных автоматов.

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
попробуй сначала готовые исходники других эмуляторов взять, собрать и запустить. там заодно и разберёшься, на каком языке они сделаны.

Оффлайн Skay

  • Пользователь
  • Сообщений: 4115
  • Пол: Мужской
    • Просмотр профиля
Adams, кто во что умеет, тот на том и пишет)

Оффлайн Talking_Sword

  • Пользователь
  • Сообщений: 899
  • Happy Games Only!
    • Просмотр профиля
2Adams: А зачем вам писать свой эмулятор? Существующие чем-то не устраивают?
Эмулятор ретро консолей
Это слишком растяжимое понятие. Какая конкретно приставка? Только не говорите, что вы хотите написать мультисистемный эмулятор.

Оффлайн gotten

  • Пользователь
  • Сообщений: 4748
  • Пол: Мужской
    • Просмотр профиля
Если такой вопрос возник, надо с hello world начинать, или не начинать вовсе  :D

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2511
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
о! эксперты в этой теме и дофига еще :) подскажите где косяк!
http://www.emu-land.net/forum/index.php?action=dlattach;topic=78554.0;attach=185238
итак, есть библиотека opn.dll, которая типа эмулирует YM2612 - шлю значения регистров, а она рожает звук как на приставке. проблема в ней в том, что якобы она поддерживает запуск более одного ядра этого чипа, но по факту вместе с увеличением числа ядер увеличивает и частоту этого самого чипа. звук в результате проигрывает гораздо выше по тону, чем оригинал. и чем больше ядер - тем писклявее становится звук. в архиве два ехе файла, которые импортируют эту библиотеку и при проигрывании в одном - будет понятно как должен звучать оригинал, во втором как он звучит при активации второго ядра. где ошибка в коде? Visual Studio 6.0 (но это не точно)

увеличение числа ядер нужно для увеличения возможных каналов для проигрывания. в оригинале оно играет 6 каналов. хочу использовать 2 или 3 ядра, чтобы можно было проигрывать мелодию в 12 или 18 каналов. просто сейчас в моем демонстрационном проигрывании GEMS треков проигрываются только первые 6 дорожек, остальные игнорируются. вот хотелось бы недостающие проигрывать на втором ядре.

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

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2259
  • Пол: Мужской
    • Просмотр профиля
подскажите где косяк!
Так это дебажить надо. Человеку со стороны вообще сложно понять что там происходит, т.к. много математики и параметров. Надо в тему погружаться, пройтись по стеку вызовов, посмотреть на что влияет число ядер. Боюсь, кроме тебя это никто не сделает. :neznayu:

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2511
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
так чо его дебажить, если в архиве исходник дллки? тут нужен специалист по эмуляторам. я вобще не представляю как там из цифер звук получается :)

Оффлайн Skay

  • Пользователь
  • Сообщений: 4115
  • Пол: Мужской
    • Просмотр профиля
SeregaZ,
увеличение числа ядер нужно для увеличения возможных каналов для проигрывания. в оригинале оно играет 6 каналов.
так вот отсюда и дэбаж. Сначала пройдись в варианте как обычно, посмотри как оно работает где какие коэфициенты. А потом уже с этими параметрами, смотри на что они влияют.  :neznayu:

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2511
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
иди туда, незнай куда и ищи то знай чего.  :'(

без понятия как дебажить, не говоря уже о том что дебажить. была идея в строчке:
#define YM2612_CLOCK   7670454
влепить 3835227. то есть если сделать эту частоту поменьше, то потом когда 2 ядра задействованы - той ошибкой частота выправится до нормальной частоты. и в итоге собирает то вроде нормально, но потом при импорте в ехе - все вылетает в трубу. да и сама студия порой берет и выпадает в бесконечную сборку библиотеки. ничего не происходит и ничего не дает нажать. и как вы этим тупым языком программирования пользуетесь - не понимаю :) толи дело в моем все просто - ежели зависло - нажал прибить и прибился процесс. тут-же альт ктрл дел, и убивать только вручную и причем всю студию сразу. потом по новой запускай... капец.

Оффлайн krocki

  • Пользователь
  • Сообщений: 1250
  • Пол: Мужской
  • ...:::Hacking_Craft:::...
    • Просмотр профиля
Дебажить уж больно геморно будет, нужно качать сырцы(src) эмулев и анализировать что да как там и переписывать код под андройду ну или java, что вроде того.
Парой даже почти готовый сырец непросто от компилить, нужно что нибудь да править в коде.
Как ты писал в первом посте, лучше сначала почитать статейки, иначе много времени потеряешь...типа методом тычка. ;)