Louix94 wrote:I just discovered what happens when I try to handle multiple buttons, it doesn't work too well!
You should read the state of all buttons beforehand (thus interacting with the joypad only once) and buffer them in a byte, and then use that byte for checking any buttons you wish during the rest of the logic frame.
I'm very used to writing code with the whole model-view concept, but I just can't bring myself to think like that when I write code in an assembly language!
That's OK. If you already know about it you're on the right track. As long as you try to progressively abstract the hardware aspects in your code you'll be fine.
The sprites, for example, are just a way the NES offers to display objects, so the sprite data shouldn't be used for logic... There "professional" way would be to have a cursor object which would check for input and react accordingly, and finally draw itself by using an entry in the OAM, which is nothing more than a graphical representation of the cursor object.
It may seem pointless to make an apparently complex separation when you can just move the damn sprite, but that's the difference between a simple demo and a game. A simple demo can get away with doing things in the dirtiest way possible as long as the graphical results are as expected, but a game must have a solid framework underneath if it is supposed to get anywhere.
I know you are just learning, and whatever works is good for learning. What I wrote above is just a tip for the future. Keep that in mind.