Emuforums.com

Go Back   Emuforums.com > Xbox Emulation > Misc Xbox Discussion
Home Register Downloads FAQ Members List Calendar Arcade Mark Forums Read

WON'T YOU JOIN US?
You are not a registered member and
are viewing this site as a guest.
Registration is simple and FREE.
Join this CrowdGather community today.
Registration offers the following perks:

» Less advertising throughout
» Post and participate in discussions
» Network with other forum members
» Free private messaging

join

Reply
 
Thread Tools Display Modes
Old May 22nd, 2008, 11:01   #1
patrickvl
Emu author
 
patrickvl's Avatar
 
Join Date: May 2008
Location: Netherlands (GMT+1)
Posts: 414
Xbox emulation on Xbox 360

Because some might not know this here a link explaining how Xbox-emulation has been done on the Xbox-360 : On Backwards Compatibility

Interesting :
Quote:
Our software emulator works much like emulators for other platforms like SNES and Genesis.
Quote:
The goal and design of emulation is pre-ordained: do whatever it takes to act like what you're emulating.

At some point, your first attempt at emulation acts like the old hardware as well as it can. At that point, you try your luck: does Halo run? The answer is both yes and no at this stage. Yes, the executable loads and starts running some x86 code, but no you don't see anything on the screen. Then it promptly crashes.
Quote:
We typically have neither source code nor symbolic information for the games we’re debugging, so we’re just looking at raw assembly code with no external clues as to what it’s doing (or what it’s supposed to do). Obviously debugging code others wrote is always harder than debugging code you wrote yourself. It’s hard to know what the code normally does, and indeed some games already have a few bugs of their own. Debugging a mixed environment -- both the emulated Xbox (x86 assembly in one address space) and the translated native code and emulator runtime (PPC code in another address space) – can also be challenging. You have to master a lot of aspects of both the original Xbox (hardware, compiler, and operating system) and the Xbox 360.
Quote:
Luckily, backwards compatibility doesn't need to emulate things exactly right. One of the biggest problems in emulation are exceptions. Exceptions are interrupts that occur when something unexpected happens. For instance, dividing by zero, accessing memory you're not supposed to, etc. all raise exceptions. There are very few exceptions that video games care about. Many times, they will completely ignore them. When an exception occurs, many games simply crash or exit. Backwards compatibility on Xbox 360 exploits this common behavior - as well as other common patterns.
Quote:
BC performance work differs from typical software performance work in only two ways. First of all, emulators do some highly specialized things -- like interrupt handling and very low-level memory management -- that most software programs (other than operating systems) never do. Secondly, it’s not usually the performance of the emulator itself that matters, but rather the overall performance as perceived by the emulated Xbox game. Most of our work isn’t to improve the performance of the code we wrote, but rather to improve the performance of the emulated games. Overall, we approach performance in the same way that all software developers do: Measure, make a change, and measure some more.
PS : Also read Microsoft's backwards compatibility FAQ and Wikipedia's angle on this.

Last edited by patrickvl; May 22nd, 2008 at 11:06.. Reason: Added FAQ URL
patrickvl is offline   Reply With Quote

Advertisement [Remove Advertisement]
Old May 22nd, 2008, 23:51   #2
blueshogun96
Last Xbox Emu Author
 
blueshogun96's Avatar
 
Join Date: Jun 2004
Location: Seattle, WA, USA
Posts: 5,843
Okay, it looks like to me that you're posting this to help those who are actively programming on Xbox emulators. The link as well as the effort is appreciated, but we're well aware of such challenges

Xbox is a harder to emulate console than many might think for the reasons above and MANY more, but those issues are well known to us. Just remember that [almost] every emulator starts off as one thing: a peice of s@#%. It's what you do with that piece of s@#% defines whether it becomes worth the download. Like PCSX2 for instance, when it first started it could barely run the 3stars demo, now it runs Killzone, and IIRC even CKemu didn't think PCSX2 would run it anytime soon (or at least with decent speeds). So when you keep improving an emulator for the better, it becomes a "good" emulator.
__________________

Official Website of Shogun3D's RyuAwai!

Shogun3D Game Development Blog

Zengjük a Dalt: Manliest Song Ever!
blueshogun96 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +1. The time now is 16:36.

© 2006 - 2012 Emu Forums | About Emu Forums | Advertisers | Investors | Legal | A member of the Crowdgather Forum Community


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2013, vBulletin Solutions, Inc.