Как запустить приложение через dosbox
Какую версию использовать?
Как запустить игру в DOSBox'е?
Запустить интересующую вас игру с помощью программы DOSBox можно разными способами. Вот некоторые из них:
Важно: обязательно требуется переходить в саму директорию с игрой - нельзя запускать файл из корня виртуального диска подобным образом: GAMES\ORION\ORION.EXE
Описания команд DOSBox'а смотрите ниже. Примеры запуска смотрите в отдельной статье.
- Запуск с помощью *.bat-файла. Создайте *.bat-файл вида dosbox c:\games\orion\orion.exe, поместите его в директорию с DOSBox, запускайте его.
- Запуск с помощью прописанных в dosbox.conf командах autoexec. Команды DOSBox'а можно записать в самом конце конфигурационного файла в разделе autoexec - и они будут выполняться по порядку при запуске DOSBox'а.
- Запуск с использованием сторонних фронт-эндов (графические оболочки). Наиболее известную такую оболочку - D-Fend - можно скачать у нас в разделе утилит.
Как запустить PC-booter игру (т.е. игру, запускающуюся напрямую с образа дискеты)?
Вы можете прочитать дополнительную информацию об образах дискет в статье Образ дискеты. Что это такое и как с ним работать.
Как запустить PCjr картридж?
Необходимо выбрать тип эмулируемого компьютера pcjr (machine=pcjr в настройках эмулятора) и затем загрузиться с образа картриджа с помощью команды boot.
Команды DOSBox’а
В DOSBox'е действуют команды, похожие на стандартные DOS-овские:
Примечание: для упрощения навигации по файловой системе можно использовать один из файловых менеджеров под DOS.
Как мне получить содержимое папки с игрой в DOSBox’е?
Чтобы DOSBox видел вашу папку с игрой или играми, нужно специальной командой «смонтировать» виртуальный диск. В DOSBox нельзя просто без монтирования перейти в папку на вашем диске. Для некоторых игр необходимо также, чтобы виделся CD-ROM с игрой. Для этого необходимо так или иначе «смонтировать» и CD-ROM тоже.
Пример использования команды mount для монтирования папки D:\GAMES на вашем компьютере в качестве диска C: DOSBox’а:
Пример подключения CD-ROM в приводе E: на вашем компьютере в качестве виртуального CD-ROM’а D: DOSBox’а:
Для некоторых игр с CD-Audio треками может понадобиться параметр -ioctl.
Для того чтобы подключить floppy-дисковод A:, введите:
Как мне смаунтить директорию, если путь содержит пробелы?
Заключайте путь в кавычки. Например:
У меня есть образ диска/дискеты, и я не хочу его записывать на реальный носитель или загружать в виртуальный привод для игры, есть ли способ подключать образ в DOSBox'е напрямую?
Действительно, с версии 0.62 такая возможность есть. Для этого воспользуйтесь командой imgmount. Пример использования для подключения образа диска myiso.iso в качестве виртуального CD-ROM'а - диска D::
Добавлять параметры -fs iso, как правило, не нужно.
Если путь к образу диска/дискеты, либо его имя содержит пробелы, то нужно заключать его в кавычки:
С помощью команды imgmount можно подгружать образы дискет (аналогично образу диска, но с ключом -t floppy), а также образ жесткого диска (аналогично, но с ключом -t hdd).
Также с помощью команды imgmount можно монтировать сразу несколько образов диска на один виртуальный привод, переключение между ними осуществляется по Ctrl-F4:
Важно: команда imgmount поддерживает образы дисков только в форматах ISO и BIN/CUE. Для проигрывания аудиотреков в игре монтировать нужно CUE-файл.
С помощью данной команды, а также команды boot можно запускать так называемые "booter"-игры, то есть игры, которые грузятся напрямую с дискеты, без запуска ОС. Для этого смонтируйте образ командой imgmount и загрузите его командой boot. Пример команд:
Горячие клавиши DOSBox'а
Как перевести игру в полноэкранный режим?
Нажмите ALT + Enter. Чтобы перейти в оконный режим, нажмите эту комбинацию еще раз. Если вы хотите, чтобы игра сразу запускалась на весь экран, отредактируйте dosbox.conf: исправьте fullscreen=false на fullscreen=true.
Как записать видео-ролик или сделать скриншот игры? Как записать музыку?
Видеоролик записывается комбинацией CTRL-ALT-F5 (включить запись или выключить). Скриншоты делаются комбинацией CTRL-F5 (сохраняются в формат *.PNG). Запись музыки возможна в трех режимах:
- В Wav-файл. Делается комбинацией CTRL-F6.
- Запись OPL команд. Делается комбинацией CTRL-ALT-F7.
- Запись MIDI команд. Делается комбинацией CTRL-ALT-F8.
Все труды пользователя отправляются в папку Capture в папке с DOSBox (можно переназначить в dosbox.conf). Начиная с версии 0.73 папка Capture находится в рабочей папке DOSBox:
- %USERPROFILE%\Local Settings\Application Data\DOSBox\ (Windows XP)
- :\Users\\AppData\Local\DOSBox\ (Windows Vista & Windows 7)
Важно: для воспроизведения роликов, записанных в DOSBoxе, необходимо установить кодек ZMBV, который распространяется вместе с программой.
У меня не проигрываются видеоролики, записанные в DOSBox'е!
См. предыдущий вопрос.
Игра идет слишком быстро/медленно, что делать?
Скорость эмуляции регулируется клавишами CTRL+F11 / CTRL+F12. Также можно настроить параметр cycles в dosbox.conf.
В особо запущенных случаях (если всё равно тормозит) стоит попробовать менять параметры core и output в конфиге (подробнее читайте в инструкции DOSBox для пользователей), отключить дополнительные скейлеры (параметр scaler) или даже включить пропуск кадров, делается это клавишами CTRL-F7 / CTRL-F8.
Помните, что DOSBox лучше всего работает на x86, то есть работа на карманных устройствах или Macintosh PPC, к примеру, никогда не будет такой же быстрой.
Есть ли в DOSBOx'е возможность сохраняться в любой момент (как например в эмуляторе Super Nintendo)?
Да, можно — в «корейской» сборке DOSBox есть возможность сохранения/восстановления состояния:
Либо из меню: "Main->Load/Save state".
Как переназначить клавиши в DOSBox'е?
В DOSBox'е есть встроенная функция "mapper". Вызывается она по комбинации Ctrl+F1.
С помощью этой функции можно переназначить клавиши клавиатуры или джойстика на другие клавиши клавиатуры или джойстика (то есть можно назначить управление джойстиком с помощью клавиатуры или же наоборот - клавиатуры на джойстик). Для каждой перенаправляемой клавиши проделайте следующую процедуру:
- Выберите клавишу на экране,
- Нажмите Add,
- Нажмите клавишу на своей клавиатуре или на джойстике, которую вы хотите сопоставить выбранной на экране
После окончания процедуры можно сохранить файл с настройками переназначения (если вы хотите пользоваться этими настройками в следующий раз) и нажмите Exit.
Частые проблемы при запуске игр
На моем ноутбуке при переходе в полноэкранный режим изображение глючит или игра вообще вылетает.
Попробуйте изменить параметр output в dosbox.conf. По умолчанию стоит surface, надо заменить на ddraw или opengl.
Картинка сжата, или, наоборот, хочется, чтобы пропали пустые полосы по бокам экрана в полноэкранном режиме
Измените параметр aspect (true | false) в dosbox.conf.
Где мне искать файл настроек dosbox.conf?
В зависимости от ОС и версии DOSBox'а файл настроек лежит либо вместе с dosbox.exe (в ранних версиях), либо в User profile (например, в версиях 0.73-0.74 или на Маке). В последнем случае вы можете его найти в:
- %USERPROFILE%\Local Settings\Application Data\DOSBox\dosbox-.conf (Windows XP)
- :\Users\\AppData\Local\DOSBox\dosbox-.conf (Windows Vista & Windows 7)
Также отредактировать конфиг-файл можно в Start > All Programs > Dosbox-0.73 > Configuration в пункте Edit Configuration.
Для версии 0.74: Пуск > Все программы > Dosbox-0.74 > Options в пункте DOSBox 0.74 Options.
В игре нет звука или музыки, хотя они должны быть.
Проверьте настройки звука и музыки в игре. Практически все DOS-игры 90-х годов имеют поддержку Sound Blaster, так что в программе настройки звука в игре (обычно это setup.exe) стоит выбирать именно его. Параметры Sound Blaster в DOSBox по умолчанию стоят такие:
В качестве альтернативы можно использовать карту Gravis Ultrasound - ее настройка описана в руководстве для "экспертов". В качестве музыкального устройства можно использовать General Midi – MPU-401, значение ввода-вывода (IO) для него по умолчанию - 330.
Я монтирую диск с игрой как написано, перехожу на него и запускаю игру с помощью команды GAMES\GAME\GAME.EXE (пример), но ничего не работает.
Так делать нельзя. После перехода на виртуальный диск переходите в директорию с игрой и запускайте исполняемый файл оттуда. Если что-то непонятно, еще раз посмотрите Примеры запуска игр в DOSBox.
Все ли игры работают под DOSBox'ом? Что делать, если какая-то одна игра не запускается или глючит, хотя с остальными всё нормально?
У команды DOSBox'а есть список совместимости игр, в нем указаны тестировавшиеся игры; если с их работой есть какие-то проблемы, об этом указывается. В последней версии программы проблемных игр совсем немного, но они есть. С другой стороны, на нашем сайте многие игры, которые считаются неработающими или проблемными, уже починены. Поэтому с проблемой по конкретной игре обращайтесь на форум в тему по DOSBox'у.
Для начала давайте установим наш старенький интерпретатор.
Ссылка
Я прекрасно понимаю, что это ещё тот колхоз делиться файлами через обсуждения VK, но кто знает, во что может превратиться эта маленькая группа в будущем.
После распаковки файлов, советую сохранить их в папке Asm на диск C, чтобы иметь меньше расхождений с представленным тут материалом. Если вы разместите директорию в другое место, изменится лишь путь до файлов, когда вы будете использовать команду mount.
Для запуска интерпретатора нам так же потребуется эмулятор DOSBox. Он и оживит все наши компоненты. Скачаем и установим его!
Ссылка
В папке Asm я специально оставил файл code.asm. Именно на нём мы и потренируемся запускать нашу программу. Советую сохранить его копию, ибо там хранится весь код, который в 99% случаев будет присутствовать в каждом вашем проекте.
Итак. Запускаем наш DOSBox и видим следующее:
Для простоты сопоставим имя пути, по которому лежит наша папка Asm. Чтобы это сделать, пропишем следующую команду:
Здесь вместо d: мы можем использовать любую другую букву. Например назвать i или s. А C это наш реальный диск. Мы прописываем путь до наших файлов ассемблера.
Теперь, откроем смонтированный диск:
Прописав команду dir, мы сможем увидеть все файлы, которые там хранятся. Здесь можно заметить и наш файл CODE с расширением ASM, а также дату его создания.
И только теперь мы начинаем запускать наш файл! Бедные программисты 20 века, как они только терпели всё это? Пропишем следующую команду:
Теперь пропишем ещё одну команду:
В нашей папке появилась ещё пара файлов – CODE.MAP и CODE.EXE. Последний как раз и есть исполняемый файл нашего кода assembler.
Если он появился, значит, мы можем запустить режим отладки нашей программы, введя команду последнюю команду. Обратите внимание, теперь мы не указываем расширение файла, который запускаем.
Этот старинный интерфейс насквозь пропитан духом ушедшей эпохи старых операционных систем. Тем не менее…
Нажав F7 или fn + F7 вы сможете совершить 1 шаг по коду. Синяя строка начнёт движение вниз, изменяя значения регистров и флагов. Пока это всего лишь шаблон, на котором мы потренировались запускать нашу программу в режиме дебага. Реальное “волшебство” мы увидим лишь с полноценным кодом на asm.
Небольшой пример для запуска
Прога проверяет, было ли передано верное число открывающих и закрывающих скобок:
Давайте ознакомимся с имеющимися разделами.
Code segment – место, где turbo debug отражает все найденные строки кода. Важное замечание – все данные отражаются в TD в виде 16-ричной системы. А значит какая-нибудь ‘12’ это на самом деле 18, а реальное 12 это ‘C’. CS аналогичен разделу “Begin end.” на Pascal или функции main.
Data segment, отражает данные, которые TD обнаружил в d_s. Справа мы видим их символьную (char) интерпретацию. В будущем мы сможем увидеть здесь наш “Hello, world”, интерпретируемый компилятором в числа, по таблице ASCII. Хорошей аналогией DS является раздел VAR, как в Pascal. Для простоты можно сказать, что это одно и тоже.
Stack segment – место хранения данных нашего стека.
Регистры
Все эти ax, bx, cx, si, di, ss, cs и т. д. – это наши регистры, которые используются как переменные для хранения данных. Да, это очень грубое упрощение. Переменные из Pascal и регистры Assembler это не одно и тоже, но надеюсь, такая аналогия даёт более чёткую картину. Здесь мы сможем хранить данные о циклах, арифметических операциях, системных прерываниях и т. д.
Флаги
Все эти c, z, s, o, p и т.д. это и есть наши флаги. В них хранится промежуточная информация о том, например, было ли полученное число чётным, произошло ранее переполнение или нет. Они могут хранить результат побитого сдвига. По опыту, могу сказать, на них обращаешь внимание лишь при отладке программы, а не во время штатного исполнения.
Ещё одно замечание. Если вы измените данные исходного файла с расширением .ASM, то вам придётся совершить все ранее описанные операции вновь, ибо обновив например code.asm вы не меняете code.obj или code.exe.
Маленькая шпаргалка для заметок:
mount d: c:\asm – создаём виртуальный диск, где корень –папка asm
d: - открываем созданный диск
tasm code.asm – компилируем исходный код
tlink code.obj – создаём исполняемый файл
td code – запускаем debug
F7 – делаем шаг в программе
Буду ждать комментарии от всех, кому интересен Assembler. Чувствую, я где-то мог накосячить в терминологии или обозначении того или иного элемента. Но статья на Habr отличный повод всё повторить.
Раньше было лучше — это не секрет. И травка зеленее, и солнышко блестящее, и песок сыпучее, и компьютерные игры глубже. Сейчас из-за графических возможностей каждая вторая цацка на ПК и каждая первая на консолях напоминает криво сделанный фильм, не осталось в них души, геймплея нет! Это не мои слова, на самом-то деле, я имею диаметрально противоположное мнение. Но если тебе эта мысль пришлась по душе, то обязательно прочти сию статью до конца. Ведь я прямо на Android буду запускать игры, которые вышли в золотое для ПК время. Время MS-DOS! Делать я это буду через DosBox, разумеется.
Что есть такое DosBox вообще? Это приложение, эмулирующее MS-DOS, разумеется. Зачем оно нужно, если в Windows есть командная строка, выполняющая все необходимые функции? Для игр, разумеется! Когда дубы были молодыми, а морковки стояли крепко и вертикально, с различными техническими компонентами ПК были огромные проблемы. Десятки компаний грызли друг другу педипальпы, чтобы удержаться на плаву, десятки видеокарт и десятки звуковых карт конкурировали между собой. Беда в том, что из-за этого игры нередко делались только под один-два набора, и на остальных практически не шли.
Да, я утрирую, ситуация тогда была не такая печальная, но суть, я надеюсь, мне передать удалось. Современное оборудование далеко не всегда имеет совместимость со старыми играми, и ты можешь запускать на своё монстре новый Battlefront на пару с The Witcher 3, но какой-нибудь Dangerous Dave, выпущенный тогда, когда ты ещё и не родился, пошлёт твой суперкомпьютер в пеший эротур. А может и BSOD покажет, чтоб неповадно было.
Чтобы не происходило таких бед, и старые игры шли ровным строем наравне с новыми, был создан DosBox. Он позволяет эмулировать не только саму среду MS-DOS без оригинальных файлов, но и старое оборудования. А приятнее всего то, что приложение практически всеядно, и порт его есть даже на Android. DosBox Turbo является самым быстрым MS-DOS эмулятором на рынке Android, и если ты любитель ретро-игр, он обязателен для покупки.
Работать с ним немного сложновато, особенно для тех, кто MS-DOS не застал, или застал, но уже о нём забыл. Я из второй категории, если что. И сегодня я разберу самые простые примеры в работе с этим приложением. Никакого монтирования Windows через отдельные образы — запускать будем только чистые MS-DOS приложения.
Итак, после запуска программы ты должен будешь увидеть страшный чёрный экран с буковками. Курсора мышки нет, клавиатуры наэкранной нет. Всё хорошо, так быть и должно! Ещё должна появиться строка с текстом а-ля "Drive C is mounted as local directory /storage/emulated/0/Download". Это значит, что главный диск DosBox считает папкой Downloads. Если ты планируешь закидывать игры в эту самую папку, то всё хорошо, но если они будут лежать в корневом каталоге, то лучше этот момент переделать.
«Settings» > «DosBox Settings» > «Autoexec.bat», в строке «mount c: /storage/emulated/0/Download» убираем «Downloads». Далее заливаем в корневой каталог папку с игрой. Её, кстати, лучше сразу переименовать во что-то короткое. Скажем, Warlords 2 Deluxe у меня стали W2D. Главное — не забыть, что к чему и куда идёт.
Самая важная команда на данном этапе эмулирования — «cd», она же — «change directory». Прописывается команда по принципу «cd *имя папки*». Для возврата на каталог выше существует команда «cd ..». Файлы в папках запускаются простым вводом их имени в строку. То есть, если в папке есть файл XCOM.BAT или XCOM.EXE, то достаточно ввести его название без расширения.
По сути, это всё, что нужно знать новичку. Вызов клавиатуры в DosBox Turbo работает в портретном режиме, как и джойстик. Теперь касательно игр. Видимо, моя полоса несчастий будет преследовать меня ещё долго, потому что некоторые цифровые забавы, предназначенные для DOS, на DosBox решили не запускаться. TES Redguard выдала нехватку видеопамяти, Warlords 2 выдала ошибку звука, демо-версия Heroes of Might and Magic вылетела без объявления войны… Зато Bard's Tale и UFO: Enemy Unknown запустились быстро и приятно. Заставки пропускаются, клавиатура работает, а вот мышка в обоих случаях немного дурная, и нуждается в лёгкой настройке.
На этом можно закончить. Со статьёй, но не с темой, разумеется, так как для обсуждения есть ещё DosBox Manager, монтирование образов и игры, которые без монтирования не запустятся, а также запуск через эмулятор Windows. Ориентироваться я буду на пошаговые стратегии, которые не требуют от пользователя быстрого и резкого реагирования. В конце концов, клавиатуры и мышки у смартфона чаще всего нет.
Под DOSBox уверенно запустятся и будут работать различные файловые менеджеры времен MS-DOS, бухгалтерские и банковские программы, среды программирования, программы для радиолюбительских измерений и коммуникаций.
Установка
Установить DOSBox можно из репозитория РЕД ОС 7.3 командой:
Запустить программу можно из «Меню» → «Системные» → «DOSBox» или из терминала командой:
После запуска программы появится консоль DOSBox.
Запуск программ
Для начала нам потребуется примонтировать каталог с программой, которую мы хотим запустить.
Перейти в смонтированый каталог можно, введя:
Вывод файлов в каталоге осуществляется командой:
Перемещение по каталогам осуществляется командой cd . Например:
Для запуска программы необходимо ввести её название с расширением.
В данном случае команда будет выглядеть следующим образом:
Примеры запущенных программ
Также в DOSBox можно вывести список всех доступных команд. Для этого необходимо ввести help.
Файл конфигурации
Для каждой программы можно создать свой конфигурационный файл с уникальными для нее параметрами эмуляции.
Для редактирования файлов конфигурации можно использовать любой текстовый редактор — nano, pluma и другие.
Чтобы запустить эмулятор с определенным конфигурационным файлом, нужно выполнить команду:
где Dconf.conf — имя конфигурационного файла.
Список горячих клавиш
Ниже приведен список основных горячих клавиш эмулятора:
Автозапуск программ
Иногда полезно, чтобы при запуске эмулятора выполнялись определенные команды, например, монтирование каталога или запуск программ. В DOSBox это реализовано через файл конфигурации.
Чтобы задать команды для автостарта, в DOSBox нужно добавить список этих команд в конфигурационный файл в специальную секцию под названием [autoexec].
В примере настройка происходит в файле конфигурации dosbox.conf, используемом по умолчанию.
Для работы в более привычном формате можно добавить в автозагрузку оболочку типа Volkov Commander или DOS Navigator.
В показанном выше примере при запуске DOSBox автоматически примонтируется диск X и запустится Volkov Commander:
Исправление проблем
В случае использования DOSBox достаточно добавить в конфигурационный файл в секцию [autoexec] строку:
После перезагрузки эмулятора проблема должна исчезнуть.
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.
Читайте также: