Dolphin, the GameCube and Wii emulator - Forums

Full Version: Matrix Interpolation
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

amino

Is there a limitation in Dolphin's rendering that would prevent it from using matrix interpolation to increase framerates in games similar to how Ship of Harkinian (an OOT PC Port) implements it?

Implementation here: https://github.com/HarbourMasters/Shipwr...lation.cpp
It is something I'm very interested in but is a bit farther down on my personal to-do list. I won't guarantee I'll ever get to it but it would be very neat!

I would think this would require at least three things:

* You have to figure out *what* to interpolate. If you want to interpolate something, you'll have to look at that same thing multiple times to know how it changes. In emulators we don't have the luxury of knowing something is a character or the ground. So detecting this is problem one. My current solution would be a graphics mod which means this would be game specific.
* You have to figure out the start and end interpolation values. I am not sure how other solutions work, I'd imagine you would need some sort of run ahead in the emulation?
* You have to do the interpolation logic (similar to the code you posted).

Most of this isn't available in Dolphin today, so while it's not an impossible task, it isn't an easy problem to solve.
(09-21-2022, 10:58 AM)iwubcode Wrote: [ -> ]* You have to figure out the start and end interpolation values.  I am not sure how other solutions work, I'd imagine you would need some sort of run ahead in the emulation?

 I assume there would be a 1 or 2 frame lag to delay the current frame information and interpolate it with the past frame. Show the interp then show the current frame.
(09-21-2022, 10:58 AM)iwubcode Wrote: [ -> ]It is something I'm very interested in but is a bit farther down on my personal to-do list.  I won't guarantee I'll ever get to it but it would be very neat!

I would think this would require at least three things:

* You have to figure out *what* to interpolate.  If you want to interpolate something, you'll have to look at that same thing multiple times to know how it changes.  In emulators we don't have the luxury of knowing something is a character or the ground.  So detecting this is problem one.  My current solution would be a graphics mod which means this would be game specific.
* You have to figure out the start and end interpolation values.  I am not sure how other solutions work, I'd imagine you would need some sort of run ahead in the emulation?
* You have to do the interpolation logic (similar to the code you posted).

Most of this isn't available in Dolphin today, so while it's not an impossible task, it isn't an easy problem to solve.

Would this help with problem one? https://github.com/JakobPCoder/ReshadeMotionEstimation
It seems to be a decent attempt at detecting the direction in which pixels are moving https://youtu.be/LlNPJUCcSJE