| Разработка и ромхакинг > Ромхакинг и программирование |
| С чего начать делать эмулятор под 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, что вроде того. Парой даже почти готовый сырец непросто от компилить, нужно что нибудь да править в коде. Как ты писал в первом посте, лучше сначала почитать статейки, иначе много времени потеряешь...типа методом тычка. ;) |
| Навигация |
| Главная страница сообщений |