Yeah this is one of the pains that consoles bring, if you change the architecture the games that were optimized for, programmed in places at the Machine/Hardware level, the new system will not be able to play on the future system. Unless you do what Nintendo does and either keep a similar architecture (ie Gamecube, Wii and WiiU all use nearly the same architecture) or put the entire system on a chip (GBA to DS, DS to 3DS).
The reason most PC games can continue to play when you upgrade is that games made for the PC are programed at the OS level, so changing Hardware has little effect on them.
For those who wonder what the levels are:
A computer system can be viewed as a pile of departments, with three-to-four primary departments:
- Machine - coded in Assembly or binary - currently only Human Interface (controller) and pieces of the Audio (if there is no DSP) are programmed this low.
- Hardware - coded using the hardware manufacture's code for the code. In consoles the Video, AI, Audio (if there is a DSP), threading, core and memory optimization are done here. In PC games some develoepers will strike a deal with Graphics card manufactures and optimize at this level.
- OS - The OS and its APIs are located this high, almost all PC games never stray deeper than this.
- Software - Games programmed in HTML5, Flash, Java and other scritping languages. Games that run in emulators are running at this level. So almost all web and mobile games are programmed at this level
And the OS level can be separated into departments also. The more levels between the Machine and Software level the easier it is to code for. Windows is historically unstable because to make Windows to run with as many configurations as possible there are a ton of departments that sometime conflict with each other. And as I said most games made for windows only are programmed to talk to the Windows program and the DirectX API, some of the smaller games only deal with the DirectX API, which is a level in itself.
The PC use to have compatiblity problems before (u)PnP and OpenGL/DirectX was introduced. They had to be programmed at the Hardware level since Windows had limited ability to interact with the Graphics card. So it stunted the game market on PCs for a long time since you didn't have a universal set up.
The upside of optimsation is the code runs faster, you can squeaze more power out of the hardware and make it do things that it wasn't orginally designed for etc, but you curse it to that specfic hardware configuration.
On the other side of the coin, the higher level the program is made to interact with the smaller the code has to be, and the less complex the code can be, or the game will be unplayable on the interface level. (ie High level of lag etc)
Sorry if I got off the beaten trail with that one.