FWGS / xash3d

DEPRECATED in favor of https://github.com/FWGS/xash3d-fwgs. Only bugfixes are accepted.
https://xash.su
GNU General Public License v3.0
554 stars 107 forks source link

Can't start map on custom built Xash3D engine #58

Closed ma-choo closed 8 years ago

ma-choo commented 8 years ago

I can't start maps when I use a custom built Xash3D Engine. Neither New game or Hazard course do anything. I went into gameinfo.txt and made sure "startmap" was set to "c0a0" but it still didn't work. Even the map command in the console doesn't do anything. Also, multiplayer model preview seems to be broken as well.

Video

Here are the steps I took when I tried to build the engine: • Downloaded these files: github.com/SDLash3D/xash3d/archive/master.zip github.com/SDLash3D/halflife/archive/master.zip github.com/SDLash3D/XashXT/archive/master.zip libsdl.org/release/SDL2-devel-2.0.3-VC.zip

• Extracted the folders and set them up like this: ...\xash3d\ ...\halflife\ ...\xashXT\ ...\SDL2\

• Opened \xash3d\xash.sln in Visual Studio 2013, made a build (didn't change anything), then copied the files, menu.dll vgui_support.dll xash.dll and xash.exe from \xash3d\Debug\ into a custom directory, ...\_Xash3D TEST\

• Copied \valve\ folder from my Half-Life directory and put it in my \_Xash3D TEST\ directory. My Half-Life version is the original WON v1.0.0.5

• Copied vgui.dll from http://moddb.com/engines/xash3d-engine/downloads/xash3d-engine-v097-build-3030-with-extras because Half-Life WON doesn't have it. Put it in my \_Xash3D TEST\ directory.

• Copied SDL2.dll from \SDL2\lib\x86\ and put it in my \_Xash3D TEST\ directory.

• Moved vgui_support.dll into \_Xash3D TEST\valve\ folder.

• Launched xash.exe

a1batross commented 8 years ago

Hi,

Can you launch Xash with -dev 5 and put log here?

Also, with port to Linux, engine uses a newer VGUI. You can find it in halflife/utils/vgui directory. Using old DLL may crash the engine.

ma-choo commented 8 years ago

How do I save console output with Xash3D? condump and -condebug aren't working.

a1batross commented 8 years ago

-log. It will save logfile to engine.log.

ma-choo commented 8 years ago

Log 1

Log 2

Log 3

a1batross commented 8 years ago

CL_LoadProgs: failed to get address of HUD_Shutdown proc

This. Try another client.dll. For example, from Steam or compile from HLSDK. (project name is.cl_dll)

a1batross commented 8 years ago

Error: SV_LoadProgs: couldn't get entity API Error: SV_InitGame: can't initialize dlls/hl.dll

Also this. Try another hl.dll. I really don't know why WON version isn't working.

ma-choo commented 8 years ago

When I use Steams client.dll, I get this warning before the game starts: image

This is the log using Steams client.dll

This is the log using both hl.dll and client.dll from the Steam version

ma-choo commented 8 years ago

I copied vgui.dll from the Steam version and everything seems to be working now. I don't know why the dlls from ModDB didn't work. Anyway, thanks for your help!

ghost commented 8 years ago

I've got the same problem when i start modding, i downloaded the source and opened projects.sln file and pressed build,the build done successfully but when i tried to run the game i got "Could not load library client.dll". so i used dependency walker and opened the client.dll file and there was one entry point with a red sign near to it called "GetMousePos@Surface@VGUI",used to get the mouse position in Vgui surface or something ,even though the compiler didn't complain and the linker didn't issued unresolved external error,the weird thing is that my code and the client code dont make any call to this function to get mouse position but to "GetMousePosition" and "GetMousePos" functions exported by the engine in APIProxy.h file, so i thought that the linker got confused and link against "GetMousePos" which located in "VGUI_Surface.h" Surface file ,so i simply and temporally turned the function declaration in Vgui surface class into a comment and rebuild the solution and the red sign in dependency walker gone and the mod worked fine

mittorn commented 8 years ago

It seems to be problem with vgui changes. Valve made HLSDK client cross-platform. Whole client was reworked. vgui was updated too, If some mods are not compatible with new vgui, you need to use old vgui headers and vgui.lib when building vgui_support library. But i think that all mods should be binary compatible, just use vgui that compatible with engine.

ghost commented 8 years ago

I've Got Exactly The Same Problem

a1batross commented 8 years ago

@msmx100 So why don't use this solution?