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.272
    Статья по использованию 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
    Явно не хватает сторонних библиотек. Или не прописаны include path'ы
    Pcap.h - libpcap
    Png.h - libpng

    sdl2_sound - это точно не sdl_sound

    Sdl_sound 1.0.3 Announcing SDL_sound 1.0.3 ...
     
    Последнее редактирование: 29 июл 2022
  4. netsky2004

    netsky2004

    Регистрация:
    31 янв 2007
    Сообщения:
    1.452
    Сделал по новой по самой детальной и длинной инструкции. Всё равно ничего нельзя сделать много не хватает:
    Дайте мне полный исходник
     
    Последнее редактирование: 30 июл 2022
  5. Ardash

    Ardash

    Регистрация:
    5 окт 2017
    Сообщения:
    1.019
    Вот небольшая краткая инструкция по сборке DOSBoxSVN-Daum под Visual Studio.
    Пункт первый (и единственный). Не надо собирать DOSBoxSVN-Daum под Visual Studio.
    Он использует достаточно большое количество компонентов, которые в свою очередь надо собирать из исходников. Большинство исходников не подготовлено для сборки под Visual Studio и требуется сборка в unix-way стиле (а это нормально реализуется только через MinGW или cygWin) или камлание над студией с предварительной подготовкой всех конфигов и настроек вручную вместо автоматического "./configure".

    Допустим, мы все же хотим сделать из буханки троллейбус.
    Скачиваем следующие пакеты:
    SDL обязательно первой версии, не второй Index of /release
    SDL_Sound обязательно первой версии, не второй Announcing SDL_sound 1.0.3 ...
    Вообще, все компоненты и их версии, что требуют SDL2 нам не подойдут из-за несовместимости SDL и SDL2
    PHYSFS [physfs] PhysicsFS 3.0.2 released!
    DXSDK Download DirectX Software Development Kit from Official Microsoft Download Center
    PDCURSES Release PDCurses 3.9 - 2019-09-04 · wmcbrine/PDCurses
    ZLIB zlib Home Site
    FLUIDSYNTH GitHub - FluidSynth/fluidsynth: Software synthesizer based on the SoundFont 2 specifications
    TBB GitHub - jckarter/tbb: Intel Threading Building Blocks with local modifications
    SDL_net GitHub - libsdl-org/SDL_net at SDL-1.2
    openglide GitHub - voyageur/openglide: Git mirror of openglide CVS (http://openglide.sourceforge.net/)
    libpng libpng Home Page
    libpcap GitHub - the-tcpdump-group/libpcap: the LIBpcap interface to various kernel packet capture mechanism
    libfreetype2 GitHub - servo/libfreetype2
    Конфигурируем-собираем с помощью MinGW.

    Когда студия будет просить h-файлы ссылаемся на соответствующие каталоги подключаемых библиотек.
    Ну и по необходимости подключаем собранное.

    В связи с тем, что мы собираем современной студией, а не максимально рекомендуемой 2010й, то ставим костыли:
    src\platform\visualc\stdint.h - убить. Используем современный из состава студии
    Все #include "dirent.h" комментируем
    Все ругания на std::pow и std::sqrt лечим #include <cmath>
    Прописываем в настройках проекта define _CRT_SECURE_NO_WARNINGS, чтобы отказаться от использования safe-string функций, существующих только в мире фантазий Microsoft


    Дополнительные ошибки
    Sound_GetDuration - не найдена функция, и где искать неясно. Заменяем присваивание на 0, может потом найдется
    SDL_GetDesktopMode пропало в какой-то из ранних версий SDL (надо курить мануалы, но неохота) - закомментим. По умолчанию DOSBOX будет считать, что у нас рабочий стол 1024х768


    Я человек ленивый, поэтому не собирал весь зоопарк подключаемых библиотек. Я добился собираемости до момента линковки с внешними библиотеками. Все равно до этого момента доберутся не только лишь все, а те, что доберутся, я верю, смогут и без моей помощи собрать остальное.
     
    Tigoro, Mel Shlemming, Dimouse и ещё 1-му нравится это.
  6. netsky2004

    netsky2004

    Регистрация:
    31 янв 2007
    Сообщения:
    1.452
    Все модули наконец-то собрал, но всё равно ничего нельзя сделать. Море ошибок:
    Эти исходники битые или написаны неверно + еще Microsoft Visual Studio 12.0 (он же 2013) не подходит. Выходит это всё? Выхода нет? Я не смогу сделать обход такой ошибки с несъёмным CD-ROM для гостевых ОС, которая блокирует систему в виде бесконечного цикла как на скрине?
    asun9_west.userapi.com_sun9_37_s_v1_ig2_mbtulXtFUcVNFl_kJ6gLjG0612ee89cbd91c39c13dfd552a6a5940.jpg
     
  7. 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
  8. netsky2004

    netsky2004

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

    Ardash

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

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

    kreol

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

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

    Ardash

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

    netsky2004

    Регистрация:
    31 янв 2007
    Сообщения:
    1.452
    Насчет Sound_GetDuration это было в каком то модуле, который либо навсегда утрачен (может сайт удалили или файлы с сервера и ни у кого не сохранился) либо вообще не был написан, пруфов ведь уже нет что такое в истории существовало, значит Sound_GetDuration - такого не существует. Если заккоментить, то появляется целая орава ошибок и всё, теперь скомпилировать исходник уже нельзя. У кого сохранились полные и рабочие коды исходники к DOSbox SVN Daum где есть модуль IDE для гостевых ОС отпишитесь. Хотя если SVN Daum заброшен и автор пропал, можно собрать исходник DOSBox-X но у меня комп не последней модели и ОС не самая новейшая, не уверен будет работать на VS2013
     
    Последнее редактирование: 31 июл 2022
  13. 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 */
     
  14. R4kk00n Benched arcade playa

    R4kk00n

    Модератор

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

    Дарк Шнайдер

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

    Ardash

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

    netsky2004

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

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    3.151
    Нормальные исходники, нужно ручками править то что спустя десять лет стало ошибками из-за несовместимости с сегодня. И это нормально. А еще архив и все файлы в нем под 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
     
  19. netsky2004

    netsky2004

    Регистрация:
    31 янв 2007
    Сообщения:
    1.452
    @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
  20. 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, которую, для редактирования кода (на Си, Си++, Си#), считаю на голову выше всех остальных. Но каждому инструменту свое место.
     
  21. netsky2004

    netsky2004

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

    Посмотреть вложение 266857
     
    Последнее редактирование: 2 авг 2022
  22. 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 нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление