Jump to content
COMBATSIM Forum
mikew

TFXplorer and Windows 10

Recommended Posts

Just spent Friday evening on a long fight installing Win10 from scratch.
Linux and Windows seem to have changed places in this regard since after the basic install, I needed to use a trusty Linux PC to download various drivers to get ethernet, wifi, HDMI audio working properly.
Then there's the hour long update process to get to 1903.
Then it's getting rid of the 'creepy best friend' stuff Microsoft thinks I want.
Why the hell do I end up with 'Candy Crush' installed when I start with a genuine 'Win10 Pro' installation USB stick?


Anyway, it's as tamed as it's likely going to get, so the first thing non-MS thing to install is Firefox and an ad-blocker.
...which is needed for the second vital thing, which is of course, TFXplorer.:icon_rock:

 

So downloaded it and it runs!...except no audio, but the DirectX runtime fixes that.

 

Can I build TFXplorer? It's 2019, so it must be 'Visual Studio 2019 Community Edition' with the C++ toolset that I need.
After installation,  I open the .sln  file and 'build'.
Oh, no!: Build: 2 succeeded, 6 failed, 0 up-to-date, 0 skipped
Phew! The failures are caused by some 'Copy' commands (due to some environment problem I guess) as the binaries seem to be present.

So I just need to copy the binaries into the same structure as the existing TFXplorer and start it...

 

Disaster! The terminal starts up, but there is no text. The overlay logo also appears but both shut down after a couple of seconds with no obvious sign of error.

If I drag a .3 file over the '3View' icon, the terminal starts up OK, and displays the expected text, then the 3D frame is visible of a fraction of a second before it and the terminal shut down. Again, no error messages.

 

At least 'Microsoft Solitaire Collection' works. :D

Share this post


Link to post
Share on other sites
1 hour ago, mikew said:

Just spent Friday evening on a long fight installing Win10 from scratch.

Yay, mine will be due on christmas …

 

1 hour ago, mikew said:

Phew! The failures are caused by some 'Copy' commands (due to some environment problem I guess) as the binaries seem to be present.

So I just need to copy the binaries into the same structure as the existing TFXplorer and start it...

Indeed, I still need to clean the directory mess up! Sorry!

 

1 hour ago, mikew said:

Disaster! The terminal starts up, but there is no text. The overlay logo also appears but both shut down after a couple of seconds with no obvious sign of error.

If I drag a .3 file over the '3View' icon, the terminal starts up OK, and displays the expected text, then the 3D frame is visible of a fraction of a second before it and the terminal shut down. Again, no error messages.

Sounds bad to debug, but could be a simple error with the rendering.

  1. Due to the Copy command problems, Visual Studio won’t allow you to debug the solution. It will instead always try to compile it and fail. So start Visual Studio without loading the TFXplorer solution.
  2. File -> Open -> Project/Solution -> navigate to the TFXplorer executable you placed in the existing TFXplorer file structure and select it
  3. Hit F5 to start debugging – since you compiled the executables yourself, Visual Studio will directly find all associated debug symbols and source code files even though the file is not in its original location any more
  4. Hopefully, the debugger breaks at the point an error occurrs. Best to copy and paste the content of the Call Stack window here.

Share this post


Link to post
Share on other sites

The Call Stack sayeth this:

TFXplorer x64.exe!breakOnWindowsError() Line 330    C++
TFXplorer x64.exe!WIN32_SHOULD_SUCCEED<int>(int call) Line 16    C++
TFXplorer x64.exe!OS::Win32::resizeConsole(OS::Win32::File & console, unsigned short newX, unsigned short newY) Line 560    C++
TFXplorer x64.exe!main() Line 546    C++
[External Code]   

 

There's a little arrow pointing to the top line in the GUI.

I reckon it's a WindowsError. Hopefully, there's only one type of those. :)

Share this post


Link to post
Share on other sites

Wow, this is … weird. Seems like the console cannot be resized on Windows 10?!

 

Look at the bottom of the Output window when the error is hit. There should be a reason, something along Win32 call failed: XXX …

 

You can hit F5 to keep the program going (breakpoints don’t crash when a debugger is attached, they just pause then), and maybe comment out the call to resizeConsole(). You can also build a Release version instead of a Debug version. All of these hard-coded breakpoints are disabled in the Release version.

 

But now I’m really curious to the reasons. I know MS refactored the console in Windows 10 to support emojis and so on; maybe they disabled console resizing altogether.

Share this post


Link to post
Share on other sites

The Output window just says this:



'TFXplorer x64.exe' (Win32): Loaded 'D:\kry\new\TFXplorer x64.exe'. Symbols loaded.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\user32.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\win32u.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\gdi32.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\gdi32full.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\msvcp_win.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\ucrtbase.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\comdlg32.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\msvcrt.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\combase.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\rpcrt4.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\bcryptprimitives.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\SHCore.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\shlwapi.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\shell32.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\cfgmgr32.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.18362.476_none_2a2a02a24667b734\comctl32.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\advapi32.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\windows.storage.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\sechost.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\profapi.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\powrprof.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\umpdc.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\kernel.appcore.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\cryptsp.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\ole32.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\dbghelp.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\WinSxS\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.18362.476_none_17afa4006da19f63\GdiPlus.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\hid.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\d3d9.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\vcruntime140_1d.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\vcruntime140d.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\ucrtbased.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\dwmapi.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\DXCore.dll'.
'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\imm32.dll'.

Win32 error: The parameter is incorrect.
    (unknown source): (unknown name)
    (unknown source): (unknown name)
    (unknown source): (unknown name)
    (unknown source): (unknown name)
    (unknown source): (unknown name)
    (unknown source): (unknown name)
    (unknown source): (unknown name)
    (unknown source): (unknown name)

'TFXplorer x64.exe' (Win32): Loaded 'C:\Windows\System32\uxtheme.dll'.
TFXplorer x64.exe has triggered a breakpoint.

 

The release version behaves the same way.

 

I've just opened a cmd.exe window on the same PC, and it can be resized manually.

Share this post


Link to post
Share on other sites

There seems to be a different mechanism affecting 3view:

 

Call Stack:
3View x64.exe!copyNonOverlappingBytes(void * toDestination, const void * toSource, unsigned __int64 size) Line 5190    C++
3View x64.exe!GFX::load(const GFX::SBGRC_8888 & memory) Line 205    C++
3View x64.exe!TFX::horizonColor_sRGB(TFX::Rasterizer & glide) Line 1265    C++
3View x64.exe!ThreeView::Session::beginDraw() Line 222    C++
3View x64.exe!ThreeView::ShapeSession::draw() Line 322    C++
3View x64.exe!main() Line 154    C++
[External Code]    

..and 'Output':


'3View x64.exe' (Win32): Loaded 'D:\kry\new\3View x64.exe'. Symbols loaded.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\user32.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\win32u.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\gdi32.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\gdi32full.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\msvcp_win.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\ucrtbase.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\comdlg32.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\msvcrt.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\combase.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\rpcrt4.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\bcryptprimitives.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\SHCore.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\shlwapi.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\shell32.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.18362.476_none_2a2a02a24667b734\comctl32.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\advapi32.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\cfgmgr32.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\windows.storage.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\sechost.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\profapi.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\powrprof.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\umpdc.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\kernel.appcore.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\cryptsp.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\ole32.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\dbghelp.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\d3d9.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\vcruntime140_1d.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\vcruntime140d.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\ucrtbased.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\dwmapi.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\ucrtbased.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\ucrtbased.dll'.
'3View x64.exe' (Win32): Unloaded 'C:\Windows\System32\ucrtbased.dll'
'3View x64.exe' (Win32): Unloaded 'C:\Windows\System32\ucrtbased.dll'
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\DXCore.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\imm32.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\uxtheme.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\clbcatq.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\msctf.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\oleaut32.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\dui70.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.476_none_e6c4b11b130f2595\comctl32.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\duser.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\TextInputFramework.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\CoreUIComponents.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\CoreMessaging.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\ntmarta.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\WinTypes.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\WinTypes.dll'.
'3View x64.exe' (Win32): Unloaded 'C:\Windows\System32\WinTypes.dll'
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\iertutil.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Program Files\Common Files\microsoft shared\ink\tiptsf.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\edputil.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\ExplorerFrame.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\WindowsCodecs.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\thumbcache.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\DataExchange.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\d3d11.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\dcomp.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\dxgi.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\twinapi.appcore.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\rmclient.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\msftedit.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\Windows.Globalization.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\BCP47Langs.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\BCP47mrm.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\globinputhost.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\propsys.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\xmllite.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\StructuredQuery.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\atlthunk.dll'.
The thread 0x1b48 has exited with code 0 (0x0).
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\Windows.StateRepositoryPS.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\Windows.Storage.Search.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\cldapi.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\bcrypt.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\fltLib.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\sspicli.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\twinapi.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\ntshrui.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\srvcli.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\cscapi.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\winmm.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\winmmbase.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\winmmbase.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\winmmbase.dll'.
'3View x64.exe' (Win32): Unloaded 'C:\Windows\System32\winmmbase.dll'
'3View x64.exe' (Win32): Unloaded 'C:\Windows\System32\winmmbase.dll'
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\coml2.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\linkinfo.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\actxprxy.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\apphelp.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\EhStorShell.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\setupapi.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\cscui.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\networkexplorer.dll'.
'3View x64.exe' (Win32): Unloaded 'C:\Windows\System32\msftedit.dll'
'3View x64.exe' (Win32): Unloaded 'C:\Windows\System32\xmllite.dll'
The thread 0x10a0 has exited with code 0 (0x0).
'3View x64.exe' (Win32): Unloaded 'C:\Windows\System32\twinapi.dll'
'3View x64.exe' (Win32): Unloaded 'C:\Windows\System32\winmmbase.dll'
'3View x64.exe' (Win32): Unloaded 'C:\Windows\System32\winmm.dll'
'3View x64.exe' (Win32): Unloaded 'C:\Windows\System32\ExplorerFrame.dll'
'3View x64.exe' (Win32): Unloaded 'C:\Program Files\Common Files\microsoft shared\ink\tiptsf.dll'
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\DriverStore\FileRepository\iigd_dc_base.inf_amd64_5a2cc0fb4b3234fe\igdumdim64.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\DriverStore\FileRepository\iigd_dc_base.inf_amd64_5a2cc0fb4b3234fe\igd9dxva64.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\ResourcePolicyClient.dll'.
'3View x64.exe' (Win32): Unloaded 'C:\Windows\System32\ResourcePolicyClient.dll'
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\DriverStore\FileRepository\iigd_dc_base.inf_amd64_5a2cc0fb4b3234fe\igdinfo64.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\DriverStore\FileRepository\iigd_dc_base.inf_amd64_5a2cc0fb4b3234fe\igc64.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\winmm.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\winmmbase.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\winmmbase.dll'.
'3View x64.exe' (Win32): Loaded 'C:\Windows\System32\winmmbase.dll'.
'3View x64.exe' (Win32): Unloaded 'C:\Windows\System32\winmmbase.dll'
'3View x64.exe' (Win32): Unloaded 'C:\Windows\System32\winmmbase.dll'
Exception thrown at 0x00007FF6B81D9066 in 3View x64.exe: 0xC0000005: Access violation reading location 0x000000000000023C.

 

Maybe there's some setting in Visual Studio that I need to change. The problems only seem to occur with exes that I compile myself.

Share this post


Link to post
Share on other sites

Well... I was planning to download Visual Studio 2019 to compile Krus's old extractor, however, after reading this I think I'll put it off a little longer  😀

Share this post


Link to post
Share on other sites
2 hours ago, mikew said:

The Output window just says this:

[…]

Win32 error: The parameter is incorrect.

Okay, this might as well be an alignment issue. I’ll have access to a Windows 10 PC where I will test it later. For now, search for resizeConsole() in OS Win32.cpp and delete the content of the function body so it is just empty { }.

 

1 hour ago, mikew said:

There seems to be a different mechanism affecting 3view:

Could be anything. Are you using the normal Visual Studio 2019 or the Preview build? If x86 crashes, can you try x64 instead?

 

9 minutes ago, DrKevDog said:

Well... I was planning to download Visual Studio 2019 to compile Krus's old extractor, however, after reading this I think I'll put it off a little longer  😀

Don’t feel scared, I’m sure Krusader does better than me :) The extractor has just a fraction of the amount of code, so there is less to go wrong …

Share this post


Link to post
Share on other sites
1 hour ago, Krycztij said:

For now, search for resizeConsole() in OS Win32.cpp and delete the content of the function body so it is just empty { }.

It gets much further, but doesn't get quite as far the 3D window.

Call Stack:

TFXplorer x64.exe!COM_SHOULD_SUCCEED(int call) Line 43    C++
TFXplorer x64.exe!OS::Win32::COM::tryToInstantiate(const UUID & clsid, const UUID & iid) Line 139    C++
TFXplorer x64.exe!OS::Win32::COM::tryToInstantiate<IXAudio2>(const UUID & clsid, const UUID & iid) Line 93    C++
TFXplorer x64.exe!OS::Win32::XAudio2::tryToCreate(IXAudio2 * & toXAudio2, IXAudio2MasteringVoice * & toSpeakers) Line 39    C++
TFXplorer x64.exe!tryToInitialize(Sound & audio) Line 685    C++
TFXplorer x64.exe!tryToCreate(UAW_UI & result, const TFX::ADF::CFG & settings, OS::Region & temporaryPool, OS::Region & finalPool, TFX::FileSystem & files, ErrorReporter & reporter, const Supervisor * supervisorOrNull) Line 2990    C++
TFXplorer x64.exe!main() Line 570    C++
[External Code]

 

This is just the 'Normal' Community version. It's the only choice I have apart from Professional/Enterprise.

I've only tried to build x64 so far.

 

This can wait. Don't want to ruin your Win10 christmas. :)

 

Share this post


Link to post
Share on other sites

It can’t load XAudio for audio output. Likely, the debug libraries are missing (TFXplorer loads Microsoft’s debug version of XAudio2 if compiled in debug mode). You can safely hit F5 and continue, albeit without sound.

Share this post


Link to post
Share on other sites

Ah yes, and that error isn't fatal anyway. It crashes further on though, and it seems to be having trouble finding the module 'TFX to UAW x64.dll'.

I put all the dlls in the same place, ie 'UAW/plugins x64/XXX.dll' but maybe it shouldn't go there. This dll is new to me.

Share this post


Link to post
Share on other sites

Oh yes, that’s the new translation layer for TFX data.

 

My directory looks like this:

  • TFX to UAW x64.dll
  • TFX to UAW x86.dll
  • TFXplorer x64.exe
  • TFXplorer x86.exe
  • contrail lod 0.png (probably unused?)
  • contrail lod 1.png (probably unused?)
  • contrail lod 2.png (probably unused?)
  • did.dat
  • game.cfg
  • UAW\
    • contrail close.png
    • hud.raw
    • splash.png
    • stars.xyz32f_rgb32f
    • plugins x64\
      • Aurora x64.dll
      • KC-135 x64.dll
      • TFX3 F-22 x64.dll
      • TFX3 x64.dll
    • plugins x86\
      • Aurora x86.dll
      • KC-135 x86.dll
      • TFX3 F-22 x86.dll
      • TFX3 x86.dll

Share this post


Link to post
Share on other sites

Thanks! Up and running now.

A release build works fine with that console edit.

The debug build only runs in the debugger, but maybe that Xaudio error becomes fatal in this mode.

tawwin10.png.6a7ca34709d11699955bfdd1d71b314c.png

Share this post


Link to post
Share on other sites

Fantastic!

 

2 hours ago, mikew said:

The debug build only runs in the debugger, but maybe that Xaudio error becomes fatal in this mode.

Yes, exactly. My thought was, it would keep me from procrastinating problems. But here am years later and I still don’t know how to install XAudio’s debug version properly …

 

This should make 3View run: http://krishty.com/temp/TFXpatch.7z

Share this post


Link to post
Share on other sites

Something strange which seems to be TFXplorer related but may be the Intel graphics driver on this PC that I've just set up.

I start TFXplorer and let the F22 drop to its death. Then I cycle through the other vehicles using F12 Smartview. The 13th time I press F12, that 747 and all subsequent planes have black areas on the model depending on which angle it's viewed from. eg:

blackbits.png.4a36d6640b66dfdf0cb897e527a740ba.png

But the question I wanted to ask was if these planes are flying with an aerodynamic model or a following a predefined path?

Share this post


Link to post
Share on other sites

Following a predefined path. With some effort I tried to switch to a physics model once something happens to them (e.g. being hit), but that’s not remotely finished yet. I have an experimental quick-and-dirty 737 model in there.

 

That rendering bug is related to yesterday’s 3View problem and it nags me for years now. Basically, it’s about resetting rendering state when the engine switches from rendering one model to the next. Somewhere there is a bug in resetting to the defaults, and some models just render polygons without setting all state (texture, color, texture scaling, fog) beforehand, and this is the result.

 

I decided to not investigate further until I can isolate it. Keep in mind that while the above screenshot pictures just a 747, there is actually a lot more being drawn, like terrain and stars. I think there is no culling for dynamic entitites yet, so the engine renders a few dozen planes before switching to that 747.

Share this post


Link to post
Share on other sites

Thanks for the explanation. I don't remember seeing that effect before, but it takes a fair bit of F12ing...

 

I think in TAW you could only use Smartview for vehicles within a certain range.

Apart from rendering state, the general state of each vehicle needs to be kept track of and updated continuously depending on what it's supposed to be doing.

TAW is very good in this regard, but after playing a while, you see some annoying things.

Now that AI is the next big thing, there must be scope for improvement. :)

Share this post


Link to post
Share on other sites

I’m positive that classic AI is sufficient for normal gameplay needs.

 

Neural nets could be very useful for something else, though. If you want AI to control a plane, it needs to know how hard to pull the stick for the plane to change direction by a specific amount. This is highly non-linear and dependent on speed, altitude, payload, orientation, …

 

With conventional programming, this is very hard. I have an auto recovery prototype for the F-22 somewhere in the source code, and it’s a mess to even make such a simple thing as “roll until the wings align with the artificial horizon”. A genetic simulation training a neural net on input vs. output under different conditions could be a wonder here: Instead of programming input vs. response into the AI, just let it learn by itself.

Share this post


Link to post
Share on other sites

Machine learning!  I suppose the hard part is the 'education system' so the AI doesn't end up dysfunctional.

 

Some of the campaigns in TAW would win themselves even if you didn't do anything. Quite a sophisticated overall effect even if we know they must have been cutting a lot of corners.

I'm not sure how many layers of AI you need between the autopilot controlling each plane and the political leadership driving the war, but it's probably similar to real life. I suppose you'd need to introduce some 'Artificial stupidity' somehow so you don't end up with Skynet from the Terminator movies.

Share this post


Link to post
Share on other sites

Mike, in TFX Rasterizer.cpp (716) you find

glide.desiredTexture = glide.whiteTexture; // else, untextured shapes render wrong

Please replace it with

// Leaving textures enabled causes glitches with untextured shapes.
if(glide.isTexturingOn) {
	glide.isTexturingOn  = no;
	glide.desiredTexture = glide.whiteTexture;
}

to fix more glitches.

Share this post


Link to post
Share on other sites

Thank you! Patch successfully applied.

 

Regarding workload, I came across one of your pictures from four years back which explains a lot about state handling.

1153073657_2015-09-06tileusage.png.b4f52ff264055f1fb681b104bfc7bbbb.png

Any change on your approach to this since then?

Share this post


Link to post
Share on other sites

No change so far. The biggest challenge is finding an abstraction for the spacial structure: You want to keep this nice tile layout for Total Air War and other TFX games, which are really just a 400×400 tile flat grid. But you also want to keep open the opportunity to add an Earth-like spherical mapping for our new terrain.

 

Additionally, the flat grid is easy to handle, but very slow for huge sizes. We really need something hierarchical there.

 

The good news is, vehicle logic does not have anything to do with all that. I.e. we can change it without having to adjust flight dynamics.

Share this post


Link to post
Share on other sites

Sounds good!

 

I see some significant changes in this build, eg missiles in the bomb bays of the F22 (although I haven't found out how to launch them yet :) ) so I'm not sure if the legacy behaviour should be expected. A couple of examples:

I'm trying to invoke Seaworld and have set SEAWORLD=1 in game.cfg. I end up with the normal TAW world though, but spawn in a different place.

Also, I'm not seeing any labels in explorer mode. I've tried pressing F4 but they used to be on by default.

 

Share this post


Link to post
Share on other sites
18 hours ago, mikew said:

I see some significant changes in this build, eg missiles in the bomb bays of the F22 (although I haven't found out how to launch them yet :) )

No launching yet, but they take part in weight distribution. See UAW Objects F22.cpp (2325). You can, for example, change UAW::WeaponType::none, 0, 0 to UAW::WeaponType::agm65g, 3, 1 for an AGM-65G triple pylon where one missile is actually mounted. Or 3, 3 to mount all three. If you do this on the left wing only, your touchdown should become very rough (consider View -> Debug -> Wheels & Suspension to display actual wheels instead of the wrong wheels hard-coded into the TAW model). See UAW Scenario.cpp (2225) for the masses.

 

18 hours ago, mikew said:

I'm trying to invoke Seaworld and have set SEAWORLD=1 in game.cfg. I end up with the normal TAW world though, but spawn in a different place.

Shouldn’t be; I’ll check.

 

18 hours ago, mikew said:

Also, I'm not seeing any labels in explorer mode. I've tried pressing F4 but they used to be on by default.

This probably broke when I made the tile size variable instead of constant because the place names had a very special rendering path (they need software screen projection). I’ll check it out as well.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...