eukara / freecs

Clean-room Counter-Strike 1.5 in QuakeC, using Nuclide SDK. Previously known as OpenCS! (2016)
https://www.frag-net.com/projects.html
ISC License
183 stars 16 forks source link

install questions #23

Closed atomGit closed 4 months ago

atomGit commented 1 year ago

hi again

  1. when the archive is extracted there is a 'cstrike' folder - where does this folder need to be placed?
  2. how do you start the game? i tried ./fteqw64 -cstrike but that doesn't work (i tried with the cstrike folder next to the valve folder, as well as within the valve folder)
atomGit commented 1 year ago

i should note that the current folder hierarchy is...

/source/cstrike/ /source/platform/ /source/valve/ /source/default.fmf /source/fteqw64

eukara commented 1 year ago

FreeCS is meant to supplement FreeHL, as noted on the Releases page on this GitHub mirror. You place the 'cstrike' directory alongside the 'valve' directory.

You can then run fteqw inside the root directory of FreeHL where the default.fmf manifest is placed. That file is supposed to tell FTEQW how to launch FreeHL and will do so without additional command-line arguments. You can then proceed to select Counter-Strike from the 'Custom Game' menu.

atomGit commented 1 year ago

You place the 'cstrike' directory alongside the 'valve' directory.

right, so the directory structure outlined in my previous post is correct then

however when i use the Custom Game menu, there's an overlay/window that says "installing mod data..." but nothing happens (the progress remains at 0%) - i can load https://frag-net.com/ in a web browser, so i'm not sure what's wrong

eukara commented 1 year ago

I will try to reproduce this on a clean build. For the time being you may need to pass over -game cstrike as command-line arguments, which should preserve the valve directory as specified in default.fmf - but if you see any missing assets you can ensure it's mounted by passing -game valve -game cstrike.

eukara commented 1 year ago

Fixed the menu bug here: https://github.com/VeraVisions/nuclide/commit/855daac7e7d18f1544d03b2a53d4d3be3fa9079f

Will build new binary archives soon.

atomGit commented 1 year ago

result is the same when passing -game valve -game cstrike - Custom Game menu still says "installing mod data..." and nothing happens

you posted just before i did apparently :)

i'll try the new build when it's ready - thanks

atomGit commented 1 year ago

if you want people to test, i think the install section of the readme.md needs to be better

i'd be happy to submit a step-by-step guide if you want, but i would need your help with some of it

Mailaender commented 1 year ago

To sum it up. Download:

This is how the folder structure has to look like:

FreeCS$ dir
conhistory.txt  cstrike  default.fmf  fteqw-sdl2  installed.lst  maptimes.txt  platform  valve

You need to run both valve/install_shareware_data.sh and cstrike/install_from_archiveorg.sh

This is how you start the game:

./fteqw-sdl2 -game valve -game cstrike
atomGit commented 1 year ago

i got if figured out on my own, but if you want people to test you might consider updating the readme.md

this is what i came up with if you care to use it...

installing FreeCS on Linux (the process is similar for Windows)

  1. download the latest release of FreeHL: https://github.com/eukara/freehl/releases (valve-.zip)
  2. download the latest release of FreeCS: https://github.com/eukara/freecs/releases (cstrike-.zip)
  3. download the FTEQW game engine client for your platform: https://www.fteqw.org/ (for Linux this would typically be the "AMD64 X11 Client" link)
  4. create the game folder "game" to hold the contents of the extracted archives
  5. extract the "valve-.zip", "cstrike-.zip", and the FTEQW archives into the "game" folder
  6. the "game" folder" hierarchy should look like the following after extraction of the archives: game ../cstrike/ ../platform/ ../valve/ ..default.fmf ..fteqw64 ..readme.txt
  7. open a console, change the working directory to the "game" folder and run the following commands as a non-root user: $ ./cstrike/install_from_archiveorg.sh $ ./valve/install_shareware_data.sh
  8. in the "game/cstrike/" folder, extract the contents of the "pak0.pk3" and "zpak001.pk3" archives
  9. in the "game/valve/" folder, extract the contents of the "pak04_patch1110.pk4" and "zpak001.pk3" archives
  10. to launch a game, enter the following in the console: $ ./fteqw64 -game cstrike TODO: add instructions for using the Custom Game menu once the next build is up
eukara commented 1 year ago

I've built new release archives just now. Still trying to get everything streamlined and auto-pushed to GitHub - which I will get to but I am at this second pretty busy still. It'll also include the QuakeC sources now, to make things more portable and easier to tinker with.

Should I get rid of the (e.g.) valve-xx-xx-xx sub-directory within the zip archive? Asking for feedback as it may help people set it up easier and that may come off as annoying to deal with.

And @atomGit I would not recommend extracting any pk3 or pk4 archives. We need archives to help enforce purity and separate content with copyright on it. For example anything that starts with pak[...] will not be distributed to clients. I set up the archives very deliberately.

In theory, you grab FTEQW for your platform, put it into an extracted release archive of FreeHL where the default.fmf is, and run it.

The Configuration > Update menu can be used to get the same demo data as the install_shareware.sh script does. I've added multiple ways to add data because people have different needs and desires of obtaining the content.

atomGit commented 1 year ago

I would not recommend extracting any pk3 or pk4 archives.

the only way i could get CS to run was either by renaming the 'valve' folder, then renaming the 'cstrike' folder to 'valve', or by extracting the pk3 archives (and running fteqw64 -game cstrike) ... and if i only renamed 'cstrike' to 'valve', i believe there were missing textures (running fteqw64 -game valve -game cstrike loaded HL, not CS)

so again, i think the install part of the readme.md needs an overhaul - for example, if someone lands here and follows the instructions verbatim, they will not have installed FreeHL

it's also unclear what to do with Configuration > Update in game - in the readme you have "Run the engine and when in-game download the needed content", but i believe the needed content refereed to (particularly the 1.1.1.0 patch) is already packaged with FreeHL

eukara commented 1 year ago

FreeHL itself doesn't come with any content. It comes with a few scripts that assist in getting it (because there was a time in which the in-game updater did not exist). Wrangling the filesystem to make it 'work' although it won't connect to any game servers properly is not the right way to go about it either.

I did leave multiple ways of getting the content open because that seemed helpful, but if it causes confusion I may have to dictate more explicit means of obtaining and installing said content. I may already have to do that anyway for other reasons (sv_pure and all that) so let me just formally announce that everything is going to change.

Theuaredead commented 1 year ago

Hi @atomGit!

Unpacking the PK3/PK4s are not recommended to do to avoid conflicts with SV_Pure.

I followed your install guide to see if I could replicate your missing assets issue by skipping the steps in which you unpack the archives and I had found that the game was functioning as intended with the archives intact. I have the following questions:

  1. Did you attempt to do a clean install with PK3/PK4s intact following the creation of the tutorial to see if the missing asset problem was resolved without the need of extracting them?
  2. Do you see missing assets on local servers or did it occur when connecting to an already existing multiplayer session?
  3. What map(s) did you have missing assets on? Was it only select maps or was it all?
  4. Did missing assets occur after awhile or upon the first load of a map?
  5. Does/did "valve" contain all 6 PK4 files?
  6. Does Half-Life run as intended or did it also contain missing assets when trying to play?
  7. I was able to launch Counter-Strike via the in-game menu, "-game valve -game cstrike", and "-game cstrike". How exactly are you writing your .sh script to handle this?
  8. What distro are you using?

@eukara and myself will look into streamlining the install process and readme for FreeCS and other Nuclide-based projects.

atomGit commented 1 year ago

@eukara - i'm not ignoring your questions, rather i'm starting all over and have gotten different results this time

still, a clear guide is needed because it is not clear what to do after one has extracted the archives - here's where i'm at...

  1. download the latest release of FreeHL: https://github.com/eukara/freehl/releases (valve-.zip)
  2. download the latest release of FreeCS: https://github.com/eukara/freecs/releases (cstrike-.zip)
  3. download the FTEQW game engine client for your platform: https://www.fteqw.org/ (for Linux this would typically be the "AMD64 X11 Client" link)
  4. create the game folder "game" to hold the contents of the extracted archives
  5. extract the "valve-.zip", "cstrike-.zip", and the FTEQW archives into the "game" folder the "game" folder" hierarchy should look like the following after extraction of the archives: game ../cstrike/ ../platform/ ../valve/ ..default.fmf ..fteqw64 ..README.txt ..readme.txt
  6. ... now what?

do we run the install scripts in the cstrike and valve folders, or do we run fteqw and install updates from there, or are both necessary?

i got cs to work without using the .sh scripts which leaves me wondering if the content on archive.org is the same as that downloaded from fteqw

here's console output after running fteqw and installing the valve and cstrike updates from within fteqw and nothing more...

console ``` $ ./fteqw64 Binary is located at "/storage/Downloads/FreeCS/game/" couldn't exec masters.lst couldn't exec cvars.cfg Couldn't load plugin ffmpeg couldn't exec skill.cfg couldn't exec config.cfg couldn't exec game.cfg couldn't exec autoexec.cfg Engine Version: FTE build Jan 15 2023 Setting fullscreen windowed OpenGL Found monitor HDMI-A-0 1920x1080 0,0 GL_VENDOR: AMD GL_RENDERER: AMD Radeon Vega 11 Graphics (raven, LLVM 15.0.7, DRM 3.42, 5.15.93-1-MANJARO) GL_VERSION: 4.6 (Compatibility Profile) Mesa 22.3.5 Mesa detected, disabling the use of glsl's invariant keyword. This will result in z-fighting. Use '+set gl_blacklist_mesa_invariant 0' on the commandline to reenable it (but you will probably get glsl compilation errors from your driver). Initiating OpenAL: OpenAL Soft. AL_HRTF_STATUS: DISABLED. OpenGL renderer initialized ------- Half-Life Initialized ------- ============================================================================== Copyright (c) 2016-2022 Marco Cawthorne Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ============================================================================== loaded font definition for fonts/fontcon.font loaded font definition for fonts/menu_label.font loaded font definition for fonts/menu_main.font loaded font definition for fonts/menu_label_bold.font loaded font definition for fonts/menu_header.font ../../../src/menu-fn/layout_script.qc : Layout_FromFile+12 ../../../src/menu-fn/m_advancedcustomize.qc : menu_advancedcustomize_init+53 ../../../src/menu-fn/menu.qc : main_init+6 ../../../src/menu-fn/entry.qc : m_init+73 Cannot read layout file "user.scr" Menu_Abort: Program error: Cannot read layout file "user.scr" Shutting down menu.dat COM_WriteFile: menucore.txt Couldn't load plugin ffmpeg usage: setinfo [ ] Wrote /storage/Downloads/FreeCS/game/valve/game.cfg variable vid_renderer will be changed after a vid_restart variable vid_renderer will be changed after a vid_restart variable vid_width will be changed after a vid_restart variable vid_height will be changed after a vid_restart variable vid_bpp will be changed after a vid_restart variable vid_displayfrequency will be changed after a vid_restart Setting fullscreen windowed OpenGL Found monitor HDMI-A-0 1920x1080 0,0 GL_VENDOR: AMD GL_RENDERER: AMD Radeon Vega 11 Graphics (raven, LLVM 15.0.7, DRM 3.42, 5.15.93-1-MANJARO) GL_VERSION: 4.6 (Compatibility Profile) Mesa 22.3.5 Mesa detected, disabling the use of glsl's invariant keyword. This will result in z-fighting. Use '+set gl_blacklist_mesa_invariant 0' on the commandline to reenable it (but you will probably get glsl compilation errors from your driver). Initiating OpenAL: OpenAL Soft. AL_HRTF_STATUS: DISABLED. OpenGL renderer initialized Wrote /storage/Downloads/FreeCS/game/valve/game.cfg couldn't exec masters.lst couldn't exec cvars.cfg Couldn't load plugin ffmpeg couldn't exec config.cfg couldn't exec autoexec.cfg ============================================================================== Copyright (c) 2016-2022 Marco Cawthorne Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ============================================================================== loaded font definition for fonts/fontcon.font loaded font definition for fonts/menu_label.font loaded font definition for fonts/menu_main.font loaded font definition for fonts/menu_label_bold.font loaded font definition for fonts/menu_header.font ../../../src/menu-fn/layout_script.qc : Layout_FromFile+12 ../../../src/menu-fn/m_advancedcustomize.qc : menu_advancedcustomize_init+53 ../../../src/menu-fn/menu.qc : main_init+6 ../../../src/menu-fn/entry.qc : m_init+73 Cannot read layout file "user.scr" Menu_Abort: Program error: Cannot read layout file "user.scr" Shutting down menu.dat COM_WriteFile: menucore.txt Couldn't load plugin ffmpeg usage: setinfo [ ] Wrote /storage/Downloads/FreeCS/game/cstrike/game.cfg Downloading valve_patch Downloading cg_cstrike Downloaded valve_patch (to /storage/Downloads/FreeCS/game/valve/dlcache/pak_patch1110.pk3.b34e619f) couldn't exec masters.lst couldn't exec cvars.cfg Couldn't load plugin ffmpeg couldn't exec autoexec.cfg Downloaded cg_cstrike (to /storage/Downloads/FreeCS/game/cstrike/dlcache/pak0_cstrike.pk3.37f4711c) couldn't exec masters.lst couldn't exec cvars.cfg Couldn't load plugin ffmpeg couldn't exec autoexec.cfg ============================================================================== Copyright (c) 2016-2022 Marco Cawthorne Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ============================================================================== loaded font definition for fonts/fontcon.font loaded font definition for fonts/menu_label.font loaded font definition for fonts/menu_main.font loaded font definition for fonts/menu_label_bold.font loaded font definition for fonts/menu_header.font Unknown layout element type "LIST" Unknown layout element type "LIST" Unknown layout element type "LIST" Unknown layout element type "LIST" Couldn't load plugin ffmpeg --------- Initializing Server-Module ---------- --------- Initializing Plugins ---------- no plugins.txt found. --------- Initializing SoundDef (SERVER) ---------- allocated 26624 bytes for soundDef SoundDef initialized. --------- Initializing PropDefs (SERVER) ---------- allocated 6656 bytes for prop data. allocated 1024 bytes for breakmodels. Unable to load models/glassgibs.mdl Unable to load models/woodgibs.mdl Unable to load models/metalplategibs.mdl Unable to load models/fleshgibs.mdl Unable to load models/ceilinggibs.mdl Unable to load models/computergibs.mdl Unable to load models/rockgibs.mdl Unable to load models/cindergibs.mdl PropData initialized. sfx sample debris/glass1.wav does not exist! sfx sample debris/glass2.wav does not exist! sfx sample debris/glass3.wav does not exist! sfx sample debris/glass4.wav does not exist! sfx sample debris/wood1.wav does not exist! sfx sample debris/wood2.wav does not exist! sfx sample debris/wood3.wav does not exist! sfx sample debris/wood4.wav does not exist! sfx sample debris/metal1.wav does not exist! sfx sample debris/metal2.wav does not exist! sfx sample debris/metal3.wav does not exist! sfx sample debris/metal4.wav does not exist! sfx sample debris/metal5.wav does not exist! sfx sample debris/metal6.wav does not exist! sfx sample debris/flesh1.wav does not exist! sfx sample debris/flesh2.wav does not exist! sfx sample debris/flesh3.wav does not exist! sfx sample debris/flesh4.wav does not exist! sfx sample debris/flesh5.wav does not exist! sfx sample debris/flesh6.wav does not exist! sfx sample debris/flesh7.wav does not exist! sfx sample debris/concrete1.wav does not exist! sfx sample debris/concrete2.wav does not exist! sfx sample debris/concrete3.wav does not exist! sfx sample buttons/spark1.wav does not exist! sfx sample buttons/spark2.wav does not exist! sfx sample buttons/spark3.wav does not exist! sfx sample buttons/spark4.wav does not exist! sfx sample buttons/spark5.wav does not exist! sfx sample buttons/spark6.wav does not exist! no soundDef found for sfx_impact.rock sfx sample debris/metal1.wav does not exist! sfx sample debris/metal2.wav does not exist! sfx sample debris/metal3.wav does not exist! sfx sample debris/metal4.wav does not exist! sfx sample debris/metal5.wav does not exist! sfx sample debris/metal6.wav does not exist! sfx sample player/pl_sand1.wav does not exist! sfx sample player/pl_sand2.wav does not exist! sfx sample player/pl_sand3.wav does not exist! sfx sample player/pl_sand4.wav does not exist! --------- Initializing Server Entities ---------- sfx sample weapons/explode3.wav does not exist! sfx sample weapons/explode4.wav does not exist! sfx sample weapons/explode5.wav does not exist! sfx sample debris/glass1.wav does not exist! sfx sample debris/glass2.wav does not exist! sfx sample debris/glass3.wav does not exist! sfx sample debris/wood1.wav does not exist! sfx sample debris/wood2.wav does not exist! sfx sample debris/wood3.wav does not exist! sfx sample debris/metal1.wav does not exist! sfx sample debris/metal2.wav does not exist! sfx sample debris/metal3.wav does not exist! sfx sample debris/flesh1.wav does not exist! sfx sample debris/flesh2.wav does not exist! sfx sample debris/flesh3.wav does not exist! sfx sample debris/flesh5.wav does not exist! sfx sample debris/flesh6.wav does not exist! sfx sample debris/flesh7.wav does not exist! sfx sample debris/concrete1.wav does not exist! sfx sample debris/concrete2.wav does not exist! sfx sample debris/concrete3.wav does not exist! sfx sample items/9mmclip1.wav does not exist! sfx sample items/gunpickup2.wav does not exist! sfx sample common/wpn_select.wav does not exist! sfx sample common/wpn_denyselect.wav does not exist! sfx sample items/flashlight1.wav does not exist! sfx sample common/null.wav does not exist! sfx sample weapons/bullet_hit1.wav does not exist! sfx sample weapons/bullet_hit2.wav does not exist! no soundDef found for player.spraylogo sfx sample items/gunpickup2.wav does not exist! sfx sample items/9mmclip1.wav does not exist! sfx sample items/suitchargeok1.wav does not exist! sfx sample items/gunpickup2.wav does not exist! sfx sample weapons/explode3.wav does not exist! sfx sample weapons/explode4.wav does not exist! --------- Initializing SentencesDef (SERVER) ---------- SentencesDef initialized with 574 entries. --------- Initializing World ---------- SERVER: SurfData_Load: type gs_material_rocks is not defined SERVER: SurfData_Load: type gs_material_rocks is not defined SERVER: SurfData_Load: type gs_material_rocks is not defined SERVER: SurfData_Load: type gs_material_rocks is not defined Unable to load sprites/glow02.spr Unable to load sprites/glow01.spr Unable to load sprites/xfireball3.spr --------- Respawning Server Entities ---------- Server spawned. --------- Setting New Level Parameters ---------- client Player connected Wrote /storage/Downloads/FreeCS/game/cstrike/game.cfg ------------------- de_chateau --------- Initializing Client Game ---------- --------- Initializing Cmds ---------- --------- Initializing SoundDef (CLIENT) ---------- allocated 26624 bytes for soundDef SoundDef initialized. sfx sample debris/glass1.wav does not exist! sfx sample debris/glass2.wav does not exist! sfx sample debris/glass3.wav does not exist! sfx sample debris/glass4.wav does not exist! sfx sample debris/wood1.wav does not exist! sfx sample debris/wood2.wav does not exist! sfx sample debris/wood3.wav does not exist! sfx sample debris/wood4.wav does not exist! sfx sample debris/metal1.wav does not exist! sfx sample debris/metal2.wav does not exist! sfx sample debris/metal3.wav does not exist! sfx sample debris/metal4.wav does not exist! sfx sample debris/metal5.wav does not exist! sfx sample debris/metal6.wav does not exist! sfx sample debris/flesh1.wav does not exist! sfx sample debris/flesh2.wav does not exist! sfx sample debris/flesh3.wav does not exist! sfx sample debris/flesh4.wav does not exist! sfx sample debris/flesh5.wav does not exist! sfx sample debris/flesh6.wav does not exist! sfx sample debris/flesh7.wav does not exist! sfx sample debris/concrete1.wav does not exist! sfx sample debris/concrete2.wav does not exist! sfx sample debris/concrete3.wav does not exist! sfx sample buttons/spark1.wav does not exist! sfx sample buttons/spark2.wav does not exist! sfx sample buttons/spark3.wav does not exist! sfx sample buttons/spark4.wav does not exist! sfx sample buttons/spark5.wav does not exist! sfx sample buttons/spark6.wav does not exist! no soundDef found for sfx_impact.rock sfx sample debris/metal1.wav does not exist! sfx sample debris/metal2.wav does not exist! sfx sample debris/metal3.wav does not exist! sfx sample debris/metal4.wav does not exist! sfx sample debris/metal5.wav does not exist! sfx sample debris/metal6.wav does not exist! sfx sample player/pl_sand1.wav does not exist! sfx sample player/pl_sand2.wav does not exist! sfx sample player/pl_sand3.wav does not exist! sfx sample player/pl_sand4.wav does not exist! --------- Initializing PropDefs (CLIENT) ---------- allocated 6656 bytes for prop data. allocated 1024 bytes for breakmodels. PropData initialized. 0 (members: 5) {shot1;{shot2;{shot3;{shot4;{shot5 1 (members: 5) {bigshot1;{bigshot2;{bigshot3;{bigshot4;{bigshot5 2 (members: 3) {break1;{break1;{break1 3 (members: 3) {scorch1;{scorch2;{scorch3 sfx sample common/wpn_hudon.wav does not exist! sfx sample common/wpn_hudoff.wav does not exist! sfx sample common/wpn_moveselect.wav does not exist! sfx sample common/wpn_select.wav does not exist! loaded font definition for fonts/ui.font --------- Initializing EFXDefs ---------- allocated 7168 bytes for EFXDefs. parsed EFXDef file default parsed EFXDef file underwater --------- Initializing TitlesDef ---------- read 341 titleDefs (20460 bytes). --------- Initializing SentencesDef (CLIENT) ---------- SentencesDef initialized with 574 entries. Client game initialized. --------- Reloading Graphical Resources ---------- loaded font definition for fonts/font16.font loaded font definition for fonts/font20.font loaded font definition for fonts/fontcon.font loaded font definition for fonts/chat.font sfx sample weapons/sshell1.wav does not exist! sfx sample weapons/sshell2.wav does not exist! sfx sample weapons/sshell3.wav does not exist! Unable to load sprites/crosshairs.spr Unable to load models/shotgunshell.mdl Unable to load sprites/640_pain.spr sfx sample debris/bustglass1.wav does not exist! sfx sample debris/bustglass2.wav does not exist! sfx sample debris/bustglass3.wav does not exist! sfx sample debris/bustcrate1.wav does not exist! sfx sample debris/bustcrate2.wav does not exist! sfx sample debris/bustcrate3.wav does not exist! sfx sample debris/bustmetal1.wav does not exist! sfx sample debris/bustmetal2.wav does not exist! sfx sample debris/bustflesh1.wav does not exist! sfx sample debris/bustflesh2.wav does not exist! sfx sample debris/bustconcrete1.wav does not exist! sfx sample debris/bustconcrete2.wav does not exist! sfx sample debris/bustceiling.wav does not exist! sfx sample weapons/explode3.wav does not exist! sfx sample weapons/explode4.wav does not exist! sfx sample weapons/explode5.wav does not exist! sfx sample ambience/distantmortar1.wav does not exist! sfx sample ambience/distantmortar1.wav does not exist! sfx sample ambience/distantmortar1.wav does not exist! sfx sample common/bodysplat.wav does not exist! sfx sample buttons/spark1.wav does not exist! sfx sample buttons/spark2.wav does not exist! sfx sample buttons/spark3.wav does not exist! sfx sample buttons/spark4.wav does not exist! sfx sample buttons/spark5.wav does not exist! sfx sample buttons/spark6.wav does not exist! Unable to load sprites/bloodspray.spr Unable to load sprites/blood.spr Unable to load models/gib_b_bone.mdl Unable to load models/gib_legbone.mdl Unable to load models/gib_lung.mdl Unable to load models/gib_skull.mdl Unable to load models/gib_b_gib.mdl Unable to load sprites/wsplash3.spr Unable to load sprites/640_logo.spr sky update applying cx. --------- Reloading Entity Resources ---------- resource reload called on 0 entities Graphical resources reloaded No lights detected in map. --------- Initializing Client World ---------- Client world initialized. Player connected --------- Initializing Nodes Subsystem ---------- rebuilding node tree...18 possible nodes found in de_chateau saving nodes nodes for de_chateau COM_WriteFile: data/de_chateau.way Nodes subsystem initialized. No lights detected in map. WARNING: SV_StartSound: sound common/wpn_denyselect.wav not precached [RADIO]: Okay, let's go. Error: empty directory name (models/player//.mdl) Unable to load models/player//.mdl [RADIO]: The bomb has been planted. WARNING: SV_StartSound: sound debris/wood2.wav not precached WARNING: SV_StartSound: sound debris/wood3.wav not precached break statement../../../src/shared/defs.h : remove+11 ../shared/item_c4bomb.qc : item_c4::Logic+92 WARNING: Entity 734 of class remove_me uncleanly removed! [RADIO]: Alright, let's move out. Server ended Client "Player" removed --------- Shutting Client Game ---------- Client game shutdown. Wrote /storage/Downloads/FreeCS/game/cstrike/game.cfg ```
eukara commented 1 year ago

I can explain why the scripts work and the in-game updater no longer does. I've started making changes to the updates offered on the in-game updater the past couple of days to address confusion and complaints from here and on Matrix. The following things are going on right now:

  1. The in-game updater has a few packages removed (and changed) and will now only offer official files/addon for the full retail version of Half-Life. We are working out a way to get demo data to people via a separate effort. Read on below.
  2. I've made changes to the FTEQW that are not yet committed and have not yet been approved by Spoike (the respective maintainer), but that will render the default.fmf file obsolete as well as making package management easier. The next GitHub release should address that (but it depends on how fast upstream FTEQW moves also)
  3. When I am done making changes, everyone can provide content however they please. Support for purity and other protections can however only be enabled when using the official pak0.pak that ships with the original, disc version of Half-Life. That's the way it will have to be. That's the only thing I can really support going forward.

When this is complete, the readme file will be updated to reflect the exact requirements. There will be a disclaimer stating that while you can provide the data files via various different means, it is unreasonable to expect it to function as intended.

How one can help

Valve and Sierra offered many different types of downloads over the lifespan of the original Half-Life release. We have Half-Life: Day One, Half-Life: Uplink, the respective patch archives (without install checks) as well as dedicated server files. There's also games like Sven Coop on Steam, that offer some of the data files for free. They all can be used to construct enough data files to make FreeHL run.

As I stated earlier, @Theuaredead is currently researching some of the above so one can put together a CRC matching pak, but it still needs to be put together. One help would be finding means of extracting data files from installers without the requirement of Microsoft Windows or Wine. That way people can obtain the files without possibly breaking EULAs and to automate the content extraction process. That's out of the scope for this project. Even better would be to create a project akin to LibreQuake that will replace the data files with ones we can share freely and add exceptions for those pak files within purity checks.

An example set up

When the changes go through, one will be able to install the original 1.0.0.5 data from Half-Life in a read-only location. On a Linux system, this may be in a place such as /usr/share/games/halflife:

eukara@m75q:/usr/share/games/halflife$ find . -type f -print | grep -v bshift | grep -v gearbox
./valve/xeno.wad
./valve/liquids.wad
./valve/settings.scr
./valve/decals.wad
./valve/music/track17.wav
./valve/music/track05.wav
./valve/music/track28.wav
./valve/music/track25.wav
./valve/music/track06.wav
./valve/music/track24.wav
./valve/music/track04.wav
./valve/music/track23.wav
./valve/music/track15.wav
./valve/music/track19.wav
./valve/music/track16.wav
./valve/music/track10.wav
./valve/music/track11.wav
./valve/music/track26.wav
./valve/music/track21.wav
./valve/music/track08.wav
./valve/music/track13.wav
./valve/music/track07.wav
./valve/music/track12.wav
./valve/music/track27.wav
./valve/music/track09.wav
./valve/music/track18.wav
./valve/music/track22.wav
./valve/music/track20.wav
./valve/music/track14.wav
./valve/music/track02.wav
./valve/music/track03.wav
./valve/server.cfg
./valve/spraypaint.wad
./valve/halflife.wad
./valve/pak0.pak
./valve/woncomm.lst
./valve/profile.lst
./valve/liblist.gam
./valve/mapcycle.txt
./valve/gfx.wad
./valve/media/launch_dnmenu1.wav
./valve/media/valve.avi
./valve/media/sierra.avi
./valve/media/launch_select2.wav
./valve/media/launch_glow1.wav
./valve/media/launch_select1.wav
./valve/media/logo.avi
./valve/media/launch_deny1.wav
./valve/media/launch_upmenu1.wav
./valve/media/launch_deny2.wav
./valve/cached.wad
./logos/camp1.bmp
./logos/gun1.bmp
./logos/8ball1.bmp
./logos/chuckskull.bmp
./logos/skull.bmp
./logos/lambda.bmp
./logos/splatt.bmp
./logos/chick1.bmp
./logos/smiley.bmp
./logos/v_1.bmp
./logos/tiki.bmp
./logos/devl1.bmp
./logos/andre.bmp

And with only the static data in place, one can run their system version of FTEQW with the parameter -halflife and it should give a minimal menu in which to install a release of FreeHL. And FreeHL will support this version as is. It will run and function as expected. The patch to version 1.1.1.0 can be installed then through the updater, if one desires the extra content. The install_from_cd.sh script will probably be updated to rip the content in such a manner that it will output the above, or discarded entirely. I do not know yet.

For Microsoft Windows users, they are most likely comfortable having it set-up like the original version. Therefore you'll install Half-Life (any disc version will do, including Game Of The Year), then merge FreeHL on top of it, and place a FTEQW binary in the same place as the hl.exe launcher.

TLDR: Users will have to provide a CRC matching pak0.pak from a disc version of Half-Life. I will no longer offer shareware/demo content, as it makes compatibility impossible and it will avoid a lot of other headaches along the way.

The Counter-Strike content should not be a cause for problems.

atomGit commented 1 year ago

wow, you have a lot on your plate!

I can explain why the scripts work and the in-game updater no longer does.

i used the update menus in fteqw to install the HL and cstrike stuff and that seemed to work, or at least i know something was downloaded (i saw the progress bar complete) and fteqw indicated the patches were installed (the indicators changed to green)

One help would be finding means of extracting data files from installers without the requirement of Microsoft Windows or Wine.

i use an arch-based OS and i remember spending quite a bit of time looking in the official and AUR repos for a tool that could extract those files and i never found anything

siredmar commented 1 year ago

I'm struggling to install freehl and freecs. I have an very old copy of half life and cs 1.5 on an external drive. I've read through the issue. I don't own a cd drive anymore - who needs CD these times anyway :) But i have my installed copy.

It would be great if anyone could tell me which files i need to copy from my installation to what paths in valve and cstrike directories. @eukara i could provide a install_from_installation.sh if this is in your interest.

eukara commented 1 year ago

If you want to do it the quick way, you can move the entire valve directory into the FreeHL valve folder as install.pk3dir and repeat the same with cstrike.

Depending on your operating system and the filesystem you're using, case sensitivity may be an issue. In which case you can pack the contents of your valve directory from Half-Life into a .zip archive (you can compress it too if you want) and place it inside of the FreeHL valve directory as install.pk3 for example.

atomGit commented 4 months ago

given the recent changes i think this can be closed ???