Dolphin, the GameCube and Wii emulator - Forums

Full Version: Resource intensity
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5
Maybe you should call me names like douche and ass because then Ill understand more. The best solution to someone elses ignorance is to come down on someone in a condescending fashion and make them feel bad for not understanding. Maybe if you are excessively rude and mean, they will understand better. Ok... So fine..... You are right. I am a complete and total idiot and dont have a sweet clue What I am talking about. So what ? Good for that. Its established. Im an idiot. Great. Now that I am an idiot, explain to this idiot what he fails miserably to understand (without calling them a douche/ass if you can). My last post was not intending to act like I know what I am talking about but rather expresses my inability to make sense. So lets make sense Big Grin

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.
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.
Quote: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.

I think the hardware does exist. I just think the emulator is not programmed to take full advantage of all the hardware we have. I am betting that if the emulator was rebuilt from the ground up for quad core support it could be done or even hex. Im not going to ask anyone to do it. I dont know how my self. I am just saying. I think it can be done. I'm not concerned about minor innaccuracies. Im sure there will be a few and thats fine. But I am saying I think our hardware can have 100% speeds.

Quote: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.

I can run all N64 and SNES games without any problems. Ok Star Wars Rogue Squadron... I know.... thats incompatible with the emulator, which is fine. Im not talking about that. I am saying all the games that load and run will run at full frame rate without speed loss.

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.

Quote: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".

The point that I was getting at was my inability to make sense of that and that its hard to believe its still impossible after 8 years. I probably understand 1/100th of what they do. But then again Im not a complete noob. I studied programming in school and I have learned to program. I coded in mIRC (Weak, I Know... Just saying) and a little bit of VB. I never learned C

I do know what != means.

Quote:As a general rule software is much less efficient than hardware

Software is as efficient as the hardware makes it. The software will run at whatever speed the CPU architecture and the other components can run it. If the software is fast but the CPU is a piece of crap. The software will run slow. Thats why the bigger the 2 cores you have on a CPU the faster dolphin will run. Yes I know the software needs to be coded efficiently. For example: do 4 x 12 instead of 4 + 4 + 4..... I know. I think that can be done

One more thing... The main point. I am not asking the Dev team to make all the games run error free. I am just saying I think the hardware exists to run it at 100% speed and that. The reason I said that maybe that requires rebuilding the emulator from the ground up is because I know the project was started in 2003 when there was no dual core or quad. So it was built around that. I know supporting quad core or even hex PROPERLY would require changing so much stuff that they would be further ahead to rebuild it from the ground up. I think its possible. Its kind of what AMD is doing with BD. Its their first rebuild since 2003 because things have changed a lot since. I am sure the BDs will be a lot more efficient. When it comes to hardware, I am not completely ignorant. I probably know less than half as you and the dev team but I am not completely and totally ignorant. I think it can be done. Im not going to try because I dont have a sweet clue how. I just think its doable
You're overvaluing the potential of making use of more than 3 cores in a Wii emulator.
Will ignoring Cheer increase my satisfaction?
yes
problem solved

relevance to the problem?
none
problem solved
Do you realize it's still somewhat rare for a game to take full advantage of that many cores now, built FOR the pc? Do you understand that by virtue of having exact hardware, consoles get better performance than if you gave a computer similar specs and told it to run pc games(with windows+bloat in the background)? Do you intend to pay the developers full time salaries for scrapping the entire development of this program to start on something brand new taking really only the experience and knowledge they've gained?

"Oh 100% speed should be possible", why? Cause you say so? Because the numbers are higher on hardware today than it was back then? Overclock or buy a better pc. Or better yet, play it on a wii, instead of whining about your mythical 8ghz processor and quadcore support. Problem solved, 4 player support and 100% speed and compatibility.
Man, take note of a couple of things:

1- a quad core 2.0Ghz is not like a dual core 8Ghz which isn't like a single core 16GHz (hypothetical). And I'm not talking about performance, these are different processing cores, you can't just play around with them like if it was one. Google for Multithreading, maybe you'll understand better. There is no need for recoding the emulator from zero, they would have to rewrite the entire JIT (Just in Time Recompiler, google for that too), which is the most important part of the emulator (the one that emulates the original hardware functions, like the CPU operational codes) for emulating it with four cores, which would be an extremely difficult task, because the cores would need tight synchronization, because you would be forcing them to work together, doing the same thing half part to each other. This is not natural. Normally multithreading gives different tasks to each core, or at least different things to do in order to complete a major task. That's why even PC games rarely have quad core support like vortextk stated, because it raises too much complications. Dual Core support is only possible because it's easy to pick to different parts of the emulation and split into two. And Dolphin can also use a third core for sound, which doesn't help that much, but is good for LLE (Low Level Emulation) Audio, which is more hardware intensive in exchange for accuracy. But my point is, do you see how is it done? it can move sound emulation to a third core, but it can't emulate sound in two cores at the same time.

2-Because of that, It is not as efficient as many people would think, at least for Dolphin, due to the structure of the GC and wii hardware. As I said before, there was one dev writing a quad core Jit, but he gave up, because the speed ups he was getting were minimal.

Quote:Software is as efficient as the hardware makes it. The software will run at whatever speed the CPU architecture and the other components can run it. If the software is fast but the CPU is a piece of crap. The software will run slow. Thats why the bigger the 2 cores you have on a CPU the faster dolphin will run. Yes I know the software needs to be coded efficiently. For example: do 4 x 12 instead of 4 + 4 + 4..... I know. I think that can be done

* Your first sentence isn't correct.

Read again the part you are responding to from NV's post. He said you wanted to emulate the chip that does the multiplication on one that could do only addition.
Which is what we are doing here. Our actual hardware can't execute the original hardware functions, because they are different, the CPUs have different opcodes, structure, clocks, the Operational system is different, everything. We are having to build an entire virtual piece of hardware here, which is ineficient and can't be done in any way we want. Our Hardware limits us, and the thing we want to do with it limits us. As I said earlier, the quad core thing applies to this matter. Due to the way our actual hardware is (being split into different cores) and the way the original hardware was, this can't be done/wouldn't help if it was.
(08-22-2011, 11:57 AM)Cheer Wrote: [ -> ]So... I was playing Mario Kart Double Dash. I got 4 player going. when playing 4 player double dash. The speed was a paltry 46%.

My Specs:

Phenom II 955 Quad 3.2 GHz
4GB DDR3-1600
Radeon HD 6970.

Running D3D11

My CPU was at 51-52% and the speed was 46% which tells me I would have to OC my CPU to 7 GHz, because 3.2 is 46% of 7, not far from the 8.2 GHz world records. So what kind of cooling system would I need to OC to 7GHz. Ill push my BD to 5.2 when it comes out, but thats not for another 7 months, if that will even bring my speed to 100%. Any ideas coughquadcoresupportcough...... ehem!! Sorry... soar throat there. Just wanna ask the experts if they know how I can get to 100%... Any ideas?

You should overclock and learn how to use this emulator.

[Image: unleduim.png]
121% speed !
Whoa, his claim for quad core provoked so much arguing nobody cared to ask his settings. Meh.
There are configuration guides anyways.
Also, it seamed about right, but looks like Double Dash is lighter than I thought....

You know, this makes me mad, now he wont learn a thing with all this ):<
Whatever, I'm out. At least this thread still provides us some good quotes for future noobs...
And what are your specs?
Pages: 1 2 3 4 5