Sul NES non sono preparato, ma se vuoi imparare a programmare in assembly sull'Amiga non posso non consigliare il mitico corso di Randy/Ram Jam. 😉
Per quanto riguardo l'utilità di imparare roba di basso livello in ambito gamedev prova a leggere la serie di articoli del C/C++ Low Level Curriculum, che fu pubblicata sul fu AltDevBlogADay di Mike Acton. Puoi recuperarli in giro o su un mirror come questo.
Un'altra risorsa che consiglio sempre è il libro Programming from the Ground Up .