fgsfdsfgs / perfect_dark

work in progress port of n64decomp/perfect_dark to modern platforms
MIT License
1.22k stars 75 forks source link

Blur shader does not compile on GT620 #384

Closed inukaze closed 8 months ago

inukaze commented 9 months ago

Hi there i had upgrade after one month, to the latest executable precompiled version and now i got this when i try to start

PD-Error

inukaze commented 9 months ago

using old version again i had the trouble with the moviment without input. well in this case just hold down directional key, stop with w,a,s,d i navegate on menu and i found this :

PD-C1

Well i set to "None" and the inconvent of constant movement without input from user, stopped.

PD-C2

I assume this issue is cause by this USB PS2 Controller Adapter : Twin USB PS2

Under Windows 7 Control panel appears like "Twin USB Controller" Twin USB PS2-001

Well i think the most relevant information can be this : PD-C3

In this case, my first suggestion is the client not automatically change to the first usb compatible device found.

Just like curiosity under windows 10 i had a similar problem with Nvidia Quadro K600 Drivers, after i had install the video drviers, when the system restart the system decide to use the maximun resolution with maximun refresh found, and that is incompatible in the monitor, and i just got a completly black screen because the system decide without user intervention that must be the most optimal choise, i think for that case the most safe option is start in secure compatible resolution like 800x600@60 Hz, and after ask the user if want try the automatically autodetect resolution with automatic refresh rate during 15 segs and the use should be have the options "Accept", "Cancel" or "Put in blacklist", This last option for the user can had registered just the really compatible and working resolutions and refresh rates.

fgsfdsfgs commented 8 months ago

Can you run the game from command line or a shortcut like so: pd.exe --debug-gl --log and post the pd.log file it creates in the same folder as pd.exe?

The game does not know anything about how many USB devices your joystick or gamepad consists of, so unfortunately I can't fix that. You can try downloading this file and putting it in the same folder as pd.exe and see if that fixes the controller.

The game also does not change the resolution or the refresh rate. When you pick fullscreen, it will run in a borderless window at your desktop resolution. If you're having issues related to resolution/refresh rate, that's unrelated to the game.

inukaze commented 8 months ago

Can you run the game from command line or a shortcut like so: pd.exe --debug-gl --log and post the pd.log file it creates in the same folder as pd.exe?

pd.log with latest version precompiled build content :

version: port 36f8494 (i686-windows)
startup date: 09 Feb 2024 17:13:53
base dir: ./data
save dir: .
WARNING: GL: could not create GL3.0 context: Could not create GL context: 
GL: created GL3.2core context
WARNING: SDL: hires waitable timers not available
GL: version: 3.2.0
GL: vendor: NVIDIA Corporation
GL: renderer: GeForce GT 620/PCIe/SSE2/3DNOW!
GL: GLSL version: 1.50 NVIDIA via Cg compiler
GL: ARB_framebuffer_object: yes
GL: ARB_depth_clamp: yes
GL: ARB_texture_mirror_clamp_to_edge: no
WARNING: GL: using core profile, watch out for errors
input: assigned controller '0: (PS1 Controller)' (id 1) to player 0
input: assigned controller '1: (PS1 Controller)' (id 0) to player 1
ROM file: pd.ntsc-final.z64
loading segment fontjpnsingle from ROM (offset 00194b20 pointer 179e4b40)
loading segment fontjpnmulti from ROM (offset 0019fb40 pointer 179efb60)
loading segment animations from ROM (offset 001a15c0 pointer 179f15e0)
loading segment mpconfigs from ROM (offset 007d0a40 pointer 18020a60)
loading segment mpstringsE from ROM (offset 007d1c20 pointer 18021c40)
loading segment mpstringsJ from ROM (offset 007d5320 pointer 18025340)
loading segment mpstringsP from ROM (offset 007d8a20 pointer 18028a40)
loading segment mpstringsG from ROM (offset 007dc120 pointer 1802c140)
loading segment mpstringsF from ROM (offset 007df820 pointer 1802f840)
loading segment mpstringsS from ROM (offset 007e2f20 pointer 18032f40)
loading segment mpstringsI from ROM (offset 007e6620 pointer 18036640)
loading segment firingrange from ROM (offset 007e9d20 pointer 18039d40)
loading segment fonttahoma from ROM (offset 007f7860 pointer 18047880)
loading segment fontnumeric from ROM (offset 007f8b20 pointer 18048b40)
loading segment fonthandelgothicsm from ROM (offset 007f9d30 pointer 18049d50)
loading segment fonthandelgothicxs from ROM (offset 007fbfb0 pointer 1804bfd0)
loading segment fonthandelgothicmd from ROM (offset 007fdd80 pointer 1804dda0)
loading segment fonthandelgothiclg from ROM (offset 008008e0 pointer 18050900)
loading segment sfxctl from ROM (offset 0080a250 pointer 1805a270)
loading segment sfxtbl from ROM (offset 00839dd0 pointer 18089df0)
loading segment seqctl from ROM (offset 00cfbf30 pointer 1854bf50)
loading segment seqtbl from ROM (offset 00d05f90 pointer 18555fb0)
loading segment sequences from ROM (offset 00e82000 pointer 186d2020)
loading segment texturesdata from ROM (offset 01d65f40 pointer 195b5f60)
loading segment textureslist from ROM (offset 01ff7ca0 pointer 19847cc0)
loading segment copyright from ROM (offset 01ffea20 pointer 1984ea40)
skipping segment fontjpn
romdataInit: loaded rom, size = 33554432
memp heap at 19860020 - 1a860020
rom  file at 17850020 - 19850020
ERROR: FATAL: Fragment shader compilation failed:
0(2) : warning C7555: 'varying' is deprecated, use 'in/out' instead
0(3) : warning C7555: 'varying' is deprecated, use 'in/out' instead
0(17) : error C1060: incompatible types in initialization
0(17) : error C1056: invalid initialization
0(34) : warning C7533: global variable gl_FragColor is deprecated after version 120

shutdown

pd.log old version content, just for you can make comparation / diffs

version: port 49f607d (i686-windows)
startup date: 09 Feb 2024 17:22:18
base dir: ./data
save dir: .
WARNING: GL: could not create GL3.0 context: Could not create GL context: 
GL: created GL3.2core context
WARNING: SDL: hires waitable timers not available
GL: version: 3.2.0
GL: vendor: NVIDIA Corporation
GL: renderer: GeForce GT 620/PCIe/SSE2/3DNOW!
GL: GLSL version: 1.50 NVIDIA via Cg compiler
GL: ARB_framebuffer_object: yes
GL: ARB_depth_clamp: yes
GL: ARB_texture_mirror_clamp_to_edge: no
WARNING: GL: using core profile, watch out for errors
input: assigned controller '0: (PS1 Controller)' (id 1) to player 0
input: assigned controller '1: (PS1 Controller)' (id 0) to player 1
ROM file: pd.ntsc-final.z64
loading segment fontjpnsingle from ROM (offset 00194b20 pointer 17934b40)
loading segment fontjpnmulti from ROM (offset 0019fb40 pointer 1793fb60)
loading segment animations from ROM (offset 001a15c0 pointer 179415e0)
loading segment mpconfigs from ROM (offset 007d0a40 pointer 17f70a60)
loading segment mpstringsE from ROM (offset 007d1c20 pointer 17f71c40)
loading segment mpstringsJ from ROM (offset 007d5320 pointer 17f75340)
loading segment mpstringsP from ROM (offset 007d8a20 pointer 17f78a40)
loading segment mpstringsG from ROM (offset 007dc120 pointer 17f7c140)
loading segment mpstringsF from ROM (offset 007df820 pointer 17f7f840)
loading segment mpstringsS from ROM (offset 007e2f20 pointer 17f82f40)
loading segment mpstringsI from ROM (offset 007e6620 pointer 17f86640)
loading segment firingrange from ROM (offset 007e9d20 pointer 17f89d40)
loading segment fonttahoma from ROM (offset 007f7860 pointer 17f97880)
loading segment fontnumeric from ROM (offset 007f8b20 pointer 17f98b40)
loading segment fonthandelgothicsm from ROM (offset 007f9d30 pointer 17f99d50)
loading segment fonthandelgothicxs from ROM (offset 007fbfb0 pointer 17f9bfd0)
loading segment fonthandelgothicmd from ROM (offset 007fdd80 pointer 17f9dda0)
loading segment fonthandelgothiclg from ROM (offset 008008e0 pointer 17fa0900)
loading segment sfxctl from ROM (offset 0080a250 pointer 17faa270)
loading segment sfxtbl from ROM (offset 00839dd0 pointer 17fd9df0)
loading segment seqctl from ROM (offset 00cfbf30 pointer 1849bf50)
loading segment seqtbl from ROM (offset 00d05f90 pointer 184a5fb0)
loading segment sequences from ROM (offset 00e82000 pointer 18622020)
loading segment texturesdata from ROM (offset 01d65f40 pointer 19505f60)
loading segment textureslist from ROM (offset 01ff7ca0 pointer 19797cc0)
loading segment copyright from ROM (offset 01ffea20 pointer 1979ea40)
skipping segment fontjpn
romdataInit: loaded rom, size = 33554432
memp heap at 197b0020 - 1a7b0020
rom  file at 177a0020 - 197a0020
shutdown

The game does not know anything about how many USB devices your joystick or gamepad consists of, so unfortunately I can't fix that. You can try downloading this file and putting it in the same folder as pd.exe and see if that fixes the controller.

By the moment i don't have any controller connected to that adapter, because none is working. i just had the Adapter Connected to USB port, and without controllers its causing that strange behaviour. and i already had that file, before you share with me that file, and older version of SDL dll file, but the issue persist.

The game also does not change the resolution or the refresh rate. When you pick fullscreen, it will run in a borderless window at your desktop resolution. If you're having issues related to resolution/refresh rate, that's unrelated to the game.

i just mentioned that like a curiosity i had experiment reciently under Windows 10 is an error from microsoft, not an error of this game.

Dunno : this client, the precompile version is now accepting the EUR Rom ? i want play it on spanish.

iamgreaser commented 8 months ago

Usually when an OpenGL shader fails to compile it's because it was developed on a machine which uses NVidia's notoriously nonconformant drivers, so it's always oddly satisfying to see NVidia's shader compiler break.

Perhaps when a shader fails to compile, or when requested via a command-line argument, we should dump the generated shader sources to the log. That way, at least we'd be able to find out exactly what it's complaining about.

By the way, if you're thinking you can easily get line numbers out of it: I managed to get something working years ago, and every lineage of OpenGL driver outputs its file/line/column numbers in the compile/link logs in a different format... and not all drivers output a column number. So it's best to dump the generated shader sources as-is and do your own cross-referencing.

As for what I suspect is happening...

0(17) : error C1060: incompatible types in initialization 0(17) : error C1056: invalid initialization

If it's complaining about this line:

lowp vec4 cw = vec4(0.0);

then according to the relevant GLSL specifications, this line is perfectly fine, even if we are somehow targeting Vulkan or OpenGL ES.

But first we need a dump of the relevant shader code. And that's going to need a feature.

fgsfdsfgs commented 8 months ago

I could've sworn I already did make it dump the shader at some point. I know which exact shader variant the problem is with, though. It's only ever used for menu blur. It looks like it's pointing to

            const lowp float blurWeights[16] = float[16](
                0.009947, 0.009641, 0.008778, 0.007509,
                0.009641, 0.009345, 0.008508, 0.007278,
                0.008778, 0.008508, 0.007747, 0.006626,
                0.007509, 0.007278, 0.006626, 0.005668
            ); // <-- this line

which should also be perfectly valid.

It's also worth noting that somehow your graphics card/driver doesn't want to give you a GL3.0 context, but is totally fine with GL3.2 core. You could try running the game with --gl-version 2.1 or --gl-version 3.2, in case that somehow ends up working. Do also update your graphics driver if you haven't in a while.

the precompile version is now accepting the EUR Rom ? i want play it on spanish.

Not yet, you still must compile the PAL executable yourself for that. I might add PAL autobuilds at some point in the near future.

fragment shader source for reference

fgsfdsfgs commented 8 months ago

@inukaze Can you try this build? Replace your pd.exe with the one from this zip file and tell me if it still crashes. pd.zip

inukaze commented 8 months ago

I could've sworn I already did make it dump the shader at some point. I know which exact shader variant the problem is with, though. It's only ever used for menu blur. It looks like it's pointing to

            const lowp float blurWeights[16] = float[16](
                0.009947, 0.009641, 0.008778, 0.007509,
                0.009641, 0.009345, 0.008508, 0.007278,
                0.008778, 0.008508, 0.007747, 0.006626,
                0.007509, 0.007278, 0.006626, 0.005668
            ); // <-- this line

which should also be perfectly valid.

It's also worth noting that somehow your graphics card/driver doesn't want to give you a GL3.0 context, but is totally fine with GL3.2 core. You could try running the game with --gl-version 2.1 or --gl-version 3.2, in case that somehow ends up working. Do also update your graphics driver if you haven't in a while.

Oh, i now remember, 3 weeks ago, i had a problem with pc, i got strange stuttering, and when i try fist chaning hdd of win7 with the winxp, changing sata cable of 1.5 Gbps for one of 6 Gbps, Changing the GPU Card Nvidia GT 620 and just using the internal nForce 630a / GeForce 7025. and in that moment i downgrade the drivers to 308 version, and 3 days ago i update to 309 drivers version. and 2 days ago i change put again the GeForce GT 620 Card back into PC. and i not had upgrade drivers yet.

The stuttering on my case is cause becuase i had 2 modules of ram, 1 of 1 GB Workings perfectly, but the another module of 2GB, the temperature ever is too much by moments, causing the stuttering, incluse meanwhile i am playing solitarie from system.

In some hours i go to test perfect dark under windows xp, with the latest drivers compatible i found on nvidia page, just for play without stuttering.

Dunno if this "p.d" is capable to use "--gl-version 2.1" with is not the default ? yesterday when i see the log, i am thinking just that, with this is not using OpenGL 2.0 version like default, the game is near of 90's end and the standard of pc by that years was OpenGL 2.1 or DirectX 9.0c

the precompile version is now accepting the EUR Rom ? i want play it on spanish.

Not yet, you still must compile the PAL executable yourself for that. I might add PAL autobuilds at some point in the near future.

fragment shader source for reference

Well trying with the command line argument :

D:\Videojuego\PC\pd-i686-windows>pd.exe --gl-version 2.0 --debug-gl --log

D:\Videojuego\PC\pd-i686-windows>pd.exe --gl-version 2.1 --debug-gl --log

pd-error-fatal-shader-001

i still got the same trouble, let me try with the newer zip shared with me

inukaze commented 8 months ago

@inukaze Can you try this build? Replace your pd.exe with the one from this zip file and tell me if it still crashes. pd.zip

That is starting, but without read the saved information on "eeprom.bin" file pd-error-fatal-shader-002

Well the game is working fine pd-error-fatal-shader-003

fgsfdsfgs commented 8 months ago

Okay, that fixes the shader crash then. Not sure why it didn't read the eeprom.bin though. I'll commit the fix shortly and you should be able to use the new automatic build after that.

inukaze commented 8 months ago

Ok, meanwhile i am going to change my hdd of win7 for the hdd with winxp to make test from there.

fgsfdsfgs commented 8 months ago

New build should be available now. The game likely will not work on XP as is, since modern versions of the compiler it uses have probably dropped XP support at this point, but you can try.

inukaze commented 8 months ago

Well, i try first here under windows 7, after i try under win xp just for see if work or not.

001--PerfectDark

Well under Windows 7 (32 Bits) is working fine :D the epprom file now is was readed how i expect :D

Under Windows XP SP3 (32 Bits) :

001--PerfectDark 002--PerfectDark

inukaze commented 8 months ago

Hi there again, recently some minutes ago, on a friend house, he want try the perfect dark in his machine, and the result was :

PC-Yemery-PerfectDark001

Here the log output :

version: port 49f607d (i686-windows)
startup date: 10 Feb 2024 18:48:13
base dir: ./data
save dir: .
GL: created GL3.0 context
WARNING: SDL: hires waitable timers not available
GL: version: 2.1.0 - Build 8.15.10.2869
GL: vendor: Intel
GL: renderer: Intel(R) G41 Express Chipset
GL: GLSL version: 1.20  - Intel Build 8.15.10.2869
GL: ARB_framebuffer_object: no
GL: ARB_depth_clamp: no
GL: ARB_texture_mirror_clamp_to_edge: no
WARNING: GL: GLSL 1.30 unsupported
WARNING: GL: GL_ARB_framebuffer_object unsupported, framebuffer effects disabled
input: added 500 controller mappings from ./gamecontrollerdb.txt
ROM file: pd.ntsc-final.z64
loading segment fontjpnsingle from ROM (offset 00194b20 pointer 0b354b40)
loading segment fontjpnmulti from ROM (offset 0019fb40 pointer 0b35fb60)
loading segment animations from ROM (offset 001a15c0 pointer 0b3615e0)
loading segment mpconfigs from ROM (offset 007d0a40 pointer 0b990a60)
loading segment mpstringsE from ROM (offset 007d1c20 pointer 0b991c40)
loading segment mpstringsJ from ROM (offset 007d5320 pointer 0b995340)
loading segment mpstringsP from ROM (offset 007d8a20 pointer 0b998a40)
loading segment mpstringsG from ROM (offset 007dc120 pointer 0b99c140)
loading segment mpstringsF from ROM (offset 007df820 pointer 0b99f840)
loading segment mpstringsS from ROM (offset 007e2f20 pointer 0b9a2f40)
loading segment mpstringsI from ROM (offset 007e6620 pointer 0b9a6640)
loading segment firingrange from ROM (offset 007e9d20 pointer 0b9a9d40)
loading segment fonttahoma from ROM (offset 007f7860 pointer 0b9b7880)
loading segment fontnumeric from ROM (offset 007f8b20 pointer 0b9b8b40)
loading segment fonthandelgothicsm from ROM (offset 007f9d30 pointer 0b9b9d50)
loading segment fonthandelgothicxs from ROM (offset 007fbfb0 pointer 0b9bbfd0)
loading segment fonthandelgothicmd from ROM (offset 007fdd80 pointer 0b9bdda0)
loading segment fonthandelgothiclg from ROM (offset 008008e0 pointer 0b9c0900)
loading segment sfxctl from ROM (offset 0080a250 pointer 0b9ca270)
loading segment sfxtbl from ROM (offset 00839dd0 pointer 0b9f9df0)
loading segment seqctl from ROM (offset 00cfbf30 pointer 0bebbf50)
loading segment seqtbl from ROM (offset 00d05f90 pointer 0bec5fb0)
loading segment sequences from ROM (offset 00e82000 pointer 0c042020)
loading segment texturesdata from ROM (offset 01d65f40 pointer 0cf25f60)
loading segment textureslist from ROM (offset 01ff7ca0 pointer 0d1b7cc0)
loading segment copyright from ROM (offset 01ffea20 pointer 0d1bea40)
skipping segment fontjpn
romdataInit: loaded rom, size = 33554432
memp heap at 0d1d0020 - 0e1d0020
rom  file at 0b1c0020 - 0d1c0020
ERROR: FATAL: Fragment shader compilation failed:
ERROR: 0:18: 'textureSize' : no matching overloaded function found (using implicit conversion) 
ERROR: 0:18: '=' :  cannot convert from 'const float' to '2-component vector of float'

shutdown

with the parameter --gl-version 2.1 produce exact the same output at the latest line of log file.

i try under another machine know on venezuela like "Canaima MG101A3" and the result was this on output file with latest :

version: port fe0d9b3 (i686-windows)
startup date: 10 Feb 2024 18:49:30
base dir: ./data
save dir: .
GL: created GL2.1 context
WARNING: SDL: hires waitable timers not available
GL: version: 3.1.0 - Build 9.17.10.4229
GL: vendor: Intel
GL: renderer: Intel(R) HD Graphics
GL: GLSL version: 1.40 - Intel Build 9.17.10.4229
GL: ARB_framebuffer_object: yes
GL: ARB_depth_clamp: yes
GL: ARB_texture_mirror_clamp_to_edge: no
ROM file: pd.ntsc-final.z64
loading segment fontjpnsingle from ROM (offset 00194b20 pointer 18324b40)
loading segment fontjpnmulti from ROM (offset 0019fb40 pointer 1832fb60)
loading segment animations from ROM (offset 001a15c0 pointer 183315e0)
loading segment mpconfigs from ROM (offset 007d0a40 pointer 18960a60)
loading segment mpstringsE from ROM (offset 007d1c20 pointer 18961c40)
loading segment mpstringsJ from ROM (offset 007d5320 pointer 18965340)
loading segment mpstringsP from ROM (offset 007d8a20 pointer 18968a40)
loading segment mpstringsG from ROM (offset 007dc120 pointer 1896c140)
loading segment mpstringsF from ROM (offset 007df820 pointer 1896f840)
loading segment mpstringsS from ROM (offset 007e2f20 pointer 18972f40)
loading segment mpstringsI from ROM (offset 007e6620 pointer 18976640)
loading segment firingrange from ROM (offset 007e9d20 pointer 18979d40)
loading segment fonttahoma from ROM (offset 007f7860 pointer 18987880)
loading segment fontnumeric from ROM (offset 007f8b20 pointer 18988b40)
loading segment fonthandelgothicsm from ROM (offset 007f9d30 pointer 18989d50)
loading segment fonthandelgothicxs from ROM (offset 007fbfb0 pointer 1898bfd0)
loading segment fonthandelgothicmd from ROM (offset 007fdd80 pointer 1898dda0)
loading segment fonthandelgothiclg from ROM (offset 008008e0 pointer 18990900)
loading segment sfxctl from ROM (offset 0080a250 pointer 1899a270)
loading segment sfxtbl from ROM (offset 00839dd0 pointer 189c9df0)
loading segment seqctl from ROM (offset 00cfbf30 pointer 18e8bf50)
loading segment seqtbl from ROM (offset 00d05f90 pointer 18e95fb0)
loading segment sequences from ROM (offset 00e82000 pointer 19012020)
loading segment texturesdata from ROM (offset 01d65f40 pointer 19ef5f60)
loading segment textureslist from ROM (offset 01ff7ca0 pointer 1a187cc0)
loading segment copyright from ROM (offset 01ffea20 pointer 1a18ea40)
skipping segment fontjpn
romdataInit: loaded rom, size = 33554432
memp heap at 1a370020 - 1b370020
rom  file at 18190020 - 1a190020
shutdown

On this Canaimita MG101A3, The flow is some strange but its working the game and its playable, but on the another machine i got another shader error.

Dunno : If possible play multiplayer via Netplay ? if the answer is yes, how i can set host machine and host i connect the client machines ? we use Ad Hoc Wifi Intranet.

fgsfdsfgs commented 8 months ago

Nice to see it still runs on XP.

Intel(R) G41 Express Chipset

That's a pretty horrible GPU. Looks like it lies that it supports GL3.0, but actually doesn't support GLSL130, which is a requirement for GL3.0. The game most likely won't run on that as is. You can try --gl-version 3.2core but it probably won't work.

Netplay is very unstable and is currently available on the port-net branch. You can get netplay builds from these download links. You'll probably be able to set it up over LAN/WiFi without much issues, as long as the machines are on the same network. Just keep in mind that it is pretty buggy right now and many things don't work yet. Might be a better choice to find a second gamepad and play split screen multiplayer like on the N64 version.

Hosting and joining is done from the Network Game menu in the netplay builds. To join you will need to know the local IP of the host.

inukaze commented 8 months ago

Nice to see it still runs on XP.

Yes is awesome, is capable to run under Windows XP :D

Intel(R) G41 Express Chipset

That's a pretty horrible GPU. Looks like it lies that it supports GL3.0, but actually doesn't support GLSL130, which is a requirement for GL3.0. The game most likely won't run on that as is. You can try --gl-version 3.2core but it probably won't work.

That's right but with another games works fine like : Starcraft 2, Dragon Age 1, i think is some strange how like with some games works too much fine but like anothers like Fallout 3 Gold Edition is not possible to run on that machine because of that IGP/GPU

Dunno : this project not had a compatibility with directx9.0c yet ?

Netplay is very unstable and is currently available on the port-net branch. You can get netplay builds from these download links. You'll probably be able to set it up over LAN/WiFi without much issues, as long as the machines are on the same network. Just keep in mind that it is pretty buggy right now and many things don't work yet. Might be a better choice to find a second gamepad and play split screen multiplayer like on the N64 version.

Hosting and joining is done from the Network Game menu in the netplay builds. To join you will need to know the local IP of the host.

Ok, i am going to my friends house, just for try, if the thing works, possible i comment tomorrow because ever we play on intranet ever play like 8 hours continuos the first time when we play together.

You can share the list of parameters can be used with this pd executable ?

fgsfdsfgs commented 8 months ago

Commercial games generally use DirectX and not OpenGL. Support for that is generally a bit better on those IGPUs, so they do support more of those games. This project uses OpenGL version 3.0 (or in some rare cases 2.1 with extensions and GLSL130 would work). If the GPU or the driver don't support that, it won't run. In general GPUs released around 2009 and later should work fine, but there are some exceptions.

I'll close this issue since the crash problem was resolved, but feel free to comment or create new issues if you encounter more problems.