I just found today that the reason some of my older games do not run on Vista / Windows 7 is due to Data Execution Prevention. My theory is based on my experiences with Olly Debugger and game executables. Most game executables are encrypted which means when you run the exe a small stub runs that loads the encrypted data into memory and converts it to opcodes and then jumps to the start address and the game begins. Well this is exactly what DEP is trying to prevent. It prevents programs from running code from the data area which is a usually a sign the program is malicious.
So if you have any games that do not run in Windows 7 or Vista and setting them to compatibility mode does not work I would turn off DEP for those programs.
Note that this can happen with applications too if they run stubs or code that triggers DEP to shut down the program.
I've been trying to solve some of my game launch issues for a very long time and I finally have almost every old game from XP running in Windows 7 64 bit. Even modern games like the Sims 3 suffer from this. I would imagine there is a way for programmers to temporarily disable DEP or ask for permission to run code from / in the data area so that every encrypted exe out there does not flag DEP and shut down the program. Many programs seem to be incompatible with DEP.
Has anyone experienced DEP shutting down your legitimate program either at work or at home?