The part about the stars not scrolling is likely due to the same thing causing the HUD in SMB to be fixed, namely that we're rendering once per entire frame, and not per pixel, and not checking the scroll registers frequently enough as their state can change mid-frame.
This turned out to be due to not handling 8x16 sprites. Gradius, and other games like Castlevania and Galaga which also use 8x16 sprites, now plays! Addressed in https://github.com/quephird/happiNESs/pull/30.
The game loads fine, and is barely playable but:
The part about the stars not scrolling is likely due to the same thing causing the HUD in SMB to be fixed, namely that we're rendering once per entire frame, and not per pixel, and not checking the scroll registers frequently enough as their state can change mid-frame.