ZXNet эхоконференция «zxnet.pc»


тема: ZEmu



от: Slavik Tretiak
кому: All
дата: 16 Feb 2006
Hello, boo_boo

boo> оригинально %) не, альтернативное мироощущение -- это круто, но
boo> поддержку инсталляции по стандартам можно ведь сделать, одно другому
boo> не мешает? я сам могу сделать, если тебе претит ;)

претит ;) если хош - сделай.
помещу в основную ветку разработки ;)

> отмазка про mc не катит -- все равно переться в каталог с эмулем;

фз. я неудобств не замечал (или я просто привык?)

> если каждую программу так запускать, то и времени больше ни на что не
> останется... разве что юзать всякие маздайные КДЕ с их ярлычками и
> прочую гуйню.

ой... гуй... на суй ;)
сам юзаю IceWM - рулез фарева.

а вообще выбор диска будет в самом эмуле, так что не надо будет конфиги
править.

> или понаписать идиотических шелл-скриптов для консоли/mc. так или
> иначе геморрой, и командная строка в пролете, это не гут! :(

фанат коммандной строки?
фз. я могу только в коммандире каком-нить, ибо есть много всякого файла
копировать, то шелл сосёт ;)

> ни целей, ни зависимостей, ни простоты настройки билда.. когда эмуль
> разрастется, это дело боком станет... впрочем, мейкфайлы написать
> никогда не поздно :rolleyes:

а тут цель одна- получить эмуль.
и настраивать нечего.
вот так :p

если припрёт- напишу.

от: Станислав Ломакин
кому: All
дата: 16 Feb 2006
Hello, SMT

SMT> в либе для z80 объявление unsigned типов для MSVC должно быть как
SMT> unsinged __int16, unsigned __int8, unsigned __int32. слово signed
SMT> тоже есть, оно обычно не даёт никакого эффекта, кроме signed char -
SMT> есть опция комстроки, которая все просто char делает unsigned

пасиб, пофиксил у себя :)

от: Станислав Ломакин
кому: All
дата: 16 Feb 2006
Hello, Sinus

Sin> а тут цель одна- получить эмуль.
Sin> и настраивать нечего.
Sin> вот так :p

ыыыы, не, я не понимаю как можно жить как минимум без make clean и make dist,
неужто все руками или скриптами? %)

от: Станислав Ломакин
кому: All
дата: 16 Feb 2006
Hello, Sinus

Sin> короче вот оно.

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

ЗЫ а чего у тебя билдится все так мрачно? compile.sh какие-то, файлы от либ
раскиданы в 2х местах, и все cpp инклюдятся в один главный? O__o

от: Станислав Ломакин
кому: All
дата: 16 Feb 2006
Hello, Sinus

Sin> претит ;) если хош - сделай.
Sin> помещу в основную ветку разработки ;)

оке, займусь прямщаз

Sin> фз. я неудобств не замечал (или я просто привык?)
Sin>

твоя юность часом не в досе прошла? если да, то ничего странного, там
привыкаешь чесать левой пяткой правую подмышку ;)

Sin> фанат коммандной строки?
Sin> фз. я могу только в коммандире каком-нить, ибо есть много всякого
Sin> файла копировать, то шелл сосёт ;)
Sin>

не, копирую я тоже в mc. а на большую часть остального - Ctrl-o ;) а вообще
непонятно, как ты запускаешь эмуль+диск? (предположим, что ком. строка есть) --
каталог с эмулем в одну панель, каталог с файлом в другую, и лепишь строку
запуска с полным путем к файлу? или все же мутишь шелл-скрипт? я с глюкалкой в
былые времена скриптом справлялся, но в итоге решил, что проще влезть в сорцы,
и сделать нормально

от: Станислав Ломакин
кому: All
дата: 16 Feb 2006
Hello, Sinus

Sin> терпеть ненавижу стандартное юниксовое расположение файлов.
Sin> я даже сам линукс перекомпиливал для моей великой цели: каждый т.н.
Sin> пакет в своей папке. типа /opt/x11 , /opt/coreutils , /opt/gcc
Sin> вот. и я считаю что это правильно. а чтоб не делать "./zemu" могу
Sin> посоветовать юзать миднайт командир

оригинально %) не, альтернативное мироощущение -- это круто, но поддержку
инсталляции по стандартам можно ведь сделать, одно другому не мешает? я сам
могу сделать, если тебе претит ;) отмазка про mc не катит -- все равно
переться в каталог с эмулем; если каждую программу так запускать, то и времени
больше ни на что не останется... разве что юзать всякие маздайные КДЕ с их
ярлычками и прочую гуйню.
или понаписать идиотических шелл-скриптов для консоли/mc. так или иначе
геморрой, и командная строка в пролете, это не гут! :(

Sin> потому что compile.sh мне понятней чем makefile ;)
Sin>

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

от: Slavik Tretiak
кому: All
дата: 16 Feb 2006
Hello, Sinus

#ifdef OFFTOPIC

кста давно хотел спросить, откуда аватарка?
так нашёл где или из анимехи (какой хотелось бы знать?) выдрал?

#endif

от: Slavik Tretiak
кому: All
дата: 16 Feb 2006
Hello, boo_boo

boo> маньячество :)
boo> .. вот приделал инсталляшку, тяп-ляп, ну да ты отредактируешь, как
boo> больше нравится ;)

ну да. есть пару идей. сейчас пойду домой, буду доделывать.

> а) конфиги сперва ищутся в ~/.zemu/ (ибо каждый пользователь системы
> ИМХО имеет право на личный конфиг), после -- в текущей директории.
>

согласен.

> бе) если вместо compile.sh запустить от рута суперинтеллектуальный
> скрипт build_and_install.sh, то ромы и бинарник будут скопированы
> после компиляции в "подобающее место"(тм), и искаться ромы будут там
> же.
>

только лучше путь к ромам всё же в каком-нибудь файле хранить.
бинарь должен быть максимально независимым от расположения файлов и максимально
конфигурабельным.

> места своего вмешательства я пометил коментами со словом boo-boo.

так как чувствую ещё пару недель (пока не доделаем или пока не заколебёт)
работа предстоит плотная, давай так:

я - [rst]
ты - [boo]

т.е. в квадратных скобочках, а то у тя то с минусом, то через подчёркивание,
поиском плохо искать ;)

зы. в новом билде так же вставлю обновлённый зетник и пофикшеный sndrender (там
вроде что-то не обнулялось)

и если успею, то на корню переделаю ULA. ибо так как сейчас очень тормозно.
можно сделать в раз 7 быстрее. и нужно ^_~

от: Slavik Tretiak
кому: All
дата: 16 Feb 2006
Hello, boo_boo

boo> твоя юность часом не в досе прошла? если да, то ничего странного, там
boo> привыкаешь чесать левой пяткой правую подмышку ;)
boo>

только есть TR-DOS можно назвать досом ;)
пэцэт у мну совсем недавно появился. (правдя есть ещё амига, но это святое ;) )

> не, копирую я тоже в mc. а на большую часть остального - Ctrl-o ;) а
> вообще непонятно, как ты запускаешь эмуль+диск? (предположим, что
> ком. строка есть) -- каталог с эмулем в одну панель, каталог с файлом
> в другую, и лепишь строку запуска с полным путем к файлу?

копирую файл в панельку с эмулём, смотрю, потом стираю.
или если совсем что-то часто юзаю, то пропишу в ext-файл в mc.

от: Slavik Tretiak
кому: All
дата: 16 Feb 2006
Hello, boo_boo

boo> ыыыы, не, я не понимаю как можно жить как минимум без make clean и
boo> make dist, неужто все руками или скриптами? %)

а при компиле скриптом не создаётся левых *.o и прочей фигни.
по этому make clean наф не нужен ^_~
а make dist.. я сам запакую в tar.gz

от: Станислав Ломакин
кому: All
дата: 16 Feb 2006
Hello, Sinus

Sin> а при компиле скриптом не создаётся левых *.o и прочей фигни.
Sin> по этому make clean наф не нужен ^_~
Sin> ачтотакое make dist ?

ну да, фигни не создается, если все в один файл упихать ;)
make dist -- сделать дистрибутив, ну типа создать tar.gz с именем (и соотв.
подкаталогом), содержащим версию, и всем что нужно внутри.

например в z80ex у мя 4 таргета -- shared, static, clean и dist.

не, конечно ручная работа это крутизна и ежедневный подвиг, если тебя не
ломает, то все ок ;)

от: Станислав Ломакин
кому: All
дата: 16 Feb 2006
Hello, Sinus

Sin> копирую файл в панельку с эмулём, смотрю, потом стираю.
Sin> или если совсем что-то часто юзаю, то пропишу в ext-файл в mc.

маньячество :)

.. вот приделал инсталляшку, тяп-ляп, ну да ты отредактируешь, как больше
нравится ;)

а) конфиги сперва ищутся в ~/.zemu/ (ибо каждый пользователь системы ИМХО имеет
право на личный конфиг), после -- в текущей директории.
бе) если вместо compile.sh запустить от рута суперинтеллектуальный скрипт
build_and_install.sh, то ромы и бинарник будут скопированы после компиляции в
"подобающее место"(тм), и искаться ромы будут там же.

места своего вмешательства я пометил коментами со словом boo-boo.

Файл: zemu.zip http://zx.pk.ru/attachment.php?attachmentid=2611

от: Станислав Ломакин
кому: All
дата: 16 Feb 2006
Hello, Sinus

Sin> кста давно хотел спросить, откуда аватарка?
Sin> так нашёл где или из анимехи (какой хотелось бы знать?) выдрал?

из "pita ten", розово-мармеладное такое каваище :)

от: Станислав Ломакин
кому: All
дата: 16 Feb 2006
Hello, Sinus

Sin> только лучше путь к ромам всё же в каком-нибудь файле хранить.
Sin> бинарь должен быть максимально независимым от расположения файлов и
Sin> максимально конфигурабельным.

вообщем да, в конфиг всобачить -- милое дело.

Sin> так как чувствую ещё пару недель (пока не доделаем или пока не
Sin> заколебёт) работа предстоит плотная, давай так:
Sin>
Sin> я - [rst]
Sin> ты - [boo]
Sin>

ок

от: Hиколай Истомин
кому: All
дата: 17 Feb 2006
Hello, boo_boo

offtop on

кстати интересно, почему среди спектрумистов столько анимешников? :rolleyes:

offtop off

от: Slavik Tretiak
кому: All
дата: 17 Feb 2006
Hello, Электрик

#idef OFFTOPIC

Электрик: а фиг его знает.
но давай не засорять сильно тему. если хош пообсуждать аниме- добро пожаловать
в личку.

#endif

boo_boo: новую бету выложить не успел (засмотрелся Genshiken-вещь для отаку),
но вот что изменилось:

все пути читаются из конфига
изменилась структура файла keys.config, типа:

pckey1 pckey2 ... pckeyx = zxkey1 zxkey2 ... zxkeyx

то есть можно допустим чтоб ";" (Ж) было точка с запятой, а если с шифтом ":" -
то будет двоеточие. рулязь ;)

пока всё. в понедельник подставлю новую зетку и пофикшеный аюгрик и если успею,
то заоптимаюзю ULA.

ыщё сделаю файл-бровсер, чтоб имаджи подгружать и записывать.
и ещё 512кб хочу ^_~

тогда будет щасце и можно будет засесть на пару дней за правильную и
конфигуримую улу.

от: Slavik Tretiak
кому: All
дата: 17 Feb 2006
Hello, boo_boo

эээ.. в смысле "макс скорость вынести в конфиг" - это изменить кнопарь что-ли
или коеффициент максимальности?
если коефф. - то никак. оно иманно max, а не турбо.
а кнопари так конечно, сам хочу (я привык к numlock как в анриле ;) )

от: Станислав Ломакин
кому: All
дата: 17 Feb 2006
Hello, Sinus

Sin> а кнопари так конечно, сам хочу (я привык к numlock как в анриле ;) )

ну да, как в анриле :)

от: Станислав Ломакин
кому: All
дата: 17 Feb 2006
Hello, Sinus

Sin> изменилась структура файла keys.config, типа:
Sin>
Sin> pckey1 pckey2 ... pckeyx = zxkey1 zxkey2 ... zxkeyx
Sin>

рулезЪ )
а я думаю прикрутить загрузку/запись снепшотов... оно мне надо -- зетник
тестировать. да, а можешь максимальную скорость вынести в конфиг а еще, хорошо
бы, на какую-нибудь кнопку?

от: Станислав Ломакин
кому: All
дата: 18 Feb 2006
Hello, boo_boo

написал вот загрузчик z80 снапшотов. должон грузить файлы всех "стандартных"
версий (те 16k, 48k и 128k версий 1,2,3)

ЗЫ. а ты инфу по уле откуда брал?

Файл: snap_z80.cpp.zip http://zx.pk.ru/attachment.php?attachmentid=2617

от: Станислав Ломакин
кому: All
дата: 18 Feb 2006
Hello, breeze

2breeze: а что, интересно, переделывать пришлось? вроде и компиляторы, и SDL на
фре и на линухе одни и те же...

2Sinus: подправил грузилку z80 кое-где...

Файл: snap_z80.zip http://zx.pk.ru/attachment.php?attachmentid=2618

от: Oleg Golenkoff
кому: All
дата: 18 Feb 2006
Hello, boo_boo

boo> 2breeze: а что, интересно, переделывать пришлось?

сорцы WG'шки и AY'ка пришлось собирать gmake - обычный make сразу в гудок
послал, при сборке main'а нехватала кое-каких либ в include и так мелочи в
систаксисе!

от: Slavik Tretiak
кому: All
дата: 20 Feb 2006
Hello, Sinus

breeze: так ты это, всё что исправлял для компайла под бздой, выложи.
включу в ветку.

> однако! с умуляциаей траблы сбивается переодически синхронизация то
> у AY, то у видео

эээ... в смысле? звук прерывается или что?
а с видео оно вообще не может никакую синхру порвать. чисто принципиально.

от: Slavik Tretiak
кому: All
дата: 20 Feb 2006
Hello, breeze

ууу... сцука нах!!! убил пол дня фикся мультиколер в Rage.
так до конца и не пофиксил.

в эпилохе.
или нормально работает та часть где экран как бы круглым становится (на борюре)
или все остальные (прямоуголюник увел. до размера экрана на бордюре и мега
часть с радиальными полосками).

такое ощущение что в части в "круглым скрином" добавляются тактов 80 где-то.
boo_boo, перепроверь плиз растактовки. может где описался?

самое абынное что даже в грёбанном фусе всё работает.
я ещё сегодня потуплю.

-+--

из хорошего: запись/загрузка *.z80 (пока только snap.z80), коммандная строка.

от: Станислав Ломакин
кому: All
дата: 20 Feb 2006
Hello, Sinus

Sin> такое ощущение что в части в "круглым скрином" добавляются тактов 80
Sin> где-то.
Sin> boo_boo, перепроверь плиз растактовки. может где описался?

все может быть... а какие опкоды проверять, как там переброска/задержки
сделаны?

от: Slavik Tretiak
кому: All
дата: 21 Feb 2006
Hello, boo_boo

boo> все может быть... а какие опкоды проверять, как там
boo> переброска/задержки сделаны?

да там дофига всего ;) если есть виндофс под руками, посмотри там. а то я
перешёл на 64bit архитектуру, так винда работать перестала :mad:

а линуха ничё так, сразу поднялась :p

наверное наваяю ещё и отладчик простенький, чтоб баги было лучше рассматривать
(в ядре z80 конечно ;) )

от: Станислав Ломакин
кому: All
дата: 21 Feb 2006
Hello, Sinus

Sin> да там дофига всего ;) если есть виндофс под руками, посмотри там.

огосподи... лана, попробую в emuzwin под qemu потыркать ;) ... подробности
давай -- какая часть какой демы?

от: Slavik Tretiak
кому: All
дата: 21 Feb 2006
Hello, boo_boo

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

1) экран типа становится круглым. извраты на бордюре
2) экран типа ... увеличивается (тож на бордюре)
3) от центра экрана к краям идут чветные лучи (и на бордюре конечно тоже ^_~)

так вот, как ни крути тайминги, работает либо (1) либо (2) и (3).

давай я сегодня вечером тестовый релиз соберу и со снапшотом в нужном месте
выложу. сам и посмотришь.

от: Slavik Tretiak
кому: All
дата: 21 Feb 2006
Hello, boo_boo

в анриле работает.
в фусе фигово, но хоть одинаково фигово во всех частях.

так что у нас глюк ;)
или это я что-то не могу догнать, или тайминги глючат.
в ощем посмотришь, разберёшься.

от: Станислав Ломакин
кому: All
дата: 21 Feb 2006
Hello, Sinus

Sin> давай я сегодня вечером тестовый релиз соберу и со снапшотом в нужном
Sin> месте выложу. сам и посмотришь.

давай. а в анриле эта штука работает как надо, угу? а в фузе?

от: Slavik Tretiak
кому: All
дата: 22 Feb 2006
Hello, boo_boo

это я чисто для тебя выложил.

и кста z80ex я тоже буду прикладывать, ибо на сорсфорже может чё-нить
изменится, а та версия которую я приложу 100% работает.

ты другое скажи, глюк видел?

зы. и кста, так как теперь абсолютно всё конфигурится из конфига, может тогда
не в ~/.zemu/config.xml класть, а просто ~/.zemu_config.xml ? нэ ?

хотя с другой стороны юзер может хранить в директории ромы и диск-имаги.

от: Станислав Ломакин
кому: All
дата: 22 Feb 2006
Hello, Sinus

Sin> Итак, новая версия.

ты либы забыл в тарболл положить ,)
z80ex ИМХО не обязательно класть, можно ссыль дать в ридмях, и пусть народ сам
ставит, а вот вг-шку взять особо неоткуда. и ромы -- их можно отдельным
архивом.
а еще написать в ридмях, что конфиг надо в ~/.zemu класть.

от: Slavik Tretiak
кому: All
дата: 22 Feb 2006
Hello, boo_boo

boo> как же, знатный глюк :) прошерстю тайминги сегодня-завтра.

ок.

> насчет конфига ИМХО директория лучше, тк файла все же два -- сам
> конфиг и кнопки.

путь к keys.config тоже в конфиге задаётся :p
но я тоже тут подумал что директория лучше будет.

от: Станислав Ломакин
кому: All
дата: 22 Feb 2006
Hello, Sinus

Sin> ты другое скажи, глюк видел?
Sin>
Sin> зы. и кста, так как теперь абсолютно всё конфигурится из конфига,
Sin> может тогда не в ~/.zemu/config.xml класть, а просто
Sin> ~/.zemu_config.xml ? нэ ?

как же, знатный глюк :) прошерстю тайминги сегодня-завтра. насчет конфига ИМХО
директория лучше, тк файла все же два -- сам конфиг и кнопки.

от: Станислав Ломакин
кому: All
дата: 22 Feb 2006
Hello, Sinus

мдя. в доке, с которой брал тайминги, глюк оказался -- все инстхрюкции с
половинками IX/IY там по 9 тактов %)
вот исправленная либа, попробуй с ней.

Файл: z80ex.zip http://zx.pk.ru/attachment.php?attachmentid=2653

от: SMT
кому: All
дата: 23 Feb 2006
Hello, Sinus

Sin> трабл скорее не в том чтоб миксить, а вот в чем: аюгрик ложится в
Sin> буфер. бипер тоже ложится в буфер. этот же буфер играется

если смогёте разобраться, зачем в SNDRENDER есть режим SND_EXTERNAL_BUFFER, то
хороший бипер можно сделать в тот же буфер, что AY, тем же движком ;-)

от: Slavik Tretiak
кому: All
дата: 23 Feb 2006
Hello, boo_boo

boo> селектор файлов оч. милый :)

kawaii ^_~

> ЗЫ думаю в следующей версии z80ex добавить дизасм -- плохо без
> него...

ага. я тоже так думаю.
вот полезность inline asm-a ещё можно обсудить, а дизасм надо добавить (благо
делается просто)

> ЗЗЫ а без спикера скушно... всобачить, что ли? ;)

наверное стоит.

-+-------------------------------------

сейчас я вижу два трабла:

1) если много звуковых устройств, то как там всякие буферы юзать? как миксить?

2) порты памяти надо чтоб из конфига брались

-+----------------

если есть что предложить по звуку, предложи.

а я пока займусь доапгрейдживанием файл-селектора и дизасмом (хочу на STS чутка
похожим сделать).

от: Slavik Tretiak
кому: All
дата: 23 Feb 2006
Hello, boo_boo

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

от: Андрей Александрович Титов
кому: All
дата: 23 Feb 2006
Hello, Sinus

Предлагаю переименовать тему в "За стеклом 4: Личная переписка Синуса и Бу-Бу о
повседневных буднях эмуляторописателей" ;)

от: Станислав Ломакин
кому: All
дата: 23 Feb 2006
Hello, Sinus

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

звук -- или юзать SDL-mixer, или руками, несложно совсем... надо только
выловить глюк с опустошением буфера. гляну на досуге...

дизасм -- ага, проще некуда, по тем же таблицам, за пару часов управлюсь.

от: Станислав Ломакин
кому: All
дата: 25 Feb 2006
Hello, Titus

Tit> Предлагаю переименовать тему в "За стеклом 4: Личная переписка Синуса
Tit> и Бу-Бу о повседневных буднях эмуляторописателей" ;)

жестко :)

от: Oleg Golenkoff
кому: All
дата: 25 Feb 2006
Hello, boo_boo

boo> полдня провозился, пытаясь заставить zemu нормально звучать

скажу по секрету, мне SDL сразу не понравился :rolleyes:

от: Станислав Ломакин
кому: All
дата: 25 Feb 2006
Hello, breeze

bre> скажу по секрету, мне SDL сразу не понравился :rolleyes:

ну, графические феньки там вполне на уровне. а вот остальное слишком уж
заточено под написание игрулек -__-

от: Slavik Tretiak
кому: All
дата: 27 Feb 2006
Hello, boo_boo

boo> ИМХО звук много лучше не стал: лаг поменьше (но все равно заметный),

да ну наф! лаг стал аффигительно поменьше!

> зато заикается, это на плавных звуках видно (посмотри "бздям" в буте
> приложенном)...

хм. приду домой- посмотрю.

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

короче фз. у мну ничего нигде не затыкается и не заикается.
можно конечно попробовать прямо в /dev/dsp лить. авось поможет.

> маленький баг: если для диска А в конфиге прописан несуществующий
> путь, по f3 выбрать файл нельзя.

знаю. даже в ридми написано:
* пофиксить dirwork.cpp, а именно работу функции LevelUp (сейчас там есть
малозаметные, но всё же крупные глюки)

> оффтоп: а что за вкусненькое аниме? :rolleyes:

дофига всего. надо смотреть, так не вспомню. в обчем дома буду- напишу.

от: Станислав Ломакин
кому: All
дата: 27 Feb 2006
Hello, Sinus

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

маленький баг: если для диска А в конфиге прописан несуществующий путь, по f3
выбрать файл нельзя.

оффтоп: а что за вкусненькое аниме? :rolleyes:

Файл: boot.zip http://zx.pk.ru/attachment.php?attachmentid=2700

от: Станислав Ломакин
кому: All
дата: 28 Feb 2006
Hello, Sinus

Sin> да ну наф! лаг стал аффигительно поменьше!

стал, но все равно большой. запусти AY-версию batty, и пошпыняй мячик сначала в
us или хоть во fuse, а потом в zemu ;)

от: Slavik Tretiak
кому: All
дата: 28 Feb 2006
Hello, 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

от: Slavik Tretiak
кому: All
дата: 28 Feb 2006
Hello, boo_boo

посмотрел бут. услышал только левые щелчки (буду разбираться). никаких
завываний, заиканий и подвываний... что я не так делаю? ;)
а по поводу большого лага. ну попробую ещё уменьшить.
хотя как по мне (смотреть демки)- так вполне ;)

от: Станислав Ломакин
кому: All
дата: 05 Mar 2006
Hello, Sinus

Sin> итак, а вот и 0.04
Sin> абсолютно ничего нового за исключением звука ;)
Sin> протестте плиз!

о, клево! теперь если заменить wavplay.cpp на *см аттач*, выходит прям-таки
рилтайм, с SDLским недозвуком не сравнить ;)

Файл: wavplay.zip http://zx.pk.ru/attachment.php?attachmentid=2746

от: Станислав Ломакин
кому: All
дата: 06 Mar 2006
Hello, Sinus

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

..попытался бипер прикрутить, в тот же буфер, что и AY. прикрутил, вообщем-то,
но с фичами -- 1) частота на слух чуть в стороне от нормальной, хз почему (хотя
в игрульках и тп ничего не заметно, только если конкретно высоту бипов
слушать). 2) SDL-звук с этой хренью не пашет ваапще :) наверно, какая-то
мелочь, но у меня голова кругом идет от этих аудио-колбэков :rolleyes: в
целом, кривовато звучит, но лучше чем ничего...
заодно еще чуть подправил wawplay -- явно выставляю 4 фрагмента размером во
фрейм. у меня сейчас со всей этой дурью звук раздается СРАЗУ при нажатии на
клавишу, без ощутимых задержек. (сравнить можно с глюкалкой).

вообщем вот, глянь. бипер я тупо влепил туда же где бордер, по-хорошему наверно
его надо в какой-нить... как бишь вы, ООпщики это называете... КЛАСС
:rolleyes:

ЗЫ имхо просто мейк проще юзать, чем автомейк )

Файл: zemu_spk.zip http://zx.pk.ru/attachment.php?attachmentid=2751

от: Станислав Ломакин
кому: All
дата: 06 Mar 2006
Hello, boo_boo

а, вот еще -- мне в zemu оч не хватает нескольких простейших фишек:

- дописи бута к дискам
- флажка ком-строки для reset trdos при старте эмуля
- записи измененного диска (просто "диск изменен, записать? о-еее!/нафик")
- переключения в/из полного экрана по кнопке.
- пейдждовна в селекторе файлов

мне самому этим всем заняться, или подождать? в смысле, каждая фича в пару
строчек кода, подозреваю что если ты все равно планируешь сделать что-то из
этого, тебе будет проще самому написать, чем переделывать на свой манер то, что
напишу я -- не ООПщик я, ни разу не ООПщик ;)

ЗЫ ой, пагедавн/пагеап появился! :)

от: SMT
кому: All
дата: 06 Mar 2006
Hello, boo_boo

boo> попытался бипер прикрутить, в тот же буфер, что и AY. прикрутил,
boo> вообщем-то, но с фичами

послушай музыку типа Savage 1,2,3 или dizzy, и убедишься, что получилось
большое гэ. (hint: надо завести 1 экземпляр объекта SNDRENDER чиста для бипера
и пару переменных, на сколько байт заполнен буффер AY и на сколько - биперный.
их брать из SNDRENDER/SNDCHIP)

от: Станислав Ломакин
кому: All
дата: 07 Mar 2006
Hello, SMT

SMT> послушай музыку типа Savage 1,2,3 или dizzy, и убедишься, что
SMT> получилось большое гэ. (hint: надо завести 1 экземпляр объекта
SMT> SNDRENDER чиста для бипера и пару переменных, на сколько байт
SMT> заполнен буффер AY и на сколько - биперный. их брать из
SMT> SNDRENDER/SNDCHIP)

мда, что гэ, то гэ... а я думал легко отделаться, понадеявшись, что SNDCHIP
выдает семплов ровно на фрейм :rolleyes:

от: Станислав Ломакин
кому: All
дата: 07 Mar 2006
Hello, boo_boo

оть, прикрутил к zemu спикер правильно, по заветам SMT :)

виндовости из wavplay.cpp выкинуты -- тк он малость поменялся, а протестировать
я их не могу.

UPD. блин, опять лажа! минут пятнадцать все играет нормально, а потом начинает
трещать -- очевидно, позиция чтения из буфера нагоняет позиции, по которым AY и
спикер пишут данные. а какого черта она их нагоняет, когда я начинаю на фрейм
раньше этих позиций, и беру ровно по фрейму семплов? и SNDRENDER тоже выдает в
среднем фрейм. где-то я туплю -__-

Файл: zemu_sp.zip http://zx.pk.ru/attachment.php?attachmentid=2775

от: SMT
кому: All
дата: 07 Mar 2006
Hello, SMT

а, вижу в чем косяк, округление вот тут:
┌─- CODE ───
frameSamples = ((unsigned long)71680/*frame*/*44100/*sound freq*/) / 3500000
/*Z80 clock*/;
└── CODE ───
в каждом кадре надо выводить разное кол-во семплов (+-1), а не одинаковое

от: SMT
кому: All
дата: 07 Mar 2006
Hello, boo_boo

boo> очевидно, позиция чтения из буфера нагоняет позиции, по которым AY и
boo> спикер пишут данные. а какого черта она их нагоняет, когда я начинаю
boo> на фрейм раньше этих позиций, и беру ровно по фрейму семплов?

не должно так быть, позиция апдейтится из переменной int64, которая считает
сколько всего тактов проиграно от старта. возможно, end_frame для ay и beeper
получает разные длины кадра

от: Oleg Golenkoff
кому: All
дата: 07 Mar 2006
Hello, SMT

Предлагаю иконку к zemu :)

Файл: zemu_ico.png http://zx.pk.ru/attachment.php?attachmentid=2779

от: Станислав Ломакин
кому: All
дата: 07 Mar 2006
Hello, SMT

SMT> а, вижу в чем косяк, округление вот тут:
SMT> ┌─- CODE ───
SMT> frameSamples = ((unsigned long)71680/*frame*/*44100/*sound freq*/) /
SMT> 3500000 /*Z80 clock*/;
SMT> └── CODE ───
SMT> в каждом кадре надо выводить разное кол-во семплов (+-1), а не
SMT> одинаковое

блин, точно :) но теперь другая проблема вылезла, и вовсе странная -- все
хорошо, проходит 15-20 минут, и спикер начинает заметно отставать от AY,
дальше-больше... посмотрел на кол-во семплов: AY выдает в среднем 902.98, а
спикер -- 903.03 семпла. юзаются SNDCHIP и SNDRENDER одинаково, кол-во тактов в
end_frame тоже передается одинаковое ... O__o

от: Станислав Ломакин
кому: All
дата: 07 Mar 2006
Hello, breeze

bre> Предлагаю иконку к zemu :)

вау, клевая :)
Sinus, не хочешь сделать так, чтоб при запуске эмуля в уголке (на черном
папере) появлялась иконка, и плавно исчезала? ;)

от: Oleg Golenkoff
кому: All
дата: 08 Mar 2006
Hello, boo_boo

boo> вау, клевая :)

я тут подумал :) может пора уже свою страничку сделать ? я тут даж десигн уже
сфорганил ;) так сказать Offical Site - ZEMU

boo> Sinus, не хочешь сделать так, чтоб при запуске эмуля в уголке (на
boo> черном папере) появлялась иконка, и плавно исчезала? ;)

я воот думаю уже можно и графику немного в емуле поменять ;) например вместо
кубика синего и зелёного сделать - дискетку и лампочку турбо :) а когда будет
hdd или cd соответсвенно из пиктограммы :)

от: Станислав Ломакин
кому: All
дата: 09 Mar 2006
Hello, breeze

вот, наконец-то спикер действительно прикручен, tnx, SMT! :) запутался уже
где что менял в файлах, так что кидаю почти все.

Breeze: у тебя очень правильные мысли ИМХО :)

Файл: zemuspk.zip http://zx.pk.ru/attachment.php?attachmentid=2801

от: SMT
кому: All
дата: 09 Mar 2006
Hello, Sinus

я только одного не понимаю - зачем все переменные/функции классов-устройств -
static? так же нельзя поставить 2 ay-ка или типа того

от: Slavik Tretiak
кому: All
дата: 09 Mar 2006
Hello, SMT

SMT> я только одного не понимаю - зачем все переменные/функции
SMT> классов-устройств - static? так же нельзя поставить 2 ay-ка или типа
SMT> того

ибо я переписывал с версии 0.01 где вообще не было классов ^_~
(а как известно указатели на не статические функции требуют лишних временных
затрат (на написание обёрток), а мне было влом ^_~)
но это хорошая идея, надо переписать.

от: Slavik Tretiak
кому: All
дата: 09 Mar 2006
Hello, boo_boo

SDL звук сам по себе и есть в отдельном потоке. он тильки callback вызывает.
ничаво, теперь вроде тайму свободного побольше стало, буду вкуривать.

(кста, SDL-ный метод с callback-ом более правильный, ибо так работает железо
(есть два буффера на звуковухе, и когда один кончается, надо второй заполнить),
только что в линухе (и в виднах наверное) и так уже обёртка написана, но
допустим если на амигу портануть, так думаю SDL - самое то)

от: Slavik Tretiak
кому: All
дата: 09 Mar 2006
Hello, boo_boo

boo> вот, наконец-то спикер действительно прикручен, tnx, SMT! :)
boo> запутался уже где что менял в файлах, так что кидаю почти все.

оки доки! буду дома- заООПчу всё ;)
(и я так понимаю что под SDL-sound оно не работает? пофикшу тогда)

от: Slavik Tretiak
кому: All
дата: 09 Mar 2006
Hello, breeze

bre> я тут подумал :) может пора уже свою страничку сделать ? я тут даж
bre> десигн уже сфорганил ;) так сказать Offical Site - ZEMU

насчёт странички думаю подождать хотя бы версии 0.10 ;)

> я воот думаю уже можно и графику немного в емуле поменять ;) например
> вместо кубика синего и зелёного сделать - дискетку и лампочку турбо
> :) а когда будет hdd или cd соответсвенно из пиктограммы :)

а вот графику хацю!
только дискетки надо 2- на запись (допустим синенькая) и на чтение (допустим
красненькая). или таки пусть одна будет- что на запись, что на чтение?

от: Станислав Ломакин
кому: All
дата: 09 Mar 2006
Hello, Sinus

Sin> оки доки! буду дома- заООПчу всё ;)
Sin> (и я так понимаю что под SDL-sound оно не работает? пофикшу тогда)

не работает. то есть звуки раздаются, но фигоооовые :rolleyes:
подозреваю, чтоб с SDL-звуком что-то сносное вышло, надо выделить его в
отдельный поток... и то не факт, что прокатит. впрочем, в эмуле AtariST
"Hatari" как-то ухитрились его заюзать без особых глюков O__o

от: Oleg Golenkoff
кому: All
дата: 10 Mar 2006
Hello, Sinus

Hу вот как и обещал, нарисовал некоторые пиктограмки для емуля... правда 16x16
не получилось :( уж больно всё мелко... :mad: но вот 24x24 я думаю не сильно
фатально...

Картинка: http://www.fishb0ne.com/trashcan/zemu/floppy_read.gif чтение дискеты

Картинка: http://www.fishb0ne.com/trashcan/zemu/floppy_write.gif соответственно
запись ;)

Картинка: http://www.fishb0ne.com/trashcan/zemu/hdd_read.gif чтение IDE

Картинка: http://www.fishb0ne.com/trashcan/zemu/hdd_write.gif запись IDE

Картинка: http://www.fishb0ne.com/trashcan/zemu/turbo_on.gif Картинка:
http://www.fishb0ne.com/trashcan/zemu/turbo_off.gif турба on/off

вообще думаю стот сделать три значка одновременно... типа вот так

Картинка: http://www.fishb0ne.com/trashcan/zemu/floppy.gif Картинка:
http://www.fishb0ne.com/trashcan/zemu/hdd.gif Картинка:
http://www.fishb0ne.com/trashcan/zemu/turbo_off.gif - а по необходимости уже
зажигать какой-нибудь... :rolleyes:

от: Oleg Golenkoff
кому: All
дата: 10 Mar 2006
Hello, Sinus

Sin> насчёт странички думаю подождать хотя бы версии 0.10 ;)
Sin>

можно конечно и подождать... :rolleyes:
но меня тут пробило на экшин :eek: так что я тут вот кое чего всё-таки
набросал... :cool:

http://fishb0ne.com/zemu/templates/main.html

от: Slavik Tretiak
кому: All
дата: 10 Mar 2006
Hello, Sinus

зы. и ещё. SMT, ты тут?
можно ли как-нибудь просто узнать текущее состояние "дисковода" - запись,
чтение или просто стоит?

от: Slavik Tretiak
кому: All
дата: 10 Mar 2006
Hello, breeze

недурственно. и даже совсем хорошо ;)

по поводу иконок: да, 24x24 как раз. вот 25x25 уже бы налазило на экран ;)
только я не буду делать анимацию иконок, просто будут мигать- это ведь типа
точные индикаторы, когда зелёненький- значит стопудово чтение.

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

от: Станислав Ломакин
кому: All
дата: 10 Mar 2006
Hello, Sinus

Sin> зы. и ещё. SMT, ты тут?
Sin> можно ли как-нибудь просто узнать текущее состояние "дисковода" -
Sin> запись, чтение или просто стоит?

я не SMT, но -- в классе wd1793 поле state: состояние ВГ-шки. seldrive
указывает на текущий дисковод, в нем (класс wd93_fdd) поле motor -- время до
остановки мотора, если 0, то стоит.

я в C-шной обертке всего этого наружу не выводил, могу вывести. однако, раз
zemu на c++ написан, можно и напрямую этот класс юзать.

от: Slavik Tretiak
кому: All
дата: 10 Mar 2006
Hello, boo_boo

лучше какую-нибудь функцию, которая будет возвращать для текущего дисковода
номер дорожки на которой стоит головка и что дисковёрт (ВГ-шка) делает: 0 -
ничего, 1 - чтение, 2 - запись

от: Oleg Golenkoff
кому: All
дата: 10 Mar 2006
Hello, Sinus

Sin> недурственно. и даже совсем хорошо ;)

не может не радовать :eek:

Sin> по поводу иконок: да, 24x24 как раз. вот 25x25 уже бы налазило на
Sin> экран ;) только я не буду делать анимацию иконок, просто будут
Sin> мигать- это ведь типа точные индикаторы, когда зелёненький- значит
Sin> стопудово чтение.

блин! ну и зря :( так было б хоть понятно что экшин какой-то идёт, а не повисло
всё.... ты бы хоть фазы через трек менял, и анимация была б,...

от: Станислав Ломакин
кому: All
дата: 10 Mar 2006
Hello, Sinus

Sin> лучше какую-нибудь функцию, которая будет возвращать для текущего
Sin> дисковода номер дорожки на которой стоит головка и что дисковёрт
Sin> (ВГ-шка) делает: 0 - ничего, 1 - чтение, 2 - запись

вот. смотри в конце unreal_wd1793.h. извини, но ф-ий получилось 3 ;)

btw, глянул на realspectrum, он юзает allegro. звук -- такая же фигня как
SDL-ный, тормозит и заикается чуть что.

Файл: unreal_wd1793.zip http://zx.pk.ru/attachment.php?attachmentid=2815

от: Станислав Ломакин
кому: All
дата: 12 Mar 2006
Hello, breeze

Sinus, в догонку к вышеаттачнутой ВГ-шке -- замени там один файл (маленький, но
полезный для любителей mc фикс) ;)

Файл: wd93_fdd.zip http://zx.pk.ru/attachment.php?attachmentid=2840

от: Slavik Tretiak
кому: All
дата: 13 Mar 2006
Hello, boo_boo

заменил.
добавил возможность чтоб trd-шки были с другим расширением?
(а при чём тут mc?)

зы. все выходные провёл за TargeT-ом, так что прогресс с эмулем будет завтра.
зыы. если успею, добавлю чтоб из архивов читало, а то у мну дофига демок в
zip-ах

от: Станислав Ломакин
кому: All
дата: 13 Mar 2006
Hello, Sinus

Sin> заменил.
Sin> добавил возможность чтоб trd-шки были с другим расширением?
Sin> (а при чём тут mc?)

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

от: Slavik Tretiak
кому: All
дата: 13 Mar 2006
Hello, boo_boo

переключение фуллскина по кнопке? уже готово ;) (две строчки ;) )
но всё выложу в следующем релизе (уже очень скоро)

от: Станислав Ломакин
кому: All
дата: 15 Mar 2006
Hello, Sinus

эта... вот еще, возьми свежий z80ex с соурсфорджа -- пофиксил пару весьма
гаденьких багов: IN A,(port) портила флаги, а цепочки DD/FD сбивали тайминг и
вообще вели себя по-свински -__-

от: Slavik Tretiak
кому: All
дата: 15 Mar 2006
Hello, boo_boo

ок. возьму.
сейчас просто анимкой засмотрелся ;)

от: Станислав Ломакин
кому: All
дата: 15 Mar 2006
Hello, Sinus

Sin> сейчас просто анимкой засмотрелся ;)

ага, у тебя там mindgame, honey n clover... понимаю ;)

от: Slavik Tretiak
кому: All
дата: 17 Mar 2006
Hello, boo_boo

да, логично.
я тож хотел так сделать, но работало и без этого ;)

так что пока нету :)

от: Станислав Ломакин
кому: All
дата: 17 Mar 2006
Hello, Sinus

btw, подкинь плз еще раз тот снапшот с кружком/лучиками из unreal by KSA...
хочу глянуть, работает ли сейчас, но я его посеял, а запустить с диска не
выходит -- сбрасывается, не дойдя до этого места :(

от: Станислав Ломакин
кому: All
дата: 17 Mar 2006
Hello, boo_boo

ыыы! версию z80ex с дизасмом залил на соурсфордж :)

от: Vladimir Berezenko
кому: All
дата: 20 Mar 2006
Hello, boo_boo

Попробовал с новым z80ex. Стала икать музыка.
Еще попробовал собрать эмуль под Pegasos. Выяснилось что на big-endian машинах
оно не работает. Цвета кривые (юзается BGRA, а не ARGB и поэтому нет синего и
перепутаны остальные) и не работает чтение диска из ТР-Дос. Образ грузится в
память, но в тр-досе вываливает ошибку диска.
Само собой что в мэйкфайле я раскомментил BIG_ENDIAN.

от: Slavik Tretiak
кому: All
дата: 20 Mar 2006
Hello, Q-Master

QMa> Еще попробовал собрать эмуль под Pegasos. Выяснилось что на
QMa> big-endian машинах оно не работает. Цвета кривые (юзается BGRA, а не
QMa> ARGB и поэтому нет синего и перепутаны остальные) и не работает
QMa> чтение диска из ТР-Дос.

ибо wd1793 пофигу на всякие там BIG_ENDIAN

а с цветами попробуй вот такой фикс (в аттаче).

Файл: zemu_big_endian.zip http://zx.pk.ru/attachment.php?attachmentid=2936

от: Vladimir Berezenko
кому: All
дата: 20 Mar 2006
Hello, Sinus

Sin> ибо wd1793 пофигу на всякие там BIG_ENDIAN
Sin>

А почему тогда ошибка чтения диска вылетает?

Sin> а с цветами попробуй вот такой фикс (в аттаче).

попробую. только до дома доберусь.

от: Станислав Ломакин
кому: All
дата: 20 Mar 2006
Hello, Q-Master

QMa> А почему тогда ошибка чтения диска вылетает?

wd1793 в другом смысле пофигу -- он работает ТОЛЬКО под little endian. собсно,
WORDS_какой-то_ENDIAN в мейкфайле либы z80ex только к этой либе и относится.

можно wd1793 портировать (хотя геморроя много), я б даже занялся, но за
отсутствием железа -- грустно...

насчет икания музыки -- какая версия? с последним патчем для спикера etc,
который я сюда выкладывал?

от: Vladimir Berezenko
кому: All
дата: 20 Mar 2006
Hello, boo_boo

boo> wd1793 в другом смысле пофигу -- он работает ТОЛЬКО под little
boo> endian. собсно, WORDS_какой-то_ENDIAN в мейкфайле либы z80ex только к
boo> этой либе и относится.
boo>
boo> можно wd1793 портировать (хотя геморроя много), я б даже занялся, но
boo> за отсутствием железа -- грустно...
boo>

А там много менять надо, чтобы оно под бигендиан завелось? Я там не особо много
мест заметил где ворды юзаются... Образ-то читается. Только вот криво парсится,
насколько я понял.

boo> насчет икания музыки -- какая версия? с последним патчем для спикера
boo> etc, который я сюда выкладывал?

Если не менять либу z80ex то с последним патчем даже под СДЛ все оки. Если либу
заменить, то икает даже без патча.

от: Станислав Ломакин
кому: All
дата: 20 Mar 2006
Hello, Q-Master

QMa> А там много менять надо, чтобы оно под бигендиан завелось? Я там не
QMa> особо много мест заметил где ворды юзаются... Образ-то читается.
QMa> Только вот криво парсится, насколько я понял.

много вещей типа *(short *)(указатель)=что-то, может, еще чего-нить. в
принципе поправить несложно.

QMa> Если не менять либу z80ex то с последним патчем даже под СДЛ все оки.
QMa> Если либу заменить, то икает даже без патча.

это потому, что длина инта не эмулируется... замени главный файл на (аттач)

Файл: zemu.cpp.zip http://zx.pk.ru/attachment.php?attachmentid=2937

от: Vladimir Berezenko
кому: All
дата: 22 Mar 2006
Hello, Sinus

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

Хех. А щелчки по кругу слушать это весело... Этакое эхо...

Sin> А если нет никакого звука? Чего играем? Тишину? Зачем? 8)
Sin>
Sin> отправить бы вас курить матчасть ;) по поводу работы современных
Sin> (читать начиная с Sound Blaster 1.0) звуковух.
Sin>
Sin> ибо звуковуха постоянно требует себе данные. просто различными осями
Sin> это скрывается.
Sin>
Sin> нет, конечно, можно допустим гасить выборку из звуковухи, но это
Sin> тормозно и ни одна нормальная писишная ось это не поддерживает.
Sin>
Sin> конечно для амиги это гораздо проше, ибо амижная "звуковуха"- это
Sin> просто напросто 4 счётчика подключённые к ... скажем DMA (ломает
Sin> вспоминать как там все чипсеты назывались).
Sin>
Sin> и то, сомневаюсь что при подключении PCI-ной звуковухи она постоянно
Sin> то включается, то выключается.
Sin>
Sin> а даже если это и так, то не вижу принципиальной разницы между
Sin> остановкой счётчиков и "отправкой" в звуковуху некоторого значения
Sin> обозначающего тишину (допустим 0)
Sin>
Sin> P.S.
Sin> а так как звук всё равно генерится (будь он тишиной или нет), то
Sin> быстрее играть тишину, чем определять- есть ли в буфере значения
Sin> отличные от нуля и потом решать этправлять ли тогда этот буфер в
Sin> звуковуху.

Батенька, идите курите матчасть сами. Особенно прокурите работу PCI шины. Там
очень популярно изложено кто там чего требует, когда и в каких количествах. А
загаживать шину тишиной, и при этом слушать циклические щелчки, вместо того,
чтобы просто молчать, это конечно круть немеряная. И как только другие до этого
не додумались... Тормозят звук зачем-то, вместо того, чтобы тишину слушать...

ПС: чтобы этого небыло, как-раз и нужен двойной буфер. Можно сразу вычислить
звучишь ты или нет. А если звучишь, то сколько именно. Тогда и времязатраты на
переливание пустоты сократятся и нагрузка на проц и PCI шину изменится.

от: Vladimir Berezenko
кому: All
дата: 22 Mar 2006
Hello, boo_boo

boo> вааа... пример можно в виде исходника? только не мыпытри-плеер, а
boo> эмулятор или еще чего-нить околорилтаймовое? и чтобы в современной
boo> ОС, и чтоб работало :rolleyes:

Ладно ладно.. пока не нашел. Hекогда искать особо. Hо какой смысл-то? Из-за
того, что постоянно буфер крутится и постоянные лаги с тем-же бипером. Hа
/dev/dsp это незаметно, а вот на SDL очень. Смысл в том, что оно щелкнуло, а
сейчас в буфере куча тишины которая и играется и пока оно дойдет до места где
щелкнуло...

от: Станислав Ломакин
кому: All
дата: 22 Mar 2006
Hello, Q-Master

QMa> И как только другие до этого не додумались... Тормозят звук зачем-то,
QMa> вместо того, чтобы тишину слушать...

вааа... пример можно в виде исходника? только не мыпытри-плеер, а эмулятор или
еще чего-нить околорилтаймовое? и чтобы в современной ОС, и чтоб работало
:rolleyes:

от: Станислав Ломакин
кому: All
дата: 22 Mar 2006
Hello, Q-Master

QMa> Ладно ладно.. пока не нашел. Hекогда искать особо. Hо какой смысл-то?
QMa> Из-за того, что постоянно буфер крутится и постоянные лаги с тем-же
QMa> бипером. Hа /dev/dsp это незаметно, а вот на SDL очень. Смысл в том,
QMa> что оно щелкнуло, а сейчас в буфере куча тишины которая и играется и
QMa> пока оно дойдет до места где щелкнуло...

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

от: Slavik Tretiak
кому: All
дата: 23 Mar 2006
Hello, Q-Master

Q-Master
в последних версиях (ещё до фикса с бипером) чутка поменялся алгоритм
заполнения буфера, чтоб минимизировать задержки.

на моей машине (и на старой- 500mhz + Sound Blaster 16, и на новой - 2.5ghz +
AC97)
лаг не больше чем 1/25 секунды (2 спековских HALT-а, тестил на всяких демках)

за неимением других машин с линуксом под рукой ничего лучшего сделать не могу.

если у тебя большой лаг и ты знаешь как его исправить- делай фикс.
вот boo_boo предложил под /dev/dsp написать- теперь всё круто стало.

boo_boo звинял что так долно ничего не выкладываю, просто на работе навалило
проектов больше чем есть рабочих ресурсов, сидим с утра до ночи.

эмуль делаю по вечерам когда не влом, сейчас из- за переделки звука всё в
состоянии нестояния (читать не работает).

а ещё и TargeT.

но вкоро всё будет круто.

от: Vladimir Berezenko
кому: All
дата: 23 Mar 2006
Hello, boo_boo

boo> смысл такой, что другой альтернативы нет :) цифровой звук -- отсчеты
boo> амплитуды по кванту времени, соответственно при проигрывании каждый
boo> отсчет должен прийтись точно на свой квант. есть иной способ это
boo> сделать, кроме как непрерывно гнать сэмплы на звуковуху? каким
boo> образом предполагается обеспечить гарантированную синхронизацию с
boo> точностью до 1/44100 сек?

Вот в этом и проблема с SDLем. Лаг получается из-за того, что постоянно
генерируется буффер, а не текущий отсчет запихивается в звуковуху. Это можно
пофиксить введя паузы в проигрывании буфера или сократить максимально сам
буффер. Hу попробовать хотя-бы.

от: Kevin
кому: All
дата: 24 Mar 2006
Hello, Sinus

Sin> а что такое симбиан? там цэ есть?
Sin>
Sin> а вообще то если я уж буду писать под мобильные устройства, то под
Sin> Windows Mobile, ибо у мну есть Pocket PC

OS на мобильниках, например Siemens SX1, NOKIA 6600 и т.д.
Пишешь в С на компе, а потом конвертишь в мобилу

от: Kevin
кому: All
дата: 24 Mar 2006
Hello, Sinus

Sin> непонтово.
Sin> я вон лучше на PocketPC сделаю нормальный AyPlayer, ибо там
Sin> нормальный C есть
Sin> (причём даже вполне себе GCC)
Sin>
Sin> а на жабе... переписывать тонны кода... да и проверять негде (нету у
Sin> мну жабы на мобилке, ибо нафиг не надо)

А ты под Symbian OS 6.х пиши :)

от: Slavik Tretiak
кому: All
дата: 24 Mar 2006
Hello, Kevin

а что такое симбиан? там цэ есть?

а вообще то если я уж буду писать под мобильные устройства, то под Windows
Mobile, ибо у мну есть Pocket PC

от: Slavik Tretiak
кому: All
дата: 24 Mar 2006
Hello, Kevin

не, я в курсе что это ос такая ;)
я в смысле про то что писать под симбиан в мои планы на ближайшие 100 лет не
входит ;)

от: Kevin
кому: All
дата: 27 Mar 2006
Hello, Sinus

Sin> не, я в курсе что это ос такая ;)
Sin> я в смысле про то что писать под симбиан в мои планы на ближайшие 100
Sin> лет не входит ;)

Вот так вот. И обломал он всех... ;)

от: Andrew Busygin
кому: All
дата: 31 Mar 2006
Hello, Sinus

Sin> не, я в курсе что это ос такая ;)
Sin> я в смысле про то что писать под симбиан в мои планы на ближайшие 100
Sin> лет не входит ;)

А под покемоны когда можно будет увидеть? :v2_smile:

от: Slavik Tretiak
кому: All
дата: 02 Apr 2006
Hello, Sinus

ааа!!! как задрали челы переключающие порт по OUT(#FD),A !!! :mad:
я когда таргет тестил, поставил 512 в конфиге, и убрать забыл.
самое прикольное что дема то работает, просто мультиколеров нет ;) (это 512
когда)

зы. с новой ВГшкой завёлся Unreal by KSA.

от: Slavik Tretiak
кому: All
дата: 02 Apr 2006
Hello, boo_boo

да, имеет ;)
полностью переделал звук (теперь и бипер, и под SDL и может если ещё покопаю,
так и щёлкать перестанет ;) ), добавил индюкаторы.

и заметил досадный глюк- почему-то после переделок начало непонятно глючить
RAGE. точнее это я ещё проверю.

будет и запись, будет и мышка ;)

от: Станислав Ломакин
кому: All
дата: 03 Apr 2006
Hello, Sinus

Sin> итак. наконец-то новая версия.
Sin> много фиксов и дополнений.
Sin>

ура, ты крут!!! :)
..а лаг опять появился -- потому, что ты прежнюю версию wavplay взял
:rolleyes: это ладно, хуже то, что с самим звуком фигня -- сделай "BEEP 10,1"
и поймешь, о чем я. отчасти это потому, что ay-ские либы тоже старые, но в
основном оттого, что сэмплы обрубаются, когда буфера для ay и бипера выходят
разного размера.
в аттаче -- тупейший, но работающий фикс, включая новые wavplay и ay. ИМХО если
по-хорошему, то логичней всего научить SNDRENDER работать с кольцевым буфером в
штатном режиме (SMT, что скажешь?). да, а еще предлагаю AUDIO_HW_BUFFER вынести
в конфиг -- так всем бут хорошо, и SDL-щикам, и нелюбителям лага ,)

Sin> я там поиздевался чутка над ВГшкой, посмотри, может что можно
Sin> оптимальней сделать.
Sin> зы. там где я исправлял " -1 " на " ~(unsigned)0 " это чтоб варнингов
Sin> небыло.

передача времени в is_drive_spinning -- разумно. с -1 тоже. кстати, в 313й
и338й строчках wd1793.cpp ты (unsigned) забыл перед нулем -- разницы абасалютно
никакой, но если уж эстетствовать, то на всю катушку! :rolleyes: .

мыша -- няяя! ^____^

иконки прекрасны, но из-за того, что постоянно на экране, мозолят глаза...
предложение -- сделать опцию конфига -- не рисовать серых иконок, только
активные.

ЗЫ кстать, есть уже новая версия z80ex, с фиксами недок. флагов.

Файл: zemu_sound_fix.zip http://zx.pk.ru/attachment.php?attachmentid=3014

от: SMT
кому: All
дата: 03 Apr 2006
Hello, Sinus

> научить SNDRENDER работать с кольцевым буфером в штатном режиме

EXTERNAL_BUFFER чем не оно?

от: Станислав Ломакин
кому: All
дата: 03 Apr 2006
Hello, boo_boo

ой, вот еще что -- выловил КРАЙHЕ вредоносный баг в z80ex (deadlock в обработке
IM0). обновляться до версии 0.15 с https://sourceforge.net/projects/z80ex/ --
обязательно!

от: SMT
кому: All
дата: 04 Apr 2006
Hello, Sinus

Sin> заколебало блин уже. наверное добью до юзабельной 0.1 и начну писать
Sin> потактовую эмуляцию (да и к тому же чтоб разные устройства рендерили
Sin> ОДИHАКОВОЕ количество семплов на фрейм)

хорошо: больше движков - лучше. хотя, проблемы c количеством семплов уже нет,
просто boo_boo выложил что-то не то

от: Slavik Tretiak
кому: All
дата: 05 Apr 2006
Hello, boo_boo

boo> в смысле -- хуже? это ты про "высокочастотное сипение" с новым
boo> wavplay? похоже, у тебя не тянет с 8-ю фрагментами, надо больше (у
boo> меня такой феномен проявляется, когда их меньше 8-и, а если система
boo> загружена, то и при 8и).
boo> если заменить строчку на
boo> tmp = 0xFF0000 | (int) (log(frag_size) + 0.5);

буду дома- попробую.

> вообщем, ИМХО надо передавать в wav_start 2 параметра (из конфига):
> frag_num и frag_size, а вышеупомянутую строчку превратить в
> tmp = (frag_num << 16) | (int) (log(frag_size) + 0.5);
>
> ЗЫ частоте семплирования по-хорошему тоже место в конфиге ;)

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

а вот frag_num и frag_size надо бы в конфиг.
и ещё чтоб ты написал туториал какие надо ставить- я допустив абсолютно не в
курсе что это значит.

от: Slavik Tretiak
кому: All
дата: 05 Apr 2006
Hello, boo_boo

boo> я то самое выложил, но Sinus хочет, видимо, чтоб кол-во семплов было
boo> равным на каждом фрейме, а не в среднем. ИМХО это было бы приятно,
boo> хотя не принципиально вообщем :)

ну типа того.
т.е. хочу чтоб для любого фрейма

dev_ay.samples == dev_border.samples

(конечно же если frame1_samples != frame2_samples то это совершенно не
критично)

от: Станислав Ломакин
кому: All
дата: 05 Apr 2006
Hello, SMT

SMT> EXTERNAL_BUFFER чем не оно?

тем, что этот екстернал буфер один на все экземпляры SNDRENDER, а если охота
микшировать потоки самому, это не катит :rolleyes:

от: Станислав Ломакин
кому: All
дата: 05 Apr 2006
Hello, SMT

SMT> хорошо: больше движков - лучше. хотя, проблемы c количеством семплов
SMT> уже нет, просто boo_boo выложил что-то не то

я то самое выложил, но Sinus хочет, видимо, чтоб кол-во семплов было равным
на каждом фрейме, а не в среднем. ИМХО это было бы приятно, хотя не
принципиально вообщем :)

от: Станислав Ломакин
кому: All
дата: 05 Apr 2006
Hello, Sinus

Sin> размер буфера (тот который AUDIO_HW_BUFFER) не хотелось бы в конфиг
Sin> перекладывать, ибо надо тогда динамические массивы юзать.
Sin> ничего страшного конечно (вон тот же config.cpp вообще деревья
Sin> строчит), но всё таки не очень хотелось бы- меньше потенциальных
Sin> глюков.

ээ? malloc или new либо проходит 1 раз при старте, либо нет, откуда глюки?!
фича-то важная, нельзя ее приносить в жертву паранойе ;)

Sin> а вот frag_num и frag_size надо бы в конфиг.
Sin> и ещё чтоб ты написал туториал какие надо ставить- я допустив
Sin> абсолютно не в курсе что это значит.

это кол-во буферов и размер каждого. отимальные подбираются опытным путем, а по
умолчанию надо поставить с запасом, или вообще не ставить, если, к примеру, 0 в
конфиге.

от: Станислав Ломакин
кому: All
дата: 05 Apr 2006
Hello, Sinus

Sin> у мну фиксы не прокатили и звук стал только хуже.
Sin>

в смысле -- хуже? это ты про "высокочастотное сипение" с новым wavplay?
похоже, у тебя не тянет с 8-ю фрагментами, надо больше (у меня такой феномен
проявляется, когда их меньше 8-и, а если система загружена, то и при 8и).
если заменить строчку на
tmp = 0xFF0000 | (int) (log(frag_size) + 0.5);
исчезло сипение? системы у всех разные... поэтому и нужна возможность задавать
из конфига размер буфера (AUDIO_HW_BUFFER) и, как выясняется, еще и кол-во
фрагментов -- то, что у тебя нормально звучит, у меня дает лаг, и наоборот тоже
лажа. :rolleyes:

вообщем, ИМХО надо передавать в wav_start 2 параметра (из конфига): frag_num и
frag_size, а вышеупомянутую строчку превратить в
tmp = (frag_num << 16) | (int) (log(frag_size) + 0.5);

ЗЫ частоте семплирования по-хорошему тоже место в конфиге ;)

от: Slavik Tretiak
кому: All
дата: 06 Apr 2006
Hello, boo_boo

короче вот результаты моиз изголений:
несмотря на то, что /*max 8 fragments*/
у меня лучший результат достигается про значениях 11-12 (я убрал пока логарифм
нафих).
и в старой версии wavplay.cpp установка размера фрагмента шла в самом конце, а
в новом- где-то посредине. это так надо?
я перенёс в конец- ничего вроде не поменялось.

и вообще, лучше всего себя вела SDL - почти чистый звук.

от: Станислав Ломакин
кому: All
дата: 06 Apr 2006
Hello, Sinus

Sin> короче вот результаты моиз изголений:
Sin> несмотря на то, что /*max 8 fragments*/
Sin> у меня лучший результат достигается про значениях 11-12 (я убрал пока
Sin> логарифм нафих).
Sin> и в старой версии wavplay.cpp установка размера фрагмента шла в самом
Sin> конце, а в новом- где-то посредине. это так надо?
Sin> я перенёс в конец- ничего вроде не поменялось.
Sin>
Sin> и вообще, лучше всего себя вела SDL - почти чистый звук.

установка размера фрагмента должна быть сразу после открытия устройства, иначе
с большой вероятностью не сработает. комментарий про "8 макс" означал, что
именно в этом конкретном случае фрагментов стоит 8, а не что их больше не
должно быть.
размер фрагмента равен двойке в степени младшего слова числа, передаваемого
ioctl'у SNDCTL_DSP_SETFRAGMENT (то есть в младшем слове -- log2 от требуемого
размера). тут я слажал, сорри -- log это натуральный логарифм.
а кол-во фрагментов берется из старшего слова.
см доки по OSS.

SDL - конечно, чистый звук. поставь для /dev/dsp 0x7FF фрагментов по 1024b и
звук будет такой же классный. и с не менее здоровским лагом :rolleyes:

от: Slavik Tretiak
кому: All
дата: 06 Apr 2006
Hello, boo_boo

окей. буду тестить.

от: Станислав Ломакин
кому: All
дата: 07 Apr 2006
Hello, Sinus

йоу, наловил глюков:
сейв диска работает только если диск был загружен из бровсера, а если из
командной строки -- фиг. :(
глючит клава -- ss для буквенных клавиш работает нормально, для цифровых -- при
удержании ss и нажатии на цыфирь один раз все ок, но потом, если его не
отпускать и снова жать кнопку, печатается просто цифра. cs для цифровых клавиш
выдает чушь, из-за чего, к примеру, невозможно сделать graph mode иначе, как
повесив его на отдельную кнопь.

от: Slavik Tretiak
кому: All
дата: 17 Apr 2006
Hello, breeze

кста, тут почитал про скроллеры (в разделе программинг) и подумал- а знает ли
SDL об обратном ходе луча?
надо будет дома проверить.

updated
нет, ничего не знает.
правда пытается ждать обратного хода луча если делать SDL_Flip().
попробую.




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
С днем рождения! - Сергею Зонову 36 лет !..
Реклама - реклама и обьявления.
Фенечки - разговоры на экзамене.
Ария - Сборник лучших песен Самой крутой рок-группы 'АРИЯ' (часть вторая).
Новости - Хaюшки, пришлa порa рaсскaзaть про нaши новости, что у нaс было и стaло.

В этот день...   23 апреля