xboxscene.org forums

Pages: 1 ... 3 4 [5] 6 7

Author Topic: The Final Word On Xbox Emulation  (Read 932 times)

CyRUS64

  • Archived User
  • Jr. Member
  • *
  • Posts: 69
The Final Word On Xbox Emulation
« Reply #60 on: May 26, 2003, 10:47:00 AM »

smile.gif (and thats with interpreter and not dynarec - and the demo ran at ~6-7 fps on my p3-850!)
Logged

AlphaWolf

  • Archived User
  • Newbie
  • *
  • Posts: 40
The Final Word On Xbox Emulation
« Reply #61 on: May 26, 2003, 01:39:00 PM »

QUOTE (CyRUS64 @ May 26 2003, 12:47 PM)
The fact is that out of Dreamcast, Playstation 2, X-Box, and Gamecube, NONE can be emulated on any of the others full-speed.
The X-Box has a chance at emulating the dc slowly, but the ram limitations of the x-box even make that very difficult.

Hmm...I don't know much about DC, but what if you HLE'd the entire thing?
Logged

CyRUS64

  • Archived User
  • Jr. Member
  • *
  • Posts: 69
The Final Word On Xbox Emulation
« Reply #62 on: May 26, 2003, 02:15:00 PM »

QUOTE
Hmm...I don't know much about DC, but what if you HLE'd the entire thing?


What do you want to hle? smile.gif
The graphics display lists are already hle'd, since lowlevel emulating the pvr chip would be both damn hard and damn slow. Other than that the seperate chips on the dreamcast are 'hle'd' too such as maple bus (for controllers), gdrom controller, rom board controller, sh4 modules, system asic etc and even the arm has a IcFakeARM mode.
But even so the SH4 does most of the work, and even with a v.good dynarec it takes a lot of processor power to emulate. All you can do with the code running on that is manually add 'hle functions' for the various library functions, but that takes a lot of time and won't help speed that drastically relative to dynarec.
The reason N64 is so hle'able is because it has co-processors, the rdp and rsp, that do a lot of work, and all emus merely high-level emulate them for the speed benefits - the R4300 still has to be essentially emulated though, but then its a much lesser processor than a sh4. The rdp can be hle'd since there are very few different microprograms that are loaded onto them since Nintendo didn't give out the docs to most companies. Technically the same could be feasible for the PS2 - the vector co-processors and IOP (ps1 chip) could be fully hle'd and only the central processor need be emulated but the problem is that all companies design their own programs to run on the vector copros so there'd be far too many different microprogs to reverse and emulate, but I guess they may end up doing this for certain games.
Gamecube and x-box also will have limited hle since the central processor does nearly all of the work, and the gpu can only really be hle'd. (However of course x-box uses such a mappable api that the cxbx project could easily produce an 'emulator' that should run faster than ps2, gc, or dc emus - all the api functions would be intercepted so the emulation of the central cpu doesn't really do that much work - you could try this for the dc api too, say, but then it'd take ages and be very non-compatible since katana, at least, is just not really easily mappable)

-CyRUS
Logged

Mage

  • Archived User
  • Sr. Member
  • *
  • Posts: 482
The Final Word On Xbox Emulation
« Reply #63 on: May 26, 2003, 03:12:00 PM »

Uh to HLE the vector units on the ps2 is silly.
A game can be using the vector units for graphics one moment, and the next for just straight math.
Or vu0 is acting as a co-processor while vu1 is doing graphics.
So it'd have to be game specific.
Logged

Hodr

  • Archived User
  • Newbie
  • *
  • Posts: 28
The Final Word On Xbox Emulation
« Reply #64 on: May 26, 2003, 03:58:00 PM »

I didn't claim to have a greater knowledge than Cyrus64- I have seen his dreamcast page and am sure he knows much more in depth information about the specific methods currently in use.

And I didn't say the graphics ruitines could be directly mapped.  I claimed they could be replaced by roughly equivalent functions (i.e. if one system does gouraud shading and the other does flat shading, you make do with what you have).  This obviously doesn't give a 100% emulation, but could in theory produce something usable.

But as I stated every time so far, I don't believe its likely to be done (and as Cyrus pointed out, attempts thus far for other systems have been failures).

And as far as the vertex shaders go, I can't really argue because your assumption that I don't know the specific hardware is correct.

I have decided, as sort of a proof of concept to see if I can find a suitable system to emulate on the Franklin eBookman (Which I am familiar with) which utilizes the SNK32 processor (http://download.fran...snk32_main.html).  Yes, I know it won't prove anything about the specific setup we have been discussing (the big difference being the specialized graphic hardware) etc. but it might at least prove that the theory is valid.
Logged

Hodr

  • Archived User
  • Newbie
  • *
  • Posts: 28
The Final Word On Xbox Emulation
« Reply #65 on: May 26, 2003, 04:07:00 PM »

Ohh, and before mage jumps all over me about the specific PS2 via Xbox argument, I was following someone elses premise of the two systems being roughly equal in power, which at least to me meant that the combined ability of those vector units etc. would not be greater than that of the xbox cpu / gpu.  And, its cool that you know about the differences in the general purpose registers and that the ps2 has three instruction set architectures, but if you actually read any of my posts you would have remembered that I never claimed it could "emulate" any of those instruction sets, my whole premise was that "pre-compiling" for the xbox would eliminate the need to do so.

Logged

Mage

  • Archived User
  • Sr. Member
  • *
  • Posts: 482
The Final Word On Xbox Emulation
« Reply #66 on: May 26, 2003, 04:27:00 PM »

QUOTE (Hodr @ May 26 2003, 05:07 PM)
but if you actually read any of my posts you would have remembered that I never claimed it could "emulate" any of those instruction sets, my whole premise was that "pre-compiling" for the xbox would eliminate the need to do so.

Even if you were to use said "pre-compiling", the xbox won't have enough Mhz to execute all the units at the same time, at near proper speeds.  Many cycles are going to be wasted on the fact that the Intel processor doesn't have enough registers, or the fact that they're too small.

On top of that, writing such a pre-compiler is going to be quite a feat anyways.  Dealing with code branches that can only be determined at run-time are going to cause major problems.

But sure anything can be done in theory, but theory is just that theory.  In theory a person can write an autonomous piece of software that can design other software, however the reality of that happening anytime soon is nil.  If it isn't useful in reality, then what's the point?

In the end I'd call it an empty pipedream.
Logged

Hodr

  • Archived User
  • Newbie
  • *
  • Posts: 28
The Final Word On Xbox Emulation
« Reply #67 on: May 26, 2003, 10:37:00 PM »

Yes, the problems with parallel execution and differences in register type / quantity could be insurmountable (I actually stated in my original post that differences in registers would be a major pitfall.  I mentioned size but quantity is as big / bigger problem).

On those grounds I would have to agree with you that a full speed emulation would be next to impossible.  

The branching I dont see being as much of a problem.  I would imaging no matter how or where it branches, its going to go to another piece of code that has been translated (but it could not exactly be automadic as the new ruitine may start befor or after where the previous location was).  Barring self modifying code, which your not likely to see on an optical medium, this would be a small problem in comparison to the other problems that would already have to be overcome to get this far.

In any case, its all moot considering no one is likely to go so far as to write a disassembler comprehensive enough to support what I suggested anyways.
Logged

CyRUS64

  • Archived User
  • Jr. Member
  • *
  • Posts: 69
The Final Word On Xbox Emulation
« Reply #68 on: May 27, 2003, 04:42:00 AM »

smile.gif
You just couldn't precompile these binaries.
Logged

AlphaWolf

  • Archived User
  • Newbie
  • *
  • Posts: 40
The Final Word On Xbox Emulation
« Reply #69 on: May 27, 2003, 09:07:00 AM »

QUOTE (Hodr @ May 27 2003, 12:37 AM)
Barring self modifying code, which your not likely to see on an optical medium

What would an optical medium have to do with anything?
Logged

deusprogrammer

  • Archived User
  • Full Member
  • *
  • Posts: 111
The Final Word On Xbox Emulation
« Reply #70 on: May 27, 2003, 12:52:00 PM »

I think what it all boils down to is this...all these n00bs out there just want too much for free.  They want to buy a system that they can play everything on.  I even think the Playstation Emulator is going a bit far.  When it comes down to it emulation should be used for ancient systems we can no longer buy or find games for.  And MAME emulation is good because we will never find all these arcade games at any arcade, and most of us certainly couldn't afford to have or even house all of these monstrousities.  So for anything pre-Playstation I can understand, beyond this...most of us above the age of 16 have jobs and the resources to actually go out and buy these systems.  The only people who whine and bitch about not having a PS2 are children.  For those who are truly n00bs, either go buy the systems you want, or beg your parents for them.  But understand you will never be given anything free in life.
Logged

xionanx

  • Archived User
  • Full Member
  • *
  • Posts: 111
The Final Word On Xbox Emulation
« Reply #71 on: May 28, 2003, 12:31:00 AM »

QUOTE
In theory a person can write an autonomous piece of software that can design other software, however the reality of that happening anytime soon is nil. If it isn't useful in reality, then what's the point?


Not to piss in your cornflakes, but last months Scientific American had a little blurb about a new device that was recently invented that has the ablility to autonomously invent anything else.  Just enter what you want, hit the go button, and give it some time and it will spit out something that fits your needs.  There go all those invention grants laugh.gif

Anyway, there are already PS2 games being run near perfect on the XBOX.  MGS2 is an example, however it does have some slighte slow down compared to its PS2 counterpart, which I never noticed any slowdown playing.  The idea of completely decompiling a game then recompiling it to run on the XBOX has merit.  Most of us have upgraded our HD's, so I personally can imagine a program that could be run once to completelely copy a PS2 game to the XBOX HD, decompile it, then recompile it to run on the XBOX.  It would take hours/days for the initial run to de/recompile, and then will most likely still require some emulated assistance to run PS2 code that doesn't direclty translate, but it is feasible.

Technically that wouldn't be a true "emulator" though.  Plus i'm sure it would require extensive knowledge of both systems.  Or am I just crazy?
Logged

AlphaWolf

  • Archived User
  • Newbie
  • *
  • Posts: 40
The Final Word On Xbox Emulation
« Reply #72 on: May 28, 2003, 09:10:00 AM »

QUOTE (xionanx @ May 28 2003, 02:31 AM)
Technically that wouldn't be a true "emulator" though.  Plus i'm sure it would require extensive knowledge of both systems.  Or am I just crazy?

Heres the simplest way that this could be explained to you. Lets say that I wrote a program that just displays "hello world" in C. Now the way C is meant to be (read that, meant, not necessarily is), I can compile that program into machine language on the platform of my choosing. In doing this, it runs at faster speeds because its in the machines native language rather than having the machine translate tons of psuedocode on the fly. Now, lets say I compiled this hello world program for the powerpc platform, it would be then be basicaly rewritten into the powerpc assembly language, which is a lot more difficult to understand than C. Lets say that I wanted to now run this program on the x86 platform, all I have to do is take my source code, and recompile it for the X86 platform, that way I end up with a binary coded in x86 assembly language. Now lets say that I lost the source code for some reason, but I absolutely must run this program that I compiled for the powerpc platform on x86. I have two possible approaches, one approach would be to take the assembly code, and translate it to x86 by hand. The problem with this is assembly language is EXTREMELY difficult to work with, even with a simple hello world program, thats why most people write programs in a higher level language, and wouldn't dare think about translating a game to another machine language without the source code. Another way is that I could use an emulator to emulate the PPC platform, and we all know where that leads us.

Now source code is something highly coveted in the electronics industry, with a programs source code, you can do practicaly anything with it with very relative ease, including porting it from one platform to another without having to emulate it. The problem is that source code being as coveted as it is, you are probably never going to be able to get ahold of the code for "your favorite game here" within your lifetime.
Logged

Mage

  • Archived User
  • Sr. Member
  • *
  • Posts: 482
The Final Word On Xbox Emulation
« Reply #73 on: May 28, 2003, 11:15:00 AM »

QUOTE (xionanx @ May 28 2003, 01:31 AM)
QUOTE
In theory a person can write an autonomous piece of software that can design other software, however the reality of that happening anytime soon is nil. If it isn't useful in reality, then what's the point?


Not to piss in your cornflakes, but last months Scientific American had a little blurb about a new device that was recently invented that has the ablility to autonomously invent anything else.  Just enter what you want, hit the go button, and give it some time and it will spit out something that fits your needs.  There go all those invention grants laugh.gif

Anyway, there are already PS2 games being run near perfect on the XBOX.  MGS2 is an example, however it does have some slighte slow down compared to its PS2 counterpart, which I never noticed any slowdown playing.  The idea of completely decompiling a game then recompiling it to run on the XBOX has merit.  Most of us have upgraded our HD's, so I personally can imagine a program that could be run once to completelely copy a PS2 game to the XBOX HD, decompile it, then recompile it to run on the XBOX.  It would take hours/days for the initial run to de/recompile, and then will most likely still require some emulated assistance to run PS2 code that doesn't direclty translate, but it is feasible.

Technically that wouldn't be a true "emulator" though.  Plus i'm sure it would require extensive knowledge of both systems.  Or am I just crazy?

Maybe you should read the articles. wink.gif
Anyways whatever the article was, it isn't as you say.
Such an invention is a holy-grail of AI, and would be published everywhere.
I recieved nothing regarding it, and I deal with AI often.

Even if it is a basic Expert system on physical designs using a hybrid learning system, that still wouldn't be able to design programs.  So it isn't the same thing.

If decompiling and then recompiling a program to another system was so easy, everyone would have done that already.  I can tell you don't ever decompile programs or you wouldn't have said such an idea.
Before anyone chimes in about doing it with MIPS-I or 32-bit sparc ISA, we're talking about modern ISA, not easy to deal with ones.  There would be MANY issues that in the end make emulating easier.  To be able to convert, you need to know how to emulate, so why not just write an emulator instead?
Logged

deusprogrammer

  • Archived User
  • Full Member
  • *
  • Posts: 111
The Final Word On Xbox Emulation
« Reply #74 on: May 28, 2003, 05:06:00 PM »

Why doesn't anyone listen to me?  It's not a question of can we, it's a question of should we.  And the answer to both questions is no.  Some things were meant to be emulated, some aren't.  Systems who's consoles and games are still last generation and current generation just shouldn't be emulated.  Some people are just too greedy!  We should concentrate on making the emulators we have better, rather than trying to build something impossible, and yes, immoral.  I'm sure I will get flamed for using the word immoral in a place where we are already doing things of questionable legality.
Logged
Pages: 1 ... 3 4 [5] 6 7