Views: 6,918,826 Homepage | Main | Rules/FAQ | Memberlist | Active users | Last posts | Calendar | Stats | Online users | Search 04-25-24 11:33 PM
Guest:

0 users reading MelonDS is a little bit TOO accurate---slows down in places a real DS would when framerate is capped | 1 bot

Main - General - MelonDS is a little bit TOO accurate---slows down in places a real DS would when framerate is capped Hide post layouts | New reply


falconfetus8
Posted on 07-11-21 06:30 PM Link | #3998
I'm playing Pokemon Renegade Platinum with the 60 FPS patch. For those who are unaware, the 60 FPS patch raises the game's built-in framerate cap from 30 to 60, doubling the gameplay speed without speeding up the music and sound. It's pretty great.

The reason the game was capped at 30 in the first place is because it can't maintain 60 FPS in _all_ places on a real DS. So, naturally, it will slow down in some places if you were to use this patch on a real DS. But, of course, I'm not playing on a real DS---I'm playing on an emulator, on a REALLY beefy computer. I should, in theory, be able to play the game all the way through and not experience a single frame drop. And yet, with MelonDS's framerate limit enabled, my computer behaves exactly the same as a real DS---the framerate drops down to 30 FPS in all the same locations a real DS would, and speeds up to 60 everywhere else.

To prove that my PC is powerful enough to not slow down in those areas: if I disable MelonDS's framerate limit, I get around 165 FPS, even in areas that a real DS would slow down in. The only explanation I can think of is that MelonDS is intentionally limiting the rate at which it executes instructions to match that of a real DS. I don't want that. I want it to run as fast as it can, up to whatever limit is built into the game.

I _could_ just play with MelonDS's framerate limit disabled, but:
* That's too fast
* It also speeds up the music and sound

Is there some way to get the best of both worlds?

Arisotura
Posted on 07-11-21 06:36 PM Link | #3999
this sounds like the problem is not with how fast your computer can run melonDS, but rather the fact that melonDS tries to mimic the DS's timings and performance characteristics (which is an important aspect of emulation).

anyway: an overclock setting could be done (we already have a system for changing the ARM9 clock, for DSi support) and may help in your case. while 'running the game as fast as possible' would be difficult due to also having to emulate the DS hardware, it would be quite possible to run the ARM9 at 133MHz (or any multiple of 33MHz, tbh).

____________________
Kuribo64

falconfetus8
Posted on 07-11-21 06:42 PM Link | #4000
That sounds awesome! Is that something you could consider adding to a future release?

Arisotura
Posted on 07-11-21 06:45 PM Link | #4001
I have nothing against it, it'd just be a matter of adding it in the UI (and deciding how the user setting should interact with the DSi's selectable clock)

____________________
Kuribo64

Sorer
Posted on 07-11-21 08:36 PM (rev. 3 of 07-11-21 08:37 PM) Link | #4003
You could use Twilightmenu for now which got an overclock/selectable clocks option if you got a DSi or 3DS though.

poudink
Posted on 07-11-21 08:46 PM Link | #4006
Might not be enough though. I tried using the SM64DS 60fps patch with it and it was still too slow despite the double clock speed.

____________________
Nothing to say, so jadnjkfmnjamnfjkldnajfnjkanfjdksan jsdnvj m.

Arisotura
Posted on 07-11-21 08:56 PM Link | #4007
on the other hand, SM64DS is a crummy game that likes to jam the GXFIFO without any care, and prolly do other stupid shit

we could go real far and crank it to 266MHz or even more, though it would also have the side effect of requiring more host power (if the game really needs that much speed to run at fullspeed)

____________________
Kuribo64

Generic aka RSDuck
Posted on 07-11-21 08:56 PM (rev. 2 of 07-11-21 08:57 PM) Link | #4008
Posted by poudink
Might not be enough though. I tried using the SM64DS 60fps patch with it and it was still too slow despite the double clock speed.

it might also be other components which are too slow, like geometry transform and submission.

We could add a desmume mode where GX commands would be processed instantly and there's an unlimited amount of geometry allowed.

____________________
Take me to your heart / never let me go!

"clearly you need to mow more lawns and buy a better pc" - Hydr8gon

poudink
Posted on 07-11-21 09:38 PM Link | #4009
Posted by Arisotura
I have nothing against it, it'd just be a matter of adding it in the UI (and deciding how the user setting should interact with the DSi's selectable clock)

Regarding this, it could be done as a percentage slider like it is in Dolphin and Citra (which both had the same issue because Dolphin has Gamecube and Wii mode and Citra has 3DS and New 3DS mode). That way, "100%" would be stock speed in both modes and 200% would be twice the normal speed in both modes.

____________________
Nothing to say, so jadnjkfmnjamnfjkldnajfnjkanfjdksan jsdnvj m.

Arisotura
Posted on 07-11-21 09:40 PM Link | #4010
yeah, some sort of slider that snaps to specific marks, or something like the OpenGL resolution selection... thing is, technically, the provision we have for setting the ARM9 clock can only support multiples of 33MHz. anything else would tremendously complicate the timing system.

____________________
Kuribo64

poudink
Posted on 07-11-21 09:56 PM Link | #4011
Yeah, both Citra and Dolphin have snaps too so I think it'd be fine. Citra snaps to multiples of 5 and Dolphin gets coarser the higher the value gets (there are two positions for 6% and five positions for 7%, but no positions between 389% and 400%).
Though, I guess being limited to multiples of 33MHz makes the percentage idea not work anyway, since 25% in DSi mode is a multiple of 33MHz but 25% in DS mode isn't.

____________________
Nothing to say, so jadnjkfmnjamnfjkldnajfnjkanfjdksan jsdnvj m.

Generic aka RSDuck
Posted on 07-11-21 09:58 PM Link | #4012
Posted by Arisotura
yeah, some sort of slider that snaps to specific marks, or something like the OpenGL resolution selection... thing is, technically, the provision we have for setting the ARM9 clock can only support multiples of 33MHz. anything else would tremendously complicate the timing system.

nah the way those emulators do this is to accumulate the cycles run by the processor, then multiply them by the overclocking/underclocking factor and then add it to the global timestamp.

____________________
Take me to your heart / never let me go!

"clearly you need to mow more lawns and buy a better pc" - Hydr8gon


Main - General - MelonDS is a little bit TOO accurate---slows down in places a real DS would when framerate is capped Hide post layouts | New reply

Page rendered in 0.037 seconds. (2048KB of memory used)
MySQL - queries: 29, rows: 100/100, time: 0.017 seconds.
[powered by Acmlm] Acmlmboard 2.064 (2018-07-20)
© 2005-2008 Acmlm, Xkeeper, blackhole89 et al.