3D Studio всегда была достаточно быстрой и шустрой программой — она не зависела от Windows и работала под DOS. Тем не менее, даже с появлением 3DSMAX, многие продолжают использовать 3DS4 — и это правильно — палить из пушки по воробьям, т.е. делать работу, в которой не нужны все хитрые спецэффекты MAX’а и тому подобное в MAX’е — медленно и малоэффективно.
Но есть люди, которым в силу некоторых причин было бы удобнее использовать Windows, а не DOS, но работать в 3DS4 все равно хочется. Вся беда состоит в том, что 3DS4 не хочет идти в Win32-средах.
Причины того, что 3DS4 не запускается в Windows
3DS4 — обширная программа, и, естественно, ей не хватает 640 килобайт обычной (conventional) памяти DOS. Что делают в таких случаях создатели программ? Идут двумя путями: либо используют EMS-память, которую использовать трудновато, да и доступна она только при условии того, что пользователь установит соответствующие драйверы (EMM386.EXE или что-нибудь более продвинутое типа QEMM), либо используют XMS-память, которую использовать из приложения в real mode конечно можно, но получается очень медленно.
Итак — стандартный способ решения проблемы — это использование protected mode, защищенного режима 386-го процессора. Но процесс перехода в защищенный режим и использование памяти в защищенном режиме довольно сложен и сильно тяготеет к системному программированию, поэтому прикладные программисты делают проще — идут к системщикам и просят написать так называемый extender — модуль, который будет осуществлять всю работу на низком уровне, предоставляя программисту почти неограниченную память обычными средствами. Так как экстендеры нужны были всем, то писались они тоже достаточно эффективно, в них стали засовываться не только общение с памятью, но и своппинг, и разрешение конфликтных ситуаций — некоторые из них стали весьма популярны.
Я думаю, что почти все хоть раз играли, например, в DOOM. Никогда не замечали надписи «DOS4GW Protected Mode»? Так вот, это именно он — экстендер DOS4GW. Продвинутые в плане игр люди могут вспомнить еще PMODE/W, программисты борландовских компиляторов вспомнят борландовский экстендер — RTM.EXE, а любители Unix’а — экстендер DJGPP.
Ну вот, к чему это я все. 3DS4, конечно же, тоже использует экстендер. Но, к сожалению, Autodesk почему-то, скорей всего из-за стоимости, использовала малоизвестный экстендер Phar Lap. Он оказался крайне непортабельным, и в Windows работать не захотел, а Autodesk закрыла на это глаза, поставив на 3DS4 крест и перейдя на поддержку 3DSMAX.
Как заставить работать 3DS4 под Windows
Сразу оговорюсь, многое из этого придумал не я — я всего лишь собрал большинство способов из просторов Сети и проверил их на практике. Способов несколько, возможно в вашем конкретном случае вам подойдет один из них, возможно, получится использовать какую-то смесь. Пробуйте, экспериментируйте.
Вместе с экстендером Phar Lap идет конфигуратор — программа CFIG386, она должна быть в каталоге с 3DS4. Можно отключить в нем опцию realbreak — это опция отвечает за распределение первых 640K памяти:
CFIG386 3DS.EXE -realbreak 0
Конфигуратор модифицирует EXEшник 3DS, найдет в нем опцию и исправит. Но имейте в виду, что такое зверское обращение с памятью затормозит 3DS чуть ли не в два-три раза (судя по тестам), поэтому не всем этот подход нравится. Под 95-98-ыми также надо будет прописать следующую строчку в свой SYSTEM.INI (это файл в корне Windows) в секцию [386Enh]:
DEVICE=C:\3DS4\PHARLAP.386
После перезагрузки, этот драйвер позволит избежать ошибок DPMI при запуске 3DS. Запускать же 3DS надо будет так:
3DS VIBCFG
Это запустит конфигуратор видеодрайверов. Как вы уже наверное догадались, Autodesk и тут использовала «нестандартные» драйверы Vibrant, многие из которых (почти все не-VESA драйверы) вешают или обваливают Windows-системы. Тут понадобится немножко поэкспериментировать и подобрать драйвер, который подойдет к вашей системе — в крайнем случае придется остановиться на драйвере Standard VGA в разрешении 640x480x16цветов.
Для запуска скорей всего будет вам удобно использовать Shortcut. Сделайте Shortcut на 3DS.EXE и настройте его следующим образом:
Даже не думайте о том, чтобы запустить 3DS4 в окне — установите Screen/Full Screen.
Всю память в автоконфигурируемый режим — везде в Memory установите Auto и пометьте Uses HMA.
Уберите скринсейвер Windows — выключите Allow screen saver. И вообще советую вам их все снести — кроме лишних тормозов и отъедамых ресурсов скринсейверы не дают ничего.
В Program/Advanced отключите Suggest MS-DOS mode
Если 3DS не заработает — попробуйте выключить Screen/Dynamic memory allocation, включить Misc/Always suspend и установить Misc/Idle Sensitivity в Low.
После того, как получится запустить 3DS, вам надо будет подобрать корректные драйверы Vibrant — нужен такой драйвер, который бы во-первых, устраивал вас, во-вторых, не слишком тормозил работу системы, в-третьих, не вешал бы Windows, и в-четвертых, вел себя корректно при переключении из 3DS как активной задачи и обратно в нее.