Multiple versions of a runtime system, such as a software emulation
application that emulates a legacy hardware architecture, are allowed to
co-exist in the memory of a new hardware architecture. The operating
system software of the new hardware architecture reads configuration data
from a database or table to decide which version of the runtime system is
desirable for an application program or game that is being loaded or is
currently running, and, if a match is found, only that runtime system is
invoked. To reduce storage footprint, the different versions of the
runtime system may be stored using "differential patching" techniques. In
this configuration, the operating system will always launch the same
basic runtime system binary, but it will select a different differential
patch to apply at run-time based on the title as determined during the
database lookup. In this fashion, future changes to the runtime system to
correct software bugs, incompatibility issues, and the like only need to
be tested for the relevant target application programs or games.