Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Реплика Innovation SSI 2001 |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 7 * 8 9 | Печать |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 29 марта 2018 14:16 Сообщение отредактировано: 29 марта 2018 14:18
А в C++ Вы потом память освобождаете через free? В конце программы? |
scg |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 29 марта 2018 14:45 Сообщение отредактировано: 29 марта 2018 14:46
uav1606 Разумеется. Только не через free(), а через delete. |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Может, тогда попробуете через malloc и free? А то насчёт delete я вообще не уверен, под DOS'ом не пользовался. Если что, я сейчас про Turbo С++. |
scg |
uav1606 написал: Как это ни странно, помог farmalloc() и только с huge указателем. Причем, превод компилятора в huge режим эффекта не давал. Пришлось менять типы указателей по всему коду. Удалось выделить два буфера для эмулятора процессора и загрузить файл SID. Посмотрим, что будет дальше. Может, тогда попробуете через malloc и free? |
scg |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 4 апреля 2018 0:11 Сообщение отредактировано: 4 апреля 2018 0:13
Готов релиз для DOS версии: https://stdio.ru/download/ssi-2001/osp2001-0.1.zip Поскольку исходники Open Cubic Player распространялись под лицензией GPL2, то я тоже обязан их опубликовать. Исходный код и последние релизы можно найти здесь: https://stdio.ru/download/ssi-2001/ Было бы неплохо, если бы кто-нибудь проверил минимальную конфигурацию машины, на которой DOS проигрывателя cохранит работоспособность. По поим ощущениям 20-30МГц должно хватить. Запас производительности можно прикинуть нажатием кнопки 'F' (Fast Forward). В этом случае симуляция не синхронизируется с таймером и идет с максимально возможной скоростью. Также, если запустить программу с ключом /V (verbose), то в строке времени отобразится поле TE (Timer Error). Его значение увеличивается каждый раз, когда прерывание от таймера приходит раньше чем завершится обработка предыдущего - то есть тормозит симуляция. |
Fagear
Advanced Member
Откуда: Москва, САО Всего сообщений: 1228 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 янв. 2010 |
scg написал: Не сочтите за рекламу, но именно этим я сейчас займусь онлайн, Было бы неплохо, если бы кто-нибудь проверил минимальную конфигурацию машины, на которой DOS проигрывателя cохранит работоспособность.вот тут. |
Fagear
Advanced Member
Откуда: Москва, САО Всего сообщений: 1228 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 янв. 2010 |
scg написал: В общем, получил некоторые результаты. Было бы неплохо, если бы кто-нибудь проверил минимальную конфигурацию машины, на которой DOS проигрывателя cохранит работоспособность. Версию под win9x проверял вплоть до Pentium (на Socket 5) на частоте 60x1.5=90 МГц. Тянет без проблем, запас ещё большой по скорости. Версия под DOS дала такие результаты: 386DX-33 хватает с минимальным запасом, 386SX-40 тоже вроде хватает, но запаса практически нет. 286-20 уже явно не хватает, воспроизведение заторможенное. Сюрпризом же стало то, что оно завелось даже на TurboXT машине! Единственное, была выведена только одна строка (название композиции), а имя автора, копирайт и время не вывелось. Однако воспроизведение пошло! Пусть и ооооочень медленно, но тем не менее. Однако, при ближайшем сравнении я обнаружил, что этот плеер звучит немного иначе, чем старый вариант под win9x под кодовым именем "ssidpl9x" (он же "ssid_w9x"). Вот один пример. Кусок на ssid_w9x Кусок на osp2001-win На мой слух osp2001 съедает часть звуков, комбинированные звуки "рассыпаются" по времени, в целом звучит немного странно. Возможно, слишком редко отправляет данные в SID? |
scg |
Fagear написал: Спасибо, посмотрел запись вашего стрима. Я хоть и знал, что на 286-м он не пойдет, но надеялся до последнего. В общем, получил некоторые результаты. Fagear написал: По правде говоря, скорость обновления задается в заголовке файла, либо выставляется настройкой Коммодоровского таймера CIA1. И то и другое я учитываю. Тут нужно брать конкретный SID и разбираться. На мой слух osp2001 съедает часть звуков, комбинированные звуки "рассыпаются" по времени, в целом звучит немного странно. Возможно, слишком редко отправляет данные в SID? С другой стороны, есть SID файлы, в которых передача данных на SID идет постоянно, поэтому требуется точная потактовая симуляция процессора 6510. Такие файлы называются RSID (Real SID) и у них специально изменен Magic Dword в заголовке, чтобы отличать их от обычных SID. Кроме Magic'ов эти два вида файлов никак не отличаются. Так вот, ssidpl9x умеет играть такие файлы, а osp2001 - нет (там симуляция процессора более грубая). Человек, который грабил этот SID вполне мог по ошибке указать неверный тип. Тут, повторюсь, мне нужно где-то взять этот файл и поразбираться - возможно что и у меня баг. |
Fagear
Advanced Member
Откуда: Москва, САО Всего сообщений: 1228 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 янв. 2010 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 8 апреля 2018 7:56 Сообщение отредактировано: 8 апреля 2018 7:56
scg написал: Увы, я пока в технические детали ни эмуляции, ни формата *.SID не углублялся, но, если что, это был файл Zardax_One.sid. (Joe Barwick (Stainless Steel)). С другой стороны, есть SID файлы, в которых передача данных на SID идет постоянно, поэтому требуется точная потактовая симуляция процессора 6510. Такие файлы называются RSID (Real SID) и у них специально изменен Magic Dword в заголовке, чтобы отличать их от обычных SID. Более широкого сравнения пока не проводил, потыкал только несколько треков. Если позволите, есть немного пожеланий с софтине: 1) я пока не разобрался, как переключать несколько композиций внутри одного файла, софтина пишет что их несколько, но кнопок переключения не нашёл; 2) не пробовал пока, но предполагаю, что вряд ли заработает, поддержку файлов "_2SID", они явно ориентированы на воспроизведение на системах, где установлены сразу два чипа SID; ssidpl9x их не воспроизводит (по-моему вообще вылетает); как следствие - хотелось бы видеть ключи для задания I/O адреса для каждого из SID'ов (ну или хотя бы одного, если поддержка 2-х будет сложной или невозможной); P.S. Плагин к foobar2000 умеет воспроизводить такие "двойные" файлы. 3) в виду того, что я не разбирался в деталях эмуляции - я не в курсе... но всё же, есть какая-то возможность отследить, когда мелодия зацикливается? очень много *.SID'ов (которые, очевидно, были в качестве фоновой музыки) зацикливаются и когда пытаешься сделать их запись - сидишь гадаешь в неведении, где же этот стык... было бы отлично иметь либо индикацию "пошло по N кругу" или возможность остановки по факту зацикливания; 4) на какую частоту чипа SID рассчитывает плеер? DuoSID сейчас умеет и частоту C64 PAL, и частоту C64 NTSC, и частоту SSI-2001, и даже HardSID. Если есть возможность, то ключик для частоты тоже неплохо бы видеть; 5) приятно бы заиметь функции, аналогичные ssidpl9x: возможность отключать раздельно каждый "голос" чипа и фильтры; последнее особенно полезно для воспроизведения на "подбитых" чипах; #зажрался |
scg |
Fagear написал: Скачал, посмотрю, как будет свободное время. У меня, к сожалению, в ближайший месяц перегруз по работе намечается, поэтому скоро не обещаю. но, если что, это был файл Zardax_One.sid Fagear написал: 1) Инструкция появляется, если запустить программу без параметров или с ключом /?. Не совсем очевидно, поэтому в следующем релизе добавлю usage в Readme.txt Если позволите, есть немного пожеланий с софтине: 2) Не думаю, что это будет сложно. Сделаю. 3) А вот это действительно проблема. Музыка в формате SID - это на самом деле программа для C64, и по этому невозможно определить ни начала музыки, ни окончания. Я попробую что-нибудь придумать, но вряд ли это получится. 4) Здесь не совсем понял. Частота SID'а обычно указывается в заголовке файла. Проигрыватель ее может учитывать только для эмуляции SID'а, эмуляции процессора (если модель точная) и настройки таймера. Поскольку SID у нас аппаратный то частоту мы можем только вывести на экран (она и выводится, если запустить программу с ключом /V ), а перемычки придется выставлять вручную. Может и можно попробовать скорректировать значения регистров, которые зависят от времени, но там разница в частотах всего около 3.7%, а разрядность регистров не особенно большая. Но, можно подумать. 5) Я хоть и не собирался это делать, но ничего сложного в такой доработке нет. Сделаю. |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 7 * 8 9 | Печать |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Реплика Innovation SSI 2001 |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |