Initial 8-bit sound commit. For the lulz!
Triangle wave ALL the channels!
Merge branch 'master' into 8bitsound
Change the upper screen updates to be double-buffered. Require that one audio buffer be free (1 out of 4).
Disable the free space line in the options for the time being. Currently it invokes a recursive directory scan to calculate how much space is used first.
Force both manual and automatic frameskipping to be at or above 2. Resets the default value for all games which previously had this value configured.
Implement automatic CPU frequency switching, which improves battery life if playing games that don't use all of the MIPS CPU. If all of it is indeed needed, then the game will constantly play at 396 MHz.
Document the auto CPU behavior a bit.
Load the game from plug-in launch arguments. Make the CATSFC system directory become the one transferred via arguments in that case.
Fix settings not getting loaded with a ROM provided by plugin arguments.
Make all gamepak loads call LoadGameAndItsData, that way its "Loading" screen, current gamepak variables, game config stuff and so on are all consistent.
Fix the loading screen for a ROM appearing for a split second after the splash screen.

Fix uninitialised memory access in Check_LoadArg.
Allow all audio buffers to get full again before declaring underflow.
Reinstate frame skipping options 0 and 1, but keep the new meaning (>= 2 equivalent skip level) for automatic frame skipping. Remove the automatic CPU frequency option, which was making audio emit 0.25 second of silence every so often.
Quit saving the files so often for nothing; that uses up erase cycles on storage cards! Instead, save them once when the menu that contains the settings that the user changed is exited, IF the settings' values changed, OR once when updating the list of most-recently played games.

Automatically save the SRAM in most cases, including game changes.

This commit also makes it unnecessary to save the game config of the previous game when loading another, makes it load certain settings correctly, and MAY make it avoid creating a file for a game's settings if the user never changes them from the defaults.
Fix 2 compiler warnings in gui.c.
Raise the sound frequency from 22050 Hz to 32000 Hz, which is like the SNES. Use sound interpolation to make it sound even more like the SNES.
When changing languages, quit doing the "Changing language, please wait..." as it only takes a few milliseconds.
Yeah... Despite the audio optimisations, sound still crackles with display double-buffering. Disable that, again.
Use key pictograms from Pictochat to display keys for yes/no dialog(ue)s.