MiSTer-devel / NES_MiSTer

GNU General Public License v3.0
169 stars 73 forks source link

[Request] Rewind/Fast Forward #251

Open evil666 opened 3 years ago

evil666 commented 3 years ago

I am not sure if this has already been requested, but would it be possible to add rewind and fast forward options?

Keep up the great work!

Kitrinx commented 2 years ago

I don't think the speed of the SDRAM would allow this to work in any meaningful way. It doesn't currently have many idle cycles.

diettelo commented 2 years ago

I don't think the speed of the SDRAM would allow this to work in any meaningful way. It doesn't currently have many idle cycles.

@RobertPeip can you do the ddr3 ram trick like on gba core when you finished the psx core or when you have time?

Kitrinx commented 2 years ago

This system doesn't use ddr3 at all. It's old and reads directly from complex mappers for ROM data. If you want it to go faster, then it needs to read from sdram faster. Currently the SDRAM is shared by the PPU's chr ram and the PRG rom/ram of the cart. which means it has a data return speed of two master cycles (1/2 ppu cycle) and the PPU needs one additional master cycle to latch and respond to the data. During it's idle cycles which alternate in pattern depending which two cycles in a cpu cycle the PPU is reading, the PRG operation is done for the CPU. In PAL mode it's even more complex since the two are unaligned. There's really not much slack to make the system operate faster.

RobertPeip commented 2 years ago

Rewind is not useful for NES, because there is no independent framebuffer, so pausing for taking a savestate would always halt for a full frame, causing unacceptable audio/video stuttering.

Fastforward has the same problem: it would increase the refreshrate to e.g. 120hz for 200% speed. As there is no framebuffer to generate a 60hz image again from that, it would not be useful for most people.