Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - SokilOff

Страницы: [1]
1
Теперь выдерживать конкуренцию с 86box ему будет весьма непросто - над одним только расширением базы железа придётся о-о-о-оо-ооой как потрудиться.
Проблема в том, что в 86box добавилось большое количество однообразных железок, которые не привнесли практически ничего нового.
Ну и потом всегда можно сделать так же, как когда-то сделал 86box с PCem - просто взять у конкурента готовый код. Как говорится, добро пожаловать в мир открытых исходников.

А 86box стал быстрее или все осталось как прежде? На старом железе Pcem работает шустрее.
Всё, как прежде.

2
Внезапно:
www.pcem-emulator.co.uk

"Иногда они возвращаются".

3
PCem:
https://github.com/sarah-walker-pcem/pcem/

86box:
https://github.com/86Box/86Box

VARCem:
https://github.com/VARCem/VARCem

Всё доступно и открыто, никто код не прячет. Присоединяйтесь, помогайте развивать и улучшать.

4
Последние новости с оф.сайта:

Цитата
Just a quick note to say that I (Sarah Walker) have decided to call it quits. Thanks to those who sent supportive messages, they're genuinely appreciated. Also thanks to those who have supported me and the project over the last decade or so.

If anyone is interested in taking over the project & github repo, please contact me.

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

Такие дела.

5
зависит от эмулятора ? у MAME внутреннее представление образа в виде потока нулей и единиц, с определенной частотой дискретизации, как они и идут с дисковода, то есть flux. а декодирование данных из MFM или FM или GCR делается уже по ходу работы эмуляторами различных FDC.
Не смотрел, как это реализовано в MAME. Если так, то да, это flux.
Но, как я понимаю, скормить напрямую образ дискеты в любом из flux-форматов ему всё равно нельзя. Или ?

p.s. хотя в случае эмулятора PC мы всё равно возвращаемся на уровень FM/MFM

6
Никто не оспаривает большее количество заэмулированных функций FDD у 86box. Речь шла о качестве эмуляции этих функций в следствии чего скорость эмуляции просаживается. Что там, гениальный цикл в цикле или ещё чего, я не знаю, но проблема серьёзная.
Сорцы открыты и доступны - ждём помощников-энтузиастов.

но тут может быть дело в другом - некоторые эмуляторы (МАМЕ например) держат в памяти "образ" дискет в raw flux-виде, и кастрируют их если нужно до sector-based форматов лишь при выходе из эмулятора или смене диска.
Не в raw-flux, a в mfm-bitstream. Про MAME не скажу, а 86box (*.86f) и PCE (*.pri) делают именно так.

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

7
То есть когда ошибка в процессе форматирования, то это более понятно, чем когда в процессе последующего копирования? Логика конечно есть, но очень притянутая за уши.
Если программа форматирования не получает соответствующий "отлуп" от эмулятора (как это делает настоящий FDC), как она поймёт, что произошла ошибка ?

Дело-то не в PU_1700. Прога не виновата.

Другой эксперимент.
Берём образы IBM DOS 7.0, пытаемся в PCem записать их на дискеты штатными IBM'овскими программами. Первый диск - стандартный на 1.44М, пытаемся записать образ dsk. Монтируем пустой (или не пустой, без разницы) стандартный img образ на 1.44М, проверяем, что он нормально читается. Дальше:
loaddsk disk1.dsk a:

После 1% получаем сообщение "cannot format target disk". Повторюсь, это ещё не .XDF на 1.88М, это обычный диск на 1.44M. В результате корневой каталог выглядит нормально, внутри файлов - мусор.

Делаем то же самое в 86box - всё работает, диск записывается штатно. XDF образы можно даже не записывать и использоваться прямо так. При желании ради эксперимента можно записать такой XDF файл, допустим, на 86F образ - всё запишется и будет работать.

Так что дело не в конкретной программе. Дело в корректности эмуляции, в данном случае флоппи-контроллера.

8
А когда PU_1700F заявляет, что "форматирование прервано, не форматируется 0 трек вашей дискеты!", то пользователь не теряется в догадках - что он сделал не так?
Пользователь хотя бы видит - что-то пошло не так. А когда "всё нормально было", но в результате ничего не работает - это хуже.

9
И ещё.

Цитата
Так вот никакой ошибки в PCem я не получил, дискета была успешно отформатирована

В данном случае PCem не вернул ошибку, а молча проигнорировал её. "Не реализовано ? Да и фиг с ним, ничего не скажем". Пользователь получает нерабочую болванку и теряется в догадках - что он сделал не так. И таких молчаливых "недоэмулированных" моментов - вагон и маленькая тележка практически во всех поддерживаемых девайсах.

Увы, ситуация типична для всех эмуляторов. Где-то в большей степени, где-то в меньшей.

10
Так же я не понимаю в чём уникальность функции создания образов дискет в 86Box относительно PCem?
В том, что 86F - это формат, эмулирующий реальную дискету, и с ним можно делать всё то же самое, что с обычной дискетой, включая нестандартное форматирование, эмуляцию различных типов защит от копирования и т.д. Это так называемый bitstream формат, а img - самый примитивный из возможных sector-based.

Есть и третий тип дискетных образов - flux-форматы (грубо говоря - магнитный поток без постобработки). Примеры - KF (Kryoflux), SCP (Supercard Pro) и т.д. Использовать их напрямую в эмуляторах не имеет смысла - для декодирования/конвертации требуются ещё более значительные вычислительные ресурсы.

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

Цитата
Так вот никакой ошибки в PCem я не получил, дискета была успешно отформатирована
И на неё можно записать файл размером с полный объём дискеты и затем прочитать его ? Я попытался записать на эту дискету файл и моментально получил "Sector not found", что абсолютно ожидаемо.

Цитата
Почему к расширению создаваемого файла образа *.86f привязано появление строки выбора RPM?
Потому что формат позволяет эмулировать дискеты, записанные на дисководах с более низким RPM, по сравнению со стандартными значениями.



11
Нагуглил, что для форматирования на нестандартные форматы нужны сторонние тулзы. Уточни какой именно тулзой и в какой формат ты форматировал?
Итак, по шагам.

0. PCem подобные вещи вообще не умеет делать. Для этого нужен форк 86box

1. Скачиваем с Old-DOS популярную утилиту для создания и чтения дискет нестандартных размеров PU_1700, вот тут:
http://old-dos.ru/dl.php?id=2372

Чтобы не загромождать топик, просто дам ссылку на страницу со скриншотами:
https://imgur.com/a/7tZHHlL

2. Загружаем любой конфиг с DOS, заходим в каталог с утилитой и запускаем pu_1700.com (скриншот №1)
3. Запускаем форматёр из комплекта программы: pu_1700f.com
4. В эмуляторе выбираем наш дисковод на 2.88М -> New image (скриншот №2) -> вводим имя новой дискеты с расширением, например "new.86f", выбираем её размер (2.88М), RPM mode не трогаем (скриншот №3)
5. Нажимаем Ctrl-Alt-P, всплывает наш форматёр. Выбираем дисковод, допустим это диск А: (скриншот №4)
6. "Делать, так по-большому". В меню выбора формата возьмём максимально возможный вариант, предоставляемый форматёром из комплекта PU_1700 для дискет на 2.88М - 83 трека и 41 сектор на трек (скриншоты №5, 6 и 7)
7. Кнопкой Tab заходим в сервисное меню и немного уменьшим значение gap3 - с 35 до 15, например (скриншот №8). Жмём enter и начинаем форматирование.
8. Смотрим, что происходит со скоростью в заголовке окна эмулятора (скриншот №9)
9. Ждём окончание операции и смотрим на результат (скриншоты №10 и 11). И да, получившийся образ дискеты вполне можно использовать.

Цитата
Эта процедура просто не может тормозить эмуляцию, так как там вообще не производится никаких вычислений.
Просто ты не очень представляешь, какие ресурсы могут требоваться при точной эмуляции некоторых устройств, особенно если они работают в главном потоке программы (том же, что и виртуальный процессор).

12
В любом случае это преувеличение. На моём ведре эмуляция P166MMX/ATI(Mach64 GX)/SB16/Voodoo2 всегда идёт фуллспид, кроме отдельных графических 2D операций на виндовых библиотеках, чего уж там говорить про i9.
Т.е. уже не всегда.

Всё зависит от исполняемого кода и конкретных операций. Я сейчас ради эксперимента на своём ведре (i7 4770K) на конфиге P166MMX под голым DOS отформатировал образ дискеты 86F 2.88М на нестандартный объём. Получил 76-80% скорости системы на данной операции.

В общем-то я это подозревал. В ченджлоге, правда,  RichardG867 и OBattler пишут, что не только...
Не только. Для полноценной работы ещё нужна корректная эмуляция соответствующих SuperIO-чипов, флэш-памяти и т.д. Но на общую скорость работы это никак не влияет.

13
Ещё интересно, что другие виртуальные материнки на i440BX и процессоры к ним подходящие работают примерно так же, как если там выбирать VPC
От VPC там только BIOS, который (как и все остальные машины) работает на том же движке рекомпилятора. Поэтому заметной разницы нет - ей неоткуда взяться.

Кроме того, при скорости в 20-30-40% от реальной может не только заикаться звук, там вообще возможны любые "чудеса".

14
Вкратце дополню новость тем, что это должно быть и чем является сейчас:
Помните Virtual PC, который умеет работать чуть ли не с той скоростью, которая есть у хостовой системы, но имеет свои ограничения: видеокарта эмулируется только древняя и примитивная S3 Trio, дополнительных 3D-ускорителей подключать нельзя, на Windows 8, 8.1 и 10 без костылей не работает (это, впрочем, не такая уж и проблема, поскольку костыли находятся быстро и работают нормально), звуковая карта - только Creative SB16... Так вот теперь эмулятор 86box, если выбрать машину со Slot1 и в ней VPC, можно к этой машине прикрутить любую видеокарту из списка, можно подключить одну из трёх эмулируемых 3DFX Voodoo, можно подключить любую звуковую карту из списка, ну и любую сетевую карту из списка... Но минус пока только один: работает это не так быстро, как хотелось бы.
Наверно нужно кое-что пояснить.

Virtual PC - это гипервизор, благодаря чему он способен использовать ресурсы хоста практически на полной скорости. PCem / 86box / VARCem - это эмуляторы, в которых код исполняемой программы декомпилируется и выполняется на интерпретаторе CPU, либо повторно рекомпилируется небольшими блоками и затем выполняется.

Добавление быстрых Mobile Pentium и любых Pentium II - это эксперимент. Разрабы 86box надеялись, что новый динамический рекомпилятор из PCem v16 будет работать существенно быстрее. Но чуда не случилось, и машины с высокой тактовой частотой эмулируются в разы медленнее их реальной скорости. На самых быстрых на сегодняшний день хостовых процессорах (AMD Ryzen 39xx / Intel Core i9 9xxx) можно сэмулировать на полной скорости что-то вроде Pentium 120/133. Но даже тут возможны просадки производительности ниже 100%. Про эмуляцию даже самых медленных PII 233 и говорить нечего - там и половины реальной скорости не будет. А вот 10-15% - это запросто. Т.е. оно работает, но порой так медленно, что лучше бы вообще не работало.

Что делать ? Либо ждать, когда современные процессоры увеличат производительность минимум в 3-4 раза в расчёте на одно ядро (при нынешних темпах прогресса - лет через 8-10), либо самим писать движок рекомпилятора, который будет работать в несколько раз быстрее. На сегодня среди разрабов 86box нет никого, кто мог бы написать с нуля свой рекомпилятор. Оба используемых сейчас (старый и новый в development-версии) - из PCem. Более того, в некоторых случаях лучше работает старый, в некоторых других - новый. Однозначно сказать, какой из них лучше, невозможно.

Так что с процессорами всё сложно. Скажу больше. Используемый сейчас код сопроцессора очень кривой. Как выразился разработчик PCem - "это демо для развлекательных целей".

Цитата
В целом. Система работает странно, скорость то вырастает, то падает. Но учитывая то, насколько процесс в данном случае нов и толком не отлажен, ждём прогресса.
Скорость работы рекомпилятора сильно зависит от двух факторов:
- исполняемого кода (к примеру самомодифицирующийся код очень сильно замедляет работу)
- процессов, работающих в главном потоке эмулятора (том же, где работает интерпретатор/рекомпилятор)

Так что ещё раз: чудес не бывает.

15
Mystique (оба варианта) очень сырые. Если и пробовать, то пока только на p5 конфигах на базе чипсета 430fx

16
Цитата: Dumbass
Поторопился. Теперь карта появилась в списке выбора, но при запуске эмулятор крэшится. Наверное не доделали.

Потому что это биос от другой карты - Mystique 220. Вот этой:
www.vgamuseum.info/index.php/companies/item/206-matrox-mga-1164sg-mystique-220

А нужен от "обычной", вот этой:
www.vgamuseum.info/index.php/companies/item/205-matrox-mga-1064sg-mystique

"Правильный" биос брать там же.

Драйвера поддерживают ОС от Win 3.1 и выше. На более старых OS карта будет просто работать как стандартная VGA. Эмуляция доделана не полностью, например есть баги на OS/2. Про то, как оно сейчас работает на development-версиях PCem не знаю, но можно посмотреть на свежих билдах 86box, которые поддерживают и обычный Mystique, и 220-й.

17
Ты же сказал, что это будет сделано, а не год как уже существует.
Если скачать с сайта VARCem инсталлятор, то все ROM'ы уже в нём.

Цитата
Меня интересует Voodoo 2 SLI, который тормозит игры вместо буста
Тут мимо - код Voodoo / Voodoo2 тот же, что и в PCem (и другого не будет). Сеть пока тоже мимо, но в планах есть VNS (Virtual network switch).

Цитата
хоть что-то для примера хотелось бы услышать
Из заметного - большее количество поддерживаемых девайсов (машины, видео, scsi-контроллеры, мыши и т.д.). Как следствие - для каждой операционки удобнее подбирать железо из её времён. Есть продвинутый формат флоппи-образов 86f, в который можно дампы конвертировать защищённых от копирования дискет. Есть локализация. Остальное незаметно юзеру (например когда в PCem не сделана эмуляция какого-то регистра какой-то железки или порта, из-за чего софт может подвисать, а в 86box/VARCem - сделана).

Нормальной документации пока нет ни у одного из этих эмулей, увы.

p.s.
Цитата
Опять какие-то пространные описания.
Трудно им оказалось работать вместе. Не сошлись характерами :D


18
Нет. Это разные карты на одном чипе. Tseng ET4000AX это референсная версия с ромом ET4000.BIN.
В плане эмуляции - практически одно и то же. Просто "корейский вариант" использует дополнительный ROM с фонтами. Добавил:
https://yadi.sk/d/oH6NgO7n94CVYQ
Внутри ещё драйвер HECON.SYS для отображения корейского фонта.

Цитата
К сабжу и его форкам имеют отношение десятки других производителей, что в разы увеличивает шанс возникновения претензий со стороны кого либо из них.
За год с лишним существования форка претензий не было.

Цитата
От того же 86Box только одна польза, что у него билды оптимизированные под разные поколения процов
Не только. В 86box/VARCem целый ряд устройств эмулируется полнее и аккуратнее. В отличие от PCem, на совместимость тестируются даже беты разных ОС. Опять же собственный формат образов дискет, поддерживающий защищённые от копирования софтины. Мультиязычная поддержка (VARCem).

Цитата
А VARCem с какой целью создавался?
Скажем так: у девелоперов 86box и VARCem оказались слишком разные взгляды на архитектуру эмулятора и приоритеты в разработке.

19
угу, расскажи это нинтенда. а то они не в курсе, что их не волнуют ромы их игр 25+ летней давности
Nintendo в этом плане бесноватые, факт. Но к сабжу и его форкам это никакого отношения не имеет.

20
Спасибо, но Trigem Korean VGA упорно не хочет появятся в меню выбора графики
Trigem Korean VGA - это Tseng ET4000AX

Цитата
А с правообладателями они уже договорились или на свой страх и риск?
Правообладатели в курсе. Им, в принципе, всё равно - ROM'ы 20-летней и более давности уже никого не волнуют. Но если вдруг будут претензии, всегда можно выложить ROM pack на archive.org и дать ссылки (или даже скачивать непосредственно из эмулятора).

21
Паки ромов собраны "как всегда". Выделенных красным не хватает.
Вот они: https://yadi.sk/d/lhlUiBh6iTl9PQ

p.s. В VARCem будет сделано проще - всё в инсталляторе.

22
в каких то местах чуть медленнее, в каких то чуть быстрее. меняю р120 на р150, так и эмуляция чаще падает до 90-80%... ни каких улучшений по производительности с этой новой рекомпиляцией незаметна

По словам автора PCem, ситуация такая:
Цитата
the new x86 recompiler is perhaps slightly faster than the old on modern CPUs (i7-7700k and Ryzen 5 something-or-other), but I've seen up to 25% uplift on older systems, eg Core 2 Duo
В вольном переводе: новый рекомпилятор, возможно, чуть быстрее старого на современных процессорах (вроде таких, как i7-7700k и Ryzen 5), но на более старых (например Core 2 Duo) автор видел прирост до 25%. Т.е. "где-то чуть быстрее, где-то чуть медленнее" - это нормально.

Цитата
меняю р120 на р150, так и эмуляция чаще падает до 90-80%
Скорости CPU хост-машины начинает не хватать на p150.

Страницы: [1]