common.h: Introduce a new cross-platform function, ReGBA_GetBackupFilename.
common.h: Add ReGBA_GetBackupFilename and ReGBA_GetSavedStateFilename.

DSTwo, GCW Zero: Create implementations of the above functions. GCW Zero: Use .sNN (.s00 through .s99) for saved state file names. Delete get_savestate_filename and get_savestate_filename_noshot, replacing them with the new functions.

memory.c: Delete references to DEFAULT_SAVE_DIR, a DSTwo port variable. Delete gamepak_filename. Replace it with CurrentGamePath, uninitialised, and IsGameLoaded, initialised to false. This makes it so the full path of the game is kept around, and initialising the first character of gamepak_filename is not needed anymore. Make load_backup, save_backup, load_state and save_state not require a path to be passed, only requiring the slot number now and using the functions above to resolve the file names per platform.
All ports: Remove the update_backup_flag variable, which determines whether we save the .sav file 10 frames after modification or not. On-exit only saving is now unsupported.
memory.c, others: Add #define GAMEPAK_FITS_IN_RAM, which is for platforms on which the entire largest Game Pak can be loaded without needing to load on demand.

GCW Zero: Build with GAMEPAK_FITS_IN_RAM.
common,h, memory.c: Fix gcc's warnings about type-punned pointer aliasing.
cpu_asm.c, mips/emit.h: Fix gcc's "Suggest parentheses around '-' in operand of '&'" warnings.
DSTwo: Get rid of 3 compiler warnings.
Developer documentation: Commit a file explaining all the conditional compilation options available in ReGBA.
common.h: Define a new function, ReGBA_GetBundledGameConfig.

DSTwo, GCW Zero: Implement the above function. Fix up includes in some files.

memory.c: Add main_path. Add the ability to look up game identification information in a bundled game_config.txt file.
GCW Zero: Implement the real-time clock.
GCW Zero: Bundle game_config.txt into the OPK package when building.
DSTwo, GCW Zero: Makefile cleanups.

Makefile.rules: Use $(ASFLAGS) when assembling.

mips/emit.h, mips/stub.S: Stop explaining the MIPS defines; they're now in dev-doc/defines.txt.
.gitignore cleanups.
Dingoo A320 (gcw0 directory): Fix a bug whereby flushing the cache causes a SIGILL.
GCW Zero: Add audio, synchronised somewhat by dropping frames if there's too much audio ready at once. (The GCW Zero's LCD outputs at or near 60 Hz, and the GBA outputs at 59.73 Hz, so outputting 60 frames per second leaves audio in the buffer.)
memory,c. zip.c: Add checks for file formats (GBA ROM and zip archive) instead of extension.
bios: Create from Normmatt's open-source GBA BIOS replacement, derived from the source code of VBA-M.

All ports: Bundle Normmatt's open-source GBA BIOS replacement. DSTwo: The BIOS is now directly in the TEMPGBA plugin directory. GCW Zero: The BIOS is now included in the OPK package and used if the .gpsp folder does not have a gba_bios.bin of its own.
Revert "memory.c, others: Add #define GAMEPAK_FITS_IN_RAM, which is for platforms on which the entire largest Game Pak can be loaded without needing to load on demand."

This reverts commit 03712e7f6ff5c94085bdd8b9081fceb1ec0f847a.

Conflicts:
	source/gcw0/Makefile
	source/memory.h
GCW Zero, gcwsound.c: Prevent underruns of the ReGBA core audio during the BIOS logo (Nintendo only) and early game audio.
Prevent clipping on the very loud audio in Metroid Fusion. Cuts volume in half for all other games.