Difference between revisions of "Half-Life 2"
(Software AA is actually broken in Source 2013, it only works on Source 2007. And it's unknown whether if this leaked engine port (which actually based on nillerusr port) has it fixed (but so far tested nillerusr Android port, and Software AA remains broken). See Anti-aliasing page on VDC for more info.) |
|||
(41 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{Infobox game | ||
+ | |cover = HL2_cover.jpeg | ||
+ | |developers = | ||
+ | {{Infobox game/row/developer|Valve Corporation}} | ||
+ | |publishers = {{Infobox game/row/publisher|Valve Corporation|2005-present}} | ||
+ | |engines = {{Infobox game/row/engine|Source}} | ||
+ | |release dates= {{Infobox game/row/date|macOS|May 26, 2010|ref=<ref>{{Refurl|url=https://store.steampowered.com/oldnews/3874|title=News - Steam For Mac Launch: Week 3|date=2023-07-02}}</ref>}} | ||
+ | |reception = | ||
+ | {{Infobox game/row/reception|Metacritic|half-life-2|96}} | ||
+ | {{Infobox game/row/reception|IGDB|half-life-2|91}} | ||
+ | |taxonomy = {{Infobox game/row/taxonomy/series| Half-Life }} | ||
+ | |official site= https://www.half-life.com/en/halflife2 | ||
+ | |hltb = 4248 | ||
+ | |mobygames = 15564 | ||
+ | |strategywiki = Half-Life 2 | ||
+ | |wikipedia = Half-Life 2 | ||
+ | |winehq = 2095 | ||
+ | |license = commercial | ||
+ | |codeweavers = half-life-2 | ||
+ | |steam appid = 220 | ||
+ | }} | ||
+ | |||
{{Compatibility/macOS | {{Compatibility/macOS | ||
− | |native = | + | |native = playable |
− | |native notes = | + | |native notes = Can be run with an EP1/2 installation with <code>-game hl2</code>, saves and achievements do not sync. See [[#Fixes & Tweaks]]<ref>{{Refdevice |
|user=PBeGood4 | |user=PBeGood4 | ||
|date=29 April 2023 | |date=29 April 2023 | ||
Line 10: | Line 32: | ||
|framerate=120+ FPS | |framerate=120+ FPS | ||
}}</ref> | }}</ref> | ||
+ | <ref>{{Refdevice|user=mokMan23|date=2023-09-25|device=16GB M1 Mac Mini|os=macOS Sonoma 14.0 RC2|settings=Very High|resolution=2560x1440}}</ref> | ||
|rosetta 2 = unknown | |rosetta 2 = unknown | ||
|rosetta 2 notes = | |rosetta 2 notes = | ||
Line 15: | Line 38: | ||
|ios-ipados app notes = | |ios-ipados app notes = | ||
|crossover = runs | |crossover = runs | ||
− | |crossover notes = Installed via | + | |crossover notes = Installed via Steam on CrossOver 21, extreme fps drops during shootouts and explosions. |
− | |wine = | + | |wine = perfect |
− | |wine notes = | + | |wine notes = Tested on M1 max with settings set to high and resolution set to 2056x1329. Runs at over 120 fps with no vertical sync. Slight stuttering in load areas. |
|parallels = perfect | |parallels = perfect | ||
|parallels notes = Playable.<ref>{{Refdevice|user=gp|date=7 Sep 2021|device=Mac M1 16 GB RAM|os=Windows 11 (latest Insider ISO)|method=Parallels 17|version=|resolution=1080p|settings=Medium|framerate=50~60 FPS|controller=|url=|title=|comment=}}</ref> | |parallels notes = Playable.<ref>{{Refdevice|user=gp|date=7 Sep 2021|device=Mac M1 16 GB RAM|os=Windows 11 (latest Insider ISO)|method=Parallels 17|version=|resolution=1080p|settings=Medium|framerate=50~60 FPS|controller=|url=|title=|comment=}}</ref> | ||
Line 26: | Line 49: | ||
}} | }} | ||
− | ==Native | + | ==Native== |
− | + | Guides originally written by [https://www.youtube.com/watch?v=mMuSXs0SF_g James Hug]. This method builds a native port for older Source engine games, such as Half-Life 2, its episodes, and Portal. | |
− | + | Enter these commands into Terminal, Homebrew & Xcode Command Line Tools are required: | |
− | 1. Install Homebrew | + | 1. Install prerequisites from Homebrew and clone Repository (added the jpeg-turbo dependency from instructions): |
<pre> | <pre> | ||
− | + | brew install sdl2 freetype2 fontconfig pkg-config opus libpng libedit python3 jpeg jpeg-turbo && brew cleanup | |
− | + | git clone --recursive https://github.com/nillerusr/source-engine && cd source-engine | |
</pre> | </pre> | ||
− | + | 2. Set pkg path: | |
− | |||
− | 2. | ||
<pre> | <pre> | ||
− | + | export PKG_CONFIG_PATH="/opt/homebrew/opt/jpeg/lib/pkgconfig" | |
</pre> | </pre> | ||
− | 3. | + | 3. Configure, build and install the game into your Documents Folder: |
− | <pre> | + | |
− | + | <pre>python3 waf configure -T release --prefix='' --build-games=[game folder] && python3 waf build && python3 waf install --destdir='~/Documents/Build/[game folder]' | |
− | |||
− | |||
</pre> | </pre> | ||
− | + | Valid Game Folder Names: | |
− | < | + | *cstrike (Counter-Strike Source) |
− | + | *episodic (Half-Life 2: Episode 1) | |
− | + | *ep2 (Half-Life 2: Episode 2, can be played without <code>python3 waf build</code>) | |
− | </ | + | *hl1 (Half-Life: Source) |
+ | *hl2 | ||
+ | *portal | ||
+ | *dod (Day of Defeat: Source) | ||
+ | *hl2mp (Half-Life 2: Deathmatch) | ||
+ | |||
+ | 4. Open your "Half-Life 2" Folder. (Portal and/or Day of Defeat Source, if you're installing those games) | ||
+ | ''(Right-Click > "Browse local files" on Steam.)'' | ||
+ | |||
+ | 5. Modify Installation Files | ||
+ | (If you're installing multiple games, you only need to replace the files from "[game folder]/bin"): | ||
+ | *Delete the root and game folder <code>"bin"</code> directories and <code>"hl2_osx"</code> executable | ||
+ | **Move your <code>"bin", "[game folder]/bin"</code> folders and <code>"hl2_launcher"</code> executable to your Half-Life 2 folder, | ||
+ | **and rename <code>"hl2_launcher"</code> to <code>"hl2_osx"</code> | ||
+ | Congratulations! You (hopefully) successfully built a working Native Source Port! | ||
+ | |||
+ | ==Fixes & Tweaks== | ||
+ | |||
+ | '''Quality/Performance''': | ||
+ | * MBP Notch Fix. Initiates the game in windowed borderless mode, allowing the game to render beneath the MacBook's notch, ensuring interface elements and aiming are correctly displayed. (put these in your Steam Launch Options, Right-Click > "Properties..."): <code>-noborder -windowed</code> | ||
+ | |||
+ | * Cap FPS to a specific value, if using 120hz monitor (add this to your Steam Launch Options, Right-Click > "Properties..."): <code>-refresh 120</code> | ||
+ | |||
− | + | '''Console commands''' | |
− | + | '''THESE CONSOLE COMMANDS WILL NOT SAVE (so need to be ran at the start of each game session or after reload)!''' | |
− | |||
− | |||
− | |||
− | + | '''Tweaks''' | |
− | < | + | * Asynchronous Audio. Forces audio asynchronization. Removes audio stuttering in some cases: <code>snd_async_fullyasync 1; snd_async_minsize 0; snd_noextraupdate 1</code> |
− | |||
− | </ | ||
− | + | * Texture Quality Improvement: <code>mat_picmip -1;mat_antialias 4;mat_forceaniso 8</code> | |
− | < | ||
− | |||
− | </ | ||
− | + | * Disable nearby culling: <code>r_lod 0</code> | |
− | < | ||
− | |||
− | </ | ||
− | + | * Enable motion blur (some people prefer it disabled): <code>mat_motion_blur_forward_enabled 1</code> | |
− | < | ||
− | |||
− | </ | ||
− | + | * Default Macbook Pro 16 resolution (can try this if the game is still not rendering under the notch): <code>mat_setvideomode 1728 1117 1</code> | |
− | < | ||
− | |||
− | </ | ||
− | + | * More Space resolution (can try this it the game is still not rendering under the notch): <code> mat_setvideomode 2056 1329 1</code> | |
− | + | '''Fixes''' | |
− | + | * HL2 Flashlight Fix: <code>r_newflashlight 0</code> (Replaces buggy HL2 flashlight with HL1 counterpart. HL2 flashlight typically causes various artifacts when interacting with shadows.) | |
− | + | '''Persist Fixes''' | |
− | + | To make them persistent you can edit the <code>hl2.sh</code> file, add: | |
− | |||
− | + | <pre> | |
− | + | cat << EOF >> "${GAMEROOT}/hl2/cfg/config.cfg" | |
− | + | sv_cheats 1 | |
− | + | r_newflashlight 0 | |
+ | echo "Fixed flashlight via config" | ||
+ | EOF | ||
+ | </pre> | ||
− | + | at the end '''BEFORE''' <code>exit $STATUS</code>, to e.g. make the flashlight fix permanent. | |
+ | We have to do this since <code>hl2/cfg/config.cfg</code> is overwritten with the current user settings every time we close the game. This won't include our custom fixes, so we need to append them again every time we close the game. | ||
− | + | ==Known bugs== | |
− | * | + | *When playing with Airpods, the audio starts stuttering randomly. '''Fix:''' Mute and unmute the audio on the Macbook. |
− | |||
− | + | *Counter-Strike: Source, Half-Life 2: Deathmatch and Day of Defeat: Source show a black screen has no HUD on macOS Sonoma | |
+ | *[https://www.youtube.com/watch?v=l26R-dRrLZc Father Gregori & The Cart Ride are bugged in the last part of "We don't go to Ravenholm...", with the cart ride section being culled out until you enter it. ] | ||
{{References}} | {{References}} | ||
[[Category:Games]] | [[Category:Games]] |
Latest revision as of 05:19, 1 November 2024
Developers | |
---|---|
Valve Corporation | |
Publishers | |
2005-present | Valve Corporation |
Engines | |
Source | |
Release dates | |
macOS | May 26, 2010 [1] |
Reception | |
Metacritic | 96 |
IGDB | 91 |
Taxonomy | |
Series | Half-Life |
Resources | |
Codeweavers | |
WineHQ | |
macOS Compatibility
Method | Rating | Notes |
---|---|---|
Native | Can be run with an EP1/2 installation with -game hl2 , saves and achievements do not sync. See #Fixes & Tweaks[2]
[3] |
|
Rosetta 2 | ||
Compatibility layer | ||
CrossOver | Installed via Steam on CrossOver 21, extreme fps drops during shootouts and explosions. | |
Wine | Tested on M1 max with settings set to high and resolution set to 2056x1329. Runs at over 120 fps with no vertical sync. Slight stuttering in load areas. | |
Virtualization | ||
Parallels | Playable.[4] |
Native
Guides originally written by James Hug. This method builds a native port for older Source engine games, such as Half-Life 2, its episodes, and Portal.
Enter these commands into Terminal, Homebrew & Xcode Command Line Tools are required:
1. Install prerequisites from Homebrew and clone Repository (added the jpeg-turbo dependency from instructions):
brew install sdl2 freetype2 fontconfig pkg-config opus libpng libedit python3 jpeg jpeg-turbo && brew cleanup git clone --recursive https://github.com/nillerusr/source-engine && cd source-engine
2. Set pkg path:
export PKG_CONFIG_PATH="/opt/homebrew/opt/jpeg/lib/pkgconfig"
3. Configure, build and install the game into your Documents Folder:
python3 waf configure -T release --prefix='' --build-games=[game folder] && python3 waf build && python3 waf install --destdir='~/Documents/Build/[game folder]'
Valid Game Folder Names:
- cstrike (Counter-Strike Source)
- episodic (Half-Life 2: Episode 1)
- ep2 (Half-Life 2: Episode 2, can be played without
python3 waf build
) - hl1 (Half-Life: Source)
- hl2
- portal
- dod (Day of Defeat: Source)
- hl2mp (Half-Life 2: Deathmatch)
4. Open your "Half-Life 2" Folder. (Portal and/or Day of Defeat Source, if you're installing those games) (Right-Click > "Browse local files" on Steam.)
5. Modify Installation Files (If you're installing multiple games, you only need to replace the files from "[game folder]/bin"):
- Delete the root and game folder
"bin"
directories and"hl2_osx"
executable- Move your
"bin", "[game folder]/bin"
folders and"hl2_launcher"
executable to your Half-Life 2 folder, - and rename
"hl2_launcher"
to"hl2_osx"
- Move your
Congratulations! You (hopefully) successfully built a working Native Source Port!
Fixes & Tweaks
Quality/Performance:
- MBP Notch Fix. Initiates the game in windowed borderless mode, allowing the game to render beneath the MacBook's notch, ensuring interface elements and aiming are correctly displayed. (put these in your Steam Launch Options, Right-Click > "Properties..."):
-noborder -windowed
- Cap FPS to a specific value, if using 120hz monitor (add this to your Steam Launch Options, Right-Click > "Properties..."):
-refresh 120
Console commands
THESE CONSOLE COMMANDS WILL NOT SAVE (so need to be ran at the start of each game session or after reload)!
Tweaks
- Asynchronous Audio. Forces audio asynchronization. Removes audio stuttering in some cases:
snd_async_fullyasync 1; snd_async_minsize 0; snd_noextraupdate 1
- Texture Quality Improvement:
mat_picmip -1;mat_antialias 4;mat_forceaniso 8
- Disable nearby culling:
r_lod 0
- Enable motion blur (some people prefer it disabled):
mat_motion_blur_forward_enabled 1
- Default Macbook Pro 16 resolution (can try this if the game is still not rendering under the notch):
mat_setvideomode 1728 1117 1
- More Space resolution (can try this it the game is still not rendering under the notch):
mat_setvideomode 2056 1329 1
Fixes
- HL2 Flashlight Fix:
r_newflashlight 0
(Replaces buggy HL2 flashlight with HL1 counterpart. HL2 flashlight typically causes various artifacts when interacting with shadows.)
Persist Fixes
To make them persistent you can edit the hl2.sh
file, add:
cat << EOF >> "${GAMEROOT}/hl2/cfg/config.cfg" sv_cheats 1 r_newflashlight 0 echo "Fixed flashlight via config" EOF
at the end BEFORE exit $STATUS
, to e.g. make the flashlight fix permanent.
We have to do this since hl2/cfg/config.cfg
is overwritten with the current user settings every time we close the game. This won't include our custom fixes, so we need to append them again every time we close the game.
Known bugs
- When playing with Airpods, the audio starts stuttering randomly. Fix: Mute and unmute the audio on the Macbook.
- Counter-Strike: Source, Half-Life 2: Deathmatch and Day of Defeat: Source show a black screen has no HUD on macOS Sonoma
References
- ↑ News - Steam For Mac Launch: Week 3 - last accessed on 2023-07-02
- ↑ Verified by User:PBeGood4 on 29 April 2023
- Device: M1 MacBook Pro
- Method: Compiled Source Engine Leak
- Resolution: 1920x1080
- Settings: high
- Framerate: 120+ FPS
- ↑ Verified by User:mokMan23 on 2023-09-25
- Device: 16GB M1 Mac Mini
- OS: macOS Sonoma 14.0 RC2
- Resolution: 2560x1440
- Settings: Very High
- ↑ Verified by User:gp on 7 Sep 2021
- Device: Mac M1 16 GB RAM
- OS: Windows 11 (latest Insider ISO)
- Method: Parallels 17
- Resolution: 1080p
- Settings: Medium
- Framerate: 50~60 FPS