Xbox 360 Emulator Research Project
github.com
github.com
The original Xbox hasn't seen a lot of emulation activity either -- I found that strange. It feels like we might lose an entire generation of games to bitrot.
You can download SWF files with unplug for Firefox and such.
I don't think the original Xbox had many reliability problems though, maybe you're thinking of the Xbox 360 and its red ring of death problem?
A lot of sites selling new connectors claim they are made with more robust materials than the original connectors, but I'm not sure how true that is.
http://breaknes.com/ (If you are interested in advanced RE, I recommend learning Russian...)
http://www.qmtpro.com/~nes/chipimages/
In other words, even if there are no original physical NES or their parts around in 30 years, relatively speaking it would be trivial to perfectly emulate one in software or hardware (e.g. an FPGA), because the functionality of the entire system is known.
Here's what the developer of CBXB (a xbox original emulator) has to say about it, gives the reasons as to why it is to blatantly false: http://www.neogaf.com/forum/showpost.php?p=48088464&postcoun... (original is deleted)
WineLib. And if not, just use the Wine as a binary loader and run your stuff.
So you do some reverse-engineering. On the whole it isn't much work than other consoles of that generation. The only reason there hasn't been any activity is because nobody (outside of the Xbox backwards compatibility team) sat down and did the work (because there's no incentive to)
Not really[1]. It was based on the GeFroce 3 architecture (NV20) but the actual chip had been quite different from the ones you could get on a retail card (NV2A). Even if it had been a straight off-the-shelf device it does not mean you know how it works. Look at the open-source drivers for the off-the-shelf video cards to see what is possible through reverse-engineering and what is not.
I cannot speak for other consoles of that generation, as I have not touched the GC but PS2 devkits came with nice printed manuals, describing every register and every command for almost every device (if memory serves there was not printed IOP manual but it was pretty much the PS1 chipset so its documentation had been obtainable too).
1. https://github.com/espes/xqemu/blob/xbox/hw/xbox/nv2a.c#L708
There have been quite a few Xbox 360 and Xbox SDK's appearing on Ebay, even some of the early PowerPC based Mac Soft SDK's for the Xbox 360 have appeared online so some one has them, too bad that people who buy them either collect them or in the case of the 360 dev box to create free XBLA gold accounts :P
I vaguely recall somebody from MS saying on the Xbox developer newsgroups that providing the full information wasn't part of their deal with NVidia, and that was that.
The Amiga had custom chips, but had released the information on how they worked so Amiga emulators could be made. I doubt Sony or Microsoft would release the information.
Just having a X86 CPU doesn't always mean the system can be emulated. For example I got BeOS for X86 and there is no emulator that can run it that I know of. My only hope of running BeOS apps is Haiku.
[1] https://twitter.com/majornelson/status/639636383368376320
Microsoft also isn't hiding it: "The digital titles that you own and are part of the Back Compat game catalog will automatically show up in the “Ready to Install” section on your Xbox One. For disc-based games that are a part of the Back Compat game catalog, simply insert the disc and the console will begin downloading the game to your hard drive. After the game has finished downloading, you will still need to keep the game disc in the drive to play."
http://www.xbox.com/en-US/xbox-one/backward-compatibility
Sure they might be downloading the 360 version and then doing the emulation but it's much much more likely that they've actually simply ported the game.
It downloads the entire game for each disk game you put in, seems to me that the could've found a more efficient way to actually do that since you know both the 360 and the XboxOne support installing games from disk so they got the ability to create a disk image.
If all they needed to download is an emulator and a compatibility config file that would've been a much smaller download package..
"We have to do packaging and validation work on each title to make it available through Xbox One backward compatibility," explains a Microsoft spokesperson.
Xbox One Backward Compatibility is an Xbox 360 emulator that runs on Xbox One and is used to play Xbox 360 games," says a Microsoft spokesperson in a statement to The Verge.
http://www.theverge.com/2015/6/15/8785955/microsoft-xbox-one...
>Delving deeper, Spencer explained exactly how the emulator packages the Xbox 360 games, and how it compares to Xbox 360's emulation of original Xbox games.
>"You download a kind of manifest of wrapper for the 360 game, so we can say 'hey, this is actually Banjo, or this is Mass Effect. The emulator runs exactly the same for all the games.
">I was around when we did the original Xbox [backwards compatibility] for Xbox 360 where we had a shim for every game and it just didn't scale very well. This is actually the same emulator running for all of the games. Different games do different things, as we're rolling them out we'll say 'oh maybe we have to tweak the emulator.' But in the end, the emulator is emulating the 360, so it's for everybody."
>Asked about whether Microsoft would require permission from game publishers to adjust game code, Spencer clarified it would not be interfering with code.
>"The bits are not touched," he said. "There's some caveats, and as always I like to be as transparent as I can be on this: Kinect games won't work from the 360, because translating between the Kinect sensors is almost impossible."
http://www.gamespot.com/articles/revealed-how-xbox-one-can-p...
I also remember watching a video where they talked about it, it had some more details. I can't remember what it's called though and I couldn't find it with a cursory search.
Behind the scenes, Microsoft has built a full Xbox 360 emulator for its Xbox One console. "Xbox One Backward Compatibility is an Xbox 360 emulator that runs on Xbox One and is used to play Xbox 360 games," says a Microsoft spokesperson in a statement to The Verge.
http://www.theverge.com/2015/6/15/8785955/microsoft-xbox-one...
the package they are sending when you insert the disc is a container that contains the xbox emulator, any media assets, the game and compatibility stuff that is needed.
For example running original Xbox games on Xbox 360 also required a download of a binary which was an emulation / compatibility wrapper around the binary on the DVD that shimmed out and hotpatched code so the games worked properly.
for the game, it's like running on a normal 360. and that's why things like multiplayer work. [2]
[1] http://www.engadget.com/2015/06/18/xbox-one-backward-compati...
[2] http://www.xbox.com/en-US/xbox-one/backward-compatibility
Porting to an OE core is kind of invasive since it replaces the entire "app" part of an emulator including the event loop, sound output and windowing. So OpenGL renderers also have to be capable of rendering to a framebuffer and such. Also, the requirement for x86-64 is reasonable for OS X but excludes some Windows-based emu codebases, notably PCSX2.
This might be a good place to start, it's a long read but pretty interesting.