Start the memory-access-3 branch with the specification to be implemented.
Merge branch 'master' into memory-access-3
Merge branch 'master' into memory-access-3
Continue the memory-access-3 branch with basically working code reuse; however, it works very slowly.

Contains serial tracing code. #define SERIAL_TRACE_REUSE or SERIAL_TRACE_RECOMPILATION to get it.
ROM branches are resolved indirectly from RAM. Correct this in the recompiler.

(DSTwo-specific) Correct /Tools/Debugging/Code cache flushing/VRAM. Formerly it would display EWRAM statistics.
Optimise reused code slightly by allowing it to have native code branches into ROM and the BIOS. Allowed because of the native branching flush reason.

Correct the peaks for the persistent area in /Tools/Debugging.

Tracing of frameskip changes are now enabled only #ifdef SERIAL_TRACE_FRAMESKIP.
Correct the behaviour of code alignment in the Writable Persistent Cache. Now it's the absolute address of the native code that's aligned to the platform's requirement, not the remainder of the GBA code size.
Prepare for code reuse by returning pointers to native code in translate_block_{arm | thumb}. Correctly handle the case where the BIOS needs the starting address of a block that's currently being compiled due to looping.
Code cache and native block tag changes. THE GAME PAYBACK IS KNOWN TO BE BROKEN IN THIS COMMIT.

* Turn the 5 translation caches into a read-only area cache (ROM/BIOS) and a writable area cache (IWRAM/EWRAM/VRAM).
* Adjust memory allocation for the ROM buffer so that it tries anywhere from 32 to 1 MiB.
* Turn metadata clearing into its own procedure.
* Reuse native code blocks based on the GBA code. That is, if the game places the same code back into IWRAM/EWRAM/VRAM, it looks that up and points to the already-compiled code.
* Enable compilation of larger blocks in writable areas, due to the code reuse.
* (Tuning) Set some initial sizes for the two caches.
* (DSTwo-specific) Add statistics for reused and recompiled opcodes. These are performance-impacting, so #define PERFORMANCE_IMPACTING_STATISTICS to get them.
* (DSTwo-specific) Fix the names of some statistics.
* (DSTwo-specific) Increase the number of rewind steps to 10.
* (DSTwo-specific) Protect some more serial tracers with #ifdef directives.
doc: Modify to reflect the recent changes to the code reuse mechanism.
Disable an optimisation that broke Payback. Other games that (ab)use executing code in writable GBA memory may be a *little* bit slower as a result.
Merge branch 'master' into memory-access-3
End support for translation gates. Saves 2 native instructions per block, in addition to 2 native instructions per GBA instruction, to check for translation gates.
Reduce the maximum tag needed for the BIOS and IWRAM.
Make automatic frameskip alternate between 0 and 2 if it can. But never 1, because of flashing objects in games.
Merge branch 'memory-access-3'
Add the current version of game_config.txt to TEMPGBA/.
Release 1.42.