Jump to content
Oovee® Games

Archived

This topic is now archived and is closed to further replies.

Guest reniwo

Fixing the invisible mud bug

Recommended Posts

Guest reniwo

The first 18 posts in this topic were split off from here.


 

You don't have to clear your cache.

There is a manual included in the current library!

If you follow the steps in the manual ... it should work and if not it could be a download error ...

maybe the TextureCache_voto1979.zip is currupt. So if you can open the zip all is ok and you might just have a simple type error in your config.xml!

 

there should be 3 "ZIP" files in the game folder

  • Media_voto1979.zip
  • MeshCache_voto1979.zip
  • TextureCache_voto1979.zip
In your case it seam that the registration of the TextureCache.zip is wrong (maybe type error / upper - lower case issue in your config.xml)

It also could be that the installlation of the exsisting content in your Media Library is causing trouble.

 

I test all my uploads (on a clean SpinTires /Installation where only mods from the workshop / are installed) I also testet Multiplayer and it works too.

 

 

Nothing. I tried redownloading all, modifying Config.xml again, I can open the three .zips without an issue. But when I load the first map I have this problem again:

 

3p636Y3.jpg

Share this post


Link to post
Share on other sites

the mud bug :) I dont know why some of you expirence that issue I know 3 other who has the same problem sometimes ... If they start new it works ( Sorry )

I use the default editor ... and more then test it on a clean installation with some installed mods from the workshop I can not do :(

 

 

But this is not what you asked before and I can see that the texture issues is gone

Share this post


Link to post
Share on other sites
Guest reniwo

Woah! I just found the bug. It's not a bug on your end but on Spintires Plus.

 

If I have SelectStartupAddons="true" this bug happens, but if I disable it all works perfectly! :o

Share this post


Link to post
Share on other sites
Guest reniwo

Yes, 100%.

 

If I change the SelectStartupAddons to SelectStartupAddons="false" it's fixed:

 

67cdNK9.jpg

Share this post


Link to post
Share on other sites

the mud bug :) I dont know why some of you expirence that issue I know 3 other who has the same problem sometimes

Can you ask those 3 people if SelectStartupAddons has an effect on this for them?

 

@reniwo: Do you still get invisible mud with this http://www.mediafire.com/download/h46v2dpfpact6cc/Invisimud_test.7z? (use your SpintiresPlus_config.xml )

I expect a "yes" but the bug doesn't appear on my computer and I have made changes to that part of the code recently.

Share this post


Link to post
Share on other sites

Can you ask those 3 people if SelectStartupAddons has an effect on this for them?

 

@reniwo: Do you still get invisible mud with this http://www.mediafire.com/download/h46v2dpfpact6cc/Invisimud_test.7z? (use your SpintiresPlus_config.xml )

I expect a "yes" but the bug doesn't appear on my computer and I have made changes to that part of the code recently.

 

I've just tried that and it still happens. It is not only on user made maps. This is volcano:

 

 

 

 

The same thing happens if you change your display settings in the middle of a map, so I don't think it's a problem that originates from ST+ but the SelectStartupAddons does induce it.

Share this post


Link to post
Share on other sites

The same thing happens if you change your display settings in the middle of a map.

When you did that test, did you have SelectStartupAddons enabled (even if you did not use it for this play session) ?

Can you cause the invisible mud bug with ST+ completely uninstalled?

...And what's your graphic card?

Share this post


Link to post
Share on other sites
Guest reniwo

Can you ask those 3 people if SelectStartupAddons has an effect on this for them?

 

@reniwo: Do you still get invisible mud with this http://www.mediafire.com/download/h46v2dpfpact6cc/Invisimud_test.7z? (use your SpintiresPlus_config.xml )

I expect a "yes" but the bug doesn't appear on my computer and I have made changes to that part of the code recently.

 

Nope! this fixes it for me.

Share this post


Link to post
Share on other sites

When you did that test, did you have SelectStartupAddons enabled (even if you did not use it for this play session) ?

Can you cause the invisible mud bug with ST+ completely uninstalled?

...And what's your graphic card?

Yes, I had SelectStartupAddons enabled.

 

This is with ST+ installed and SelectStartupAddons enabled:

 

 

 

 

This is with ST+ installed and SelectStartupAddons disabled:

 

 

 

 

This is with ST+ uninstalled and after changing the 'Level of detail distance' in the settings menu.

 

 

 

 

My graphic is a NVIDIA GeForce GT 610 (with up-to-date driver)

Share this post


Link to post
Share on other sites

@Reniwo: Glad it works for you...for now. Given Tim1's report I wouldn't be surprised if it started borking out again on you.

 

@Tim1: Thank you very much, at least now I know the root cause isn't in my code and I can stop scrounging it for nothing.

 

I was hoping you'd tell me you have a crappy graphic card with <512Mb of video ram, where disappearing mud could have been explained by the GPU running out of memory, but apparently the geforce 610 has >1Gb.

For the record the highest vram usage I saw in a start game->new SP game->start coast scenario was less than 350Mb (ST+ uninstalled).

 

Gotta think....

Share this post


Link to post
Share on other sites

@localhost, @Tim1, @Guest_reniwo ... thanks for finding the mud bug :) 

Share this post


Link to post
Share on other sites

@Tim1: first pass at trying to diagnose the invisimud.

1-Please install cheat engine .

2-Start the game and do your magic to get invisible mud, ideally with ST+ uninstalled so that we don't mix 2 bugs if there is also one in SelectStartupAddons.

3-Tab out and start cheat engine.

4-In settings->hotkeys set a key for "pause the selected process", then close the option menu.

5-Click File->open process and "open" the spintires.exe at the bottom of the list.

6-Press control+alt+shift+L, you'll get a "Lua Engine" window.

7-Paste this in the lower pane and press "execute":

 

Addresses={}
Addresses["EnterRenderTerrain"]=0x0B893E0
Addresses["RenderMudpools?"]=0x0B893EF

Addresses["LoadMudFx1"]=0xaaa715
Addresses["FX.SetTexture_730"]=0x0AAA748
Addresses["FX.SetTexture_773"]=0x0AAA773
Addresses["FX.SetTexture_79e"]=0x0AAA79e
Addresses["Device.SetVertexDeclaration"]=0x0AAA7BA
Addresses["Device.SetStreamSource"]=0x0AAA7DC
Addresses["LoadMudFx2"]=0x0AAA823
Addresses["LoadMudFx3"]=0x0AAA856
Addresses["LoadMudFx4"]=0x0AAA88c

Addresses["EnterRenderMudpoolSub"]=0x0AA7775
Addresses["FX.SetVector_816"]=0x0AA7816
Addresses["FX.SetVector_837"]=0x0AA7837
Addresses["FX.SetTexture_85b"]=0x0AA785B
Addresses["FX.SetTexture_93a"]=0x0AA793a
Addresses["FX.SetTexture_9b3"]=0x0AA79b3
Addresses["FX.SetTexture_9df"]=0x0AA79df
Addresses["FX.SetTexture_a17"]=0x0AA7a17
Addresses["FX.SetVector_a3b"]=0x0AA7a3b
Addresses["FX.SetTexture_aaa"]=0x0AA7aaa
Addresses["FX.SetTexture_adf"]=0x0AA7adf
Addresses["FX.SetFloatArray"]=0x0AA7b02
Addresses["FX.SetVector_b9d"]=0x0AA7b9d
Addresses["FX.CommitChanges"]=0x0AA7bb0
Addresses["Device.SetIndices"]=0xaa7c18
Addresses["Device.DrawPrimitive"]=0xaa7c50



--(re)attach debugger
detachIfPossible()
debugProcess(2) --ask for VEHDebugger
--debugProcess(1)   --debug

--add new BPs
for key,value in pairs(Addresses) do
  --print(string.format("%x",value))
  debug_setBreakpoint(value,0,bptExecute)
end


function debugger_onBreakpoint()
--inside render terrain
  if (EIP==Addresses["EnterRenderTerrain"]) then
    print(string.format("--------------\r\nVfetchDisabled=%x",readBytes(0xCABF92,1)))
  elseif (EIP==Addresses["RenderMudpools?"]) then
    local Pointer=readInteger(EAX)
    if (Pointer==nil) then
      print("MudManager=NULL")
    else
      print(string.format("MudManager=%x",Pointer))
    end
 --end

--inside RenderMudPools
  elseif (EIP==Addresses["LoadMudFx1"]) then
    print(string.format(" LoadMudFx(0,2)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_730"]) then
    print(string.format(" ID3DXEffect.SetTexture_730(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_773"]) then
    print(string.format(" ID3DXEffect.SetTexture_773(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_79e"]) then
    print(string.format(" ID3DXEffect.SetTexture_79e(...)=%x",EAX))
  elseif (EIP==Addresses["Device.SetVertexDeclaration"]) then
    print(string.format(" ID3DDevice9.SetVertexDeclaration(...)=%x",EAX))
  elseif (EIP==Addresses["Device.SetStreamSource"]) then
    print(string.format(" ID3DDevice9.SetStreamSource(0,Buffer,0,8)=%x",EAX))
  elseif (EIP==Addresses["LoadMudFx2"]) then
    print(string.format(" LoadMudFx(1,0)=%x",EAX))
  elseif (EIP==Addresses["LoadMudFx3"]) then
    print(string.format(" LoadMudFx(0,3)=%x",EAX))
  elseif (EIP==Addresses["LoadMudFx4"]) then
    print(string.format(" LoadMudFx(1,1)=%x",EAX))
  --end
--inside RenderMudpoolSub
  elseif (EIP==Addresses["EnterRenderMudpoolSub"]) then
    print(string.format("  RenderMudpoolSub pool count=%d",EAX))
  elseif (EIP==Addresses["FX.SetVector_816"]) then
    print(string.format("  ID3DXEffect.SetVector_816(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetVector_837"]) then
    print(string.format("  ID3DXEffect.SetVector_837(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_85b"]) then
    print(string.format("  ID3DXEffect.SetTexture_85b(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_93a"]) then
    print(string.format("  ID3DXEffect.SetTexture_93a(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_9b3"]) then
    print(string.format("  ID3DXEffect.SetTexture_9b3(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_9df"]) then
    print(string.format("  ID3DXEffect.SetTexture_9df(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_a17"]) then
    print(string.format("  ID3DXEffect.SetTexture_a17(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetVector_a3b"]) then
    print(string.format("  ID3DXEffect.SetVector_a3b(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_aaa"]) then
    print(string.format("  ID3DXEffect.SetTexture_aaa(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_adf"]) then
    print(string.format("  ID3DXEffect.SetTexture_adf(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetFloatArray"]) then
    print(string.format("  ID3DXEffect.SetFloatArray(...,2)=%x",EAX))
  elseif (EIP==Addresses["FX.SetVector_b9d"]) then
    print(string.format("  ID3DXEffect.SetVector_b9d(...)=%x",EAX))
  elseif (EIP==Addresses["FX.CommitChanges"]) then
    print(string.format("  ID3DXEffect.CommitChanges()=%x",EAX))
  elseif (EIP==Addresses["Device.SetIndices"]) then
    print(string.format("  ID3DDevice9.SetIndices(*)=%x",EAX))
  elseif (EIP==Addresses["Device.DrawPrimitive"]) then
    print(string.format("  ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=%x",EAX))
  end

  debug_continueFromBreakpoint(co_run)
end

 

 

8-Alt-tab back to game, framerate will get abyssal and Cheat engine will spam you with something like:

 

--------------
VfetchDisabled=0 
MudManager=3027054 
 LoadMudFx(0,2)=1ce06300 
 ID3DXEffect.SetTexture_730(...)=0 
 ID3DXEffect.SetTexture_773(...)=0 
 ID3DXEffect.SetTexture_79e(...)=0 
 ID3DDevice9.SetVertexDeclaration(...)=0 
 ID3DDevice9.SetStreamSource(0,Buffer,0,8)=0 
  RenderMudpoolSub pool count=0 
 LoadMudFx(1,0)=1ce06330 
  RenderMudpoolSub pool count=0 
 LoadMudFx(0,3)=1ce06360 
  RenderMudpoolSub pool count=20 
  ID3DXEffect.SetVector_816(...)=0 
  ID3DXEffect.SetVector_837(...)=0 
...
--------------
VfetchDisabled=0
MudManager=3027054 
...

 

 

To stop the loop, press the pause process key from step 4.

9-Please post one instance of the repeating message (it starts at the ---- line).

10-Then just close cheat engine.

Share this post


Link to post
Share on other sites

@Tim1: first pass at trying to diagnose the invisimud.

1-Please install cheat engine .

2-Start the game and do your magic to get invisible mud, ideally with ST+ uninstalled so that we don't mix 2 bugs if there is also one in SelectStartupAddons.

3-Tab out and start cheat engine.

4-In settings->hotkeys set a key for "pause the selected process", then close the option menu.

5-Click File->open process and "open" the spintires.exe at the bottom of the list.

6-Press control+alt+shift+L, you'll get a "Lua Engine" window.

7-Paste this in the lower pane and press "execute":

 

Addresses={}
Addresses["EnterRenderTerrain"]=0x0B893E0
Addresses["RenderMudpools?"]=0x0B893EF

Addresses["LoadMudFx1"]=0xaaa715
Addresses["FX.SetTexture_730"]=0x0AAA748
Addresses["FX.SetTexture_773"]=0x0AAA773
Addresses["FX.SetTexture_79e"]=0x0AAA79e
Addresses["Device.SetVertexDeclaration"]=0x0AAA7BA
Addresses["Device.SetStreamSource"]=0x0AAA7DC
Addresses["LoadMudFx2"]=0x0AAA823
Addresses["LoadMudFx3"]=0x0AAA856
Addresses["LoadMudFx4"]=0x0AAA88c

Addresses["EnterRenderMudpoolSub"]=0x0AA7775
Addresses["FX.SetVector_816"]=0x0AA7816
Addresses["FX.SetVector_837"]=0x0AA7837
Addresses["FX.SetTexture_85b"]=0x0AA785B
Addresses["FX.SetTexture_93a"]=0x0AA793a
Addresses["FX.SetTexture_9b3"]=0x0AA79b3
Addresses["FX.SetTexture_9df"]=0x0AA79df
Addresses["FX.SetTexture_a17"]=0x0AA7a17
Addresses["FX.SetVector_a3b"]=0x0AA7a3b
Addresses["FX.SetTexture_aaa"]=0x0AA7aaa
Addresses["FX.SetTexture_adf"]=0x0AA7adf
Addresses["FX.SetFloatArray"]=0x0AA7b02
Addresses["FX.SetVector_b9d"]=0x0AA7b9d
Addresses["FX.CommitChanges"]=0x0AA7bb0
Addresses["Device.SetIndices"]=0xaa7c18
Addresses["Device.DrawPrimitive"]=0xaa7c50



--(re)attach debugger
detachIfPossible()
debugProcess(2) --ask for VEHDebugger
--debugProcess(1)   --debug

--add new BPs
for key,value in pairs(Addresses) do
  --print(string.format("%x",value))
  debug_setBreakpoint(value,0,bptExecute)
end


function debugger_onBreakpoint()
--inside render terrain
  if (EIP==Addresses["EnterRenderTerrain"]) then
    print(string.format("--------------\r\nVfetchDisabled=%x",readBytes(0xCABF92,1)))
  elseif (EIP==Addresses["RenderMudpools?"]) then
    local Pointer=readInteger(EAX)
    if (Pointer==nil) then
      print("MudManager=NULL")
    else
      print(string.format("MudManager=%x",Pointer))
    end
 --end

--inside RenderMudPools
  elseif (EIP==Addresses["LoadMudFx1"]) then
    print(string.format(" LoadMudFx(0,2)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_730"]) then
    print(string.format(" ID3DXEffect.SetTexture_730(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_773"]) then
    print(string.format(" ID3DXEffect.SetTexture_773(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_79e"]) then
    print(string.format(" ID3DXEffect.SetTexture_79e(...)=%x",EAX))
  elseif (EIP==Addresses["Device.SetVertexDeclaration"]) then
    print(string.format(" ID3DDevice9.SetVertexDeclaration(...)=%x",EAX))
  elseif (EIP==Addresses["Device.SetStreamSource"]) then
    print(string.format(" ID3DDevice9.SetStreamSource(0,Buffer,0,8)=%x",EAX))
  elseif (EIP==Addresses["LoadMudFx2"]) then
    print(string.format(" LoadMudFx(1,0)=%x",EAX))
  elseif (EIP==Addresses["LoadMudFx3"]) then
    print(string.format(" LoadMudFx(0,3)=%x",EAX))
  elseif (EIP==Addresses["LoadMudFx4"]) then
    print(string.format(" LoadMudFx(1,1)=%x",EAX))
  --end
--inside RenderMudpoolSub
  elseif (EIP==Addresses["EnterRenderMudpoolSub"]) then
    print(string.format("  RenderMudpoolSub pool count=%d",EAX))
  elseif (EIP==Addresses["FX.SetVector_816"]) then
    print(string.format("  ID3DXEffect.SetVector_816(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetVector_837"]) then
    print(string.format("  ID3DXEffect.SetVector_837(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_85b"]) then
    print(string.format("  ID3DXEffect.SetTexture_85b(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_93a"]) then
    print(string.format("  ID3DXEffect.SetTexture_93a(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_9b3"]) then
    print(string.format("  ID3DXEffect.SetTexture_9b3(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_9df"]) then
    print(string.format("  ID3DXEffect.SetTexture_9df(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_a17"]) then
    print(string.format("  ID3DXEffect.SetTexture_a17(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetVector_a3b"]) then
    print(string.format("  ID3DXEffect.SetVector_a3b(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_aaa"]) then
    print(string.format("  ID3DXEffect.SetTexture_aaa(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetTexture_adf"]) then
    print(string.format("  ID3DXEffect.SetTexture_adf(...)=%x",EAX))
  elseif (EIP==Addresses["FX.SetFloatArray"]) then
    print(string.format("  ID3DXEffect.SetFloatArray(...,2)=%x",EAX))
  elseif (EIP==Addresses["FX.SetVector_b9d"]) then
    print(string.format("  ID3DXEffect.SetVector_b9d(...)=%x",EAX))
  elseif (EIP==Addresses["FX.CommitChanges"]) then
    print(string.format("  ID3DXEffect.CommitChanges()=%x",EAX))
  elseif (EIP==Addresses["Device.SetIndices"]) then
    print(string.format("  ID3DDevice9.SetIndices(*)=%x",EAX))
  elseif (EIP==Addresses["Device.DrawPrimitive"]) then
    print(string.format("  ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=%x",EAX))
  end

  debug_continueFromBreakpoint(co_run)
end

 

 

8-Alt-tab back to game, framerate will get abyssal and Cheat engine will spam you with something like:

 

--------------
VfetchDisabled=0 
MudManager=3027054 
 LoadMudFx(0,2)=1ce06300 
 ID3DXEffect.SetTexture_730(...)=0 
 ID3DXEffect.SetTexture_773(...)=0 
 ID3DXEffect.SetTexture_79e(...)=0 
 ID3DDevice9.SetVertexDeclaration(...)=0 
 ID3DDevice9.SetStreamSource(0,Buffer,0,8)=0 
  RenderMudpoolSub pool count=0 
 LoadMudFx(1,0)=1ce06330 
  RenderMudpoolSub pool count=0 
 LoadMudFx(0,3)=1ce06360 
  RenderMudpoolSub pool count=20 
  ID3DXEffect.SetVector_816(...)=0 
  ID3DXEffect.SetVector_837(...)=0 
...
--------------
VfetchDisabled=0
MudManager=3027054 
...

 

 

To stop the loop, press the pause process key from step 4.

9-Please post one instance of the repeating message (it starts at the ---- line).

10-Then just close cheat engine.

this is what I got:

 

--------------

VfetchDisabled=0

MudManager=c5b9164

LoadMudFx(0,2)=2751ec00

ID3DXEffect.SetTexture_730(...)=0

ID3DXEffect.SetTexture_773(...)=0

ID3DXEffect.SetTexture_79e(...)=0

ID3DDevice9.SetVertexDeclaration(...)=0

ID3DDevice9.SetStreamSource(0,Buffer,0,8)=0

RenderMudpoolSub pool count=4

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_9b3(...)=0

ID3DXEffect.SetTexture_9df(...)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

LoadMudFx(1,0)=2751e7b0

RenderMudpoolSub pool count=4

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_9b3(...)=0

ID3DXEffect.SetTexture_9df(...)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

LoadMudFx(0,3)=2751e8d0

RenderMudpoolSub pool count=4

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_9b3(...)=0

ID3DXEffect.SetTexture_9df(...)=0

ID3DXEffect.SetTexture_a17(...)=0

ID3DXEffect.SetVector_a3b(...)=0

ID3DXEffect.SetTexture_aaa(...)=0

ID3DXEffect.SetTexture_adf(...)=0

ID3DXEffect.SetFloatArray(...,2)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

LoadMudFx(1,1)=2751ea20

RenderMudpoolSub pool count=28

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_9b3(...)=0

ID3DXEffect.SetTexture_9df(...)=0

ID3DXEffect.SetTexture_a17(...)=0

ID3DXEffect.SetVector_a3b(...)=0

ID3DXEffect.SetTexture_aaa(...)=0

ID3DXEffect.SetTexture_adf(...)=0

ID3DXEffect.SetFloatArray(...,2)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_a17(...)=0

ID3DXEffect.SetVector_a3b(...)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_a17(...)=0

ID3DXEffect.SetVector_a3b(...)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_9b3(...)=0

ID3DXEffect.SetTexture_9df(...)=0

ID3DXEffect.SetTexture_a17(...)=0

ID3DXEffect.SetVector_a3b(...)=0

ID3DXEffect.SetTexture_aaa(...)=0

ID3DXEffect.SetTexture_adf(...)=0

ID3DXEffect.SetFloatArray(...,2)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_9b3(...)=0

ID3DXEffect.SetTexture_9df(...)=0

ID3DXEffect.SetTexture_a17(...)=0

ID3DXEffect.SetVector_a3b(...)=0

ID3DXEffect.SetTexture_aaa(...)=0

ID3DXEffect.SetTexture_adf(...)=0

ID3DXEffect.SetFloatArray(...,2)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_a17(...)=0

ID3DXEffect.SetVector_a3b(...)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_a17(...)=0

ID3DXEffect.SetVector_a3b(...)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

--------------

VfetchDisabled=0

MudManager=c5b9164

LoadMudFx(0,2)=2751ec00

ID3DXEffect.SetTexture_730(...)=0

ID3DXEffect.SetTexture_773(...)=0

ID3DXEffect.SetTexture_79e(...)=0

ID3DDevice9.SetVertexDeclaration(...)=0

ID3DDevice9.SetStreamSource(0,Buffer,0,8)=0

RenderMudpoolSub pool count=4

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_9b3(...)=0

ID3DXEffect.SetTexture_9df(...)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

LoadMudFx(1,0)=2751e7b0

RenderMudpoolSub pool count=4

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_9b3(...)=0

ID3DXEffect.SetTexture_9df(...)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

LoadMudFx(0,3)=2751e8d0

RenderMudpoolSub pool count=4

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_9b3(...)=0

ID3DXEffect.SetTexture_9df(...)=0

ID3DXEffect.SetTexture_a17(...)=0

ID3DXEffect.SetVector_a3b(...)=0

ID3DXEffect.SetTexture_aaa(...)=0

ID3DXEffect.SetTexture_adf(...)=0

ID3DXEffect.SetFloatArray(...,2)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

LoadMudFx(1,1)=2751ea20

RenderMudpoolSub pool count=28

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_9b3(...)=0

ID3DXEffect.SetTexture_9df(...)=0

ID3DXEffect.SetTexture_a17(...)=0

ID3DXEffect.SetVector_a3b(...)=0

ID3DXEffect.SetTexture_aaa(...)=0

ID3DXEffect.SetTexture_adf(...)=0

ID3DXEffect.SetFloatArray(...,2)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_a17(...)=0

ID3DXEffect.SetVector_a3b(...)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_a17(...)=0

ID3DXEffect.SetVector_a3b(...)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_9b3(...)=0

ID3DXEffect.SetTexture_9df(...)=0

ID3DXEffect.SetTexture_a17(...)=0

ID3DXEffect.SetVector_a3b(...)=0

ID3DXEffect.SetTexture_aaa(...)=0

ID3DXEffect.SetTexture_adf(...)=0

ID3DXEffect.SetFloatArray(...,2)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_816(...)=0

ID3DXEffect.SetVector_837(...)=0

ID3DXEffect.SetTexture_85b(...)=0

ID3DXEffect.SetTexture_93a(...)=0

ID3DXEffect.SetTexture_9b3(...)=0

ID3DXEffect.SetTexture_9df(...)=0

ID3DXEffect.SetTexture_a17(...)=0

ID3DXEffect.SetVector_a3b(...)=0

ID3DXEffect.SetTexture_aaa(...)=0

ID3DXEffect.SetTexture_adf(...)=0

ID3DXEffect.SetFloatArray(...,2)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

ID3DXEffect.CommitChanges()=0

ID3DDevice9.SetIndices(*)=0

ID3DDevice9.DrawPrimitive(4,0,0,*,0,*)=0

ID3DXEffect.SetVector_b9d(...)=0

 

 

Share this post


Link to post
Share on other sites

@Tim1: each ID3D*** line that ends with "=0" means that this particular bit or directx code claims it did its job correctly, and if you look carefully, none of them reports any error. AFAIK, for each 3d model DrawPrimitive is the last operation before saying "I'm done, send all that to the screen", so if this does not report failure, then directx is probably drawing the mud. From there I see 2 possibilities:

1-Mud is drawn with a fully transparent texture, therefore being invisible.

2-The position of the mud is corrupt, and it is drawn faraway offscreen.

 

To know what's what I suggest running the game in wireframe mode. Normally I'd direct you to one of the many tools on the net that can force a game into wireframe mode, but you'd only end up with a black screen because the "game" you see is just a texture drawn onto 2 triangles in front of your screen.

 

So I made a custom wireframe mode to work around that. Add the WireframeMode="true" option to your SpintiresPlus_confg.xml like this:

<Config DebugMode="false" WireframeMode="true" >
    <Camera
        ...
    />
    <Gameplay
        ...
    />
   ...
</Config>

Run game and press F2/F3 to toggle between standard and wireframe modes.

 

The idea is to run the game in standard mode, make the mud disappear, press F3 to switch to wireframe mode and see if the model of the mudpool is still there or not.

Mudpools can be easily recognized by their much higher density of polygons then regular terrain, but you might want to have a look at it yourself before making the mud disappear.

Share this post


Link to post
Share on other sites

@Tim1: each ID3D*** line that ends with "=0" means that this particular bit or directx code claims it did its job correctly, and if you look carefully, none of them reports any error. AFAIK, for each 3d model DrawPrimitive is the last operation before saying "I'm done, send all that to the screen", so if this does not report failure, then directx is probably drawing the mud. From there I see 2 possibilities:

1-Mud is drawn with a fully transparent texture, therefore being invisible.

2-The position of the mud is corrupt, and it is drawn faraway offscreen.

 

To know what's what I suggest running the game in wireframe mode. Normally I'd direct you to one of the many tools on the net that can force a game into wireframe mode, but you'd only end up with a black screen because the "game" you see is just a texture drawn onto 2 triangles in front of your screen.

 

So I made a custom wireframe mode to work around that. Add the WireframeMode="true" option to your SpintiresPlus_confg.xml like this:

<Config DebugMode="false" WireframeMode="true" >
    <Camera
        ...
    />
    <Gameplay
        ...
    />
   ...
</Config>

Run game and press F2/F3 to toggle between standard and wireframe modes.

 

The idea is to run the game in standard mode, make the mud disappear, press F3 to switch to wireframe mode and see if the model of the mudpool is still there or not.

Mudpools can be easily recognized by their much higher density of polygons then regular terrain, but you might want to have a look at it yourself before making the mud disappear.

without the bug:

 

 

with the bug:

 

 

 

Does that shed any light? It looks to me like the whole thing lowers slightly

Share this post


Link to post
Share on other sites

@Tim1: Yup, that's very interesting. As you said the mudpools are just lowered below ground (it's particularly visible on pool to the right), but their shape remains the same, which means their 3d model hasn't been overwritten by some random data as I thought in my previous post. I'll also assume that mud texture is not transparent.

 

Now I just have to find how to give a lift to mudpools that are six feet under...

(also have to find how they got there)

Share this post


Link to post
Share on other sites

@Tim1: next test:

1-Copy this and press ctrl+v at cheat engine's (CE) main menu:

 

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>0</ID>
      <Description>"Disable SaveMudDeformation"</Description>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
00AA8BC0:
ret 4


 
 
[DISABLE]
00AA8BC0:
push ebp
mov ebp,esp
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

 

"Disable SaveMudDeformation" should appear in the lower pane, along with a check box.

2-Start spintires.

3-When the mud is still normal, alt tab to CE and attach it to spintires (file->open process->spintires).

4-Activate "Disable SaveMudDeformation" by ticking its checkbox.

5-Get back into the game, can you still get invisible/underground mud?

 

Note: if it does prevent underground mud, that's good, but it only means I'm closing on the problem, this isn't fit for regular play as it will cause any mud deformation to disappear after the vehicle moves away.

 

@Moderators, Tim1, and Voto1979

I'm wondering if this thread should be split. I don't see any reason to spoil voto's releases with bug discussion, especially now that it has been showed that the bug also appears on the default maps.

Share this post


Link to post
Share on other sites

@Moderators, Tim1, and Voto1979

I'm wondering if this thread should be split. I don't see any reason to spoil voto's releases with bug discussion, especially now that it has been showed that the bug also appears on the default maps.

I heard you! :)

 

I'm not that sure about the correct section though (are we trying to fix a bug in the game, more likely to appear when using ST+, or a bug in ST+?). IIRC, this bug has been around for long (even before ST+), and was caused by some save problem. Simply deleting the save and starting anew fixed the issue (my 99% closed eyes didn't read that anywhere in these posts).

Share this post


Link to post
Share on other sites

@Tim1: next test:

1-Copy this and press ctrl+v at cheat engine's (CE) main menu:

 

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>0</ID>
      <Description>"Disable SaveMudDeformation"</Description>
      <LastState Activated="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
00AA8BC0:
ret 4


 
 
[DISABLE]
00AA8BC0:
push ebp
mov ebp,esp
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

 

"Disable SaveMudDeformation" should appear in the lower pane, along with a check box.

2-Start spintires.

3-When the mud is still normal, alt tab to CE and attach it to spintires (file->open process->spintires).

4-Activate "Disable SaveMudDeformation" by ticking its checkbox.

5-Get back into the game, can you still get invisible/underground mud?

 

Note: if it does prevent underground mud, that's good, but it only means I'm closing on the problem, this isn't fit for regular play as it will cause any mud deformation to disappear after the vehicle moves away.

 

@Moderators, Tim1, and Voto1979

I'm wondering if this thread should be split. I don't see any reason to spoil voto's releases with bug discussion, especially now that it has been showed that the bug also appears on the default maps.

I tested that with ST+ uninstalled, ST+ installed SelectStartupAddons disabled, and ST+ installed SelectStartupAddons enabled.

All three occasions sadly produced the bug :(

 

I wish there was more I could do to help, but I only know HTML, CSS, and JavaScript, lol. Feeling pretty useless right now :(

Share this post


Link to post
Share on other sites

I heard you! :)

 

I'm not that sure about the correct section though (are we trying to fix a bug in the game, more likely to appear when using ST+, or a bug in ST+?). IIRC, this bug has been around for long (even before ST+), and was caused by some save problem. Simply deleting the save and starting anew fixed the issue (my 99% closed eyes didn't read that anywhere in these posts).

I just deleted every save, the problem persists :(

Share this post


Link to post
Share on other sites

I heard you!

Thanks!

 

are we trying to fix a bug in the game, more likely to appear when using ST+, or a bug in ST+?

There is a bug in the base game that causes invisible (sunken) mud even if ST+ is uninstalled.

It is unclear if there is also bug in ST+ that has the same effect, or if my d3d hook makes the base game's bug more likely to happen.

For now I'm hunting the bug in the base game.

 

IIRC, this bug has been around for long (even before ST+), and was caused by some save problem. Simply deleting the save and starting anew fixed the issue (my 99% closed eyes didn't read that anywhere in these posts).

Makes sense since atm my prime suspect is a code that can throw the error "Terrain| Cant deserialize  pTexel->bHeightOffset.", with that bHeightOffset being corrupt with a value close or equal to 0, seemingly constant across a whole tile (of 128*128=16384 pixels).

 

(For the profanes: "deserializing" means "loading a saved object")

 

Feeling pretty useless right now

The bug doesn't happen on my system, so if you weren't there I wouldn't even have a chance against this bug.

Plus bugs like this that happen randomly are a pain to study, so as a developer you're pretty happy when you have a way to consistently trigger them.

Share this post


Link to post
Share on other sites

Alright, more tests for you Tim1:

Paste this in CE's main window

 

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>9</ID>
      <Description>"Test1: force mud height=147"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
alloc(newmem,100)
label(returnhere)


newmem:
  mov dl, 93
  add edi,04
jmp returnhere

"SpinTires.exe"+79F88B:
jmp newmem
returnhere:

SpinTires.exe+7A0DC1:
jmp SpinTires.exe+7A1054

 
 
[DISABLE]
dealloc(newmem)
"SpinTires.exe"+79F88B:
mov dl,[eax]
add edi,04

SpinTires.exe+7A0DC1:
je SpinTires.exe+7A1054

</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>10</ID>
      <Description>"Test2: force mud height=255"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
alloc(newmem,100)
label(returnhere)


newmem:
  mov dl, ff
  add edi,04
jmp returnhere

"SpinTires.exe"+79F88B:
jmp newmem
returnhere:

SpinTires.exe+7A0DC1:
jmp SpinTires.exe+7A1054
 
 
[DISABLE]
dealloc(newmem)
"SpinTires.exe"+79F88B:
mov dl,[eax]
add edi,04

SpinTires.exe+7A0DC1:
je SpinTires.exe+7A1054
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>12</ID>
      <Description>"Test3: Log D3D errors"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
Addresses={}
Addresses["D3DHRESULT"]=0xC8DC48

detachIfPossible()
debugProcess(2) --ask for VEHDebugger
--debugProcess(1)

debug_setBreakpoint(Addresses["D3DHRESULT"],4,bptWrite)

function debugger_onBreakpoint()
  local hr=readInteger(Addresses["D3DHRESULT"])
  if (hr~=nil and (hr>0x8760000 or hr<0)) then
    print(string.format("D3D returned error %x at address %x",hr,EIP))
  end

  debug_continueFromBreakpoint(co_run)
  return 1 --don't show the memory viewer
end

{$asm}
[DISABLE]
{$lua}
debug_removeBreakpoint(Addresses["D3DHRESULT"])
detachIfPossible()
Addresses={}
{$asm}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

 

then attach cheat engine to the game.

Test 1: can be activated at any time, just change the "level of detail distance" after enabling this and it should either fix broken mud or prevent it from sinking. Question is: does it work?

It overwrites mud height with a constant that may not be appropriate for all circumstances, resulting in small visual artifacts but nothing comparable to invisimud.

 

Test 2: is exactly like test 1 but with a different height constant (255). It should make all mud pop up (after a LOD distance change). Point is to make sure that test 1 had an effect.

 

Test 3: more directx error logging, it should be activated when the mud is still ok, and stopped as soon as the mud starts glitching out. Beware that it'll make your game lag severely. The "lua engine" window will pop up if it has any error to report. Please post any error it finds, if any.

 

Test 4: doesn't need CE. You can hold left shift when starting spintires to cause it to output a more verbose log file in %appdata%\spintires . Does it contain error messages when you cause a mud failure?

 

Please only activate one of tests 1-3 at a time, and for now let's work with ST+ uninstalled.

Share this post


Link to post
Share on other sites

Alright, more tests for you Tim1:

Paste this in CE's main window

 

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>9</ID>
      <Description>"Test1: force mud height=147"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
alloc(newmem,100)
label(returnhere)


newmem:
  mov dl, 93
  add edi,04
jmp returnhere

"SpinTires.exe"+79F88B:
jmp newmem
returnhere:

SpinTires.exe+7A0DC1:
jmp SpinTires.exe+7A1054

 
 
[DISABLE]
dealloc(newmem)
"SpinTires.exe"+79F88B:
mov dl,[eax]
add edi,04

SpinTires.exe+7A0DC1:
je SpinTires.exe+7A1054

</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>10</ID>
      <Description>"Test2: force mud height=255"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
alloc(newmem,100)
label(returnhere)


newmem:
  mov dl, ff
  add edi,04
jmp returnhere

"SpinTires.exe"+79F88B:
jmp newmem
returnhere:

SpinTires.exe+7A0DC1:
jmp SpinTires.exe+7A1054
 
 
[DISABLE]
dealloc(newmem)
"SpinTires.exe"+79F88B:
mov dl,[eax]
add edi,04

SpinTires.exe+7A0DC1:
je SpinTires.exe+7A1054
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>12</ID>
      <Description>"Test3: Log D3D errors"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
Addresses={}
Addresses["D3DHRESULT"]=0xC8DC48

detachIfPossible()
debugProcess(2) --ask for VEHDebugger
--debugProcess(1)

debug_setBreakpoint(Addresses["D3DHRESULT"],4,bptWrite)

function debugger_onBreakpoint()
  local hr=readInteger(Addresses["D3DHRESULT"])
  if (hr~=nil and (hr>0x8760000 or hr<0)) then
    print(string.format("D3D returned error %x at address %x",hr,EIP))
  end

  debug_continueFromBreakpoint(co_run)
  return 1 --don't show the memory viewer
end

{$asm}
[DISABLE]
{$lua}
debug_removeBreakpoint(Addresses["D3DHRESULT"])
detachIfPossible()
Addresses={}
{$asm}
</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

 

then attach cheat engine to the game.

Test 1: can be activated at any time, just change the "level of detail distance" after enabling this and it should either fix broken mud or prevent it from sinking. Question is: does it work?

It overwrites mud height with a constant that may not be appropriate for all circumstances, resulting in small visual artifacts but nothing comparable to invisimud.

 

Test 2: is exactly like test 1 but with a different height constant (255). It should make all mud pop up (after a LOD distance change). Point is to make sure that test 1 had an effect.

 

Test 3: more directx error logging, it should be activated when the mud is still ok, and stopped as soon as the mud starts glitching out. Beware that it'll make your game lag severely. The "lua engine" window will pop up if it has any error to report. Please post any error it finds, if any.

 

Test 4: doesn't need CE. You can hold left shift when starting spintires to cause it to output a more verbose log file in %appdata%\spintires . Does it contain error messages when you cause a mud failure?

 

Please only activate one of tests 1-3 at a time, and for now let's work with ST+ uninstalled.

Here are the results:

 

Test 1: Nothing changed.

 

Test 2: Mud popped up like you said. (is it strange how test 1 didn't work, but test 2 did?)

 

 

 

 

Test 3: Went really laggy, but did not open the lua engine after activating the bug and pressing the hotkey to stop.

 

Test 4: Here is the whole log of me opening SpinTires, starting a new game on the coast map, activating the bug, then closing SpinTires.

 

06/29/16 13:30:36> Info,System| Working directory 'C:/Program Files (x86)/Steam/steamapps/common/Spintires'

06/29/16 13:30:36> Info,System| NvAPI is initialised succesfully

06/29/16 13:30:36> Info,Havok| Havok initialized.

06/29/16 13:30:36> Info,Havok| Havok world created.

06/29/16 13:30:36> Info,System| Combine class created...

06/29/16 13:30:36> Info,System| MediaPath 'Media' added.

06/29/16 13:30:36> Info,System| MediaPath 'Media.zip' added.

06/29/16 13:30:36> Info,System| MediaPath 'TextureCache.zip' added.

06/29/16 13:30:36> Info,System| MediaPath 'MeshCache.zip' added.

06/29/16 13:30:36> Info,Sound| XAudio2 engine initialized.

06/29/16 13:30:36> System,Info| PHYSFS_mount('C:/Program Files (x86)/Steam/steamapps/workshop/content/263280/660337973/275bf535.zip').

06/29/16 13:30:36> System,Info| PHYSFS_mount('C:/Program Files (x86)/Steam/steamapps/workshop/content/263280/700497011/29c0bc73.zip').

06/29/16 13:30:37> System,Info| PHYSFS_mount('C:/Program Files (x86)/Steam/steamapps/workshop/content/263280/696937223/298a6b07.zip').

06/29/16 13:30:37> System,Info| PHYSFS_mount('C:/Program Files (x86)/Steam/steamapps/workshop/content/263280/659385521/274d6cb1.zip').

06/29/16 13:30:37> System,Info| PHYSFS_mount('C:/Program Files (x86)/Steam/steamapps/workshop/content/263280/672599651/28170e63.zip').

06/29/16 13:30:37> System,Info| PHYSFS_mount('C:/Program Files (x86)/Steam/steamapps/workshop/content/263280/629380172/2583944c.zip').

06/29/16 13:30:37> System,Info| PHYSFS_mount('C:/Program Files (x86)/Steam/steamapps/workshop/content/263280/641037007/263572cf.zip').

06/29/16 13:30:37> System,Info| PHYSFS_mount('C:/Program Files (x86)/Steam/steamapps/workshop/content/263280/578192509/2276847d.zip').

06/29/16 13:30:37> System,Info| PHYSFS_mount('C:/Program Files (x86)/Steam/steamapps/workshop/content/263280/622791834/251f0c9a.zip').

06/29/16 13:30:37> System,Info| PHYSFS_mount('C:/Program Files (x86)/Steam/steamapps/workshop/content/263280/640335119/262abd0f.zip').

06/29/16 13:30:37> System,Info| PHYSFS_mount('C:/Program Files (x86)/Steam/steamapps/workshop/content/263280/621027450/2504207a.zip').

06/29/16 13:30:37> System,Info| PHYSFS_mount('C:/Program Files (x86)/Steam/steamapps/workshop/content/263280/531302630/1fab08e6.zip').

06/29/16 13:30:37> Info,System| Combine starting...

06/29/16 13:30:37> Info,System| DXUTInit done

06/29/16 13:30:38> Info,System| NvAPI_Stereo_CreateHandleFromIUnknown error: NVAPI_STEREO_NOT_INITIALIZED

06/29/16 13:30:38> Info,System| Supported Vertex Texture Fetch formats : A8R8G8B8, R16F, G16R16F, A16B16G16R16F, R32F, G32R32F, A32B32G32R32F.

06/29/16 13:30:38> Info,System| INTZ depth texture supported.

06/29/16 13:30:38> Info,System| Hardware PCF supported.

06/29/16 13:30:38> Info,System| Null RT supported.

06/29/16 13:30:38> Info,Effect| Read 1166 entries from ShaderCache.sdc (0.00000 s).

06/29/16 13:30:38> Info,System| D3D9Device created HAL: NVIDIA GeForce GT 610 (1415 x 785, hDeviceWindow = 1c0478, AdapterOrdinal = 0)

06/29/16 13:30:38> XML,Info,Game| Loaded 3 impact types (0 updated) (ImpactTypes,)

06/29/16 13:30:38> XML,Info,Game| Loaded 1 debris types (0 updated) (DebrisTypes,)

06/29/16 13:30:38> XML,Info,Game| Loaded 3 break types (0 updated) (BreakTypes,)

06/29/16 13:30:38> Info,System| Couldnt create DI effect

06/29/16 13:30:38> Info,Game| Init LUA

06/29/16 13:30:38> Info,Lua| Script common.lua compiled (0.00075 s).

06/29/16 13:30:38> Info,Lua| Script truck.lua compiled (0.00199 s).

06/29/16 13:30:38> Info,Lua| Script mud.lua compiled (0.00050 s).

06/29/16 13:30:38> Info,Lua| Script water.lua compiled (0.00073 s).

06/29/16 13:30:38> Info,Lua| Script events.lua compiled (0.00074 s).

06/29/16 13:30:38> Info,Lua| Script game.lua compiled (0.00073 s).

06/29/16 13:30:39> Info,System| Creating non-MS render targets 1415 x 785 A8R8G8B8...

06/29/16 13:30:39> Info,System| D3D9Device reset (1415 x 785, hDeviceWindow = 1c0478).

06/29/16 13:30:39> Info,System| DXUTCreateDevice done

06/29/16 13:30:39> Info,Steam| Received stats and achievements from Steam

06/29/16 13:30:39> Info,Terrain| File level_menu loaded.

06/29/16 13:30:46> Info,Terrain| File level_coast loaded.

06/29/16 13:32:16> Info,System| D3D9Device lost.

06/29/16 13:32:16> Info,System| D3D9Device destroyed.

06/29/16 13:32:16> Info,System| Elapsed time: 96.8(s)

06/29/16 13:32:16> Info,System| Combine config saved to C:/Users/Tim/AppData/Roaming/SpinTires/Config.xml.

 

 

 

To me, it doesn't look like it reports anything abnormal.  File level_coast loaded. Then the following lines are just the window closing, nothing in-between when the bug is actually activated.

Share this post


Link to post
Share on other sites

Test 1: Nothing changed.

 

Test 2: Mud popped up like you said.

Just to be sure, "nothing changed" means that you still got invisible mud, not that the mud stayed at normal height, correct?

if not: it actually worked.

if yes: can you redo test 2? It could be the the bug just randomly refused to appear that time.

 

If the bug refuses to happen with test 2 no matter what, try to edit this script (double click <script> in CE) and replace the "mov dl, ff" by "mov dl, #123" where 123 is a decimal value of your choosing between 0 and 255. Then see if there is a threshold above which the mud bug doesn't happen.

To apply your modification to the game, you must close the script editor, deactivate the script and reactivate it.

 

Test 4: Here is the whole log of me opening SpinTires, starting a new game on the coast map, activating the bug, then closing SpinTires.

[snip]

 

To me, it doesn't look like it reports anything abnormal.  File level_coast loaded. Then the following lines are just the window closing, nothing in-between when the bug is actually activated.

Yup, the absence of errors is not helping much, however I noticed that I have a "Info,System| Creating SM RT (1024 x 1024) hardware PCF" between loading a level and directx destruction. SM is probably Shader Model, and RT, Render Target. I'll check what those do.

Share this post


Link to post
Share on other sites

×
×
  • Create New...