OK, I figured out why it wasn't working. Here's the fix: DrawRowOfBlocks: ld a,(hl) ld b,8 DrawRowLoop: rra push af jr c,DrawBlock NoBlock: ld a,d add a,8 ld d,a pop af jr AfterDraw DrawBlock: push bc push hl ld hl,Block call ZoomSprite pop hl pop bc pop af AfterDraw: djnz DrawRowLoop inc hl ld d,b inc e ld a,e cp 12 jr nz,DrawRowOfBlocks