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

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

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

Hard 3Dfx. Как правильно пользоваться D3D на VooDoo2?

Тема в разделе "Hard & Soft", создана пользователем Tristana, 24 дек 2016.

  1. LANRUS

    LANRUS

    Регистрация:
    15 сен 2010
    Сообщения:
    4.621
    С такими условиями это уже не стандартный видеоадаптер PCI (VGA). Это уже установленный драйвер с поддержкой D3D. К сожалению, 98 винда весьма бестолково устроена в этом вопросе. Ни разу у меня не получилось заюзать D3D не на главной карте. Вместе с тем 98 поддерживает до 8 видеоадаптеров в системе. Зачем, если толку от этого нет?
     
  2. Alex Alexandrov

    Alex Alexandrov

    Регистрация:
    29 фев 2016
    Сообщения:
    40
    Если вдруг DirectX Happy Uninstall не захочет работать в Win98SE, то можно для полного удаления DirectX использовать DirectX Buster.
     
    Tristana нравится это.
  3. Goblinit

    Goblinit

    Регистрация:
    18 мар 2011
    Сообщения:
    4.418
    А действительно можно попробовать удалить все драйвера, Затем рэйдж поставить как Стандартный графический адаптер (или вообще любой драйвер, который не подходит к рейдж). Затем поставить дрова на вуду2 и проверить работу д3д в играх.

    ...А директикс9 в данном случае вряд ли может мешать, в нём вроде есть все предыдущие версии д3д.
     
    Thomas Wolfe нравится это.
  4. Gamecollector

    Gamecollector

    Регистрация:
    23 сен 2016
    Сообщения:
    2.410
    Как время будет - переставлю с нуля WinME и поэкспериментирую.
    По поводу совместимости - в теории то она есть... На практике - слабо верится, что код старых интерфейсов не переписывался в процессе. Что-то при этом случайно сломать, после чего героически забить на исправление под предлогом "оно устарело" - любимое дело не только MS, но и тех же NVidia с AMD.
     
    Tristana нравится это.
  5. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    В любом случае, вряд ли какие-либо функции DX9 понадобятся на Rage Pro и Voodoo II.
     
  6. Колючий

    Колючий

    Регистрация:
    6 май 2008
    Сообщения:
    7.031
    У Trio3D с D3D как раз ещё хорошо, в сравнении с тем, как у неё с OGL. :)
     
  7. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    @Gamecollector, покопавшись в загашниках, нашёл исходники драйверов 2000 года, от самой 3dfx. Короче говоря, ситуация такая:
    Последний поддерживаемый DX - 8.
    И поддержка DX в win 9x существует только для 3 - 5 (включая Banshee, которые в свою очередь включают AGP и PCI версии) серии карт.

    Код:
    /*----------------------------------------------------------------------
    Function name: ddiCreateSurfaceEx
    
    Description:   DX7 Callback CreateSurfaceEx()
    
       ddiCreateSurfaceEx creates a Direct3D surface from a DirectDraw surface and
       associates a requested handle value to it.
    
       All Direct3D drivers must support ddiCreateSurfaceEx.
    
       ddiCreateSurfaceEx creates an association between a DirectDraw surface and
       a small integer surface handle. By creating these associations between a
       handle and a DirectDraw surface, ddiCreateSurfaceEx allows a surface handle
       to be imbedded in the Direct3D command stream. For example when the
       D3DDP2OP_TEXBLT command token is sent to ddiDrawPrimitives2 to load a texture
       map, it uses a source handle and destination handle which were associated
        with a DirectDraw surface through ddiCreateSurfaceEx.
    
       For every DirectDraw surface created under the local DirectDraw object, the
       runtime generates a valid handle that uniquely identifies the surface and
       places it in pcsxd->lpDDSLcl->lpSurfMore->dwSurfaceHandle. This handle value
       is also used with the D3DRENDERSTATE_TEXTUREHANDLE render state to enable
       texturing, and with the D3DDP2OP_SETRENDERTARGET and D3DDP2OP_CLEAR commands
       to set and/or clear new rendering and depth buffers. The driver should fail
       the call and return DDHAL_DRIVER_HANDLE if it cannot create the Direct3D
       surface. If the DDHAL_CREATESURFACEEX_SWAPHANDLES flag is set, the handles
       should be swapped over two sequential calls to ddiCreateSurfaceEx.
       As appropriate, the driver should also store any surface-related information
       that it will subsequently need when using the surface. The driver must create
       a new surface table for each new lpDDLcl and implicitly grow the table when
       necessary to accommodate more surfaces. Typically this is done with an
       exponential growth algorithm so that you don't have to grow the table too
       often. Direct3D calls ddiCreateSurfaceEx after the surface is created by
       DirectDraw by request of the Direct3D runtime or the application.
    
       Parameters
    
            pcsxd
                 pointer to CreateSurfaceEx structure that contains the information
                 required for the driver to create the surface (described below).
    
                 dwFlags
                         May have the value(s):
                         DDHAL_CREATESURFACEEX_SWAPHANDLES
                                    If this flag is set, ddiCreateSurfaceEx will be
                                    called twice, with different values in lpDDSLcl
                                    in order to swap the associated texture handles
                 lpDDLcl
                         Handle to the DirectDraw object created by the application.
                         This is the scope within which the lpDDSLcl handles exist.
                         A DD_DIRECTDRAW_LOCAL structure describes the driver.
                 lpDDSLcl
                         Handle to the DirectDraw surface we are being asked to
                         create for Direct3D. These handles are unique within each
                         different DD_DIRECTDRAW_LOCAL. A DD_SURFACE_LOCAL structure
                         represents the created surface object.
                 ddRVal
                         Specifies the location in which the driver writes the return
                         value of the ddiCreateSurfaceEx callback. A return code of
                         DD_OK indicates success.
    
    Return:        DWORD DDRAW result
    
                   DDHAL_DRIVER_HANDLED
                   DDHAL_DRIVER_NOTHANDLED
    ----------------------------------------------------------------------*/
    


    @tristana666, для voodoo2 есть неофициальная вариация враппера из DX8 в OpenGL - Direct3D 8 to OpenGL Wrapper.
    http://www.3dfxzone.it/dir/3dfx/voodoo2/utilities/


    маленький курьёз от http://www.3dfxzone.it/dir/3dfx/voodoo2/releasenotes/fv2_4.0_xp_ge/:
    upload_2016-12-25_10-54-10.png
     
    Последнее редактирование: 25 дек 2016
  8. Tristana

    Tristana

    Регистрация:
    30 сен 2009
    Сообщения:
    289
    Проблема разрешилась! Ура! :) Помогло вот, что:

    1. Сносим DX9, как и сказал Kreol, при помощи DirectX Happy Uninstall - полностью. (Оказывается, таких утилит ещё много: DirectX Eradicator, DirectX Buster... etc. Но мне хватило DHU! :) )
    2. Сносим все эти FastVoodoo 4.0, и пр. кастомные сборки драйверов (может, в них дело тоже?)
    3. Устанавливаем DirectX 8 или 8.1, с любого диска с игрой...
    4. Устанавливаем ОФИЦИАЛЬНЫЙ драйвер "3dfx Voodoo2 V3.02.02" для Win9x, в котором есть поддержка DX7! (Напр. с сайта http://falconfly.de/voodoo2.htm)
    5. Проверяем Dxdiag - на вкладке Дисплей 2 должны проходить все тесты: DirectDraw, DX7 и DX8! Без ошибок!
    6. Теперь, наконец-таки, заработала утилита 3D Control Center! И позволяет поставить галочку, напротив Secondary Device! Ура! Этого и нужно было добиться :)

    Соответственно, в играх теперь всё нормально: работает D3D, и именно на "VooDoo2 DirectX 7 ..." (как указано в настройках игры, в строчке "Display device" или "Driver", обычно)! Ну разве это не счастье?)))

    Вот конфигурация моего ПК, во избежание вопросов по 3DCC:
    PII-350, m/b: FIC-KA6100, VIA Apollo Pro Chipset, 256Mb PC133, ATi RagePro + 1* VooDoo2 8Mb (not SLI)
    (Может быть, с чипсетом действительно повезло, и потому 3dcc переключает видяшки)

    Всем большое спасибо за подсказки!! B)
     
    Goblinit, Alex Alexandrov, Thomas Wolfe и 2 другим нравится это.
  9. Gamecollector

    Gamecollector

    Регистрация:
    23 сен 2016
    Сообщения:
    2.410
    Так...
    Остался последний вопрос - с какой версии dx9 поддержка d3d в Voodoo2 помирает?
    Ибо их MS понаделал аж 31 штуку, из которых, помнится, 18 (до версии от декабря 2006) - совместимы с WinME.

    Если поддержка дохнет на каком-то из обновлений, а не на самом dx9.0c - то будет возможность засунуть Voodoo2 в пару с чем-то типа Radeon 9800 Pro...
     
    Последнее редактирование: 26 дек 2016
  10. Tristana

    Tristana

    Регистрация:
    30 сен 2009
    Сообщения:
    289
    Угу. Вот, на Dx9 и не проходили у меня тесты D3D7 и D3D9 на Вуде2. Только DX8 нормально! И то, как выяснилось, тест DX8 оно "перенаправляет" на Rage! Бред какой-то... :o Пришлось от него избавиться!

    Странно, что 7 лет назад, при проблемах с DX9, не было готового решения по удалению Directx! И, в основном, советы были такими - "переустанавливай ОСь заново!" :D кошмар)))
    --- добавлено 26 дек 2016, предыдущее сообщение размещено: 26 дек 2016 ---
    Тот DX9, что идет на диске "Антология Unreal" от НД... Сегодня посмотрю, что за версия. Тоже интересно :)
     
  11. Thomas Wolfe

    Thomas Wolfe

    Регистрация:
    27 авг 2015
    Сообщения:
    3.350
    @tristana666, проблема с "некастомными" драйерами в том, что порой с офиц. дровами карта не работает (у меня бывало именно так), или картинка не лучшего качества. Здорово, если вам в этом вопросе повезло! ;) Хотя, возможно, проблемы, опять же, проистекают от версии Directx, о чем, я, честно говоря, никогда не задумывался.
     
  12. LANRUS

    LANRUS

    Регистрация:
    15 сен 2010
    Сообщения:
    4.621
    А мне стало интересно, сработает ли 3DCC не с вудами1/2, а с другими картами. Надо попробовать поставить чистую 98, накатить какой-нибудь dx7/8 и две видяшки воткнуть. Например, вуду4 и радеон9 для эксперимента. Радеоны9 и жирафыFX ставятся на dx8.
     
  13. Thomas Wolfe

    Thomas Wolfe

    Регистрация:
    27 авг 2015
    Сообщения:
    3.350
    Правда? Я что-то припоминаю, что, как минимум, Directx uninstaller (если верно помню название) существует весьма давно.
     
    Tristana нравится это.
  14. Goblinit

    Goblinit

    Регистрация:
    18 мар 2011
    Сообщения:
    4.418
    А мне вот всё-таки кажется. что дело было не в dx, а в кастомных дровах, которые просто были без поддержки dx (по-моему, у FastVoodoo с dx отдельные сборки есть).
     
    Thomas Wolfe нравится это.
  15. Gamecollector

    Gamecollector

    Регистрация:
    23 сен 2016
    Сообщения:
    2.410
    В dx. Я лично никогда эээ... творчеством Fastvoodoo и так далее не пользовался, но симптомы в dxdiag те же. На официальных драйверах 3.02.02.
     
  16. Колючий

    Колючий

    Регистрация:
    6 май 2008
    Сообщения:
    7.031
    FX и 9500/9600/9700/9800 ведь dx9.0 хотят. DX8.1 - это про R 8500/9100/9000/9200 и GF4Ti.
     
  17. Gamecollector

    Gamecollector

    Регистрация:
    23 сен 2016
    Сообщения:
    2.410
    Немного не так.
    Один и тот же драйвер работает с любой версией directx. Эээ... теоретически. :) Просто без dx9 в системе нет интерфейсов, через которые все эти новые возможности используются.
    На практике - в свежеустановленную WinME (directx 7.2) ставил драйвер для Radeon X850 PE Agp из Catalyst 6.2, работало как часы. В пределах dx7, разумеется.
    Hardware Abstraction Layer примерно для этого и придумывали.
     
    Последнее редактирование: 27 дек 2016
    Thomas Wolfe нравится это.
  18. Колючий

    Колючий

    Регистрация:
    6 май 2008
    Сообщения:
    7.031
    Я немного не это ввиду имел. Поставить можно, согласен, но ведь FX и семейство R300 не для DX8 в систему суют...
     
  19. LANRUS

    LANRUS

    Регистрация:
    15 сен 2010
    Сообщения:
    4.621
    Поясню. Когда речь идёт о картах PCI, особо выбирать не приходится. Экспериментируем с тем, что есть. Да и очень классно эти карточки работают в пределах возможностей dx8. И для 98 больше и не надо.
     
    Tristana нравится это.
  20. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    @Gamecollector, @Колючий, проблема в другом - в вин 98SE по умолчанию стоит DX6.

    А вот что должно быть в DX9.0c что бы работало в 98 адекватно:
    ACT_RS.ini
    ACT_RS.png
    ACTC094.ini
    amstream.dll
    d3d.inf
    d3d8.dll
    d3d9.dll
    d3dim.dll
    d3dim700.dll
    d3dpmesh.dll
    d3dramp.dll
    d3drm.dll
    d3drm.inf
    d3dxof.dll
    ddhelp.exe
    ddraw.dll
    ddraw.inf
    ddraw.vxd
    ddraw16.dll
    ddrawex.dll
    devenum.dll
    diactfrm.dll
    diactfrm.inf
    dijoy.hlp
    dijoybrz.hlp
    dijoychs.hlp
    dijoycht.hlp
    dijoycze.hlp
    dijoydut.hlp
    dijoyfrn.hlp
    dijoyger.hlp
    dijoyitn.hlp
    dijoyjpn.hlp
    dijoykor.hlp
    dijoypol.hlp
    dijoyrus.hlp
    dijoyspa.hlp
    dijoyswe.hlp
    dimap.dll
    dimaps.inf
    dinput.dll
    dinput.inf
    dinput.vxd
    dinput8.dll
    directx.inf
    dmband.dll
    dmcompos.dll
    dmime.dll
    dmloader.dll
    dmscript.dll
    dmstyle.dll
    dmsynth.dll
    dmusic.dll
    dmusic.inf
    dmusic16.dll
    dmusic32.dll
    dplay.inf
    dplaysvr.exe
    dplayx.dll
    dpmodemx.dll
    dpnaddr.dll
    dpnet.dll
    dpnhpast.dll
    dpnhupnp.dll
    dpnlobby.dll
    dpnsvr.exe
    dpvacm.dll
    dpvoice.dll
    dpvoice.inf
    dpvsetup.exe
    dpvvox.dll
    dpwsockx.dll
    dsdmo.dll
    dsdmoprp.dll
    dsetup.inf
    dsound.dll
    dsound.inf
    dsound.vxd
    dsound3d.dll
    dswave.dll
    dx7vb.dll
    dx8vb.dll
    dx9w9x.cat
    dxapi.sys
    dxdiabrz.chm
    dxdiachs.chm
    dxdiacht.chm
    dxdiacze.chm
    dxdiadut.chm
    dxdiafrn.chm
    dxdiag.chm
    dxdiag.exe
    dxdiager.chm
    dxdiagn.dll
    dxdiaitn.chm
    dxdiajpn.chm
    dxdiakor.chm
    dxdiapol.chm
    dxdiarus.chm
    dxdiaspa.chm
    dxdiaswe.chm
    dxdllreg.exe
    dxdllreg.inf
    dxmigr.dll
    dxtmsft.dll
    dxtrans.dll
    dxver.inf
    dxw9xbrz.cat
    dxw9xchs.cat
    dxw9xcht.cat
    dxw9xcze.cat
    dxw9xdut.cat
    dxw9xfrn.cat
    dxw9xger.cat
    dxw9xitn.cat
    dxw9xjpn.cat
    dxw9xkor.cat
    dxw9xmig.inf
    dxw9xpol.cat
    dxw9xrus.cat
    dxw9xspa.cat
    dxw9xswe.cat
    encapi.dll
    gameenum.sys
    gcdef.dll
    gchand.dll
    GlmDA.ini
    GlmDA.png
    GlmDA_G.ini
    GlmDGP_G.ini
    GlmDigGP.ini
    GlmDigGP.png
    gm16.dls
    gmreadme.txt
    GR3001.ini
    GR3001.png
    GR3001_G.ini
    GR4001.ini
    GR4001.png
    GR4001_G.ini
    GR4001_G.png
    GR4003.ini
    GR4003.png
    GR4005.ini
    GR4005.png
    Hammer.ini
    hidgame.sys
    IA3002.ini
    IA3002_1.png
    IA3002_2.png
    IA3002_G.ini
    joy.cpl
    joyhid.vxd
    joystick.inf
    jystkbrz.inf
    jystkchs.inf
    jystkcht.inf
    jystkcze.inf
    jystkdut.inf
    jystkfrn.inf
    jystkger.inf
    jystkitn.inf
    jystkjpn.inf
    jystkkor.inf
    jystkpol.inf
    jystkrus.inf
    jystkspa.inf
    jystkswe.inf
    ks.inf
    ks.sys
    ks98.inf
    ks98.sys
    kscaptur.inf
    ksfilt98.inf
    ksfilter.inf
    ksolay.ax
    ksproxy.ax
    ksse.sys
    kssetup.inf
    ksuser.dll
    l3codecx.ax
    LGC202.ini
    LGC202.png
    LGC207.ini
    LGC207.png
    LGC209.ini
    LGC209.png
    LGC20A.ini
    LGC20A.png
    LGC291.ini
    LGC291.png
    license.txt
    mciqtz.drv
    mciqtz32.dll
    migrate.dll
    mpg2splt.ax
    MS1B.ini
    MS1B.png
    MS1B_01.png
    MS1B_02.png
    MS1B_03.png
    MS1B_04.png
    MS1B_05.png
    MS1B_06.png
    MS1B_07.png
    MS1B_08.png
    MS1B_09.png
    MS1B_10.png
    MS26.ini
    MS26.png
    MS26_01.png
    MS26_02.png
    MS26_03.png
    MS26_04.png
    MS26_05.png
    MS26_06.png
    MS26_07.png
    MS26_08.png
    MS27.ini
    MS27.png
    MS27_1.png
    MS27_2.png
    MS27_3.png
    MS27_4.png
    MS27_5.png
    MS28.ini
    MS28.png
    MS28_1.png
    MS28_2.png
    MS28_3.png
    MS28_4.png
    MS28_5.png
    MS28_6.png
    MS28_7.png
    MS28_8.png
    MS34.ini
    MS34.png
    MS34_01.png
    MS34_02.png
    MS34_03.png
    MS34_04.png
    MS34_05.png
    MS34_06.png
    MS34_07.png
    MS34_08.png
    MS34_G.ini
    MS3B.ini
    MS3B.png
    MS3B_1.png
    MS3B_2.png
    MS3B_3.png
    MS3B_4.png
    MS3B_a.png
    MS3B_c.png
    MS3B_m.png
    MS3B_t.png
    MS56.ini
    MS56.png
    MS56_1.png
    MS56_10.png
    MS56_2.png
    MS56_3.png
    MS56_4.png
    MS56_5.png
    MS56_6.png
    MS56_7.png
    MS56_8.png
    MS56_9.png
    MS6.ini
    MS6.png
    MS6_1.png
    MS6_10.png
    MS6_2.png
    MS6_3.png
    MS6_4.png
    MS6_5.png
    MS6_6.png
    MS6_7.png
    MS6_8.png
    MS6_9.png
    MS6_G.ini
    MS7.ini
    MS7.png
    MS7_1.png
    MS7_2.png
    MS7_3.png
    MS7_4.png
    MS7_5.png
    MS7_6.png
    MS7_7.png
    MS7_8.png
    MS7_9.png
    MS7_G.ini
    MS8.ini
    MS8.png
    MS8_1.png
    MS8_10.png
    MS8_2.png
    MS8_3.png
    MS8_4.png
    MS8_5.png
    MS8_6.png
    MS8_7.png
    MS8_8.png
    MS8_9.png
    MS8_G.ini
    msanalog.vxd
    msdmo.dll
    MSE.ini
    MSE.png
    MSE_1.png
    MSE_10.png
    MSE_2.png
    MSE_3.png
    MSE_4.png
    MSE_5.png
    MSE_6.png
    MSE_7.png
    MSE_8.png
    MSE_9.png
    MSE_G.ini
    MSF1F.ini
    MSF1F.png
    MSF1F_1.png
    MSF1F_10.png
    MSF1F_2.png
    MSF1F_3.png
    MSF1F_4.png
    MSF1F_5.png
    MSF1F_6.png
    MSF1F_7.png
    MSF1F_8.png
    MSF1F_9.png
    msjstick.drv
    mskssrv.sys
    mspclock.98
    mspclock.se
    mspclock.sys
    MSPRW.ini
    MSPRW.png
    MSPRW_1.png
    MSPRW_2.png
    MSPRW_3.png
    MSPRW_4.png
    MSPRW_5.png
    MSPRW_6.png
    MSPRW_7.png
    MSPRW_8.png
    mstee.sys
    mswebdvd.dll
    pid.dll
    qasf.dll
    qcap.dll
    qdv.dll
    qdvd.dll
    qedit.dll
    qedwipes.dll
    quartz.dll
    quartz.vxd
    RaiderPD.ini
    stream.sys
    stream98.sys
    SV-262E1.png
    SV-262E3.png
    SV-262E4.png
    SV2511.png
    SV2512.png
    swenum.sys
    swenum98.sys
    swenumse.sys
    vidx16.dll
    vjoyd.vxd

    Как видим у нас в наличии dll от 7 и 8 директа. И датированы они будут 99 годом.

    Однако, если мы посмотрим на последние сборки DX9 - мы не найдём в них этого файла вообще, зато увидим поддержку DX10 и выше.
     
    Колючий нравится это.
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление