A fast forward button makes no sense. Explain what a fast forward button needs to do and maybe you’ll start understand why it doesn’t make sense. Heres how other emulators do a “fast forward” feature
First thing you need to know is emulators run all the systems (such as CPU/GPU/PPU/any other hardware) and do it as fast as the host computer (your machine) can run. Typically the more accurate the emulation, the more instructions are needed each frame, and the first rule of performance is “do less” Well, for simpler systems, there is less to emulate, and so you can just run the code to generate the frame, draw it on the screen, and the emulator just idly waits for the signal to run the next frame. This is how it runs at a constant FPS.
A fast forward button works by changing how long the emulator idles for while waiting for the next frame. Because the emulator can output frames at a much faster rate than it needs to, it makes the game look like its going faster. Indeed, outputting more frames a second does make the game play faster, but this only works because there is idle time that you can shrink.
Citra works the same way. Except you said the game is running slower than it should. This means that the time to generate a full frame takes longer than it would on a real 3ds, meaning there is no idle time at all. Citra is outputting as fast as it can, but your computer isn’t fast enough to run all the instructions. The only way to speed up Citra is to find parts in citra that are slow and make them fast. This is not easy at all and needs very technical people to work many long, hard hours to make it faster. Additionally, citra isn’t even feature complete yet meaning if you were to optimize citra code right now, you will probably have to throw out some of those optimizations later when you add the missing features.
In summary, no such thing as a fast forward button that would do what you want. Citra needs to get optimized, but thats not worth it right now until many more missing features are added.