Bienvenido, Tragamanzanas!
, si te pica el gusanillo del desarrollo para MSX, me da que este es tu foro
En cuanto a comprobar colisiones de sprites versus fondo depende un poco de como quieras hacerlo, al pixel o por patrones (caracteres). Hacerlo al pixel es mucho más laborioso y, si tu fondo es un gráfico basado en patrones (que es la mejor opción), lo tienes tan fácil como chequear que hay en la tabla de nombres en la posición en la que se encuentra el sprite. Así, en bruto, te diré que la posición de tu sprite es al pixel, y la de un caracter, cada 8 pixels. De esta forma, la posición de el caracter donde se encuentra tu sprite será:
caracter_x=int(sprite_x/8)
caracter_y=int(sprite_y/8)
De esta forma, sabiendo dónde está la tabla de nombres y las coordenadas de tu sprite, te será fácil hacer la comprobación. Lógicamente, si tu sprite es de 16x16 tendrás que cotejar más de una posición en la tabla de nombres.
Una muestra en BASIC de esto sería muy ilustrativa, luego habría que adaptarlo a ensamblador