ValveSoftware / Source-1-Games

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

Missing Half-Life 2: Episode One depots in Source SDK Base 2006. #3318

Open malortie opened 4 years ago

malortie commented 4 years ago

As explained in this issue, Source SDK Base 2006 is meant to keep compatibility with older Source mods using either Half-Life 2 / Episode One.

After performing a clean installation of Source SDK Base 2006, I currently have the following depots installed:

depot_206_dir.vpk
depot_207_dir.vpk
depot_208_dir.vpk
depot_212_dir.vpk
depot_215_dir.vpk
depot_421_dir.vpk
depot_422_dir.vpk
depot_423_dir.vpk

According to this page, there should be other depots such as 213 and 381, but they are not downloaded. These two depots contain Episode 1 content, but also Half-Life 2 scene files (VCD). Several older mods running under this engine branch require access to the content of these two depots.

System information:

``` Computer Information: Manufacturer: TOSHIBA Model: Satellite Pro A50-C Form Factor: Laptop No Touch Input Detected Processor Information: CPU Vendor: GenuineIntel CPU Brand: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz CPU Family: 0x6 CPU Model: 0x4e CPU Stepping: 0x3 CPU Type: 0x0 Speed: 2592 Mhz 4 logical processors 2 physical processors HyperThreading: Supported FCMOV: Supported SSE2: Supported SSE3: Supported SSSE3: Supported SSE4a: Unsupported SSE41: Supported SSE42: Supported AES: Supported AVX: Supported AVX2: Supported AVX512F: Unsupported AVX512PF: Unsupported AVX512ER: Unsupported AVX512CD: Unsupported AVX512VNNI: Unsupported SHA: Unsupported CMPXCHG16B: Supported LAHF/SAHF: Supported PrefetchW: Unsupported Operating System Version: Windows 10 (64 bit) NTFS: Supported Crypto Provider Codes: Supported 311 0x0 0x0 0x0 Video Card: Driver: Intel(R) HD Graphics 520 DirectX Driver Name: nvldumd.dll Driver Version: 27.20.100.8281 DirectX Driver Version: 27.21.14.5148 Driver Date: 5 19 2020 OpenGL Version: 4.6 Desktop Color Depth: 32 bits per pixel Monitor Refresh Rate: 59 Hz DirectX Card: NVIDIA GeForce 930M VendorID: 0x10de DeviceID: 0x1346 Revision: 0xa2 Number of Monitors: 1 Number of Logical Video Cards: 1 No SLI or Crossfire Detected Primary Display Resolution: 1366 x 768 Desktop Resolution: 1366 x 768 Primary Display Size: 13.54" x 7.64" (15.51" diag) 34.4cm x 19.4cm (39.4cm diag) Primary Bus: PCI Express 4x Primary VRAM: 1024 MB Supported MSAA Modes: 2x 4x 8x Sound card: Audio device: Speakers (Realtek High Definiti Memory: RAM: 8113 Mb VR Hardware: VR Headset: None detected Miscellaneous: UI Language: English Media Type: Undetermined Total Hard Disk Space Available: 1196804 Mb Largest Free Hard Disk Block: 470030 Mb OS Install Date: Dec 31 1969 Game Controller: None detected MAC Address hash: 344019da47c47d67bd2cd801a2dfbb6ccc363a14 Disk serial number hash: dfe4d017 ```

kisak-valve commented 4 years ago

Hello @malortie, depots 213 and 381 are not part of subid 0 or 17906, so this looks like the expected outcome. I'd expect for mods based on Half-Life 2: Episode 1 to require that the user own and install the base game, but a Source 1 developer may have more insight on the intended behavior here.

malortie commented 4 years ago

@kisak-valve

Thanks for your reply.

Regarding mods

Before the Steampipe update (2013), mounting game content from other games was functional when running a mod under Source 2006 and 2007.

Due to the way the Steampipe reorganized shared content between games, the file system of both 2006 and 2007 engines is unable to mount external game content from the Gameinfo.txt. The only way to make resources available for a mod is by extracting content from the VPK of external games and moving them to the mod folder, or within the appropriate engine branch.

Regarding Half-Life 2: Episode 1 game resources

In 2011, the Source SDK was made available and free for all users, and no longer required users to own at least one Source engine game.

During the Steampipe update (2013), the Source SDK Base 2006 and 2007 were updated to use VPK depots. I do not know if the current layout of those depots is the same as it was back in 2013.

Currently, in both installations of Source SDK Base 2006 and 2007, there are several VPKs that include content from Half-Life 2 and Episode 1 and 2. Usually, this content would only be accessible for users that would own the respective games, but it appears Valve decided to include these depots. I do not know if this was made intentionally. If these resources were not meant to be available to users unless they owned the respective games, they should probably be removed.

Regarding depots 213 and 381

In my current Source SDK Base 2007 directory, I have depots 213, 381 installed:

depot_213_dir.vpk
depot_381_dir.vpk

In the case these resources were meant to be available to users, even for those who do not own HL2, EP1, EP2, then they could also be included in the Source SDK Base 2006 for the reasons explained earlier.

malortie commented 4 years ago

As a follow up, I sent an email to Valve regarding the content of the VPKs.

For my part, and this is only a theory - I think the use of these VPKs is to provide game resources compatible with their respective engine branch.

As explained in my email:

The Source SDK Base 2007 includes depots 213, 308, 309, 381. After comparing the content of

213 - Episode 1 Shared 381 - Half-Life 2: Episode One

with the content from

308 - Episodic 2007 Shared 309 - Episode One 2007 Content

both groups contain almost the same files, but according to their names depots 308 and 309 appear to be made to be used on the 2007 branch, while depots 213 and 381 are likely to be used by the 2006 SDK branch. Is this correct?

FoxMcCloud45 commented 2 years ago

Hello,

I'm late but that is effectively an issue. However, my info is sensibly different from @malortie 's findings.

Depot 213

As pointed out, the depot 213 (Episode 1 Shared) exists for the Source SDK Base 2006 since that version of the engine cannot load later versions of the assets.

The depot 213 is not linked to Half-Life 2: Episode One. Even if you don't own the game, you can manually retrieve the depot from the Steam client by using:

download_depot 215 213

Originally, you had to own the games for the content to be mounted. However, SteamPipe broke the system and instead Valve decided to make the assets available for free; the Source SDK 2013 Singleplayer app provides Half-Life 2, Episode One and Episode Two content through the independant depot 243731, which is automatically downloaded for any install of the app.

Depot 213 is basically forgotten. It was supposed to be downloadable after buying Episode One but since the depots have shifted due to engine updates it has been left out entirely.

Thus, enabling Source SDK Base 2006 to download it would be a proper fix.

Depots 381, 421, 422, 423

This is where I am confused.

@malortie says that a fresh installation of the Source SDK Base 2006 provides the 421, 422 and 423 depots, which are listed as Episode Two Content, Materials and Maps respectively in the Source SDK Base 2006 page, but when accessed manually each of these only match international voice dubs of Half-Life 2: Episode Two. I don't really know why. However, these depots don't seem to be present anymore or, at least, I cannot find them in Source SDK Base\vpks. Note that I own Half-Life 2: Episode Two.

Same goes for depot 381, except it is a Half-Life 2: Episode One depot, and can only be downloaded if you own the game.

I'm pretty sure all of the depots that the Source SDK Bases initially used are long dead. Today, all assets are provided under the main depot for each game (HL2:EP2 for instance, which is app 420, has all of its assets in depot 420. Only international dubs are stored in separate depots).

As I indicated in the previous section on depot 213, episodic assets for Source SDK Base 2013 Singleplayer are not shared with Episode One/Two, and instead are independant.

So… Pretty sure it's just all dead.