Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Реплика Innovation SSI 2001
RSS

Реплика Innovation SSI 2001

Воссоздание участниками форума этой ISA8 карты.

<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 7 * 8 9
Печать
 
scg
Newbie


Всего сообщений: 108
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2017
uav1606 написал:
[q]
Единственный нюанс, который я помню, это что по умолчанию DOS запускаемой программе (особенно это касается COM-файла) выделяет всю доступную память, и, соответственно, выделить её функцией 48h не получится. Помнится, я её сначала освобождал, а потом заново выделял. :-)
[/q]
Этого я не знал. С другой стороны, во-первых, не понятно, сколько нужно оставить памяти, тем более, что программа использует димамическое выделение объектов. А во-вторых, я правильно понимаю, что по умолчанию вся доступная память доступна для аллокатора c++? Однако, у меня не получается выделить 2 блока по 64К: по выходу из программы появляется о шибка о проблемах с памятью и невозможностью запустить command.com. На самом деле памяти нужно не очень много: 64K - RAM, 64K - ROM и IO, еще 64K временно на загрузку файла, плюс немного на динамические структуры и объекты. 640К действительно должно хватить, но не хвататет. Сейчас смотрю в сторону EMS.
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
А в C++ Вы потом память освобождаете через free? В конце программы?
scg
Newbie


Всего сообщений: 108
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2017
uav1606
Разумеется. Только не через free(), а через delete.
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
Может, тогда попробуете через malloc и free? А то насчёт delete я вообще не уверен, под DOS'ом не пользовался. Если что, я сейчас про Turbo С++.
scg
Newbie


Всего сообщений: 108
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2017
uav1606 написал:
[q]
Может, тогда попробуете через malloc и free?
[/q]
Как это ни странно, помог farmalloc() и только с huge указателем. Причем, превод компилятора в huge режим эффекта не давал. Пришлось менять типы указателей по всему коду. Удалось выделить два буфера для эмулятора процессора и загрузить файл SID. Посмотрим, что будет дальше.
scg
Newbie


Всего сообщений: 108
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2017
Готов релиз для 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 написал:
[q]
Было бы неплохо, если бы кто-нибудь проверил минимальную конфигурацию машины, на которой DOS проигрывателя cохранит работоспособность.
[/q]
Не сочтите за рекламу, но именно этим я сейчас займусь онлайн, вот тут.
Fagear
Advanced Member


Откуда: Москва, САО
Всего сообщений: 1228
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 янв. 2010
scg написал:
[q]
Было бы неплохо, если бы кто-нибудь проверил минимальную конфигурацию машины, на которой DOS проигрывателя cохранит работоспособность.
По поим ощущениям 20-30МГц должно хватить.
[/q]
В общем, получил некоторые результаты.
Версию под 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
Newbie


Всего сообщений: 108
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2017
Fagear написал:
[q]
В общем, получил некоторые результаты.
[/q]
Спасибо, посмотрел запись вашего стрима. Я хоть и знал, что на 286-м он не пойдет, но надеялся до последнего. :)


Fagear написал:
[q]
На мой слух osp2001 съедает часть звуков, комбинированные звуки "рассыпаются" по времени, в целом звучит немного странно. Возможно, слишком редко отправляет данные в SID?
[/q]
По правде говоря, скорость обновления задается в заголовке файла, либо выставляется настройкой Коммодоровского таймера CIA1. И то и другое я учитываю. Тут нужно брать конкретный SID и разбираться.
С другой стороны, есть SID файлы, в которых передача данных на SID идет постоянно, поэтому требуется точная потактовая симуляция процессора 6510. Такие файлы называются RSID (Real SID) и у них специально изменен Magic Dword в заголовке, чтобы отличать их от обычных SID. Кроме Magic'ов эти два вида файлов никак не отличаются. Так вот, ssidpl9x умеет играть такие файлы, а osp2001 - нет (там симуляция процессора более грубая). Человек, который грабил этот SID вполне мог по ошибке указать неверный тип.
Тут, повторюсь, мне нужно где-то взять этот файл и поразбираться - возможно что и у меня баг.
Fagear
Advanced Member


Откуда: Москва, САО
Всего сообщений: 1228
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 янв. 2010
scg написал:
[q]
С другой стороны, есть SID файлы, в которых передача данных на SID идет постоянно, поэтому требуется точная потактовая симуляция процессора 6510. Такие файлы называются RSID (Real SID) и у них специально изменен Magic Dword в заголовке, чтобы отличать их от обычных SID.
[/q]
Увы, я пока в технические детали ни эмуляции, ни формата *.SID не углублялся, но, если что, это был файл Zardax_One.sid. (Joe Barwick (Stainless Steel)).
Более широкого сравнения пока не проводил, потыкал только несколько треков.

Если позволите, есть немного пожеланий с софтине:
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: возможность отключать раздельно каждый "голос" чипа и фильтры; последнее особенно полезно для воспроизведения на "подбитых" чипах;

#зажрался
<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 7 * 8 9
Печать
Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Реплика Innovation SSI 2001
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS