Next Generation Emulation banner

1 - 19 of 19 Posts

·
Registered
Joined
·
4 Posts
Discussion Starter #1
These claims that XBox emulation is "hard" are ludicrous. It just takes a VM running in an OS shell. The x86 has a very specific architecture designed for a IBM-compatible motherboard with very regular addressing modes and a standard BIOS (which won't differ markedly from a PC's BIOS). Intel only has one technology for this after all, and while it's theoretically possible to come up with an alternative design that's not what Microsoft did... the window between conception of the device and was too small for them to have come up with something original, and Microsoft is a firm believer in not reinventing the wheel besides. XBox games were compiled with straight up Visual C that was agnostic of any special instructions outside of SSE and MMX. That was one of the selling points of the system to devs from the very beginning, that games could be made for XBox and the PC with the same team, only compile with a different library and you've got a version of your PC game for the XBox. Only reason it's a custom Celeron was to cut costs and reduce power consumption (Pentium 3s are hogs in comparison). So it's got a low level access video card. Well guess what: all video cards have those controls, you simply don't necessarily get access to them through DirectX because it manages them for you at the direction of the driver. But when you do low level you are making your own driver and not loading the one DirectX would like to use... make sense? The OS is probably WinNT with DirectX stripped out, in essence more like DOS than Windows. Windows Embedded, I think is what they call it. That emulator developers can't be certain they will not immediately get perfect accuracy is no reason not to try (doubtless they haven't). But I don't blame authors for not wanting to emulate it besides... MS is much scarier than Nintendo or Sony. Emu authors probably think that they have more legal leeway trying to get the emulation perfect than simply trying to get games to run, because they naively think the "nobility" of "preserving aging hardware" bestows on them a kind of legal immunity. I'll guarantee MS don't give a damn about none of dat.
 

·
Registered
Joined
·
4 Posts
Discussion Starter #3
To do otherwise would be inconsistent with Microsoft's modus operandi. And I read the story about how it was conceived of, and how little time it took to get to market. Both Microsoft and Intel are notoriously lazy... are you going to dispute that?
 

·
Registered
Joined
·
34 Posts
These claims that XBox emulation is "hard" are ludicrous. It just takes a VM running in an OS shell. The x86 has a very specific architecture designed for a IBM-compatible motherboard with very regular addressing modes and a standard BIOS (which won't differ markedly from a PC's BIOS). Intel only has one technology for this after all, and while it's theoretically possible to come up with an alternative design that's not what Microsoft did... the window between conception of the device and was too small for them to have come up with something original, and Microsoft is a firm believer in not reinventing the wheel besides. XBox games were compiled with straight up Visual C that was agnostic of any special instructions outside of SSE and MMX. That was one of the selling points of the system to devs from the very beginning, that games could be made for XBox and the PC with the same team, only compile with a different library and you've got a version of your PC game for the XBox. Only reason it's a custom Celeron was to cut costs and reduce power consumption (Pentium 3s are hogs in comparison). So it's got a low level access video card. Well guess what: all video cards have those controls, you simply don't necessarily get access to them through DirectX because it manages them for you at the direction of the driver. But when you do low level you are making your own driver and not loading the one DirectX would like to use... make sense? The OS is probably WinNT with DirectX stripped out, in essence more like DOS than Windows. Windows Embedded, I think is what they call it. That emulator developers can't be certain they will not immediately get perfect accuracy is no reason not to try (doubtless they haven't). But I don't blame authors for not wanting to emulate it besides... MS is much scarier than Nintendo or Sony. Emu authors probably think that they have more legal leeway trying to get the emulation perfect than simply trying to get games to run, because they naively think the "nobility" of "preserving aging hardware" bestows on them a kind of legal immunity. I'll guarantee MS don't give a damn about none of dat.
For the sake of saying **** it, let's break this down.

These claims that XBox emulation is "hard" are ludicrous.
Where may I download your Xbox emulator?

It just takes a VM running in an OS shell.
What?

The x86 has a very specific architecture designed for a IBM-compatible motherboard with very regular addressing modes and a standard BIOS (which won't differ markedly from a PC's BIOS)
True, but the Xbox does have a custom bootloader.

Intel only has one technology for this after all, and while it's theoretically possible to come up with an alternative design that's not what Microsoft did...
Nope, that's what Nvidia did for Microsoft.

the window between conception of the device and was too small for them to have come up with something original, and Microsoft is a firm believer in not reinventing the wheel besides.
A lot of concept and work was taken from other projects at Microsoft, such as the Windows NT kernel, embedded, and even the work on the Dreamcast.

XBox games were compiled with straight up Visual C that was agnostic of any special instructions outside of SSE and MMX.
The Gamecube, Playstation 2, and Playstation 3 all use GCC.. So with your theory, why isn't there a Playstation 3 emulator? Or better yet a Xbox 360 emulator since games are built with Visual Studio toolchain.

That was one of the selling points of the system to devs from the very beginning, that games could be made for XBox and the PC with the same team, only compile with a different library and you've got a version of your PC game for the XBox.
This is simply not true. Please do some research on the difference between memory architecture and layout alone.

Only reason it's a custom Celeron was to cut costs and reduce power consumption (Pentium 3s are hogs in comparison).
Mainly costs. The Celeron was offered early on in BGA packages which greatly reduced production costs.

So it's got a low level access video card. Well guess what: all video cards have those controls, you simply don't necessarily get access to them through DirectX because it manages them for you at the direction of the driver. But when you do low level you are making your own driver and not loading the one DirectX would like to use... make sense?
Writing our own drivers isn't required or even needed. (I'm assuming that's what you're getting at). Low level access would only be required if someone was trying to write an emulator that relied on a GeForce graphics card instead of emulating it natively.

The OS is probably WinNT with DirectX stripped out, in essence more like DOS than Windows. Windows Embedded, I think is what they call it.
It's a mix between Windows CE, Embedded, and the NT kernel with everything running in ring-0. It's custom..

That emulator developers can't be certain they will not immediately get perfect accuracy is no reason not to try (doubtless they haven't).
None of us aim to write a perfect emulator or nothing at all. When it comes down to it, a demo or proof of concept is always easier to come out with than something that works perfectly and is polished.

There's quite a few of us, developers, that could very well write an almost fully working Xbox emulator but don't have the time or resources to do so. I won't speak for the other Xbox emulator developers, but personally I'm mostly busy running the second year of my own company, while going to school, and providing for my family which includes my lovely 6 month old daughter. I'm not alone in the department of lack of time and resources. Everyone has a life, and in one way or another is putting that before writing emulators for twats like you.
 

·
Registered
Joined
·
1,602 Posts
Maybe another forum rule we need here is no trolling for emulators and not to make assumptions on development on emulation on systems because all I am seeing is a troll that is nothing more than being insulting to the devs here on this forum... I hate it when the devs have to explain themselves yet again.
 

·
Premium Member
Joined
·
6,071 Posts
These claims that XBox emulation is "hard" are ludicrous. It just takes a VM running in an OS shell.
Have you ever written a VM? Have you ever written an emulator? Have you ever done anything related to emulating x86? Probably not. If I'm wrong, you're welcome to prove it and how how "easy" it is. If not, then I suggest you sit down and shut up because you've already proven that you don't know what you're talking about. A handful of the things you've said is true, but you're still oversimplifying things here. If it isn't so hard as you claim, why hasn't it been fully done yet?

I'm sorry I don't have all day and night to write a full VM from the ground up also... sorry I have a [not so comfortable] life outside of the scene too.

EDIT: while I'm at it let me throw this in there too. Xbox's processor is not a Celeron, it's a mobile P3 with a halved L2 cache. It has all of the other features celeron lacks. How much do you know about the Xbox's BIOS and it's OS? An OS shell isn't going to cut it. Or maybe it will; I dunno, you're the expert now.
 

·
Registered
Joined
·
4 Posts
These claims that XBox emulation is "hard" are ludicrous. It just takes a VM running in an OS shell. The x86 has a very specific architecture designed for a IBM-compatible motherboard with very regular addressing modes and a standard BIOS (which won't differ markedly from a PC's BIOS). Intel only has one technology for this after all, and while it's theoretically possible to come up with an alternative design that's not what Microsoft did... the window between conception of the device and was too small for them to have come up with something original, and Microsoft is a firm believer in not reinventing the wheel besides. XBox games were compiled with straight up Visual C that was agnostic of any special instructions outside of SSE and MMX. That was one of the selling points of the system to devs from the very beginning, that games could be made for XBox and the PC with the same team, only compile with a different library and you've got a version of your PC game for the XBox. Only reason it's a custom Celeron was to cut costs and reduce power consumption (Pentium 3s are hogs in comparison). So it's got a low level access video card. Well guess what: all video cards have those controls, you simply don't necessarily get access to them through DirectX because it manages them for you at the direction of the driver. But when you do low level you are making your own driver and not loading the one DirectX would like to use... make sense? The OS is probably WinNT with DirectX stripped out, in essence more like DOS than Windows. Windows Embedded, I think is what they call it. That emulator developers can't be certain they will not immediately get perfect accuracy is no reason not to try (doubtless they haven't). But I don't blame authors for not wanting to emulate it besides... MS is much scarier than Nintendo or Sony. Emu authors probably think that they have more legal leeway trying to get the emulation perfect than simply trying to get games to run, because they naively think the "nobility" of "preserving aging hardware" bestows on them a kind of legal immunity. I'll guarantee MS don't give a damn about none of dat.
1 - If it's so easy, let's see your emulator
2 - Most of what you put there is wrong. Thank you @LoveMHz for explaining why
3 - When you don't know what you're talking about, take it as a good chance to read up, then insult the devs (Don't recommend that last part)

--- off topic ---

@blueshogun96 : Keep up the good work, I wanna keep seeing updates on your xbox blog!
 

·
Registered
Joined
·
4 Posts
Discussion Starter #13
My goodness you enjoyed ripping into me. You mistook criticism for insults... my my.

nVidia couldn't have designed a motherboard addressing scheme that diverges from IBM, unless Microsoft went along with it. I doubt they did, and I'm fairly confident a full-fledged PC is lurking within the box.

The alternative would have meant a redesign of Windows' core, rather than just stripping stuff out of NT, which I doubt the Windows team was enthused about doing. It's possible XBox's BIOS has more in common with Win98 than NT.

I don't mean to mock you. There is though, the assumption that the PC's architecture is irrelevant to that of the Xbox, which is simply untrue.

No I'm not gonna make an Xbox emulator. Personally I don't see why someone would want to emulate the XBox anyway, given it had rather few games and very few exclusive titles. You'd be just as well with a 1ghz PC and 256mb gfx card, and the same will probably prove to be the max required for running games on the Xbox in faithful reproduction.

I believe it's possible to develop a WINE-type setup that will run Xbox games on the PC. What's needed is not to reproduce the XBox's hardware but to direct hardware calls made by game software to the proper place... it's not about making games run on a virtual Xbox, but about making games run on PCs. But again I have zero incentive to do this. Maybe there are exclusive RPG titles released for the Xbox that never left Japanese shores, that I've never heard about, which are proper incentive (doubtful... very doubtful).

They key is to understand XBox games, rather than Xbox. If we do this, we also eliminate the need to emulate Xbox on non-x86 platforms, because then all that's needed is QEMU.

The key is an abstraction layer between the game and PC. The game runs on the abstraction layer, which profiles instructions before sending them to the CPU. Hardware calls are intercepted, everything else is sent to the CPU.

Easy.
 

·
Fluffy Animal Admirer
Joined
·
3,398 Posts
My goodness you enjoyed ripping into me. You mistook criticism for insults... my my.

nVidia couldn't have designed a motherboard addressing scheme that diverges from IBM, unless Microsoft went along with it. I doubt they did, and I'm fairly confident a full-fledged PC is lurking within the box.

The alternative would have meant a redesign of Windows' core, rather than just stripping stuff out of NT, which I doubt the Windows team was enthused about doing. It's possible XBox's BIOS has more in common with Win98 than NT.

I don't mean to mock you. There is though, the assumption that the PC's architecture is irrelevant to that of the Xbox, which is simply untrue.

No I'm not gonna make an Xbox emulator. Personally I don't see why someone would want to emulate the XBox anyway, given it had rather few games and very few exclusive titles. You'd be just as well with a 1ghz PC and 256mb gfx card, and the same will probably prove to be the max required for running games on the Xbox in faithful reproduction.

I believe it's possible to develop a WINE-type setup that will run Xbox games on the PC. What's needed is not to reproduce the XBox's hardware but to direct hardware calls made by game software to the proper place... it's not about making games run on a virtual Xbox, but about making games run on PCs. But again I have zero incentive to do this. Maybe there are exclusive RPG titles released for the Xbox that never left Japanese shores, that I've never heard about, which are proper incentive (doubtful... very doubtful).

They key is to understand XBox games, rather than Xbox. If we do this, we also eliminate the need to emulate Xbox on non-x86 platforms, because then all that's needed is QEMU.

The key is an abstraction layer between the game and PC. The game runs on the abstraction layer, which profiles instructions before sending them to the CPU. Hardware calls are intercepted, everything else is sent to the CPU.

Easy.
What do you want to call your emulator?

Impalpable?
Ethereal?
Abstruse?
Fugacious?

Oh, I know! Ephemeral!

foot, meet mouth.
Be careful, we have a genuine CS major here! :lol:
 

·
Registered
Joined
·
34 Posts
I doubt they did, and I'm fairly confident a full-fledged PC is lurking within the box.
I'm not even going to bother correcting the other parts of your post because I just realized that you're absolutely correct. Please accept my deepest apologies and may your first born child be a masculine child.

 

·
Fluffy Animal Admirer
Joined
·
3,398 Posts
I'm not even going to bother correcting the other parts of your post because I just realized that you're absolutely correct. Please accept my deepest apologies and may your first born child be a masculine child.

Alrighty then!
 

·
GET OVER HERE
Joined
·
76 Posts
The alternative would have meant a redesign of Windows' core, rather than just stripping stuff out of NT, which I doubt the Windows team was enthused about doing. It's possible XBox's BIOS has more in common with Win98 than NT.
What does the BIOS have to do with the operating system? they're two separate things, on a computer the BIOS boots you into an operating system, on a console the BIOS boots you to the game and from there the BIOS is gone until the game is removed.

Furthermore, the Xbox's bios is no regular IBM compatible BIOS, if it was you could just install Windows or a Linux distro on it easily, however...the Cromwell project did finally get Debian booting on it by creating their own BIOS for the Xbox if i remember correctly

Personally I don't see why someone would want to emulate the XBox anyway, given it had rather few games and very few exclusive titles. You'd be just as well with a 1ghz PC and 256mb gfx card, and the same will probably prove to be the max required for running games on the Xbox in faithful reproduction.
Just because you dont think there were any good games for the Xbox doesnt mean you're 10000% right and that all Xbox games were ****, the Xbox was graced with some of Sega's greatest games (and sequels). Hell, the only reason there's that many shooters on consoles nowadays was because of the Xbox.

I believe it's possible to develop a WINE-type setup that will run Xbox games on the PC.
You're forgetting something here. software for modern operating systems like Windows with a hardware abstraction layer give apps and games what they need by communicating with the system through the API and the system gives them what they need from the hardware, as opposed to the software directly accessing the hardware, and WINE basically tries to replicate that API of Windows, on consoles though there is no system once you boot into the game, the game becomes the system, so a WINE approach wont work here.

What's needed is not to reproduce the XBox's hardware but to direct hardware calls made by game software to the proper place... it's not about making games run on a virtual Xbox, but about making games run on PCs. But again I have zero incentive to do this. Maybe there are exclusive RPG titles released for the Xbox that never left Japanese shores, that I've never heard about, which are proper incentive (doubtful... very doubtful).

They key is to understand XBox games, rather than Xbox. If we do this, we also eliminate the need to emulate Xbox on non-x86 platforms, because then all that's needed is QEMU.

The key is an abstraction layer between the game and PC. The game runs on the abstraction layer, which profiles instructions before sending them to the CPU. Hardware calls are intercepted, everything else is sent to the CPU
Hi, this is what cxbx does, and thats gotten us nowhere for over a decade. not unless you want to make an emulator that specifically emulates some games (like Xeon does with Halo) and thats a heck of a lot more work than emulating the hardware since you'd have to work with each and every single game that was made for the xbox. And what the balls does Qemu have to do with this if you want to emulate the API calls of the games instead of the hardware? Qemu emulates a PC's hardware, heck Qemu emulates the whole damn x86 instruction set too, if im not mistaken its the only one that does that out of all the virtual machine programs... (ive heard that Bochs does that too, cant confirm tho, and then theres VirtualPC for Mac, but thats a different thing)

While it is true that Xbox emulation is overblown, the approach thats been taken so far with emulating the Xbox has basically had no actual emulation in it so to say, just routing API calls to Windows's DirectX ones, but i cant blame anyone really, its not like anyones raised their hands and actually developed a proper emulator. *clings all hope to Xqemu for now*
 

·
Emu author
Joined
·
1,488 Posts
Newsflash: console emulation has to do with a lot more than what ISA the CPU uses. You think you have this amazing new idea but it's no different from the ones people had nearly 10 years ago. And it's precisely because people assumed that they'd be able to execute the CPU code natively and abstract all of the machine specific stuff out into high-level OS and library emulation that XBox emulation has progressed as it has. Which is to say, a few promising results early on followed by years of extremely slow progress. This went so poorly because, lo and behold, games were not actually running fixed SDK and OS versions but a mess of constantly changing functions, and AFAIK at least some games did actually access hardware directly (because console developers aren't afraid to do it and if you don't specifically prohibit it they eventually will). The alternative, the "normal" way to emulate a machine like this, requires a bunch of machine knowledge that isn't totally discovered.

Your assumption that the BIOS must be related to old IBM PCs is unfounded, but it's also irrelevant since the BIOS probably plays little role in the runtime of the actual games.
 
1 - 19 of 19 Posts
Top