Menu

ACE SPEEDER! problem with textures

huh
2023-09-17
2023-09-20
  • huh

    huh - 2023-09-17

    You can find this game on Myabandonware. The game runs natively in Win7 and also has window mode, the problem was in that I had almost no textures on my Nvidia. I was able to get some textures to work but they were only gray and white (AceSpeeder_fullscreen.exe) with flags
    Direct3D(2)-D3D tweaks-Patch execute buffer
    or
    Direct3D(2)-D3D tweaks-ZBuffer-ON
    or
    Direct3D(2)-D3D tweaks-ZBuffer-OFF
    In the end, the only flag that did everything was Tweaks:ForcesHEL. It is true that there are some problems with the water texture in the Credits presentation (if we wait in the menu with the rotating AS! cube either Replay or Credits will start). The texture seems fine, but the water looks like it's composed of multiple objects with edges, and now I can see some "cubes" in the road. This will not happen with dgVoodoo.
    For window mode with DxWnd it is better to use AceSpeeder_window.exe because with AceSpeeder_fullscreen.exe when the window is minimized it crashes and also when alt+tab. The game maxes out at 800x600 and is probably limited to 30fps. If we set a larger window, there can be a big impact on performance. The game works with textures also with dgVoodoo, except for one texture in the intro video which is white. With dgVoodoo the game performs well even in high resolutions, I don't know how dgVoodoo works internally, maybe it uses shaders or converts D3D to OpenGL?
    Here is the test profile.

     

    Last edit: huh 2023-09-17
  • BEEN_Nath_58

    BEEN_Nath_58 - 2023-09-17

    The game gets fixed by both using NO HAL as well as ForceHAL. Can't say if D3D or DDraw is the issue. But ForceHEL will turn of hardware acceleration for D3D too I think.

     
    • huh

      huh - 2023-09-17

      "No HAL Dev." didn't work for me here on Win7, the game crashes on startup.

       
  • gho

    gho - 2023-09-18

    Sorry, I can't be of much help, it seems that the game is working fine here both on the Intel and the NVidia cards. Can you try to send some logs, maybe I can spot some difference ...

     
    • huh

      huh - 2023-09-18

      I can send the log in the evening, but the problem with textures will occur even without DxWnd. Tweaks: ForcesHEL solved everything except the weird "cubes" in the water and on the road. But I remember the log was weird, I'll send it tonight.

       
      • gho

        gho - 2023-09-18

        Well, with ForcesHEL you say goodbye to the 3D HW acceleration, it is quite a pity.

         
  • BEEN_Nath_58

    BEEN_Nath_58 - 2023-09-18

    Sorry, I can't be of much help, it seems that the game is working fine here both on the Intel and the NVidia cards.

    Its a D3DRM game. It will always be on Intel... (probably I said this the 6th time)

    Tweaks: ForcesHEL solved everything except the weird "cubes" in the water and on the road.

    How does dgVoodoo2 do for you?

     
    • huh

      huh - 2023-09-18

      As far as I'm concerned, it works very well as I wrote in the first post.
      But the log was DxWnd so weird that I'll send it anyway tonight.

       
  • BEEN_Nath_58

    BEEN_Nath_58 - 2023-09-19

    Btw this problem is not new. It happens in at least two other places:
    * Globe demo
    * Lego Island

    Gho's on an Intel card and all three of them work fine on my Intel HD too, so it is difficult to ask him to fix.

    But it may be possible to emulate the problem with D3D9On12, that should be universally similar. D3D9On12 is available on Win10+, but all I need to check if that can emulate the issue

     
  • BEEN_Nath_58

    BEEN_Nath_58 - 2023-09-19

    Well D3D9On12 "fixes" the game instead, so that's in vain. Meanwhile I discovered DDrawCompat also can fix it. Maybe gho can learn some stufs from there.

     
  • huh

    huh - 2023-09-19

    @gho
    Oh I forgot to attach log in the evening, I had a hectic day. I'll try it tonight.

     
  • huh

    huh - 2023-09-19

    @gho
    Here is the protocol. How can you see a lot values "IDirect3DDevice2::SetRenderState:"
    is 0, I believe it is not good.

     
    • gho

      gho - 2023-09-19

      It doesn't seem odd .... let's take one line for example:

      IDirect3DDevice2::SetRenderState: d3dd=0x52cb8e8 dwState=0x1a(DITHERENABLE) dwValue=0()
      

      The SetRenderState accepts a functionality and a value. For boolean functionalities, the value can be either TRUE(1) or FALSE(0). So, this statement simply tells the D3D engine that dithering enabling (DITHERENABLE) is FALSE(0), that is that dithering is disabled.
      Since these calls are little more than an interface to set a D3D session value, often the programmers don't mind to optimize their number and flood the operations with settings that may be even superfluous.
      Please, let me know if you meant something else.

       
  • BEEN_Nath_58

    BEEN_Nath_58 - 2023-09-19

    I don't think the log is incorrect. It is most probably a driver bug. Cab gho ve helped with a trace file?

     
  • huh

    huh - 2023-09-20

    @gho
    OK, I was surprised that so many values IDirect3DDevice2::SetLightState: is 0.
    Do you see anything wrong in log?

     
    • gho

      gho - 2023-09-20

      No, I see repeated statements like these:

      IDirect3DDevice2::SetLightState: lpd3dd=0x52cb8e8 state=2(AMBIENT) value=0x80808080
      IDirect3DDevice2::SetLightState: lpd3dd=0x52cb8e8 state=4(FOGMODE) value=0
      

      which likely means there's a gray, non colored ambient light (AMBIENT = 0x80808080 with all RGBA colors identical and equal to 80, though likely the A transparency is ignored) and no fog (FOGMODE = 0).
      This is just a guess, but if the game is rendered correctly the log can't lie and the sequence must be right.

       

      Last edit: gho 2023-09-20
      • huh

        huh - 2023-09-20

        This is just a guess, but if the game is rendered correctly the log can't lie and the sequence must be right.

        Well, it's not, most of the textures are missing. It works very well with dgVoodoo so if there is no clue in the log I can live with that.

         
  • BEEN_Nath_58

    BEEN_Nath_58 - 2023-09-20

    @huh2 Not every correct value in log means everything is correct. Driver can expect different thing based on different value.

    This was the case with the Force W based fog: Intel and AMD worked on a. particular value while Nvidia wanted. something else.

    The other reason csn be a bad implementation. This seems to be the case here.

    If you want you can try Lego Island. The same issue occurs there. The PC where Worminator worked fine, Lego Island works fine there too.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.