A couple of thoughts after playing it:
1. Sprites appear on screen 1 line lower than you probably think. e.g. If you put 0 in the Y coordinate, the first row of the sprite will appear on line 1.
2. Eating the second spider does not increase the length of the snake, but every other spider does. Why is the second one special?
3. You can reverse direction if you press the buttons fast enough. e.g. If you are facing left, you can tap up then right quickly to turn right without ever moving up. If the snake is longer than two parts this causes suicide, which is frustrating because it's easy to do by accident while just trying to make a quick turn.
For precise control, the solution I'd suggest is maybe queue button presses. If someone taps up then right on the same turn, apply up on the next tick, then right on the tick after that?
4. When moving along the top wall, a tile once disappeared from it, leaving a hole. Not sure what caused this, and wasn't able to do it again, but it suggests there is a bug that causes this.
5. Why do you hide the snake head and spider sprites when displaying the PAUSE indicator?
6. Is there no way to return to the title screen after game over?
7. The title NESNAKE was already used for a similar game by RetroUSB (Super NeSnake 2
), which might be worth playing for some ideas.