ValveSoftware / Source-1-Games

Source 1 based games such as TF2 and Counter-Strike: Source
634 stars 74 forks source link

[TF2] [x64_test] tf_win64.exe: Engine tools don't work, but they work with the x86 tf.exe #5513

Open ChampionCynthia opened 7 months ago

ChampionCynthia commented 7 months ago

Hello,

Engine tools such as the Particle Editor can normally be accessed using the -tools -nop4 launch options.

If I launch the tf.exe executable with these options, the engine tools work fine.

However, if I launch the tf_win64.exe executable with the same options, I reach the main menu but I cannot click anything. The mouse cursor also flickers for some reason.

This was with a stock configuration. Out of curiosity, I later tried using this Classic Menu mod for TF2 that restores the old 2007 main menu. I thought that the engine tools might be loaded behind the main menu interface but the issue persists.

Tested on Windows 10 with the NVIDIA 425 driver (NVIDIA GT 755M).

Cheers.

KiwifruitDev commented 4 months ago

This seems odd because Team Fortress 2/bin/tools/x64 contains 64-bit binaries of the following tools:

actbusy.dll
commedit.dll
gameevents.dll
pet.dll
sampletool.dll
vcdblock.dll
vmt.dll

In fact, the x64 version has more tools than x86:

commedit.dll
pet.dll
vmt.dll

Sadly, no signs of ifm.dll though. However, some third-party Source engine games support a 64-bit tool environment:

justyn0 commented 4 months ago

It seems like the issue is somewhat related to Environment Variables? I have my Path environment variable point towards to Counter-Strike 2's bin folder and launching tf_win64.exe it would try to load the CS2 tools' dlls. However changing the Path environment variable to the TF2's bin folder fixes the error, but still does not load the tools.

I think simply the game is having trouble finding the dlls?

image

image

OrangeSniper commented 3 months ago

is there any fix for this?

KiwifruitDev commented 2 months ago

Found a workaround, add a file named sdkenginetools.txt to bin/x64/ with the following contents:

"enginetools"
{
    "library"   "../tools/x64/actbusy.dll"
    "library"   "../tools/x64/commedit.dll"
    "library"   "../tools/x64/gameevents.dll"
    "library"   "../tools/x64/pet.dll"
    "library"   "../tools/x64/sampletool.dll"
    "library"   "../tools/x64/vcdblock.dll"
    "library"   "../tools/x64/vmt.dll"
}

This will let TF2 know what tools to load with the -tools -nop4 launch options. There are some issues with vgui that cause crashes, particularly in the particle editor. Although the SFM (ifm.dll) is still not supported.