Quote:I dont believe for a microsecond that there is absolutely unequivically no way to run all the games at full speed.
Nobody said that, I have no idea where you got that idea from. What we are stating is that no hardware exists RIGHT NOW that can run ALL GAMES at fullspeed ALL THE TIME without SACRIFICING SOME ACCURACY.
Believe it or not this is still true for all N64 and SNES emulators to some degree. I will elaborate later on this if I have time.
Quote:I remember when Project 64 couldnt run on my 1500 dollar gaming rig. Now it can because CPUs and video cards evolved
Yup. But we have not reached that point yet with dolphin. Hardware still needs a few more years to play catch up.
Quote:Dolphin was started in 2003. We couldnt do it then. Fine. Its 8 years later. We are in 2011. We have 4, 6 and 8 cores, OC, 8GB+ ram etc. Theres no excuse for this.
Ok I was going to defend you up until this point. This statement is not just ignorant, it's downright offensive to all of the developers. "No excuse"? Are you paying them to do this? Are you their boss? Do you understand this stuff better than they do? Please think before you type next time, or just say your post out loud before you hit "post reply".
Quote:Maybe the emulator needs to be rebuilt from the ground up.
Then you do it. Because you're acting like you know more about this stuff than the developers despite the fact that I had to explain what emulation is to you. I have no problem with ignorance (not knowing something), but I do have a problem with your attitude, it is unacceptable behavior for any civilized discussion. I love teaching people new things but it doesn't sound like you're asking a question here, it sounds like you are yelling at the developers for not making better software when you clearly don't even understand the software in the first place. If you did understand what was wrong and how to fix it you would be able to look at the code and fix it yourself since it's an open source project (anyone can contribute so long as the existing developers support their changes). But since you're clearly not a programmer you can't improve it and you'll just have to trust that they know wtf they're doing and they're not idiots. The rest of us accept this as they (the developers) have consistently proven it to us over and over again by doing amazing things.
I mean just look at this code! It's f*cking beautiful:
http://code.google.com/p/dolphin-emu/sou...isters.cpp
Quote:Gamecube:
486 MHz CPU
43MB RAM
162 MHz GPU
My PC:
3.2 GHz Quad
4GB RAM
880 MHz GPU
EXPLAIN?!!?!??!?!?!! Im confused. see. Heres idiot me super ultimate mega ridiculous confused. If we need to go to an IRC or something like that to chat and figure this out thats fine. But so long as I am an idiot/douche/ass, I will be searching to make sense.
Software != hardware. That's why.
In case you don't know: != means not equal to.
I would assume that like most people living in a 1st world country you know what multiplication is and how it works. Now imagine I build a simple set of circuits (a computer chip) that performs a multiplication operation. Now lets say I want to emulate this behavior on a different chip, one that can only do addition. What I have to do is write SOFTWARE that runs an addition loop. Take for example:
4 x 12 =
This is the equivalent of 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 =
So we could write an addition loop to do the same thing. The problem is it would likely take much longer to evaluate that software than to simple use hardware designed for it. It's 1 operation on the hardware it was designed for and 12 operations using software that emulates that function.
Now apply this same concept to big complex functions instead of simple arithmetic (I just needed an example simple enough for you to understand quickly and easily, obviously both the PPC cpu in the GC/Wii and the x86 cpu in your pc have multiplication operators supported). Every function that the hardware we are trying to emulate can do we need to write software for. As a general rule software is much less efficient than hardware. It may take thousands of times as much processing power to emulate something than to run it on native hardware since you have to write software (an emulator) to mimic every single thing it does. This depends heavily on how much accuracy you are willing to sacrifice. As a general rule of thumb less accurate emulation is usually faster. "Hacks" are a tradeoff of accuracy for performance. However if you make too much "hackish code" to boost performance you risk creating serious bugs/problems. Some hardware is phenomenally more difficult to emulate in real time with limited processing power not because it is more complex but because how it works at low level is so very different from the hardware that you are running the emulator on. The hardware may be able to do things that either cannot be done very efficiently through software or in some cases cannot be done at all in software (yes, this does exist).
Also without the source code for these games that we are trying to run most emulation has to be done at a very low level in order to achieve any decent amount of accuracy with such a large variety of software (games) to run. The fact that the founders of this project managed to make an emulator that could actually run some games with decent accuracy without any good documentation about the hardware they were trying to emulate is nothing short of miraculous. Had they had good documentation from the developers of the hardware or the source code of the games the process would have been a lot easier/faster for them. Instead they had to play the long slow game of making educated guesses about how something works whenever necessary and then seeing if any bugs arose (bugs are a tell tale sign that what you tried was wrong).
Remember that your games are being run through dolphin. Dolphin is software that emulates the behavior of the GC/Wii hardware. So there are two ways to think of this. You are running the games with software (the emulator) instead of with hardware (the gc/wii) or you can think of it as we are running it on a different set of hardware (your PC) that the software (games) was not designed for and therefore we need some intermediate (in the middle) software (dolphin) to translate for us. Both interpretations are acceptable as far as I am concerned, whichever is easier for you to understand.
Also you seem to be under the impression that clock rate and memory capacity are the dominant factors in throughput (how many operations can be performed per second). They are not, in fact with most systems they are the least important specifications. The efficiency of the chip architectures and the software running on it matter more.
I'm not really done with this explanation but I'm tired so I'm going to sleep, if you need further explanation I'll work on this some more tomorrow. It's going to be a lot of work because no offense but you clearly don't understand the first thing about electronics or programming. I still think my previous post offered a very good summation though:
Quote:It's an emulator, it successfully mimics the behavior of a complex machine through software alone, this is a very inefficient process. If there is only one way to do something but it happens to be very slow/inefficient you do it anyways because you have no choice.