Add support for user-selected and automatic frame skipping. Add support for PAL timings (20 ms per frame).

User-selected frameskip causes slowdowns if the game runs slower than the resulting frame rate, but synchronises correctly if the game runs faster.

Automatic frame skipping is still the default. It now only skips up to 8 frames, but in some games still skips that entire 8 frames. What's needed is an algorithm that averages frame latencies over a few seconds and skips while the latency is LOWER than the average.
Add a section about frame skipping in the readme.
Fix an off-by-one in the manual frameskip code. It would raise the sound speed by 25% if frame skip 3 (Show 1 in 4) rendered a frame early.

Optimise the controller code. I don't expect to allow remapping any time soon, because the DS has buttons for every single SNES controller button and nothing more.
Smooth out the automatic frame skipping such that it doesn't go from 1 FPS to 8 FPS right away and constantly. The equivalent frame skip will be 2, 3, 5 or 8 most of the time, depending on the game, and will vary a bit depending on rendering demands.

For example, the frame skipping in Super Mario World is 3 on the map and in graphically simple levels, and 5 in complex levels.
Add a bit that tolerates 1/16 latency per frame in automatic frameskip mode.

Remove old automatic frameskip code.
Revert "Add a bit that tolerates 1/16 latency per frame in automatic frameskip mode."

This reverts commit d9b6322caafcbd355848a32acd8b8c0fa1746264.
Require auto_equivalent_skip to be greater than 0 before decrementing it if the code is drawing a frame early in automatic frame skip mode. Otherwise, overflow occurs, and we skip 4 billion images.
Release 1.15.
GLORIOUS interrupt-based sound playback. Now, the note-length-hopping problem isn't as apparent anymore, and automatic frame skipping doesn't go to 8 FPS all the time in Super Mario World. Thank the deities!

Reverses the auto frameskip synchronisation from commit dac11c74ac112728016e51625ac9f2a727152ddd, because that doesn't play well with interrupts.
Configurable interrupt interval for the sound timer. Right now, only 22050 Hz audio at 2000-microsecond intervals works.
Configurable interrupt interval for the sound timer. Right now, only 22050 Hz audio at 2000-microsecond intervals works.
Remove Open Bus again. Stop synchronising controls so often, now that the audio variable latency problem is fixed.
Merge branch 'master' of https://github.com/ShadauxCat/CATSFC
Release 1.16.
Reinstate SNES Open Bus. It was making Secret of Mana's introduction screen sound like a NES with a rusty audio controller.
Reinstate FAST_ALIGNED_LSB_WORD_ACCESS for 24-bit jumps.
Revert "Reinstate FAST_ALIGNED_LSB_WORD_ACCESS for 24-bit jumps." That's in port.h now.

This reverts commit 3dd99ccae465c370613ded10794749d6253bfe8c.
Permanently remove NO_OPEN_BUS hacks. It was a premature optimisation.
Try fixing a crash in the sound interrupt.
Increase the audio frequency to 48 kHz. Timer interrupt intervals and buffer sizes are also tested at 32 kHz and 44.1 kHz.