This can take a second, but cuts down on jitc spikes throughout runtime.
Note: bits of the game will still be recompiled as games change code.
This is basically the same operation as loading from cache, without the
cache yet.
These generally work, but likely delay slots will make downcount slightly
off, and won't resume when you hit run again without manually stepping
through them.
One is a very hardcoded screenshot download / vfpu convert to 565, and the
other is some very weird check to make sure render is clear or has
happened or something.
The screenshot func detects downloads for the "Royal Album". The render
check detects downloads for post-rename (no idea why it checks here.)
Fixes#7695.
Opens up for having multiple JIT implementations available at runtime,
which could be use for experimenting with new JIT compiler types or for
unit testing one JIT on another architecture.
Very few of the newly virtual calls are on any sort of critical path so
hopefully there will not be a performance loss.
Unfortunately, some games dynamically load modules that all have the same
name, but different content. This tries to detect that situation better,
by at least not using the name if the address is different.
This will also track the right sizes for hashing, making incorrect
identification of functions much less likely.
Fixes#8420.