Новая версия Unreal Speccy
|
|
нолька | Дата: Суббота, 2009-01-31, 14:36:50 | Сообщение # 76 |
рОвный
Группа: Человеки
Сообщений: 712
Статус: Offline
| робат, в нумлоке кол-во фпс сильно зависит от проца
я проснулся среди ночи и понял, что всё... всё идет по плану
|
|
| |
robat_e | Дата: Суббота, 2009-01-31, 16:32:21 | Сообщение # 77 |
Младший одепт
Группа: Человеки
Сообщений: 610
Статус: Offline
| Quote (нолька) робат, в нумлоке кол-во фпс сильно зависит от проца А, ну если в этом смысле. Я редко этим ускорением пользуюсь.
Мы, роботы-бездельники, не любим понедельники.
|
|
| |
deathsoft | Дата: Воскресенье, 2009-02-01, 03:16:30 | Сообщение # 78 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Статус: Offline
| Упдэйт №4: Исправлена обработка nmi для скорпиона, теперь сигнал nmi активен в течение 1 кадра. Переименованы настройки в ini файле (Добавлен суффикс Vol) BeeperVol MicOutVol MicInVol AYVol CovoxFBVol CovoxDDVol SDVol GSVol BASSVol Добавлены настройки для отключения soundrive и covox: SD=0 ;1 CovoxFB=0 ;1 CovoxDD=0 ;1 Исправлена ошибка в эмуляции дисковода. Не везде делалась проверка на превышение максимального номера дорожки. (В ADS30 заработал тест на максимальное количество дорожек). Доработки по NGS vs1001: Сделана поддержка регулировки громкости. Реализован регистр содержащий текущее время проигрывания трека. Сделана обработка soft reset. Сделана фильтрация нулей перед сбросом. Заработал плеер neo lt 0.42 П.С. Пока актуальной остается проблема со звуковыми устройствами выдающими постоянную составляющую в звуке (вместо нуля), из за этого при остановке/возобновлении звука (например при таскании окна за рамку или при входе/выходе из оталдчика) слышны щелчки.
Сообщение отредактировал deathsoft - Воскресенье, 2009-02-01, 17:52:07 |
|
| |
molodcov_alex | Дата: Воскресенье, 2009-02-01, 11:17:35 | Сообщение # 79 |
Осваивается
Группа: Человеки
Сообщений: 36
Статус: Offline
| deathsoft, держи список моих изменений в анриле. Единственное, что не написал - это что править в gui и config по части добавления настроек, изменения их названий и добавления новых вариантов значений
Сообщение отредактировал molodcov_alex - Воскресенье, 2009-02-01, 11:26:09 |
|
| |
deathsoft | Дата: Воскресенье, 2009-02-01, 14:21:31 | Сообщение # 80 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Статус: Offline
| Quote (molodcov_alex) держи список моих изменений в анриле. Так я уже качнул сорцы с ГЯФ, и выделил оттуда дифом изменения. Теперь осталось только их добавить. Но за сорцы спасибо.
|
|
| |
Las | Дата: Воскресенье, 2009-02-01, 18:31:58 | Сообщение # 81 |
Юзер
Группа: Человеки
Сообщений: 1
Статус: Offline
| Quote (deathsoft) П.С. Пока актуальной остается проблема со звуковыми устройствами выдающими постоянную составляющую в звуке (вместо нуля), из за этого при остановке/возобновлении звука (например при таскании окна за рамку или при входе/выходе из оталдчика) слышны щелчки. Могу кинуть кусок кода, я делал для эмулятора AY типа фильтр, как раз убирает постоянную составляющую. Ну типа через кондер звук пропустить.
|
|
| |
molodcov_alex | Дата: Воскресенье, 2009-02-01, 18:47:00 | Сообщение # 82 |
Осваивается
Группа: Человеки
Сообщений: 36
Статус: Offline
| Бл***, не под тем аккаунтом написал... Las это я же, можете тот акк (Las) кикать, я им пользоваться не буду. В плане фильтра. У меня все с плавающей точкой, так что... double inval=0; //предыдущее значение, без фильтра, можно и без плавающей точки double outval=0; //предыдущее значение, с фильтром для каждого значения: Code outval/=k; // k подбирается на глаз, у меня 1.01 outval+=(tmps-inval); // tmps - текущее значение inval=tmps; // в outval теперь отфильтрованное значение Вот так выглядит до и после обработки При возвращении к эмуляции (из дебаггера, паузы и т.д.) outval можно смело обнулять. Для каждого канала естественно свое значение inval и outval P.S. Уже даже удалось реализовать енто в анриле
Сообщение отредактировал molodcov_alex - Воскресенье, 2009-02-01, 20:41:10 |
|
| |
molodcov_alex | Дата: Воскресенье, 2009-02-01, 20:54:05 | Сообщение # 83 |
Осваивается
Группа: Человеки
Сообщений: 36
Статус: Offline
| Вот так вот (надеюсь так правильно) sound.cpp где-нибудь: Code float outval[2]={0}; unsigned short inval[2]={0}; в процедуре flush_snd_frame() после sndcounter.end(bufplay, n_samples); Code for (unsigned k = 0; k < n_samples; k++, bufplay++) { outval[0]/=1.01; outval[1]/=1.01; unsigned short tmpv[2]; *((unsigned long*)tmpv)=sndbuf[bufplay & (SNDBUFSIZE-1)]; outval[0]+=(tmpv[0]-inval[0]); outval[1]+=(tmpv[1]-inval[1]); inval[0]=tmpv[0]; inval[1]=tmpv[1]; sndplaybuf[k]=((((signed short)(outval[1]))&0xFFFF)<<16)| (((signed short)(outval[0]))&0xFFFF); sndbuf[bufplay & (SNDBUFSIZE-1)] = 0; }
Сообщение отредактировал molodcov_alex - Воскресенье, 2009-02-01, 21:06:19 |
|
| |
deathsoft | Дата: Воскресенье, 2009-02-01, 21:27:37 | Сообщение # 84 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Статус: Offline
| Quote (molodcov_alex) Вот так вот (надеюсь так правильно) sound.cpp Большое спасибо, посмотрим, заюзаем. Проблема там не только с АУ, но и с GS и с битом TapeOut (при нажатии на любую кнопку процедура из ПЗУ выставляет TapeOut в 1). П.С. Если будут какието пожелания, доработки и т.п. по поводу унриала, ты их лучше сюда пиши а не на ГЯФ. На ГЯФ народ в основном кричит только дай дай дай, но сам ничего не делает. Единственный кто по унриалу дельную инфу говорил - это Александр Медведев, но его так никто и не услышал, и длина дорожки у всех была хз какая (хотя в документации Макеева даже формула дана как считать длину дорожки). Еще кстати из актуальных задач по унриалу - парсер конфига на чтение/запись - без использования виндовых функций (GetPrivateProfile...), и чтобы при записи все комментарии - тоже записывались на место.
Сообщение отредактировал deathsoft - Воскресенье, 2009-02-01, 21:28:14 |
|
| |
molodcov_alex | Дата: Воскресенье, 2009-02-01, 21:34:42 | Сообщение # 85 |
Осваивается
Группа: Человеки
Сообщений: 36
Статус: Offline
| Quote (deathsoft) Большое спасибо, посмотрим, заюзаем. Проблема там не только с АУ, но и с GS и с битом TapeOut (при нажатии на любую кнопку процедура из ПЗУ выставляет TapeOut в 1). Ну какбы, то что выше написано обрабатывает конечный сигнал, я так понимаю, при пересылке "накопившегося сигнала" в буфер звуковухи.
|
|
| |
deathsoft | Дата: Воскресенье, 2009-02-01, 22:43:21 | Сообщение # 86 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Статус: Offline
| Quote (molodcov_alex) Ну какбы, то что выше написано обрабатывает конечный сигнал, я так понимаю, при пересылке "накопившегося сигнала" в буфер звуковухи. Да, так и есть. Коэффициент k видимо зависит от настроек в конфиге (максимальных громкостей отдельных девайсов), т.к. постоянку носит только часть девайсов и пропорционально максимальной громкости.
|
|
| |
deathsoft | Дата: Воскресенье, 2009-02-01, 23:36:30 | Сообщение # 87 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Статус: Offline
| Кстати нашел бажок в твоих сорцах: Code if (conf.mem_model == MM_PROFI) { if(comp.p7FFD&0x10 && comp.pDFFD&0x20) { // modified ports А должно быть if((comp.p7FFD & 0x10) && (comp.pDFFD & 0x20)) т.к. битовые операции имеют приоритет ниже чем логические.
|
|
| |
robat_e | Дата: Понедельник, 2009-02-02, 03:20:25 | Сообщение # 88 |
Младший одепт
Группа: Человеки
Сообщений: 610
Статус: Offline
| Quote (deathsoft) кричит только дай дай дай Дай релиз!
Мы, роботы-бездельники, не любим понедельники.
|
|
| |
molodcov_alex | Дата: Понедельник, 2009-02-02, 08:21:56 | Сообщение # 89 |
Осваивается
Группа: Человеки
Сообщений: 36
Статус: Offline
| Quote (deathsoft) Коэффициент k видимо зависит от настроек в конфиге (максимальных громкостей отдельных девайсов), т.к. постоянку носит только часть девайсов и пропорционально максимальной громкости. Коэффициент k показывает скорей насколько быстро будет сигнал возвращаться в ноль (разумеется, чем громче, тем дольше). Функция (для постоянного значения сигнала A) вообще должна быть типа f(t)=A*e^(-<какой-то_там_коэффициент>*t). Кстати, этот k должен зависеть (в данном случае) от частоты дискретизации, что-то типа k=1+<нечто, скажем, 441>/fq. Расчитать достаточно, естесствено, всего один раз, например в applyconfig(). P.S. Тут Kurles говорит, что надо бы загрузку bpl (если конечно делать будешь) до applyconfig() вызывать, иначе "брикпоинты аплятся только при входе в дебагер или в окно настроек".
|
|
| |
deathsoft | Дата: Понедельник, 2009-02-02, 11:40:58 | Сообщение # 90 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Статус: Offline
| формула то f(t)=A*e^(-t/tau) где tau = 1/(RC) На счет bpl - не совсем понял зачем оно нужно? Намного лучше сделать возможность реакции на команду ld b,b как на брекпоинт (котоую либо включать либо выключать в конфиге), тогда можно делать любые условные брекпоинты прямо в коде (как на ПЦ с int3). Собственно при отладке АТМ демы - нечто подобное и делали.
Сообщение отредактировал deathsoft - Понедельник, 2009-02-02, 11:43:42 |
|
| |
|
|