I would like to make some final clarifications on why render looks like this.
The demo file contains a list of models, list of sound and list of decals.
It also contains information on entities changes:
entnum - identificatorframe - animation frame
origin - position in the world
angle - rotation
model - what model from the list mentioned earlier should be applied
Also decal info, like what decal should be applied to what entnum.
What sound from the list should play and when.
So!
The entnum is hardcoded in the DEM file, and it is also hardcoded in BSP.
Since BSPs are wrong, this leads to a mismatch we are seeing in the renders.
"decals must hit mod_brush!"
because indeed, game tries to put decal on something wrong.
In "demohet3" we can see how most props are misplaced or disappeared.
That's because something like a func_breakable Box got a HGrunt model and Origin, and is now trying to pretend attacking the player.
Same happens with the invisible catwalk in the dem2.
func_breakable is simply moved somewhere else, and the catwalk entity is either nothing or wrong entity.
Fan we see instead of lever near the Vent puzzle on "demohet3" - same story.
And now we can also answer a question on why monster_human_assault is clearly seen in the demo (original working ones) but not in the game itself.
It does indeed exist on the maps, but game does not known how to handle it, because it has no implementation whatsoever! Simply no code in HL.DLL
Demos on the other hand, has all the info to create illusion of it acting.
Sounds are played, model is applied, animations are activated, firing is emulated.
I checked all the demos and maps, and "monster_human_assault" is the only such "complete ghost" entity.
List of all entities in HL.DLL:
worldspawn
trigger_push
trigger_once
trigger_multiple
trigger_monsterjump
trigger_hurt
trigger_counter
trigger_changelevel
trigger_cdaudio
trigger
train_info
path_corner
multisource
multi_manager
monster_turret # has A.I
monster_tentacle_beak
monster_tentacle
monster_scientist
monster_polyrobo # NO A.I.
#
monster_panther # NO A.I.
monster_m44 # vehicle, NO A.I
monster_human_sarge # throws shade sprite into player on damage
monster_human_grunt # HAS A.I
monster_houndeye # HAS A.I
monster_headcrab # HAS A.I
# techdemo - panther eating scientist
monster_cine_scientist
monster_cine_panther
monster_cine_barney
# c1a2a - barney/scientist dragged into vent
monster_cine3_scientist
monster_cine3_barney
# missing scene
monster_cine2_slave
monster_cine2_scientist
monster_cine2_hvyweapons
monster_bullchicken # HAS A.I
monster_boid_flock
monster_boid
monster_barney
monster_alien_slave # NO A.I.
monster_alien_grunt # HAS A.I.
momentary_rot_button
momentary_door
light_spot
light
john_train # only like 5-9 lines of code, speeding up player?
item
info_player_start
info_player_deathmatch
info_null
info_landmark
hint_stairsup
hint_stairsdown
func_water
func_wall
func_train
func_rotating
func_rot_button
func_pushable
func_plat
func_pendulum
func_ladder
func_illusionary
func_glass
func_friction
func_door_rotating
func_door
func_button
func_breakable
explode
env_sound
# shoot - change animation dummy
cycler_turret
cycler_secure
cycler_scientist
cycler_reddoc
cycler_prdroid
cycler_panther
cycler_olive
cycler_human_grunt
cycler_human_assault
cycler_houndeye
cycler_headcrab
cycler_greendoc
cycler_doctor
cycler_desert
cycler_bullchicken
cycler_bluedoc
And the last part I want to share is model classification:
This build contains two types of MDL files.
The ones Alpha supports (v6) and the older (v4) which cannot be displayed in our build.
Alpha V6:
agrunt.mdl
barney.mdl
boid.mdl
bullchik.mdl
ceilinggibs.mdl
cindergibs.mdl
cine-barney.mdl
cine-panther.mdl
cine-scientist.mdl
cine3-barney.mdl
cine3-scientist.mdl
debris.mdl
doctor.mdl
GIB_B_Bone.mdl
GIB_B_Gib.mdl
GIB_Legbone.mdl
GIB_Lung.mdl
GIB_Skull.mdl
grenade.mdl
hassault.mdl
headcrab.mdl
hgrunt.mdl
hornet.mdl
houndeye.mdl
islave.mdl
m44.mdl
panther.mdl
polyrobo.mdl
prdroid.mdl
scientist.mdl
shell.mdl
shrapnel.mdl
spit.mdl
tentacle.mdl
turret.mdl
v_crowbar.mdl
v_glock.mdl
v_mp5.mdl
woodgibs.mdl
OLD v4:
panthereat.mdl
bluedoc.mdl
desert.mdl
greendoc.mdl
hsarge.mdl
olive.mdl
PLAYER.MDL
reddoc.mdl
scienceeat.mdl
We can assume that everything under "OLD v4" is coming from even older build of the game.
My interpretation on how leaked build was created:
1. On the Alpha++ version(newer network protocol), 4 broken demos were recorded for trailers.
2. This demos moved back into the Alpha+(which has monster_human_assault) and someone recorded 15 additional demos.
3. Alpha+ got recompiled into Alpha(we have), without monster_human_assault, and probably other unseen entities.
4. Model folder of Alpha also has remaining models of Alpha- (which supported v4 models).
Alpha++ = VERSION 1.07 SERVER (57997 CRC)
Alpha+ = VERSION 1.07 SERVER (48136 CRC) but different HL.DLL
Alpha = VERSION 1.07 SERVER (48136 CRC) - what we haveAlpha- = older build
This info is my tribute to this amazing Alpha build
I played with it for four days, and I think checked everything I wanted, that was not covered before.
I am also giving confirmation, that game is working in both Software and OpenGL modes on Windows 11, and even on Windows 11 for ARM. (some magic needs to be applied)