1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

DOSBox. Инструкция по использованию

Тема в разделе "Кладезь мудрости", создана пользователем Virgil, 3 авг 2006.

  1. Virgil Администратор

    Virgil

    Администратор

    Регистрация:
    2 янв 2005
    Сообщения:
    11.143
    Статья по использованию DOSBox на данный момент находится в нашей wiki и разделена на несколько частей.

    DOSBox в "вопросах и ответах".

    О DOSBox'е.
    - Что это такое и зачем оно нужно?
    - Какую версию использовать?
    - Как запустить игру в DOSBox'е?
    - Как запустить PC-booter игру (т.е. игру, запускающуюся напрямую с образа дискеты)?

    Команды DOSBox'а.
    - Я запустил DOSBox — получил чёрный экран и командную строку, что писать?
    - Как мне получить содержимое папки с игрой в DOSBox’е?
    - У меня есть образ диска/дискеты и я не хочу его записывать на реальный носитель или загружать в виртуальный привод для игры, есть ли способ подключать образ в DOSBox'е напрямую?

    Горячие клавиши DOSBox'а.
    - Как перевести игру в полноэкранный режим?
    - Как записать видео-ролик или сделать скриншот игры? Как записать музыку?
    - У меня не проигрываются видеоролики, записанные в DOSBox'е!
    - Игра идет слишком быстро/медленно, что делать?
    - Есть ли в DOSBOx'е возможность сохраняться в любой момент (как например в эмуляторе Super Nintendo)?
    - Как переназначить клавиши в DOSBox'е?

    Частые проблемы при запуске игр.
    - На моем ноутбуке при переходе в полноэкранный режим изображение глючит или игра вообще вылетает.
    - Картинка сжата или, наоборот, хочется, чтобы пропали пустые полосы по бокам экрана в полноэкранном режиме
    - Где мне искать файл настроек dosbox.conf?
    - В игре нет звука или музыки, хотя они должны быть
    - Я монтирую диск с игрой, как написано, перехожу на него и запускаю игру с помощью команды GAMES\GAME\GAME.EXE (пример), но ничего не работает.

    DOSBox для пользователей.

    DOSBox для знатоков.

    Прочие полезные ссылки:

    DOSBox.conf - полное описание.

    Примеры запуска игр в DOSBox.

    Краткая инструкция по запуску glide-игр в особой сборке DOSBox.

    Описание DOSBox.

    Русский перевод интерфейса DOSBox и ридми-файла к нему (с официального сайта) (продублировано в аттаче)


    Видео на 10 минут про основные моменты


    Относительно самой темы


    Здесь обсуждается только использование программы DosBox для запуска старых DOS же игр. Когда описываете проблему - пишите о ней развёрнуто т.е. что делали, в какой последовательности, где происходит ошибка и т.п. Все сообщения, не удовлетворяющие этим условиям будут удаляться без предупреждения - не хочу видеть здесь помойку. Та же учесть постигнет нетлёнки авторов, задающих вопросы, разобранные в этом посте. Так, что соизвольте сначала поискать ответ на интересующий вас вопрос.
     

    Вложения:

    Последнее редактирование: 15 июн 2021
    RobinGood, ZaRR, Mel Shlemming и 91 другим нравится это.
  2.  
  3. Ardash

    Ardash

    Переводчик

    Регистрация:
    5 окт 2017
    Сообщения:
    1.019
    Можно попробовать в лоб заменить определение в FLUIDSYNTH include\fluidsynth\log.h
    70: typedef void (__cdecl *fluid_log_function_t)(int level, char* message, void* data);
    --- добавлено 30 июл 2022, предыдущее сообщение размещено: 30 июл 2022 ---
    А вообще если стоит вопрос просто обойти ошибку, то можно попробовать тупо через дизасемблирование отключить проверку, которая приводит к выводу ошибки:
    картинка Иды

    Надо найти в dosbox.exe этот блок

    и заменить [74 7F] (jz (jump if zero) вперед на 0x7F) на [7B 7F] (jmp (jump) вперед на 0x7F)
    Результат
     
    Последнее редактирование: 30 июл 2022
  4. netsky2004

    netsky2004

    Регистрация:
    31 янв 2007
    Сообщения:
    1.434
    Ошибку нашел. libpcap не совместим с C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\inttypes.h неверно у разработчиков был какой то секретный libpcap
     
    Последнее редактирование: 31 июл 2022
  5. Ardash

    Ardash

    Переводчик

    Регистрация:
    5 окт 2017
    Сообщения:
    1.019
    Вполне может быть, а судя по давности лет это так и было, использовалась другая более ранняя версия библиотеки.
    Так как проект заброшен, в идеальном случае нужно подбирать те версии библиотек и те инструменты, которые использовались на тот момент. Если даже взять полностью тот проект с теми библиотеками и начать собирать современными инструментами, есть очень ненулевая вероятность, что он не соберется из-за заговора массонов против... того, что часть функций из системных библиотек прошла стадию исключения из стандарта в пользу других.

    Как показала практика, проект можно(!) собрать, но для этого надо приложить усилия по поиску библиотек, их связке и адаптации исходных кодов под желаемые инструменты.
    Если нет желания возиться с заброшенным кодом самому, можно попробовать обратиться к разработчику или тому, кто готов этим заняться. Таковы реалии работы с заброшенными ветками.
     
    Последнее редактирование: 31 июл 2022
  6. kreol Старший офицер Чёрной Гвардии

    kreol

    Администратор

    Регистрация:
    2 июл 2007
    Сообщения:
    112.512
    @Ardash, не нужно, пожалуйста, грубить пользователю @netsky2004 (надеюсь, ты правильно истолкуешь моё сообщение).
     
    Ardash нравится это.
  7. Ardash

    Ardash

    Переводчик

    Регистрация:
    5 окт 2017
    Сообщения:
    1.019
    Приношу извинения. Создается впечатление, что на теорию заговора проще все списать. Я выше показал, что толком ничего не зная о проекте, часа за два вполне реально восстановить весь набор библиотек. Осталось потратить время на подбор версий и разобраться в конкретных отличиях версий компиляторов и сопутствующих системных библиотек, а также в эволюции имеющейся частичной поддержки POSIX в компиляторах от Microsoft.
     
    Последнее редактирование: 31 июл 2022
  8. netsky2004

    netsky2004

    Регистрация:
    31 янв 2007
    Сообщения:
    1.434
    Насчет Sound_GetDuration это было в каком то модуле, который либо навсегда утрачен (может сайт удалили или файлы с сервера и ни у кого не сохранился) либо вообще не был написан, пруфов ведь уже нет что такое в истории существовало, значит Sound_GetDuration - такого не существует. Если заккоментить, то появляется целая орава ошибок и всё, теперь скомпилировать исходник уже нельзя. У кого сохранились полные и рабочие коды исходники к DOSbox SVN Daum где есть модуль IDE для гостевых ОС отпишитесь. Хотя если SVN Daum заброшен и автор пропал, можно собрать исходник DOSBox-X но у меня комп не последней модели и ОС не самая новейшая, не уверен будет работать на VS2013
     
    Последнее редактирование: 31 июл 2022
  9. Ardash

    Ardash

    Переводчик

    Регистрация:
    5 окт 2017
    Сообщения:
    1.019
    Вот реализация Sound_GetDuration из старой unstable ветки SDL_sound

    Sint32 Sound_GetDuration(Sound_Sample *sample)
    {
    Sound_SampleInternal *internal;
    BAIL_IF_MACRO(!initialized, ERR_NOT_INITIALIZED, -1);
    internal = (Sound_SampleInternal *) sample->opaque;
    return(internal->total_time);
    } /* Sound_GetDuration */
     
  10. R4kk00n Benched arcade playa

    R4kk00n

    Модератор

    Регистрация:
    28 мар 2005
    Сообщения:
    9.195
    Автор не то чтобы пропал, он сходил в армию, и по возвращении у него интересы изменились
     
    Tigoro нравится это.
  11. Дарк Шнайдер Недопустимо инфантилен

    Дарк Шнайдер

    Регистрация:
    18 окт 2004
    Сообщения:
    21.873
    Кто в армии служил, тот в цирке не смеётся не делает сборок досбокса.
     
  12. Ardash

    Ardash

    Переводчик

    Регистрация:
    5 окт 2017
    Сообщения:
    1.019
    осёл, гружённый золотом, возьмёт любую неприступную крепость. По крайней мере, я не думаю, что автор откажется ответить на какие-нибудь нормально и четко сформулированные вопросы по своему коду.
     
  13. netsky2004

    netsky2004

    Регистрация:
    31 янв 2007
    Сообщения:
    1.434
    С исходниками DOSbox-X еще хуже. Сплошные ошибки. Ни у кого нет целых исходников без ошибок?
     
  14. Tigoro

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    2.938
    Нормальные исходники, нужно ручками править то что спустя десять лет стало ошибками из-за несовместимости с сегодня. И это нормально. А еще архив и все файлы в нем под windows созданы, как минимум configure и autogen.sh нужно сначала пересоздать - кодировка файлов ошибки создает под линукс :-)
    Дополнительные библиотеки у меня не потребовало (видимо все что было нужно, уже из dev стояло). У меня остановилось на этом (решение выше писали - DOSBox. Инструкция по использованию, не проверял как сработает):
    cdrom_image.cpp: In member function ‘virtual int CDROM_Interface_Image::AudioFile::getLength()’:
    cdrom_image.cpp:110:15: error: ‘Sound_GetDuration’ was not declared in this scope; did you mean ‘Sound_GetError’?
    110 | int length = Sound_GetDuration(sample);
    | ^~~~~~~~~~~~~~~~~
    | Sound_GetError
     
  15. netsky2004

    netsky2004

    Регистрация:
    31 янв 2007
    Сообщения:
    1.434
    @Tigoro, зря я устанавливал VS 2015 - поганая станция, поэтому сплошные ошибки. Вернулся к 2013 и обратно к SVN Daum - исключил дополнения с ошибками, но SDLMAIN основной и с ошибкой в виде несуществующей функцией SDL_GetDesktopMode. Полистал весь интернет и узнал что модуль в котором была эта функция безвозвратно утрачен еще в 2005 году, но есть пруфы что такой был, но почему тогда SDL_GetDesktopMode(&width, &height) в sdlmain.cpp? Попробую эту строчку убрать если это не вызовет шквал ошибок и окончательный провал моего эксперимента

    ----------------------

    Наконец то получилось избавится от всех ошибок, но появилась одна новая:
    1>LINK : fatal error LNK1181: не удается открыть входной файл "libintl.lib"

    Это неизвестная статистическая библиотека, а значит неизвестная ошибка
     
    Последнее редактирование: 1 авг 2022
  16. Ardash

    Ardash

    Переводчик

    Регистрация:
    5 окт 2017
    Сообщения:
    1.019
    Самым идеальным решением для сборки кросс-платформенных решений под Windows является minGw или cygWin. Их идеологией является использование максимально совместимых с *nix-системами библиотек и инструментов. Таким образом, сборка проектов чаще всего сводится к
    ./configure
    make
    поиск зависимостей, которые в свою очередь
    ./configure
    make

    Microsoft всю дорогу шла своим путем. По этой причине у нее неполная поддержка POSIX, свои реализации библиотек, даже свои наборы функций, которые они умудридись протащить даже в стандарт Си, но которые реализованы, в итоге, только у Microsoft (см C17 Standard. Annex K. Bounds-checking interfaces)

    Поэтому тот, кто решает идти по пути сборки кросс-платформенного проекта с помощью компиляторов от Visual Studio должен быть морально готов к заводным танцам с большим бубном.

    P.S. Я сам считаю себя приверженцем Visual Studio как редактора кода при разработке, сидя под Windows. Всегда и везде работаю на самой новейшей ее версии, а зачастую, даже использую preview-ветку. По возможности везде, где можно, для себя, настраиваю сборку и разработку через эту IDE, которую, для редактирования кода (на Си, Си++, Си#), считаю на голову выше всех остальных. Но каждому инструменту свое место.
     
  17. netsky2004

    netsky2004

    Регистрация:
    31 янв 2007
    Сообщения:
    1.434
    Ничего нельзя сделать. Вот список библиотек, которые нельзя найти:
    Можно их конечно все исключить из проекта, но есть одна неисключаемая библиотека tbb.lib (tbb_debug.lib) а такую не найти никогда.

    Посмотреть вложение 266857
     
    Последнее редактирование: 2 авг 2022
  18. Ardash

    Ardash

    Переводчик

    Регистрация:
    5 окт 2017
    Сообщения:
    1.019
    Вот не знаю зачем пишу сюда в очередной раз....
    Попробуй, пожалуйста, хотя бы погуглить/пояндексить/подакдакгоить. И перестань писать глупости.

    LibIntl
    libintl.lib - Поиск в Google
    третья ссылка в гугле

    tbb.lib (tbb_debug.lib) libphysfs.lib wpcap.lib - Я на прошлой странице ссылки давал

    gthread-2.0.lib glib.lib - это ты что-то с define намудрил. Это библиотеки из GNOME/GTK - оконной системы.
     
    Последнее редактирование: 1 авг 2022
    Tigoro нравится это.
  19. Tigoro

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    2.938
    @Ardash, пригодится тем, кому это действительно нужно.
     
    Eraser и Ardash нравится это.
  20. netsky2004

    netsky2004

    Регистрация:
    31 янв 2007
    Сообщения:
    1.434
    Проверил, скачал, а исходники содержат несуществующую команду
    \tbb-master\include\tbb/tbb_exception.h(360): error C2039: copy_exception: не является членом "std"
    \tbb-master\include\tbb/tbb_exception.h(360): error C3861: copy_exception: идентификатор не найден
     
    Последнее редактирование: 1 авг 2022
  21. Ardash

    Ardash

    Переводчик

    Регистрация:
    5 окт 2017
    Сообщения:
    1.019
    А зачем убирать #include version.h? Наверное потому что его нету и исходник битый... Зачем читать прилагаемую документацию?
     
  22. netsky2004

    netsky2004

    Регистрация:
    31 янв 2007
    Сообщения:
    1.434
    @Ardash, version.h? Я такой не убирал, ничего в скриптах не трогал, только скачал, открыл солюцию в VS2103 и сделал компиляцию TBB
    Качал этот, значит не тот
    Проверил внутри солюции информация о сильно устаревшем VS 2003 где он был создан. copy_exception оказывается давно отменён
     
    Последнее редактирование: 1 авг 2022
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление