Не запускается Doom на 486 с PCI?
Добавлено: Пт май 05, 2023 2:18 am
Пост для тех, кто столкнётся с такой же проблемой, как и я.
Имеется плата под 486-е процессоры PC Chips m915i. Чипсет UMC UM8881/8886.
На плате есть и PCI, и VLB, и сама плата довольно шустрая.
Имеем проблему: не запускается ни Doom, ни Duke3D из чистого MS-DOS 6.22. При запуске имеем просто моргающий курсор. Плата реагирует на CTRL+ALT+DELETE.
Проблема проявляется при любых процессорах, от Intel SX-25 до AMD 5x86, на любой частоте шины с любым количеством памяти.
Проблема проявляется при любых версиях BIOS (даже не от этой платы, AMI, AWARD) без явной зависимости от того, какая периферия установлена.
Проблема проявляется при любых настройках BIOS.
Единственную закономерность, которую изначально подметил - всё хорошо работает с ISA-видеокартой TRIDENT 8900CL. А с TRIDENT 8900D - уже нет. Cirrus Logic - опять же нет. PCI видеокарта (TNT или S3 Trio/Virge) - та же проблема.
Позже абсолютно случайно определил, что когда в ISA-слоте стоит сетевая карта (настраиваемая перемычками в моём случае) - всё работает исправно с любой конфигурацией остального железа и софта. Сетевая карта при этом вообще не инициализируется и не используется, просто стоит и всё.
Если (независимо от наличия сетевой карты) запустить win 3.11, и из неё уже запустить Doom - запускается. Duke3D - запускается, но намертво вешает систему как только начинается демка.
Doom и Duke3D - игры так называемого "защищённого" режима, для запуска используют загрузчик DOS/4GW, который как бы переключает процессор в другой режим работы. Примерно то же самое делает и win 3.11, когда запускается на 386 или выше.
Загрузчик DOS/4GW вшит в EXE-шник каждой из этих игр, а также многих-многих других.
Существует аналогичный загрузчик DOS32A, который выполняет ровно те же задачи, что и DOS/4G(W), только при этом в нём исправлена туева хуча багов.
Так вот, если запустить Doom или Duke3D через этот загрузчик, то всё запускается и работает идеально!
Запускать можно так: C:/GAMES/DOOM/DOS32A.EXE DOOM.EXE
Или пересобрать сам EXE-шник так, чтобы вообще выпилить из него старый DOS/4GW и замест него впилить DOS32A.
Однажды я уже сталкивался с подобными проблемами, когда на ноуте (P3) в чистом DOS пытался играть в игры со встроенным PCI звуком. Вышеозначенные игры то и дело намертво вешались в случайных местах, а вот с использованием DOS32A всё работало идеально.
У DOS32A есть и недостатки - с некоторыми играми работать не будет из-за особенностей аудио-драйверов, вшитых в эти игры. Так что воткнутая сетевуха - более постоянное и надёжное решение.
Возможно, даже какая-нибудь звуковушка тоже пофиксит этот странный баг, у меня просто под рукой ничего нет - всё в дальних коробках.
Если у кого-то здесь есть мысли, почему изначально подобное происходит и как это можно пофиксить правильно, или хотя бы в каком направлении гуглить - высказывайтесь
Имеется плата под 486-е процессоры PC Chips m915i. Чипсет UMC UM8881/8886.
На плате есть и PCI, и VLB, и сама плата довольно шустрая.
Имеем проблему: не запускается ни Doom, ни Duke3D из чистого MS-DOS 6.22. При запуске имеем просто моргающий курсор. Плата реагирует на CTRL+ALT+DELETE.
Проблема проявляется при любых процессорах, от Intel SX-25 до AMD 5x86, на любой частоте шины с любым количеством памяти.
Проблема проявляется при любых версиях BIOS (даже не от этой платы, AMI, AWARD) без явной зависимости от того, какая периферия установлена.
Проблема проявляется при любых настройках BIOS.
Единственную закономерность, которую изначально подметил - всё хорошо работает с ISA-видеокартой TRIDENT 8900CL. А с TRIDENT 8900D - уже нет. Cirrus Logic - опять же нет. PCI видеокарта (TNT или S3 Trio/Virge) - та же проблема.
Позже абсолютно случайно определил, что когда в ISA-слоте стоит сетевая карта (настраиваемая перемычками в моём случае) - всё работает исправно с любой конфигурацией остального железа и софта. Сетевая карта при этом вообще не инициализируется и не используется, просто стоит и всё.
Если (независимо от наличия сетевой карты) запустить win 3.11, и из неё уже запустить Doom - запускается. Duke3D - запускается, но намертво вешает систему как только начинается демка.
Doom и Duke3D - игры так называемого "защищённого" режима, для запуска используют загрузчик DOS/4GW, который как бы переключает процессор в другой режим работы. Примерно то же самое делает и win 3.11, когда запускается на 386 или выше.
Загрузчик DOS/4GW вшит в EXE-шник каждой из этих игр, а также многих-многих других.
Существует аналогичный загрузчик DOS32A, который выполняет ровно те же задачи, что и DOS/4G(W), только при этом в нём исправлена туева хуча багов.
Так вот, если запустить Doom или Duke3D через этот загрузчик, то всё запускается и работает идеально!
Запускать можно так: C:/GAMES/DOOM/DOS32A.EXE DOOM.EXE
Или пересобрать сам EXE-шник так, чтобы вообще выпилить из него старый DOS/4GW и замест него впилить DOS32A.
Однажды я уже сталкивался с подобными проблемами, когда на ноуте (P3) в чистом DOS пытался играть в игры со встроенным PCI звуком. Вышеозначенные игры то и дело намертво вешались в случайных местах, а вот с использованием DOS32A всё работало идеально.
У DOS32A есть и недостатки - с некоторыми играми работать не будет из-за особенностей аудио-драйверов, вшитых в эти игры. Так что воткнутая сетевуха - более постоянное и надёжное решение.
Возможно, даже какая-нибудь звуковушка тоже пофиксит этот странный баг, у меня просто под рукой ничего нет - всё в дальних коробках.
Если у кого-то здесь есть мысли, почему изначально подобное происходит и как это можно пофиксить правильно, или хотя бы в каком направлении гуглить - высказывайтесь