Pues podría ser una solución, veamos...
El programa original ocupa compilado el rango $0100-$8CFF (más o menos). En el megarom, si me quito de enmedio la BIOS y activo la RAM en la página 0, podría tener lo siguiente:
0000 ----------------------------------------------------------------
RAM
4000 ----------------------------------------------------------------
Banco 1: página 0 (este banco se conmutara con la P4)
6000 ----------------------------------------------------------------
Banco 2: página 1 (este banco se conmutara con la P5)
8000 ----------------------------------------------------------------
Banco 3: página 2 (el banco permanece constante)
A000 ----------------------------------------------------------------
Banco 4: página 3 (el banco permanece constante hasta que arranque el programa)
C000 ----------------------------------------------------------------
En B1:P0 inicialmente iría un arranque "ad-hoc" con la marca de ROM y un código de descompresión de los datos contenidos en el resto de B1:P0 y B2:P1, ese bloque se descomprimiría en la RAM de $0100-$3FFF. Hecho esto me podría quitar de enmedio ya B1:P0 y B2:P1 y conmutar por ejemplo a B1:P4 y B2:P5 que contendrían los fragmentos originales del código (nota para mi mismo: el código de descompresión+conmutación debería ejecutarse fuera de B1:P0 para evitar cuelgues malignos). Tras todas estas operaciones ya debería tener desde $0100 a $8CFF el código original y ya podría lanzar su ejecución. Pierdo dos página extras en el megarom; pero bueno, podría valer la pena.
No se si me he explicado....