Je viens de voir les images du jeu et je crois que c'est un très bon choix pour porter, je jeterai un coup d'oeuil à ton code un peu plus tard, mais je ne compte pas avoir beaucoup à dire

Si tu veux, je peux poster mon mapper qui fait plus ou moins exactement la même chose avec quelques modifications: je dessine une colonne et un rang de plus pour m'aider avec le "smoothscrolling". Mais essentialment c'est un mapper de tiles 16x16 alignées et assez simple.
;lleva:
;de = xcoord
;b = y coord
dibMapa:
add hl,de
ld e,b
ld b,a
add hl,de
djnz $-1
exx
ld hl,saferam1 ;donde guardar el mapa antes de dibujarlo a la pantalla, es decir, el gbuf
ld de,13 ;numero de columnas en gbuf menos uno (por el inc hl')
ld bc,$0705 ;dibujar 7 columnas y 5 filas de sprites (en la pantalla caben 6x4))
dibFila:
push hl ;guardar gbuf
exx
push hl ;save map loc
ld l,(hl) ;numero del sprite
ld h,0
ld bc,tileData
add hl,hl ;x2
add hl,hl ;x4
add hl,hl ;x8
add hl,hl ;x16
add hl,hl ;x32
add hl,bc ;primer byte en sprite
ld b,16 ;16 filas en sprite
dibSprite:
ld a,(hl) ;pixeles del sprite a dibujar
inc hl ;proximo conjunto de pixeles
exx ;cambiar a los registros alternativos
ld (hl),a
inc hl ;proximo byte en gbuf
exx
ld a,(hl)
inc hl ;2º conjunto (pixels son 16x16: 2 bytes de ancho)
exx
ld (hl),a
add hl,de ;bajar a la proxima fila
exx
djnz dibSprite
pop hl ;posicion en el mapa
inc hl
exx
pop hl ;gbuf anterior
inc hl
inc hl ;saltar dos bytes porque los sprites son de 16x16
djnz dibFila
exx
ld a,(mapWidth)
sub 7 ;ya hemos avanzado un cierto numero de tiles
ld e,a
ld d,0
add hl,de
exx
ld e,14*15 ;
add hl,de
ld e,13
ld b,7
dec c
jr nz,drawRow
ret