Разработка и ромхакинг > Ромхакинг и программирование
С чего начать делать эмулятор под Android OC (И вообще эмуляторы в целом)
(1/1)
Adams:
Дайте наводку, с чего начать. Какую литературу,статьи и прочее
Надеюсь на адекватные ответы
Dyons:
Эмулятор чего?
Adams:
Эмулятор ретро консолей
Skay:
общий принцип https://habrahabr.ru/post/146496/
а так читаешь доки и пишешь  :neznayu:
Adams:
Надеюсь это не тупой вопрос

А на каком языке пишется интерфейс?
Например: я хотел сделать интерфейс как у аркадных автоматов.
spiiin:
попробуй сначала готовые исходники других эмуляторов взять, собрать и запустить. там заодно и разберёшься, на каком языке они сделаны.
Skay:
Adams, кто во что умеет, тот на том и пишет)
Talking_Sword:
2Adams: А зачем вам писать свой эмулятор? Существующие чем-то не устраивают?
--- Цитата: Adams от 18 Апрель 2018, 11:40:36 ---Эмулятор ретро консолей
--- Конец цитаты ---
Это слишком растяжимое понятие. Какая конкретно приставка? Только не говорите, что вы хотите написать мультисистемный эмулятор.
gotten:
Если такой вопрос возник, надо с hello world начинать, или не начинать вовсе  :D
SeregaZ:
о! эксперты в этой теме и дофига еще :) подскажите где косяк!
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:

--- Цитата: SeregaZ от 18 Апрель 2018, 22:42:23 ---подскажите где косяк!
--- Конец цитаты ---
Так это дебажить надо. Человеку со стороны вообще сложно понять что там происходит, т.к. много математики и параметров. Надо в тему погружаться, пройтись по стеку вызовов, посмотреть на что влияет число ядер. Боюсь, кроме тебя это никто не сделает. :neznayu:
SeregaZ:
так чо его дебажить, если в архиве исходник дллки? тут нужен специалист по эмуляторам. я вобще не представляю как там из цифер звук получается :)
Skay:
SeregaZ,
--- Цитата: SeregaZ от 18 Апрель 2018, 22:42:23 ---увеличение числа ядер нужно для увеличения возможных каналов для проигрывания. в оригинале оно играет 6 каналов.
--- Конец цитаты ---
так вот отсюда и дэбаж. Сначала пройдись в варианте как обычно, посмотри как оно работает где какие коэфициенты. А потом уже с этими параметрами, смотри на что они влияют.  :neznayu:
SeregaZ:
иди туда, незнай куда и ищи то знай чего.  :'(

без понятия как дебажить, не говоря уже о том что дебажить. была идея в строчке:
#define YM2612_CLOCK   7670454
влепить 3835227. то есть если сделать эту частоту поменьше, то потом когда 2 ядра задействованы - той ошибкой частота выправится до нормальной частоты. и в итоге собирает то вроде нормально, но потом при импорте в ехе - все вылетает в трубу. да и сама студия порой берет и выпадает в бесконечную сборку библиотеки. ничего не происходит и ничего не дает нажать. и как вы этим тупым языком программирования пользуетесь - не понимаю :) толи дело в моем все просто - ежели зависло - нажал прибить и прибился процесс. тут-же альт ктрл дел, и убивать только вручную и причем всю студию сразу. потом по новой запускай... капец.
krocki:
Дебажить уж больно геморно будет, нужно качать сырцы(src) эмулев и анализировать что да как там и переписывать код под андройду ну или java, что вроде того.
Парой даже почти готовый сырец непросто от компилить, нужно что нибудь да править в коде.
Как ты писал в первом посте, лучше сначала почитать статейки, иначе много времени потеряешь...типа методом тычка. ;)
Навигация
Главная страница сообщений

Перейти к полной версии