A jak to rozwiązali inni?
Np. w MULTIFACE? Można zgrać grę w dowolnym momencie. Więc?
Przy uruchamianiu zrzuconych gier, odtwarzane są wszystkie rejestry, a na końcu sprawdzana zawartość rejestru I. Jeśli jest równa $3F - czyli tyle ile załadowane jest do niego po resecie Spectrum - to IM1, jeśli nie - to IM2.
I działa.
Najwyraźniej programy, które używają rejestru I do innych celów niż wektor przerwań (jako kolejny zwykły rejestr, chociaż z niektórymi wartościami zabronionymi, jak chyba sam raz czy dwa użyłem) nie były dla nikogo na tyle atrakcyjne, żeby je "cyknąć" Multifejsem

Można by rozszerzyć na tą okoliczność sprawdzanie i dopisać dodatkowy test: jeśli I mniejsze od $39 to też IM1 (bo często się używa $39, $3A i $3B przy IM2).