BrotherRool said:
There is a market. But not enough of a market to charge $150 extra for each console. Which is the sort of thing it would cost. People keep acting like companies remove the BC out of spite, and it's not. BC is expensive. BC is also more expensive the better the hardware your using is. So it's probably a lot cheaper to add BC to a handheld than a console.
This. I'm so glad to see that somebody gets it. BC isn't just expensive in terms of cash, it's computationallly expensive as well. Not only that, it's also just plain
hard.
I mean, I've been a follower of projects like MAME for years. And while I don't pretend to know the details of emulating a chip, I get that there's a lot more to it than just "this one's faster so it can emulate this one".
Do people understand what's actually
involved in a software based emulation of a system? Let's start with a relatively simple CPU. If you're going to emulate it properly (note: MAME is infamously anal about this, for good reason), you've got to match it down to the instruction. That means that your host system needs to execute a set of instructions that match each instruction on the emulated CPU. But remember, it's a different CPU. It's not going to be one instruction on the host machine matching one instruction on the emulated system. And you're running from software, so you've got to scale up; a single emulated instruction may require several lines of code in the host program, which in turn then have to be turned back into CPU code on the host machine to run that instruction. This all takes processing power and time on the host machine; the estimate is that you basically need a processor between
thirty to fifty times as powerful as the original in order to emulate it, because that's about how many host cycles you need per instruction (remember, said instruction only took one cycle on the original CPU).
And we're literally just getting started. That's just a single CPU - you've also got graphics and sound processors to emulate, and the memory, and the interfaces, and
then you've got to link all that together and produce an accurate output for given input data.
Now, one of the reasons MAME is so demanding is that it's entirely software based; it can't use any hardware accelerations because it doesn't know what specs any given host machine is going to have, and it's got to run on
all of them; the program has to be able to run on AMD CPUs, Intel CPUs, weird old cack CPUs, AMD and NVidia GPUs and most other permutations, and any Windows OS from 98 onwards. Console emulation on a console is a mite easier (a very small mite) because they all have the same hardware and (approximately, subject to updates) the same software, meaning that you can emulate
some instructions and interfaces more directly in hardware; this is why it's easier to develop games for consoles and iPhones than it is for PCs and Android. But even so, depending on the difference between the architectures (PPC to x64 for both main consoles), you're still probably looking at about a ten to twenty fold leap in power required for emulation.
Is the 180 ten times as powerful as the 360? Is the PS4 ten times as powerful as the PS3? According to Wikipedia, the PS3's CPU can just about touch 230 GFLOPS at peak; the PS4's, about 1.84 TFLOPS, about an eightfold increase. The 180 peaks at 1.23 TFLOPS, the 360 115 GFLOPS; about elevenfold. And that's just the CPUs; the GPUs are even messier (the RSX and Xenos are derived from common architectures, nVidia and AMD respectively; but they're customised, possibly to the point of incomplete compatibility with the new APUs), and never mind the timing and interfacing issues. Could it be done? Maybe, at an incredibly tight squeeze that would take a long, long time to code and optimise and cost more than it would gain.
Removing backwards compatability isn't just malice or incompetence. It's sheer technical difficulty to the point of near impossibility, and that effort is better spent making sure the new features work than the old ones.