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

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

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

Civilization (Windows 3.1)

Тема в разделе "Установка и запуск игр", создана пользователем xhoperman, 9 май 2021.

  1. xhoperman

    xhoperman

    Регистрация:
    29 апр 2021
    Сообщения:
    7
    Всем привет! Друзья, нужна ваша помощь в решении нетривиальной проблемы. Не работает автозапуск, при запуске белое окно и зацикленный глюченный звук, и вылет через пару секунд. Игру скачал с этого сайта, цивилизация для виндовс 3.11. Изменять могу только конфиг файл досбокса, все что вне по определенным причинам изменять нельзя.
    После запуска игра работает отлично. По сути нужно поставить задержку после win.com перед C:\CIV\RUNEXIT.EXE C:\CIV\CIV.EXE. Я установил автозапуск для более чем 30 игр под виндовс 3.11, было много разных проблем, но все решались, но эту не могу решить. Все компоненты обязательны. Ранексит убрать нельзя.
    Так выглядит автоекзец:
    [autoexec]

    mount C "B:\Computers\Microsoft\Windows 3.x\Sid Meier's Civilization\Program Data\Folder A\Windows\"

    imgmount A "B:\Computers\Microsoft\Windows 3.x\Sid Meier's Civilization\Disk Images\Floppy\Civilization (Disk 1).ima""B:\Computers\Microsoft\Windows 3.x\Sid Meier's Civilization\Disk Images\Floppy\Civilization (Disk 2).ima""B:\Computers\Microsoft\Windows 3.x\Sid Meier's Civilization\Disk Images\Floppy\Civilization (Disk 3).ima""B:\Computers\Microsoft\Windows 3.x\Sid Meier's Civilization\Disk Images\Floppy\Civilization (Disk 4).ima" -t floppy
    imgmount D "" -t iso

    C:
    cd windows

    win.com C:\CIV\RUNEXIT.EXE C:\CIV\CIV.EXE

    exit
     
  2.  
  3. xhoperman

    xhoperman

    Регистрация:
    29 апр 2021
    Сообщения:
    7
    возможно проблема в сборке досбокса, но не суть. кто нибудь знает как сделать задержку? у меня очень ограниченные условия. поэтому сообщения типа поменяй сборку, переустанови винду и тд - не интересны. интекресует решение в текущей ситуации
     
  4. Strannik_

    Strannik_

    Регистрация:
    19 сен 2016
    Сообщения:
    842
    Для MS DOS/DOSBox самым простым способом будет написать программу задержки. Например на секунду. При необходимости, вызывать несколько раз в цикле.
    Циклы в DOSBox не работают.
     

    Вложения:

    • SLEEP1S.RAR
      Размер файла:
      2,1 КБ
      Просмотров:
      10
    Последнее редактирование: 10 май 2021
  5. kreol Старший офицер Чёрной Гвардии

    kreol

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

    Регистрация:
    2 июл 2007
    Сообщения:
    112.511
    Темы называются названиями игр, а не ваших проблем с ними.
     
  6. xhoperman

    xhoperman

    Регистрация:
    29 апр 2021
    Сообщения:
    7
    Спасибо, Странник. К сожалению проблема не решилась, но есть мысль по ее решению. Суть в том, что если поставить приложение слип перед ранексайт, то не срабатывает второй и следом не запускается игра соответственно. Но что если скрипт задержки вписать в ранэксайт? вот соурс ранэксайта, если не трудно - ктонибудь пожалуйста отредактируйте его и соберите в екзешник. Я буду миллион раз вам благодарен, и уверен, кому-то еще это пригодиться
    --- добавлено 10 май 2021, предыдущее сообщение размещено: 10 май 2021 ---
    Уважаемый Креол, я прошу прощения) Не наказывайте меня)
     

    Вложения:

    • runexit.src.zip
      Размер файла:
      1.020 байт
      Просмотров:
      9
  7. Strannik_

    Strannik_

    Регистрация:
    19 сен 2016
    Сообщения:
    842
    @xhoperman, на сколько понял, для компиляции 16-битного приложения для Windows 3 требуется Borland Delphi 1 1995 года.
    "Delphi 2 появилась в 1996 году и позволяла разрабатывать 32-битные приложения. Для программирования под Windows 3.1 в комплект поставки включалась Delphi 1."
    Во всяком случае, Delphi 7 ругается на GetModuleUsage.
    Позже посмотрю внимательнее.

    Попробуйте создать BAT-файл, который выполняет по очереди SLEEP1S и CIV.EXE.
    А уже этот BAT-файл передавать RUNEXIT.EXE.
     
  8. xhoperman

    xhoperman

    Регистрация:
    29 апр 2021
    Сообщения:
    7
    не получилось. выходит сразу же. наверное по завершению выполнения бат файла срабатывает выход
    --- добавлено 10 май 2021, предыдущее сообщение размещено: 10 май 2021 ---
    ради эксперимента взял другую сборку досбокса, изначально был на ЕСЕ. включается без звука и по выходу из игры винда виснет.
     
  9. Strannik_

    Strannik_

    Регистрация:
    19 сен 2016
    Сообщения:
    842
    @xhoperman, по коду runexit он берет исполняемый файл из параметра командной строки, запускает его, ожидает завершения программы, после чего завершает работу Windows.
    Хоть поведение и странное, но возможное. По идее пакетный файл должен выполнять программы по порядку ( и тогда его бы хватило, без runexit: запустить игру, затем послать windows команду на завершение работы).

    По поводу самой паузы.
    Самый простой вариант - добавить sleep:

    Код:
    ..
      { Add trailing NUL bytes }
      fileName := fileName + #0;
      pathName := pathName + #0;
      params := params + #0;
    
      {suspends the execution}
      sleep(5000);
    
      { Execute the command }
      h := ShellExecute (0, nil, @fileName [1], @params [1], @pathName [1], SW_SHOWNORMAL);
    ..
    
    Особенность команды sleep - полная загрузка процессора на время выполнения.
    Существуют другие варианты, не известно, на сколько совместимые с Windows 3.x.

    Сейчас нет возможности проверить. Позже сообщу результат.
     
  10. xhoperman

    xhoperman

    Регистрация:
    29 апр 2021
    Сообщения:
    7
    Привет! Решил проблему путем смены видеокарты с svga_s3 на svga_et4000.
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление