Half-Life 2 on Samsung Galaxy S7 Edge G935F and S9+ G965F (see installation instructions below)
Here's a short gameplay video of Half-Life 2 running on my Galaxy S7 Edge. As you can see, it's running nicely. Sorry for the low audio volume, I was wearing headphones, and didn't want to blast my ears off. ;-) Setup instructions in the description below. [EDIT 2018/11/22 - after some fiddling with GLTools, I got it running on my S9+ (Oreo 8.0). Updated instructions further below at "6. Use these settings", config files at "8. Controls"] Be warned: the process is complicated, and if you're not familiar with rooting, file permissions, etc., or simply don't want to risk bricking your phone, this is not for you. Alright. So, this game is designed to run on Nvidia Shield (Tegra) devices. Plus, it's not compatible with recent Android versions. To fix this, you'll need to take some potentially dangerous steps (and therefore: DISCLAIMER - I won't be held responsible if you brick your device): 1. Your device must be rooted. This is absolutely mandatory. If you're not rooted, move along, you're out of luck. 2. DO A NANDROID BACKUP! Yes, do it. It never hurts to have a backup when you're messing with tools like the two I'll show you. Better safe than sorry... 3. Get Half-Life 2: this is the trickiest part, if you want to do it legally. What I did was to trick Google Play into thinking my device is an Nvidia Shield. I had success with Device Spoofer (http://bit.ly/2nOqK7R). But that was years ago on my old Note 2, and I'm not sure if it works on the S7 (the app does not brick my phone, at least). Anyway: if you manage to get hold of Half-Life 2, install it. 4. Download and install GLTools from Google Play (http://bit.ly/2niLlDn). IMPORTANT: select the 2nd option in the install screen, labelled "TEX(DE)coder" by Saem Persun, not the default!! This will install GLTools, and reboot your phone once to activate them. If anything breaks, there's an uninstall_gltools.zip in the root of your sdcard. Simply flash it with TWRP. 5. Launch GLTools, wait for the app list to load, then scroll down to and tap Half-Life 2. 6. Use these settings - DO NOT check any other options!: For MM/Nougat: - Check "Use fake GPU info" and "Use fake CPU/RAM info", then tap "Use a template", and select "GPU/CPU: Tegra 4 (SHIELD)" - Check "Use packed stencil buffer" - Check "Shader attribute reordering" - Check "Old dlopen behavior emulation" (this one will fix Marshmallow+ compatibility) For Oreo: - Fake gpu info - Use a template (Tegra 4 - SHIELD) - Simple MapBuffer emulation - Software VBO emulation - Use packed stencil buffer - Fix FBO attachment sizes - Decode sRGB - Shader attribute reordering - Old dlopen behavior emulation - Old dlsym behavior emulation 7. Start Half-Life 2. Everything should be working. 8. Controls: Touch controls do not work. You can use GameKeyboard, but you won't be able to move. I'm using a GameSir G4s gamepad (Xbox controller clone), which is supported out of the box. Before that, I had an iPega 9025, which had a different button config. Here are two config files for both variants: default (GameSir G4s): https://bit.ly/2BxC8Og customized controls (iPega): http://bit.ly/2o5TjAg This zip file actually contains two identical files, so you'll need only one of them. After some testing, I'd suggest you use autoexec.cfg, because HL2 erases all custom settings if you exit it "normally" (i.e. through the main menu), instead of simply pressing the home button. 1. I've disabled MSAA in the config file, because that caused pink textures. If you want MSAA, activate 4x or 16x (Non-Tegra) in GLTools. 2. I've reduced/disabled HDR rendering. I was having issues with black textures, and I think HDR/Bloom was causing them. And you really don't see a difference anyway. 3. I've set antialising=4, and activated mipmapping, and this seems to be working without causing any more glitches. Now do the following (every single step!!): - unzip the autoexec.cfg from the archive you've just downloaded - navigate to /data/data/nvidia.valvesoftware.halflife2/files/hl2/cfg (use a root explorer app like Solid Explorer, or Total Commander). If the folder isn't there, then you're looking in the wrong place. - Check the permissions of your existing config.cfg, and write them down! In my case , it was Attribute: -rwx------ (700), Owner: app_650, Group: app_650, but it will be different on your device! - now move the autoexec.cfg file to /data/data/nvidia.valvesoftware.halflife2/files/hl2/cfg/ - set the file permissions to match the ones of your config.cfg (like you've written them down) Since Oreo, it's seemingly not possible to change permissions manually. The good thing is, your phone will apply the correct values automatically, so you only need to copy/paste the autoexec.cfg into the appropriate folder, and you're good to go. 9. Done. Connect your gamepad, launch Half-Life 2, and have fun (if you've managed to get this far, you really deserve it!). :-)
Here's a short gameplay video of Half-Life 2 running on my Galaxy S7 Edge. As you can see, it's running nicely. Sorry for the low audio volume, I was wearing headphones, and didn't want to blast my ears off. ;-) Setup instructions in the description below. [EDIT 2018/11/22 - after some fiddling with GLTools, I got it running on my S9+ (Oreo 8.0). Updated instructions further below at "6. Use these settings", config files at "8. Controls"] Be warned: the process is complicated, and if you're not familiar with rooting, file permissions, etc., or simply don't want to risk bricking your phone, this is not for you. Alright. So, this game is designed to run on Nvidia Shield (Tegra) devices. Plus, it's not compatible with recent Android versions. To fix this, you'll need to take some potentially dangerous steps (and therefore: DISCLAIMER - I won't be held responsible if you brick your device): 1. Your device must be rooted. This is absolutely mandatory. If you're not rooted, move along, you're out of luck. 2. DO A NANDROID BACKUP! Yes, do it. It never hurts to have a backup when you're messing with tools like the two I'll show you. Better safe than sorry... 3. Get Half-Life 2: this is the trickiest part, if you want to do it legally. What I did was to trick Google Play into thinking my device is an Nvidia Shield. I had success with Device Spoofer (http://bit.ly/2nOqK7R). But that was years ago on my old Note 2, and I'm not sure if it works on the S7 (the app does not brick my phone, at least). Anyway: if you manage to get hold of Half-Life 2, install it. 4. Download and install GLTools from Google Play (http://bit.ly/2niLlDn). IMPORTANT: select the 2nd option in the install screen, labelled "TEX(DE)coder" by Saem Persun, not the default!! This will install GLTools, and reboot your phone once to activate them. If anything breaks, there's an uninstall_gltools.zip in the root of your sdcard. Simply flash it with TWRP. 5. Launch GLTools, wait for the app list to load, then scroll down to and tap Half-Life 2. 6. Use these settings - DO NOT check any other options!: For MM/Nougat: - Check "Use fake GPU info" and "Use fake CPU/RAM info", then tap "Use a template", and select "GPU/CPU: Tegra 4 (SHIELD)" - Check "Use packed stencil buffer" - Check "Shader attribute reordering" - Check "Old dlopen behavior emulation" (this one will fix Marshmallow+ compatibility) For Oreo: - Fake gpu info - Use a template (Tegra 4 - SHIELD) - Simple MapBuffer emulation - Software VBO emulation - Use packed stencil buffer - Fix FBO attachment sizes - Decode sRGB - Shader attribute reordering - Old dlopen behavior emulation - Old dlsym behavior emulation 7. Start Half-Life 2. Everything should be working. 8. Controls: Touch controls do not work. You can use GameKeyboard, but you won't be able to move. I'm using a GameSir G4s gamepad (Xbox controller clone), which is supported out of the box. Before that, I had an iPega 9025, which had a different button config. Here are two config files for both variants: default (GameSir G4s): https://bit.ly/2BxC8Og customized controls (iPega): http://bit.ly/2o5TjAg This zip file actually contains two identical files, so you'll need only one of them. After some testing, I'd suggest you use autoexec.cfg, because HL2 erases all custom settings if you exit it "normally" (i.e. through the main menu), instead of simply pressing the home button. 1. I've disabled MSAA in the config file, because that caused pink textures. If you want MSAA, activate 4x or 16x (Non-Tegra) in GLTools. 2. I've reduced/disabled HDR rendering. I was having issues with black textures, and I think HDR/Bloom was causing them. And you really don't see a difference anyway. 3. I've set antialising=4, and activated mipmapping, and this seems to be working without causing any more glitches. Now do the following (every single step!!): - unzip the autoexec.cfg from the archive you've just downloaded - navigate to /data/data/nvidia.valvesoftware.halflife2/files/hl2/cfg (use a root explorer app like Solid Explorer, or Total Commander). If the folder isn't there, then you're looking in the wrong place. - Check the permissions of your existing config.cfg, and write them down! In my case , it was Attribute: -rwx------ (700), Owner: app_650, Group: app_650, but it will be different on your device! - now move the autoexec.cfg file to /data/data/nvidia.valvesoftware.halflife2/files/hl2/cfg/ - set the file permissions to match the ones of your config.cfg (like you've written them down) Since Oreo, it's seemingly not possible to change permissions manually. The good thing is, your phone will apply the correct values automatically, so you only need to copy/paste the autoexec.cfg into the appropriate folder, and you're good to go. 9. Done. Connect your gamepad, launch Half-Life 2, and have fun (if you've managed to get this far, you really deserve it!). :-)