• Login
  • Register
  • Dolphin Forums
  • Home
  • FAQ
  • Download
  • Wiki
  • Code


Dolphin, the GameCube and Wii emulator - Forums › Dolphin Emulator Discussion and Support › Hardware v
« Previous 1 ... 159 160 161 162 163 ... 189 Next »

A CPU for any game with LLE sound@ 60fps? Exists or wait.
View New Posts | View Today's Posts

Pages (4): « Previous 1 2 3 4 Next »
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thread Modes
A CPU for any game with LLE sound@ 60fps? Exists or wait.
09-14-2012, 12:33 PM
#11
Axxer Offline
Why would I help you?
*******
Posts: 1,078
Threads: 28
Joined: May 2012
I started writing something like your comment on recompiling/interpreting NV, but I realized that was a bit complicated to try to explain on this forum... You did it very nicely though, so props.

"Dolphin's own program" == Dolphin's functions execute the command functionality rather than Dolphin just sending machine code to the CPU to deal with.

I also assumed he wouldn't be debugging any games anytime soon.
Desktop:
OS: Windows 7 64 bit
CPU: Intel Core i5 3570K @ 4.4 GHz
GPU: EVGA NVIDIA GeForce GTX 550 Ti (Factory OC'ed)
RAM: 16 GB @ 1600 MHz
Dolphin Revision:3.0, 3.0-784, 3.5, latest 3.5
Find
Reply
09-14-2012, 01:05 PM (This post was last modified: 09-14-2012, 01:06 PM by NaturalViolence.)
#12
NaturalViolence Offline
It's not that I hate people, I just hate stupid people
*******
Posts: 9,013
Threads: 24
Joined: Oct 2009
Quote:"Dolphin's own program" == Dolphin's functions execute the command functionality rather than Dolphin just sending machine code to the CPU to deal with.

"Rather than Dolphin just sending machine code to the CPU to deal with" But that's what functions do. Those functions are compiled into x86 code (when you compile dolphin) which is executed by the cpu when the game tries to execute a particular instruction. With either method you end up with a bunch of x86 code being executed to produce the same behavior that the source instructions would produce on the emulated hardware. The main reason that JIT recompilation produces better performance is because it can apply all kinds of crazy low level optimizations to the code that aren't possible with an interpreter.
"Normally if given a choice between doing something and nothing, I’d choose to do nothing. But I would do something if it helps someone else do nothing. I’d work all night if it meant nothing got done."  
-Ron Swanson

"I shall be a good politician, even if it kills me. Or if it kills anyone else for that matter. "
-Mark Antony
Website Find
Reply
09-14-2012, 01:44 PM
#13
ncknck Offline
Junior Member
**
Posts: 10
Threads: 1
Joined: Sep 2012
@NaturalViolence
Regardless of the complexity of emulation, the game itself must be processed too, unless you are saying that emulating Tetris will produce the same framerates as emulating BF3 level software. In this case yes, i would be interested to hear the reasoning for that statement.

Quote:I would expect a sandy bridge cpu at 4.8GHz to deliver somewhere between 40-50% better performance.
Sounds about right, i agree. Ive seen benchmarks comparing 4.2GHz bloomfields and 4.8GHz Sb and they were about 40% apart. Am i surprised? Not really, there is alot of optimizing to be done(or done wrong), just see the Athlon XP vs P4.

Quote:JIT Recompilers process instructions in blocks separated by jump or call/returnp instructions.
Yes, a useful help in interpreting. Pure interpreters are lost in loops.
Find
Reply
09-14-2012, 01:45 PM (This post was last modified: 09-14-2012, 01:58 PM by Axxer.)
#14
Axxer Offline
Why would I help you?
*******
Posts: 1,078
Threads: 28
Joined: May 2012
(09-14-2012, 01:05 PM)NaturalViolence Wrote:
Quote:"Dolphin's own program" == Dolphin's functions execute the command functionality rather than Dolphin just sending machine code to the CPU to deal with.

"Rather than Dolphin just sending machine code to the CPU to deal with" But that's what functions do. Those functions are compiled into x86 code (when you compile dolphin) which is executed by the cpu when the game tries to execute a particular instruction. With either method you end up with a bunch of x86 code being executed to produce the same behavior that the source instructions would produce on the emulated hardware. The main reason that JIT recompilation produces better performance is because it can apply all kinds of crazy low level optimizations to the code that aren't possible with an interpreter.

Interesting. I thought the problem had to do with the way in which the interpreter had to figure out what the Wii code meant. Crazy low level optimizations in this case had a much larger effect than I would expect.

Most of my low-level computing info comes from my dad (because my school doesn't teach that and I don't have the time to teach myself online), but he doesn't know everything, and he's pretty old and has forgotten some things. He does remember all of the old ways of programming though (pre-assembly language even Tongue). His stories of the progress of computing are always interesting and telling of the insane pace of the tech industry over its lifetime.

We should probably stop hijacking this thread around now though.

@ OP in conclusion: a Core i5 3570K @ 4.2 GHz should be able to run any game at full speed in almost all situations with only occasional hiccups (not like a scene is slower but as in a short time interval). That would include using LLE for all of the games that need it and EFB -> RAM for all the games that need that. I have no idea how The Last Story would run with LLE AND EFB -> RAM though. That could require a much more powerful CPU. LLE isn't needed for The Last Story though as HLE works fine in that game.
(09-14-2012, 01:44 PM)ncknck Wrote: @NaturalViolence
Regardless of the complexity of emulation, the game itself must be processed too, unless you are saying that emulating Tetris will produce the same framerates as emulating BF3 level software. In this case yes, i would be interested to hear the reasoning for that statement.

Quote:I would expect a sandy bridge cpu at 4.8GHz to deliver somewhere between 40-50% better performance.
Sounds about right, i agree. Ive seen benchmarks comparing 4.2GHz bloomfields and 4.8GHz Sb and they were about 40% apart. Am i surprised? Not really, there is alot of optimizing to be done(or done wrong), just see the Athlon XP vs P4.

Quote:JIT Recompilers process instructions in blocks separated by jump or call/returnp instructions.
Yes, a useful help in interpreting. Pure interpreters are lost in loops.

I stopped understanding the point you were trying to make with this comment. It sounds like you know more than I do and about as much as NV does, but yet everything I ever heard, and, as far as I can tell, everything NV knows, says that you are confused. I suppose to a certain extent you could try to call a recompiler an interpreter, but that is a pointless way of looking at things because it honestly has virtually no comparison. The only similar thing is that both programs run the code. The translation process of interpreter is something like:

Wii machine code -> Dolphin C++ code -> x86 machine code

The recompiler process is this:

Wii machine code -> x86 machine code that is epically optimized

The missing step in the middle is basically the difference in the definition in this situation. Of course, the interpreter in Dolphin is not the same as the interpreter you would find with a higher level language, like JavaScript, but is more similar to Java's interpreter. Dolphin's translates machine code into language code into machine code, while java does bytecode to machine code at runtime and JavaScript does language code to machine code at runtime.
Desktop:
OS: Windows 7 64 bit
CPU: Intel Core i5 3570K @ 4.4 GHz
GPU: EVGA NVIDIA GeForce GTX 550 Ti (Factory OC'ed)
RAM: 16 GB @ 1600 MHz
Dolphin Revision:3.0, 3.0-784, 3.5, latest 3.5
Find
Reply
09-14-2012, 02:02 PM (This post was last modified: 09-14-2012, 02:15 PM by ncknck.)
#15
ncknck Offline
Junior Member
**
Posts: 10
Threads: 1
Joined: Sep 2012
Crazy low level optimizations can optimize away a working code the compiler thinks is "pointless" just as well, so its a double sided sword. This thread is not going anywhere anyway. Im not optimistic enough to expect some magic helping the i7 960 with performance. Unless its called liquid nitrogen. And it seems the fastest CPU currently available barely can do it, means realistically it will start dropping frames at every occasion, while producing lots of noise. Im not a fan of noise either.

Edit: jit/recompiler/interpreter/compiler is semantics not sure how it matters. The thing i am against though is calling the interpreter mode the desirable mode for playing, like the guy above us claimed. Its complete overkill.
Find
Reply
09-14-2012, 02:12 PM
#16
Axxer Offline
Why would I help you?
*******
Posts: 1,078
Threads: 28
Joined: May 2012
Quote:Crazy low level optimizations can optimize away a working code the compiler thinks is "pointless" just as well, so its a double sided sword.

I'm guessing English isn't your first language? I couldn't find where to separate the run on sentence so I could understand what you were saying.

Quote:This thread is not going anywhere anyway. Im not optimistic enough to expect some magic helping the i7 960 with performance.

We told you that in the first place. Your CPU can't do it.

Quote:And it seems the fastest CPU currently available barely can do it, means realistically it will start dropping frames at every occasion, while producing lots of noise. Im not a fan of noise either.

I've tried explaining this to you multiple times. I will try one last time.

The fastest consumer CPU's on the marked, 3570K and 3770K, can run any game full speed without bugs (at least without bugs that have solutions right now). LLE is not necessary in all games because HLE sounds exactly the same as LLE. The Last Story, the most demanding game out there, has no need for LLE and will not give you any "noise" with HLE.

My CPU doesn't just "barely" play games full speed; it goes quite a bit over it. CPU's with better coolers can use even higher frequencies, and thus can run it even better.

If you want to run games full speed, The 3570K will do the job. It doesn't slow down for me ever. Every once in a long while there is a stutter for less than a second when loading/ending an area. Other than that it is flawless.
Desktop:
OS: Windows 7 64 bit
CPU: Intel Core i5 3570K @ 4.4 GHz
GPU: EVGA NVIDIA GeForce GTX 550 Ti (Factory OC'ed)
RAM: 16 GB @ 1600 MHz
Dolphin Revision:3.0, 3.0-784, 3.5, latest 3.5
Find
Reply
09-14-2012, 02:22 PM
#17
ncknck Offline
Junior Member
**
Posts: 10
Threads: 1
Joined: Sep 2012
It seems you are offended, why? I wasnt asking for performance help.

Quote:HLE sounds exactly the same as LLE
heh.
Find
Reply
09-14-2012, 02:24 PM (This post was last modified: 09-14-2012, 02:28 PM by NaturalViolence.)
#18
NaturalViolence Offline
It's not that I hate people, I just hate stupid people
*******
Posts: 9,013
Threads: 24
Joined: Oct 2009
ncknck Wrote:@NaturalViolence
Regardless of the complexity of emulation, the game itself must be processed too, unless you are saying that emulating Tetris will produce the same framerates as emulating BF3 level software. In this case yes, i would be interested to hear the reasoning for that statement.

That's a poor example and you know it. You're talking about two applications that are billions of times apart in terms of processing power requirements on their native hardware, so you're right with that example. But depending on the hardware you're emulating and how you're emulating it (especially what level of accuracy you're trying to achieve) it is possible to emulate software thousands of times faster or slower. There are a number of factors that effect emulation performance but one of the big ones is HOW the software is using the hardware. A piece of software that does trickly things that are difficult to emulate may run much slower than another game even if it requires a small fraction of the processing power. I have found that on these forums many people wrongly assume that better looking graphics = harder to emulate. There are games that run slower than The Last Story because they produce bizarre behavior that requires an interpreter and/or MMU emulation to properly emulate.

Axxer Wrote:pre-assembly language even

I doubt that. He would have to be insanely old to have worked on anything in the pre-assembly era. Assemblers have been around since the 1950s.

Axxer Wrote:I suppose to a certain extent you could try to call a recompiler an interpreter

No you can't. They're two completely different things. What dolphin uses is essentially a dynamic (just in time) compiler. And some people do consider it to be something of a halfway point between a static (ahead of time) compiler and an interpreter. But they are in fact treated as three very different types of programs in computer science. You cannot go around saying that your dynarec is an interpreter because that's just plain wrong.

ncknck Wrote:Crazy low level optimizations can optimize away a working code the compiler thinks is "pointless" just as well, so its a double sided sword.

But there are no optimizations for x86 in place because the source code isn't x86 so you're unlikely to run into that problem. While that does happen it's very rare and the benefits of those low level optimizations outweigh this over a hundred to 1.

ncknck Wrote:This thread is not going anywhere anyway. Im not optimistic enough to expect some magic helping the i7 960 with performance. Unless its called liquid nitrogen. And it seems the fastest CPU currently available barely can do it, means realistically it will start dropping frames at every occasion, while producing lots of noise. Im not a fan of noise either.

Is your performance really so bad that you think a 50% increase wouldn't be enough?

Axxer Wrote:I'm guessing English isn't your first language? I couldn't find where to separate the run on sentence so I could understand what you were saying.

His English is fine. You're not helping the situation by antagonizing him.

Axxer Wrote:I stopped understanding the point you were trying to make with this comment. It sounds like you know more than I do and about as much as NV does, but yet everything I ever heard, and, as far as I can tell, everything NV knows, says that you are confused. I suppose to a certain extent you could try to call a recompiler an interpreter, but that is a pointless way of looking at things because it honestly has virtually no comparison. The only similar thing is that both programs run the code. The translation process of interpreter is something like:

He made some points that I disagree with but he clearly has some clue what he's talking about since his comment about loops destroying performance in interpreters is spot on.

Edit: Spelling.
"Normally if given a choice between doing something and nothing, I’d choose to do nothing. But I would do something if it helps someone else do nothing. I’d work all night if it meant nothing got done."  
-Ron Swanson

"I shall be a good politician, even if it kills me. Or if it kills anyone else for that matter. "
-Mark Antony
Website Find
Reply
09-14-2012, 02:26 PM
#19
Axxer Offline
Why would I help you?
*******
Posts: 1,078
Threads: 28
Joined: May 2012
I am not offended. I am simply tired and want to finish helping you so I may go to sleep. If I sounded offended, I am sorry, I did not mean it.

Have you found a difference between HLE and LLE in The Last Story? If so if you could update the wiki that would be very useful.

HLE is usually pretty bad in my experience, but there are a lot of games that don't have any noticeable audio problems with HLE. The Last Story, from what I have heard is one of them.
Desktop:
OS: Windows 7 64 bit
CPU: Intel Core i5 3570K @ 4.4 GHz
GPU: EVGA NVIDIA GeForce GTX 550 Ti (Factory OC'ed)
RAM: 16 GB @ 1600 MHz
Dolphin Revision:3.0, 3.0-784, 3.5, latest 3.5
Find
Reply
09-15-2012, 09:00 AM
#20
AnyOldName3 Offline
First Random post over 9000
*******
Posts: 3,533
Threads: 1
Joined: Feb 2012
Right, sorry, but some stuff here goes against what I'd been told by reliable sources, yet hasn't been flamed by NaturalViolence. I'd been told that:

Interpreter just used equivalent x86 instructions to the power PC instructions, with no optimisations, so was slow.

JIT translated each block from PPC to C++ (or similar), then recompiled it for x86 with optimisations.

JITIL translated each block from PPC to C++ (or similar), then to another language which was easier to optimise, then compiled it as x86 with optimisations. The extra optimisations have a chance of countering wasted time translating twice, but usually only noticeably on a 32bit OS.

Static Recompilation was effectively the exact source code but compiled and optimised for x86, like porting the game to PC, instead of emulating it. This is fastest, but needs a guy to rewrite the whole game before it can be played.

Please correct any and everything wrong with this.
OS: Windows 10 64 bit Professional
CPU: AMD Ryzen 5900X
RAM: 16GB
GPU: Radeon Vega 56
Find
Reply
« Next Oldest | Next Newest »
Pages (4): « Previous 1 2 3 4 Next »


  • View a Printable Version
  • Subscribe to this thread
Forum Jump:


Users browsing this thread: 1 Guest(s)



Powered By MyBB | Theme by Fragma

Linear Mode
Threaded Mode