Автор Тема: PCem - эмулятор старого PC-железа  (Прочитано 97180 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн SokilOff

  • Пользователь
  • Сообщений: 22
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #720 : 29 Июль 2020, 21:16:22 »
Нагуглил, что для форматирования на нестандартные форматы нужны сторонние тулзы. Уточни какой именно тулзой и в какой формат ты форматировал?
Итак, по шагам.

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). И да, получившийся образ дискеты вполне можно использовать.

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

Оффлайн Softer

  • Пользователь
  • Сообщений: 4219
  • Пол: Мужской
    • Steam
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #721 : 29 Июль 2020, 22:59:51 »
Просто ты не очень представляешь, какие ресурсы могут требоваться при точной эмуляции некоторых устройств
Устройства не эмулируются, эмулируются функции. Для эмуляции функций ввода/вывода/чтения/записи никаких вычислительных ресурсов уровня i9 не нужно.

0. PCem подобные вещи вообще не умеет делать. Для этого нужен форк 86box
4. В эмуляторе выбираем наш дисковод на 2.88М -> New image (скриншот №2) -> вводим имя новой дискеты с расширением, например "new.86f", выбираем её размер (2.88М), RPM mode не трогаем (скриншот №3)
Стоп. Это что за функция? Причём тут "эмуляция Pentium 120/133 которую даже i9 осилит только с возможными просадками"?
Почему к расширению создаваемого файла образа *.86f привязано появление строки выбора RPM? Я сначала назвал образ *.img, в следствии чего получил окно параметров создаваемого образа без строки RPM, а когда дело дошло до форматирования, то PU_1700F сообщил, что "форматирование прервано. не форматируется 0 трек вашей дискеты!". Создав же образ с расширением *.86f форматирование проходит без ошибки. Что это за дичь привязанная к именованию внешних файлов образов дискет?
И опять же повторюсь, что эта кривая функция 86Box совершенно никак не связана с эмуляцией CPU и их тактовыми частотами. Это просто криво заэмулированная функция, ни больше и не меньше. Я, если что, 233MMX эмулировал и на моём i5 получил минимально зафиксированную при форматировании скорость эмуляции - 82%, против твоих 74% при эмуляции 166MMX. И это при том, что разница в однопоточной производительности между нашими процессорами всего +5% у моего клокнутого i5.

Так же я не понимаю в чём уникальность функции создания образов дискет в 86Box относительно PCem? Единственное различие замеченное мной, это возможность выбрать расширение отличное от img в 86Box, которой лучше бы не было, так как у него от этого явно начинает "течь крыша".
Я решил повторить эксперимент на PCem с созданием в нём img образа ожидая дойти до попытки форматирования и ошибки PU_1700F указанной выше в ответ на использование img расширения (какой же бред, сам пишу это и поражаюсь всему происходящему абсурду). Так вот никакой ошибки в PCem я не получил, дискета была успешно отформатирована, а нагрузка от ровных 100% эмуляции на протяжении всего процесса даже близко не приблизилась к 100% на ядро.
226797-0
« Последнее редактирование: 29 Июль 2020, 23:08:15 от Softer »

Оффлайн SokilOff

  • Пользователь
  • Сообщений: 22
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #722 : 29 Июль 2020, 23:24:38 »
Так же я не понимаю в чём уникальность функции создания образов дискет в 86Box относительно PCem?
В том, что 86F - это формат, эмулирующий реальную дискету, и с ним можно делать всё то же самое, что с обычной дискетой, включая нестандартное форматирование, эмуляцию различных типов защит от копирования и т.д. Это так называемый bitstream формат, а img - самый примитивный из возможных sector-based.

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

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

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

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


« Последнее редактирование: 29 Июль 2020, 23:37:26 от SokilOff »

Оффлайн Softer

  • Пользователь
  • Сообщений: 4219
  • Пол: Мужской
    • Steam
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #723 : 30 Июль 2020, 00:47:11 »
Попробуй создать в PCem на img рабочую копию дискет с защитой от копирования, и поймешь, для чего это всё.
Понятно. Идея хорошая, реализация - как всегда.

Оффлайн SokilOff

  • Пользователь
  • Сообщений: 22
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #724 : 30 Июль 2020, 13:42:34 »
И ещё.

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

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

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

Оффлайн Softer

  • Пользователь
  • Сообщений: 4219
  • Пол: Мужской
    • Steam
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #725 : 30 Июль 2020, 13:54:14 »
В данном случае PCem не вернул ошибку, а молча проигнорировал её. "Не реализовано ? Да и фиг с ним, ничего не скажем". Пользователь получает нерабочую болванку и теряется в догадках - что он сделал не так. И таких молчаливых "недоэмулированных" моментов - вагон и маленькая тележка практически во всех поддерживаемых девайсах.
А когда PU_1700F заявляет, что "форматирование прервано, не форматируется 0 трек вашей дискеты!", то пользователь не теряется в догадках - что он сделал не так?

Оффлайн SokilOff

  • Пользователь
  • Сообщений: 22
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #726 : 30 Июль 2020, 14:30:37 »
А когда PU_1700F заявляет, что "форматирование прервано, не форматируется 0 трек вашей дискеты!", то пользователь не теряется в догадках - что он сделал не так?
Пользователь хотя бы видит - что-то пошло не так. А когда "всё нормально было", но в результате ничего не работает - это хуже.

Оффлайн Softer

  • Пользователь
  • Сообщений: 4219
  • Пол: Мужской
    • Steam
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #727 : 30 Июль 2020, 15:00:59 »
Пользователь хотя бы видит - что-то пошло не так. А когда "всё нормально было", но в результате ничего не работает - это хуже.
То есть когда ошибка в процессе форматирования, то это более понятно, чем когда в процессе последующего копирования? Логика конечно есть, но очень притянутая за уши.

Оффлайн SokilOff

  • Пользователь
  • Сообщений: 22
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #728 : 30 Июль 2020, 15:09:25 »
То есть когда ошибка в процессе форматирования, то это более понятно, чем когда в процессе последующего копирования? Логика конечно есть, но очень притянутая за уши.
Если программа форматирования не получает соответствующий "отлуп" от эмулятора (как это делает настоящий 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 образ - всё запишется и будет работать.

Так что дело не в конкретной программе. Дело в корректности эмуляции, в данном случае флоппи-контроллера.
« Последнее редактирование: 30 Июль 2020, 15:42:06 от SokilOff »

Оффлайн Softer

  • Пользователь
  • Сообщений: 4219
  • Пол: Мужской
    • Steam
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #729 : 30 Июль 2020, 15:46:13 »
Если программа форматирования не получает соответствующий "отлуп" от эмулятора (как это делает настоящий FDC), как она поймёт, что произошла ошибка ?
С программой всё понятно. Только пользователь это не программа.

Добавлено позже:
Так что дело не в конкретной программе. Дело в корректности эмуляции, в данном случае флоппи-контроллера.
Никто не оспаривает большее количество заэмулированных функций FDD у 86box. Речь шла о качестве эмуляции этих функций в следствии чего скорость эмуляции просаживается. Что там, гениальный цикл в цикле или ещё чего, я не знаю, но проблема серьёзная.
« Последнее редактирование: 30 Июль 2020, 15:53:28 от Softer »

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Re: PCem - эмулятор старого PC-железа
« Ответ #730 : 30 Июль 2020, 15:55:29 »
Если программа форматирования не получает соответствующий "отлуп" от эмулятора (как это делает настоящий FDC),
какой такой отлуп ? при форматировании дорожки FDC ничего не проверяет, это уже забота программы-форматировщика проверить трек на читаемость после записи, и если она этого не делает то не  будет никаких ошибок.

но тут может быть дело в другом - некоторые эмуляторы (МАМЕ например) держат в памяти "образ" дискет в raw flux-виде, и кастрируют их если нужно до sector-based форматов лишь при выходе из эмулятора или смене диска.
что в этом случае будет происходить я думаю понятно - диск нормально отформатируется и запишется, и защищенный софт будет нормально работать, но лишь до выхода из эмулятора, а при повторном запуске будет упс.

Оффлайн SokilOff

  • Пользователь
  • Сообщений: 22
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #731 : 30 Июль 2020, 16:12:43 »
Никто не оспаривает большее количество заэмулированных функций FDD у 86box. Речь шла о качестве эмуляции этих функций в следствии чего скорость эмуляции просаживается. Что там, гениальный цикл в цикле или ещё чего, я не знаю, но проблема серьёзная.
Сорцы открыты и доступны - ждём помощников-энтузиастов.

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

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

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9386
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #732 : 30 Июль 2020, 16:34:09 »
Не в raw-flux, a в mfm-bitstream.
зависит от эмулятора ? у MAME внутреннее представление образа в виде потока нулей и единиц, с определенной частотой дискретизации, как они и идут с дисковода, то есть flux. а декодирование данных из MFM или FM или GCR делается уже по ходу работы эмуляторами различных FDC.

Оффлайн SokilOff

  • Пользователь
  • Сообщений: 22
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #733 : 30 Июль 2020, 16:45:49 »
зависит от эмулятора ? у MAME внутреннее представление образа в виде потока нулей и единиц, с определенной частотой дискретизации, как они и идут с дисковода, то есть flux. а декодирование данных из MFM или FM или GCR делается уже по ходу работы эмуляторами различных FDC.
Не смотрел, как это реализовано в MAME. Если так, то да, это flux.
Но, как я понимаю, скормить напрямую образ дискеты в любом из flux-форматов ему всё равно нельзя. Или ?

p.s. хотя в случае эмулятора PC мы всё равно возвращаемся на уровень FM/MFM
« Последнее редактирование: 30 Июль 2020, 16:53:39 от SokilOff »

Оффлайн Томахомэ

  • Пользователь
  • Сообщений: 806
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #734 : 22 Сентябрь 2020, 07:53:30 »
В Parkan при переходе во внутренние помещения корабля - как своего, так и чужого - монитор внезапно переключается на системное разрешение, а сам эмулируемый комп намертво виснет с чёрным экраном. Из-за чего, интересно, это с ним на самом деле происходит?

Если что, операционка стоит Win95 (русская версия), биосы перепробовал разные - от Award SiS 496/497 до Shuttle HOT-557, процы - от Pentium OverDrive/83 до Mobile Pentium MMX/120. Аудиокарта всегда строго AWE32, видео - S3 VIRGE DX в паре с Voodoo 2.

Оффлайн Ogr

  • Пользователь
  • Сообщений: 7431
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #735 : 22 Сентябрь 2020, 10:52:40 »
Томахомэ, На сборке эмулятора солд геймс, игра не виснет, Не в программном режиме, Не с 3д ускорением.

Оффлайн Томахомэ

  • Пользователь
  • Сообщений: 806
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #736 : 17 Октябрь 2020, 07:27:47 »
А эмуляцию Roland'ов в PCem ещё так и не завезли, что ли?

Оффлайн gotten

  • Пользователь
  • Сообщений: 4761
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #737 : 20 Октябрь 2020, 16:33:26 »
Есть у кого-нибудь сборка Pcem 15 или 16 с чистым dos? В отличии от win 95-98, я вообще без понятия с чего начинать, что выбирать, если самому устанавливать. Так же и насчет самой версии dos, какая будет предпочтительнее. 6.22 или другая? Не знаю, важно ли это, уточню - игры года от 90 и дальше. В сборке Pcem с win 95 некоторые проблемные dos игры запускал, они работали лучше чем в досбоксе.
Такс, нашел инструкцию, отбой, вроде ничего сложного.
Все установил, интересно, почему некоторые игры вылетают, например Mr.Blobby. 6.22 слишком нов для этой игры что-ли?
« Последнее редактирование: 21 Октябрь 2020, 14:45:31 от gotten »

Оффлайн Drowfan

  • Пользователь
  • Сообщений: 877
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #738 : 02 Ноябрь 2020, 16:03:48 »
Вопрос: эмулирует ли этот эмулятор «Сократа Персонального»? А то хочется посмеяться над безграмотностью, над «средств к существованию» и пр. Вдруг «Сократ» не идет на Windows 8.1 и 10? Конечно, он устарел, зато годится для таких абсурдных переводов.

Оффлайн Yaranga

  • Администратор
  • Сообщений: 13617
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #739 : 02 Ноябрь 2020, 22:47:22 »
Thorenlawar, этот эмулятор эмулирует старое компьютерное железо, а не программное обеспечение. Последний же Сократ вполне работает на Windows 10: https://ofitsialnaya-versiya.org/sokrat-personalnyj/
Если же хочется именно поприкалываться над старыми версиями сократов, почему просто не скачать любую из готовых сборок эмулятора с предустановленными системами и попробовать самому? А такие есть и в этой теме, и особенно в аналогичной на одном дружественном форуме: https://www.old-games.ru/forum/threads/pcem-ehmuljator-pc.68711/

Оффлайн Dumbass

  • Пользователь
  • Сообщений: 136
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #740 : 17 Ноябрь 2020, 22:40:53 »
Много чего добавили: voodoo banshee, voodoo 3, celeron, pentium 2. Пока ещё только исходники. Скоро 17-я версия. Где взять биосы, чтобы это всё заработало? У меня кроме Банши ничего не работает.

Оффлайн Softer

  • Пользователь
  • Сообщений: 4219
  • Пол: Мужской
    • Steam
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #741 : 18 Ноябрь 2020, 01:24:42 »
Много чего добавили: voodoo banshee, voodoo 3, celeron, pentium 2.
Про какой эмулятор речь? В коде PCem не видел Voodoo 3, Celeron, Pentium 2.

Оффлайн Dumbass

  • Пользователь
  • Сообщений: 136
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #742 : 18 Ноябрь 2020, 01:48:07 »

Оффлайн Dumbass

  • Пользователь
  • Сообщений: 136
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #743 : 18 Ноябрь 2020, 01:48:42 »

Оффлайн Dumbass

  • Пользователь
  • Сообщений: 136
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #744 : 18 Ноябрь 2020, 01:49:53 »

Оффлайн Dumbass

  • Пользователь
  • Сообщений: 136
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #745 : 18 Ноябрь 2020, 01:50:17 »


Добавлено позже:
https://github.com/sarah-walker-pcem/pcem/commits?author=sarah-walker-pcem


Добавлено позже:
вот собрал если кому надо: https://dropmefiles.com/tPJ62
« Последнее редактирование: 18 Ноябрь 2020, 02:23:13 от Dumbass »

Оффлайн Dumbass

  • Пользователь
  • Сообщений: 136
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #746 : 18 Ноябрь 2020, 03:11:00 »

Оффлайн Softer

  • Пользователь
  • Сообщений: 4219
  • Пол: Мужской
    • Steam
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #747 : 18 Ноябрь 2020, 03:37:06 »
Dumbass, ты перебарщиваешь с сообщениями. Запихнул бы всё в одно. Спасибо за уточнение.

Оффлайн Dumbass

  • Пользователь
  • Сообщений: 136
  • Пол: Мужской
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #748 : 18 Ноябрь 2020, 07:46:25 »
У меня так и не получилось voodoo 3 завести. Банши работает, а v3 - нет. У кого-нибудь получилось? Как биос должен называться? Понакидал в папку ромс всяких биосов с вуду 3. Не получается. Может оно пока и не должно работать. хз.

Оффлайн Softer

  • Пользователь
  • Сообщений: 4219
  • Пол: Мужской
    • Steam
    • Просмотр профиля
PCem - эмулятор старого PC-железа
« Ответ #749 : 18 Ноябрь 2020, 08:00:49 »
У меня так и не получилось voodoo 3 завести. Банши работает, а v3 - нет. У кого-нибудь получилось? Как биос должен называться? Понакидал в папку ромс всяких биосов с вуду 3. Не получается. Может оно пока и не должно работать. хз.
Та же байда, только я даже с биосом банши вопрос не решил.
В коде очень странно биосы инициализируются. Для каких-то карт имена файлов ромов указаны явно, для каких-то непонятно как, а для биоса Voodoo 3 я не нашёл никакой инициализации в принципе.