Даю реально дельный совет.
Вбей в Google фразу типа "6502 opcode list" или "NES ASM opcodes". Наверняка ты найдёшь или голый список команд, или гид с описанием комманд, что тоже хорошо. Скорее всего, на английском. Команд всего 256, но есть много похожих команд, которые можно сгуппировать, например: LDA, LDA,X, LDA,Y или PHA, PHX, PHY и т.п. Всего групп около 30, это не так много. Не обязательно учить команды, достаточно их понимать. Без понимания команд даже код, который ты привёл, даже с комментариями -- как перевод с японского на китайский. Научись понимать команды, и ты будешь знать китайский
![=)](//www.emu-land.net/forum/Smileys/default/smiley.gif)
Но даже зная команды, придётся попотеть, чтобы понять, какой смысл в определённой команде. Например, ты будешь понимать, что одна команда считывает значение из памяти по определённому адресу в аккумулятор. Другая команда сравнивает значение с определённым байтом в коде. Третья команда выполняет прыжок при определённом условии, четвёртая команда модифицирует значение в аккумуляторе, а пятая команда сохраняет значение аккумулятора обратно в память по тому же адресу. Вот только, не зная, что находится в RAM памяти по адресу $0123, так и не поймёшь, зачем всё это. Благо, Марио игра изученная, и для неё наверняка есть ROMMap и RAMMap. Для неизученных игр придётся самому отслежить с помощью Debugger'а, что же такое по адресу $0123 и когда оно меняется.
Не нужно бояться ASM, как огня. Уж поверь мне. Лет 8 назад я скачал одну дизассемблированную процедуру, долго в неё втыкал, но так ничего и не понял. Прям, как ты сейчас. 4 года назад я стал изучать ассемблер в одиночку, по списку команд. 3 года назад я всё-таки осилил ту процедуру. Даже зная все команды, я месяц втыкал в 27kb текста, пока до меня не начало доходить, что к чему, путём проб и ошибок. С тех пор научился патчи делать для некоторых игр, понимать код в целом, и даже видеть его в HEX-редакторе. Сейчас я как Сайфер из Матрицы, только блондинок и брюнеток не различаю.
![=)](//www.emu-land.net/forum/Smileys/default/smiley.gif)
Смотрю на ROM в Hex-редакторе, и вижу где код, где таблицы, где спрайтовая графика, а где всё остальное...
Но это только для одной системы. Ассемблер для Сеги для меня до сих пор -- тёмный лес, хотя там есть некоторые успехи. Для одного хака, например, чтобы изменить 20 байт в разных частях ROM'а, мне лично потребовалось 15 часов, а ты хочешь, чтобы всё и сразу одним нажатием кнопки
![=)](//www.emu-land.net/forum/Smileys/default/smiley.gif)
И хотя та игра сильно изученная и даже дизассемблирвоанная, в хаке какие-то данные изменены, где-то удлиннены или укорочены массивы и т.п. В итоге, часть данных перенесена, какие-то данные сдвинуты на X байт, какие-то на Y байт, а все остальные -- на Й байт.