Some Back Compat Problems For PS3
Via Opposable Thumbs at Ars Technica, the news at IGN that there are some annoying backwards compatibility issues with the PS3 and the PS2. Specifically, there are about 196 games that are experiencing issues. From the article: "In response to these issues, Sony's PR department pointed out that it, from the start, expected backwards compatibility to be less than 100%. It was also good enough to point out that some people can put up with playing games that lack sound. Regardless of this somewhat arrogant response, an official statement issued at the PlayStation.com site states that Sony will fix the problems with a future system update, and may even resort to individual patches for certain titles. When this will happen has yet to be specified." Qj.net has a list of some of the problem games, with their specific issues. It sounds bad, but to put this in perspective I believe there are still far more PS2 games playable on the PS3 than there are Xbox games playable on the 360.
Who needs sound for guitar hero or DDR, seriously?
If it was simple then they wouldn't be having all these problems.
The hard answer is it depends.
1. Did the program use some strange feature or bug that you are not emulating? This can cause problems even for hardware. You do a new rev of some chip and a program that uses some strange workaround fails. This was a major problem for Apple when they created the Apple IIc. It used the 65c02 which fixed a lot of bugs in the 6502 that some software depended on. It was also a problem for some Amiga users when they upgraded to the 68010 or higher.
2. timing. This can be a real pain since on a modern CPUs you can not cycle count. On a modern CPU the amount of time an instruction takes is not fixed. Again did the software you are tying to emulate do something really odd with timing? Sound issues are often caused by this.
3. Bugs. No program is perfect. Emulators tend to multiply bugs. One bug my effect a dozen games.
4. Lack of documentation. Even if you have perfect documentation for the hardware specs that isn't enough. Some developer somewhere will go outside the specs and try something strange just to see if it will work. When it does they will leave it in. Unless you have the source for every program you intend to run on your emulator the odds are pretty good you will miss something. Even if you do it is unlikely you will go through every line of code.
What developers like about consoles is that you can program right down on the hardware to get the maximum performance. You know that each and every console will have exactly the same hardware.
What emulator writers hate about consoles is that console developers program right down on the hardware. If you make the smallest mistake it will come back and get you.
Just a short list of reasons.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.