Previous Thread
Next Thread
Print Thread
Page 3 of 4 1 2 3 4
Joined: Mar 2002
Posts: 119
D
Member
Member
D Offline
Joined: Mar 2002
Posts: 119
it is if its pointing to the next opcode implementation. so your 'cache' would really be a set of

cache[] = { lui(opcode), ori(opcode), lw(opcode), sw(opcode), nop(opcode)};

Joined: Jun 2001
Posts: 274
M
Senior Member
Senior Member
M Offline
Joined: Jun 2001
Posts: 274
What about doing some form of branch prediction is that possible or practical?

Joined: Nov 2003
Posts: 808
S
smf Offline
Senior Member
Senior Member
S Offline
Joined: Nov 2003
Posts: 808
Quote
Originally posted by DynaChicken:
it is if its pointing to the next opcode implementation. so your 'cache' would really be a set of

cache[] = { lui(opcode), ori(opcode), lw(opcode), sw(opcode), nop(opcode)};
Yes, thats kinda like it. For the func opcodes I just decoded as op_func & then went back and modified the value in the cache on the first call.

smf

Joined: Mar 2002
Posts: 119
D
Member
Member
D Offline
Joined: Mar 2002
Posts: 119
With MIPS, I wonder how much you actually save. Decoding the opcode is pretty easy but with this you still need to decode the arguments.

At least you make the next opcode pointer predictable for the CPU (means pre-fetchable CALL) instead of a pipeline stalling/memory dependant switch().

How much does it save on an Athlon/Pentium M compared to P4 ? Something for benchmarks wink

Still, the BIGGEST saving for MAME or ZiNc on the CPU core would be CORRECT memory timing. Which means that you do not have to execute 33 million instructions but rather waste tons of these on fetch/load/store.

And with MAME I would really suggest patching the fetch/load/store with correct timing, and then bother with caching interpreter/dynamic recompiler if you still feel like it. Its all about accurate emulation vs. playing the games

Joined: Nov 2003
Posts: 808
S
smf Offline
Senior Member
Senior Member
S Offline
Joined: Nov 2003
Posts: 808
Quote
Originally posted by DynaChicken:
Still, the BIGGEST saving for MAME or ZiNc on the CPU core would be CORRECT memory timing. Which means that you do not have to execute 33 million instructions but rather waste tons of these on fetch/load/store.

And with MAME I would really suggest patching the fetch/load/store with correct timing, and then bother with caching interpreter/dynamic recompiler if you still feel like it. Its all about accurate emulation vs. playing the games
Yes, dynamic recompilation will only happen once everything is 100% accurate and working. All the way along I've been relying on Intel/AMD bringing out faster processors to avoid having to optimise anything, maybe they'll pull another rabbit out of the hat.

Accurate timing is an alien concept to PSX emulation unfortunately. MAME doesn't even have half way accurate root counters yet, although I'm working on that.

smf

Joined: Mar 2002
Posts: 119
D
Member
Member
D Offline
Joined: Mar 2002
Posts: 119
So with the rootcounters fixed, does it mean that you dont have to run as many instructions now ? Or is it still worth doing a big delay on every memory load ?

Joined: Apr 2002
Posts: 67
D
Junior Member
Junior Member
D Offline
Joined: Apr 2002
Posts: 67
Well, 1.0 got slower than 0.9. 0.9 runs full speed the ZN games on my P3+Voodoo5 system. Not so for 1.0+. So I'm still using the older version for that system.

Joined: Mar 2001
Posts: 17,316
Likes: 280
R
Very Senior Member
Very Senior Member
R Online: Content
Joined: Mar 2001
Posts: 17,316
Likes: 280
There's absolutely nothing different between 0.9 and 1.0 that would influence the framerate - if they're configured the same they should run the same.

Joined: Apr 2002
Posts: 67
D
Junior Member
Junior Member
D Offline
Joined: Apr 2002
Posts: 67
Really? I'll try it out again then.

Joined: Apr 2002
Posts: 67
D
Junior Member
Junior Member
D Offline
Joined: Apr 2002
Posts: 67
Nope, still slower than 0.9 on that system, same rendering settings. On 0.9 SFEX2P is 60 fps in game, in 1.1 it's fluctuating from 45 to 50 fps most of the time.

Something must have changed, better accuracy of emulation or sound or something, because it's certainly a tad slower.

Page 3 of 4 1 2 3 4

Moderated by  R. Belmont 

Link Copied to Clipboard
Who's Online Now
0 members (), 970 guests, and 1 robot.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,399
Posts122,883
Members5,091
Most Online3,327
Nov 10th, 2025
Our Sponsor
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!

Superior Solitaire
Powered by UBB.threads™ PHP Forum Software 8.0.0