вот было бы очень не плохо что б ты зашел и глянул сам ;) может чего походу и подправили...Цитата:
Сообщение от Sinus
Вид для печати
вот было бы очень не плохо что б ты зашел и глянул сам ;) может чего походу и подправили...Цитата:
Сообщение от Sinus
да там дофига всего ;) если есть виндофс под руками, посмотри там. а то я перешёл на 64bit архитектуру, так винда работать перестала :mad:Цитата:
Сообщение от boo_boo
а линуха ничё так, сразу поднялась :p
наверное наваяю ещё и отладчик простенький, чтоб баги было лучше рассматривать (в ядре z80 конечно ;) )
огосподи... лана, попробую в emuzwin под qemu потыркать ;) ... подробности давай -- какая часть какой демы?Цитата:
Сообщение от Sinus
я ж писал- дема Rage от X-Trade.
там есть 3 решающих мультиколорных части, в самом конце.
типа идёт там демка, потом часть когда на экране картинка мультиколерная крутится, а внизу на бордюре скролл. вот короче когда там свинья будет крутиться, будет чёрный экран затем красный бордер и...
1) экран типа становится круглым. извраты на бордюре
2) экран типа ... увеличивается (тож на бордюре)
3) от центра экрана к краям идут чветные лучи (и на бордюре конечно тоже ^_~)
так вот, как ни крути тайминги, работает либо (1) либо (2) и (3).
давай я сегодня вечером тестовый релиз соберу и со снапшотом в нужном месте выложу. сам и посмотришь.
давай. а в анриле эта штука работает как надо, угу? а в фузе?Цитата:
Сообщение от Sinus
в анриле работает.
в фусе фигово, но хоть одинаково фигово во всех частях.
так что у нас глюк ;)
или это я что-то не могу догнать, или тайминги глючат.
в ощем посмотришь, разберёшься.
Итак, новая версия.
Описание изменений в файле readme.txt
зы. там ещё не написано, что можно параметром коммандной строки дать ему образ диска или хобету или снапшот (z80) и эмуль его загрузит
F9 - Load snapshot
F10 - Save snapshot
F11 - Max speed
F12 - Reset
F5-F8 - For internal use
boo-boo
а ещё там лежит snap.z80
загрузишь его, посмотришь на эффект (1)
далее когда будет эффект (2) и порвёт синхру, нажми F2.
в ощем F1- INT для эффекта (1)
F2 - для (2) и (3)
разница между ними ровно 80 тактов ;)
я ещё поколупаю, но может ты быстрее догадаешься (и к тому же у мну сейчас на работе прогруз нехилый)
ты либы забыл в тарболл положить ,)Цитата:
Сообщение от Sinus
z80ex ИМХО не обязательно класть, можно ссыль дать в ридмях, и пусть народ сам ставит, а вот вг-шку взять особо неоткуда. и ромы -- их можно отдельным архивом.
а еще написать в ридмях, что конфиг надо в ~/.zemu класть.
это я чисто для тебя выложил.
и кста z80ex я тоже буду прикладывать, ибо на сорсфорже может чё-нить изменится, а та версия которую я приложу 100% работает.
ты другое скажи, глюк видел?
зы. и кста, так как теперь абсолютно всё конфигурится из конфига, может тогда не в ~/.zemu/config.xml класть, а просто ~/.zemu_config.xml ? нэ ?
хотя с другой стороны юзер может хранить в директории ромы и диск-имаги.
как же, знатный глюк :) прошерстю тайминги сегодня-завтра. насчет конфига ИМХО директория лучше, тк файла все же два -- сам конфиг и кнопки.Цитата:
Сообщение от Sinus
ок.Цитата:
Сообщение от boo_boo
путь к keys.config тоже в конфиге задаётся :pЦитата:
насчет конфига ИМХО директория лучше, тк файла все же два -- сам конфиг и кнопки.
но я тоже тут подумал что директория лучше будет.
мдя. в доке, с которой брал тайминги, глюк оказался -- все инстхрюкции с половинками IX/IY там по 9 тактов %)
вот исправленная либа, попробуй с ней.
уря! оно заработало!
boo_boo:
короче всё правильно, за исключением того что LD regL,nn и LD regH,nn по 11 тактов, а не по 8 ;)
вощем в новой версии довольно дофига всего добавилось.
теперь им даже можно пользоваться для просмотра демок ^_~
постарался всё описать в ридми.
зы. вроде бы несмотря на навороты, ускорил в 2 раза. ... или это меня плющит? ...
хе-хе, фенкс, я аутист, тормоз и search-n-replace addict %)Цитата:
Сообщение от Sinus
а то, что у шифта t=0 это так и задумано.
действительно в 2 раза быстрее :)Цитата:
Сообщение от Sinus
селектор файлов оч. милый :)
ЗЫ думаю в следующей версии z80ex добавить дизасм -- плохо без него...
ЗЗЫ а без спикера скушно... всобачить, что ли? ;)
kawaii ^_~Цитата:
Сообщение от boo_boo
ага. я тоже так думаю.Цитата:
ЗЫ думаю в следующей версии z80ex добавить дизасм -- плохо без него...
вот полезность inline asm-a ещё можно обсудить, а дизасм надо добавить (благо делается просто)
наверное стоит.Цитата:
ЗЗЫ а без спикера скушно... всобачить, что ли? ;)
---------------------------------------
сейчас я вижу два трабла:
1) если много звуковых устройств, то как там всякие буферы юзать? как миксить?
2) порты памяти надо чтоб из конфига брались
------------------
если есть что предложить по звуку, предложи.
а я пока займусь доапгрейдживанием файл-селектора и дизасмом (хочу на STS чутка похожим сделать).
насчет портов из конфига -- я над этим думал, и в результате додумался до офигительно универсальной схемы... основанной на вычислении выражений, состоящих из сигналов проца и битовой логики. плюс группы страниц произвольного размера с z-уровнями в менеджере памяти. в принципе вполне реализуемо, и любая модель памяти, включая кэш и атм-овские изыски, на это ложится, но ИМХО перемудрил :)
звук -- или юзать SDL-mixer, или руками, несложно совсем... надо только выловить глюк с опустошением буфера. гляну на досуге...
дизасм -- ага, проще некуда, по тем же таблицам, за пару часов управлюсь.
трабл скорее не в том чтоб миксить, а вот в чем: аюгрик ложится в буфер. бипер тоже ложится в буфер. этот же буфер играется.
или делать 3 буфера (на бипер, аюгрик и тот который играется) = тормоза
или как-то с одним мутить
Предлагаю переименовать тему в "За стеклом 4: Личная переписка Синуса и Бу-Бу о повседневных буднях эмуляторописателей" ;)
если смогёте разобраться, зачем в SNDRENDER есть режим SND_EXTERNAL_BUFFER, то хороший бипер можно сделать в тот же буфер, что AY, тем же движком ;-)Цитата:
Сообщение от Sinus
жестко :)Цитата:
Сообщение от Titus
полдня провозился, пытаясь заставить zemu нормально звучать (без чудовищного лага и спотыкательств). ни фига не вышло -- сначала грешил на лажовый (гранулярность ~10ms) SDL_Delay, потом на глюки в заполнении кольцевого буфера... подозреваю, что главный глюк -- аудиоподсистема SDL с ее муторным колбэком заполнения буфера. возможно, если аудио сделать отдельным потоком, поможет?..
к слову, fuse, который можно собрать с SDL-звуком, лагает поменьше, но в некоторых демках трещит и грузит проц на 100%. причем с драйвером по умолчанию ничего такого не делает.
скажу по секрету, мне SDL сразу не понравился :rolleyes:Цитата:
Сообщение от boo_boo
ну, графические феньки там вполне на уровне. а вот остальное слишком уж заточено под написание игрулек -__-Цитата:
Сообщение от breeze
переделал звук.
разница между более старыми версиями и этой хорошо заметна на приложеном снапшоте.
есть и плохие фишки. оказывается Unreal (by KSA) работало только благодоря глюкам в коде ;) - надо фиксить.
и ещё. так как вчера я приехал с общебеларусской анимки и привёз много вкусненького аниме, новая версия может появится относительно не скоро ;)
ps. если типа звука нет, а в динамиках что-то щёлкает, то типа всё так задумано, скоро пофикшу :cool:
ИМХО звук много лучше не стал: лаг поменьше (но все равно заметный), зато заикается, это на плавных звуках видно (посмотри "бздям" в буте приложенном)... может, SDL-аудио просто надо уметь правильно пользоваться, но, подозреваю, он просто не подходит для эмуляторских нужд -- во всех эмуляторах с хорошим звуком, даже юзающих SDL для графики, звук сделан через нативные интерфейсы. при этом, конечно, портабельность теряется... но если она нужна, можно попробовать portaudio -- он спроектирован с расчетом на музыкальные программы, то есть на нормальную и предсказуемую синхронизацию..
маленький баг: если для диска А в конфиге прописан несуществующий путь, по f3 выбрать файл нельзя.
оффтоп: а что за вкусненькое аниме? :rolleyes:
да ну наф! лаг стал аффигительно поменьше!Цитата:
Сообщение от boo_boo
хм. приду домой- посмотрю.Цитата:
зато заикается, это на плавных звуках видно (посмотри "бздям" в буте приложенном)...
короче фз. у мну ничего нигде не затыкается и не заикается.Цитата:
может, SDL-аудио просто надо уметь правильно пользоваться, но, подозреваю, он просто не подходит для эмуляторских нужд -- во всех эмуляторах с хорошим звуком, даже юзающих SDL для графики, звук сделан через нативные интерфейсы. при этом, конечно, портабельность теряется... но если она нужна, можно попробовать portaudio -- он спроектирован с расчетом на музыкальные программы, то есть на нормальную и предсказуемую синхронизацию..
можно конечно попробовать прямо в /dev/dsp лить. авось поможет.
знаю. даже в ридми написано:Цитата:
маленький баг: если для диска А в конфиге прописан несуществующий путь, по f3 выбрать файл нельзя.
* пофиксить dirwork.cpp, а именно работу функции LevelUp (сейчас там есть малозаметные, но всё же крупные глюки)
дофига всего. надо смотреть, так не вспомню. в обчем дома буду- напишу.Цитата:
оффтоп: а что за вкусненькое аниме? :rolleyes:
стал, но все равно большой. запусти AY-версию batty, и пошпыняй мячик сначала в us или хоть во fuse, а потом в zemu ;)Цитата:
Сообщение от Sinus
посмотрел бут. услышал только левые щелчки (буду разбираться). никаких завываний, заиканий и подвываний... что я не так делаю? ;)
а по поводу большого лага. ну попробую ещё уменьшить.
хотя как по мне (смотреть демки)- так вполне ;)
#ifdef OFFTOPIC
а вот краткий список:
много манги
mindgame
trava
die buster ova 2
sentou yuosei yukikaze ova
ima ai ni yukimasu
kashou no tsuki
noien
to heart
honey & clover
и немного баянов:
bleach
twelve kingdoms
irresponsible capitan tylor ova
#endif
итак, а вот и 0.04
абсолютно ничего нового за исключением звука ;)
протестте плиз!
а то я вот слушал этот бут через SDL, слушал через /dev/dsp, принёс на работу Unreal и слушал там.
не слышу ну никакой разницы (только что когда SDL иногда щелчки какие-то левые бывают)
Tee Hee Hee Hee Hee - su
^_~
(а я пошёл смотреть Pita Ten и ещё 200 гиг анимы... ааа! когда она закончится!!! чтоб за эмуль нормально взяться)
о, клево! теперь если заменить wavplay.cpp на *см аттач*, выходит прям-таки рилтайм, с SDLским недозвуком не сравнить ;)Цитата:
Сообщение от Sinus
Ну что!? почти мегарузл! :eek: Собрал я под FreeBSD бету2 :rolleyes: вещь! намного лучше чем было! однако в некоторых семплах проскакивает поскудное похрипование :oЦитата:
Сообщение от boo_boo
если кому надо могу залить правленную версию под FreeBSD ;) я вообще хочу куррировать енту версию... :rolleyes:
опаньки! половина пути к 0.1 уже пройдена ;)
boo_boo
заменил wavplay.cpp. вроде особо ничего не поменялось ^_~
можешь скинуть какой-нибудь софт где будет заметна разница между SDL-ным звуком и через /dev/dsp ? охота "прочувствовать" мощь нового фикса ;)
breeze
скидывай что ты там патчил.
зы. надо будет потом automake заюзать.
не поменялось, небось, потому, что в дровах для твоей звуковухи по умолчанию небольшие размер/кол-во фрагментов стоят. а у меня без этого лаг был здоровый.
..попытался бипер прикрутить, в тот же буфер, что и AY. прикрутил, вообщем-то, но с фичами -- 1) частота на слух чуть в стороне от нормальной, хз почему (хотя в игрульках и тп ничего не заметно, только если конкретно высоту бипов слушать). 2) SDL-звук с этой хренью не пашет ваапще :) наверно, какая-то мелочь, но у меня голова кругом идет от этих аудио-колбэков :rolleyes: в целом, кривовато звучит, но лучше чем ничего...
заодно еще чуть подправил wawplay -- явно выставляю 4 фрагмента размером во фрейм. у меня сейчас со всей этой дурью звук раздается СРАЗУ при нажатии на клавишу, без ощутимых задержек. (сравнить можно с глюкалкой).
вообщем вот, глянь. бипер я тупо влепил туда же где бордер, по-хорошему наверно его надо в какой-нить... как бишь вы, ООпщики это называете... КЛАСС :rolleyes:
ЗЫ имхо просто мейк проще юзать, чем автомейк )
а, вот еще -- мне в zemu оч не хватает нескольких простейших фишек:
- дописи бута к дискам
- флажка ком-строки для reset trdos при старте эмуля
- записи измененного диска (просто "диск изменен, записать? о-еее!/нафик")
- переключения в/из полного экрана по кнопке.
- пейдждовна в селекторе файлов
мне самому этим всем заняться, или подождать? в смысле, каждая фича в пару строчек кода, подозреваю что если ты все равно планируешь сделать что-то из этого, тебе будет проще самому написать, чем переделывать на свой манер то, что напишу я -- не ООПщик я, ни разу не ООПщик ;)
ЗЫ ой, пагедавн/пагеап появился! :)
послушай музыку типа Savage 1,2,3 или dizzy, и убедишься, что получилось большое гэ. (hint: надо завести 1 экземпляр объекта SNDRENDER чиста для бипера и пару переменных, на сколько байт заполнен буффер AY и на сколько - биперный. их брать из SNDRENDER/SNDCHIP)Цитата:
Сообщение от boo_boo
мда, что гэ, то гэ... а я думал легко отделаться, понадеявшись, что SNDCHIP выдает семплов ровно на фрейм :rolleyes:Цитата:
Сообщение от SMT
оть, прикрутил к zemu спикер правильно, по заветам SMT :)
виндовости из wavplay.cpp выкинуты -- тк он малость поменялся, а протестировать я их не могу.
UPD. блин, опять лажа! минут пятнадцать все играет нормально, а потом начинает трещать -- очевидно, позиция чтения из буфера нагоняет позиции, по которым AY и спикер пишут данные. а какого черта она их нагоняет, когда я начинаю на фрейм раньше этих позиций, и беру ровно по фрейму семплов? и SNDRENDER тоже выдает в среднем фрейм. где-то я туплю -__-
не должно так быть, позиция апдейтится из переменной int64, которая считает сколько всего тактов проиграно от старта. возможно, end_frame для ay и beeper получает разные длины кадраЦитата:
Сообщение от boo_boo
а, вижу в чем косяк, округление вот тут:в каждом кадре надо выводить разное кол-во семплов (+-1), а не одинаковоеКод:frameSamples = ((unsigned long)71680/*frame*/*44100/*sound freq*/) / 3500000 /*Z80 clock*/;