Page 1 of 2

The awesome speed of MAME....

Posted: Sun Apr 04, 2004 10:54 pm
by mahlemiut
Image

Yeah. 6GHz PCs better start appearing real soon. That or a dynarec R3000 CPU core. If that would help much.

Guess I'll be using Zinc to actually play the game still.

Posted: Sun May 16, 2004 8:42 pm
by mahlemiut
Some more examples :)

Image

Image

Posted: Sun May 16, 2004 8:50 pm
by Buttermaker
Why don't you bitch on mame.net? :D

Posted: Sun May 16, 2004 9:36 pm
by mahlemiut
Because I know smf will eventually do a dynarec R3000 CPU core (although I get the feeling the possible 50% speed gain mentioned might be pushing it a bit) and probably some other optimisations too. He's mentioned it a couple of times on the mame.net forums. More games should be working before that will be done anyway.

Posted: Mon May 17, 2004 1:54 pm
by LN2
Barry, I don't get the above..cuz you are still using fskp 0!!!

Show some stats at fskp 6 or 9. i'd bet you are at 100% speed except for maybe the last example where you are getting only 18fps at fskp 0.

Posted: Mon May 17, 2004 6:05 pm
by mahlemiut
No clue...

Frameskip does not have any effect on these games - it can actually make them go slower. The video rendering code is NOT the bottleneck, it's the CPU emulation and the amount of RAM it writes.

Posted: Mon May 17, 2004 8:44 pm
by mahlemiut
Hopefully this shot will explain it better:

Image

You cannot skip CPU cycles, and you cannot skip memory reading/writing.

But it gives me another excuse to post a Bloody Roar 2 screen shot :)

Posted: Tue May 18, 2004 1:30 pm
by LN2
well, a screenshot showing the frame rate at fskp 6 and 9 would have helped more.

yes, I see the video is a small part there....very odd.

I don't get give how much faster RAM throughput is nowadays compared to even 5 years ago how that could be the bottleneck.

The fact it's emulated can't be adding that much extra RAM throughput requirement can it?

How much RAM is being used for these games? How much is MAME using?

Posted: Tue May 18, 2004 7:46 pm
by mahlemiut
Image Image

Are we happy now?

And also, Windows reports MAME uses 50MB when running this game. Some of this will, of course, be swapped out to disk (MAME is one large executable).

Posted: Wed May 19, 2004 1:39 am
by LN2
yep...happy.....I would never attempt playing any of these on my older, slower system anyway. :P

It's why I hadn't seen that effect until your screenshots above.

Posted: Wed May 19, 2004 4:10 am
by mahlemiut
This has been well known since when Killer Instinct 1 and 2 were first emulated in MAME. Fast emulated CPU (100MHz MIPS R4600) takes up all the emulation time. The video hardware is very simple, no 3D or anything.
Cruisin' USA/World are similar.

Posted: Wed May 19, 2004 11:46 am
by Chad
If the 3d emulation is all in software (running on cpu only), i guess it would then be a mame-crime to change the emulation to convert it to using the latest 3d api's? since then it wouldn't be authentic but it would speed it up.

Posted: Wed May 19, 2004 5:53 pm
by mahlemiut
Chad wrote:If the 3d emulation is all in software (running on cpu only), i guess it would then be a mame-crime to change the emulation to convert it to using the latest 3d api's? since then it wouldn't be authentic but it would speed it up.
That would be right. Although I doubt there would be much of a speed up. A dynarec MIPS R3000 CPU core would probably give a better speed improvement - like it did with Killer Instinct.

Of course, there's nothing stopping you from adding Direct3D/OpenGL support for 3D games... it'll just never be an official part of the MAME core.

Posted: Wed May 19, 2004 6:42 pm
by LordGaz
Chad wrote:If the 3d emulation is all in software (running on cpu only), i guess it would then be a mame-crime to change the emulation to convert it to using the latest 3d api's? since then it wouldn't be authentic but it would speed it up.
From what I know about emulation engines, this would be just about an impossible task. You'd have to look at the disassembled ROM and see where it calls it's own 3D graphics handling routines. The emulator would then have to reinterpret this to a Direct 3D routine. Even this is very unlikely to work because the game's own graphics routine and the corresponding DirectX routine would have to match precisely, same parameters etc.

For example, game reaches a point where it calls 'Plot Triangle'. The emulator stops CPU emulation, skips the 'jsr' instruction and calls the necessary DirectX 'Plot Triangle' routine instead (if there is one) with the necessary parameters, then resumes normal CPU emulation.

This would be a miracle if it worked not to mention the amount of work involved to implement it! Gaz.

Posted: Wed May 19, 2004 7:38 pm
by mahlemiut
uhh... so how do all those PSX emulators (as well as Zinc/Impact/whatever) work then?

I'm no expert on how the PSX GPU works though...