Как стать автором
Обновить
21
0
Наумов Роман @himysay

Пользователь

Отправить сообщение

Assembler 6502 переключение CHR мапером MMC3

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.1K

Одна из ключевых функций мапперов это переключить программных банков памяти и банков памяти с графикой CHR. Если брать для сравнение маппер MMC1 то он переключает графику постранично, по факту переключая полностью. MMC3 имеет 5 банков CHR памяти и позволяет их переключать по отдельности, не переключая полностью pattern table. Под катом подробности как это реализовать на ассемблере...

Читать далее

assembler 6502 (nes, famicom, dendy), миграция с мапера MMC1 на MMC3 прерывание IRQ

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.5K

Не так давно я задумался о том что, неплохо бы было сделать своей игре статус бар в низу экранной области. Алгоритм sprite 0 hit отпал практически сразу ввиду того что в проекте есть уже довольно сложные и тяжелые механики и данная механика нагрузит выполнение nmi вектора. По этому было принято решение использовать прерывание IRQ, а такое прерывание может генерировать распространенный маппер MMC3, на который я и решил мигрировать свой код.

Читать далее

Дизассемблер 6502 (nes/famicom/dendy) на php

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.5K

Я продолжаю изучать ассемблер 6502, но для экспериментов мне понадобился дизассемблер, Я пробовал использовать da65 собственно тот что идет вместе с ассемблером и линкером ca65 и ld65 соответственно. Но заметив в документации коды команд в hex представление. И вдруг понял что если прочитать файл nes то можно просто взять код инструкции, взять ее длину и спарсить аргумент. И мы получим дизассемблированный код в его простом представление.

Под катом небольшой рассказ о том как я написал скрипт дизассемблера на PHP.

Читать далее

Имплементация маппера MMC1 ассемблер 6502 nes/famicom/dendy

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.8K

Игры не использующие мапперы в NES ограничены, 16 кб PRG ROM (хранилище программного кода) и 8 кб CHR ROM (хранилище графики). С развитием разработки игр на NES, встал вопрос, а как увеличить данные ограничения и на помощь пришли микросхемы мапперы. Что же такое мапперы мы и разберем сегодня и как их использовать в своем коде.

Читать далее

Статус флаги ассемблера 6502 nes/famicom/dendy

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров2.9K

Для более глубокого понимания как происходит ветвление в программах написанных на ассемблере 6502 необходимо углубиться в флаги и понять какие команды влияют на тот или иной флаг. Это поможет избежать множество ошибок связанных с не очевидностью ветвления вашей программы.

Читать далее

Вывод спрайтов, создание анимации, программирование nes/famicom/dendy

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров1.6K

Ранее я уже писал статью о выводе спрайтовой графики на экрана с использованием регистра OAMDATA ($2004), но это подходит лишь для экспериментов и вывода некой статической картинки. Но движение либо анимация будет приводить к появлению различных артефактов наслоению спрайтов, моргание кадра, и так далее. Что бы этого избежать следует сформировать для каждого кадра буфер спрайтов и вывести на экран.

Читать далее

Программирование assembler 6502 nes/famicom/dendy векторы прерывания, процедуры и их вызов

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров4.2K

Векторы прерывания в формате программирование на ассемблере 6502, можно представить как всем хорошо известный патерн event-observer в высокоуровневых языках программирования. Конечно же можно реализовать данный патерн и на ассемблере но я его привел для большего понимания работы вектора прерывания...

Читать далее

Программирование nes/dendy скроллинг фона

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров2.6K

Я несколько раз задавался вопросом а как сделать прокрутку фона как в марио или черном площе, и постепенно подобрался к выводу что надо перерисовать nametable динамически в момент аппаратной прокрутки. Объяснение и код как это сделано на ассемблере 6502 в данной статье.

Читать далее

Программирование nes (dendy) вычисление коллизий

Время на прочтение5 мин
Количество просмотров4.1K

Давно не писал здесь, была работа и был в отпуске, занимался графикой изучал глубже ассемблер. И в один момент встала важная задача вычислить пересечение с платформами спрайта игрока. Я это решил с помощью алгоритма BitMask. Под катом алгоритм как это сделать.

Столкновения под катом

Создание графики для nes/dendy

Время на прочтение3 мин
Количество просмотров4.8K

Предыдущие мои статьи рассказывают о том как начать программировать под денди на ассемблере. Мы научились отрисовывать спрайты и background, так же мельком обсудили что такое таблица атрибутов и таблица имен, так же мы разобрались как прочитать контроллер. В тех статьях Я использовал chr от игры super mario bros 2 потому как не художник, но все же для создания игры мне пришлось искать инструменты какое мне помогут в создание своей графики для игры. Под катом этапы разработки графики.

Читать далее

Считывание контроллера nes (dendy) на ассемблере

Время на прочтение3 мин
Количество просмотров3.7K

В предыдущей статье Я рассказывал вам о основах ассемблера 6502 о некоторых участках памяти и как с ними работать, до сегодняшнего дня у меня стояли следующий ряд задач: считывание контроллера, анимация, таймер. Ниже под катом Я расскажу как научился читать контроллер.

Читать далее

Программирование NES (dendy), assembler 6502

Время на прочтение6 мин
Количество просмотров11K

У меня с детства была мечта написать игру для любимой приставки денди, шло время, мечта то появлялась то затихала снова. Она меня направляла в сторону магии программирование, и вот прошло больше 20-ти лет я программист, и снова в который раз пытаюсь постигнуть магию той самой денди что так будоражило моё воображение в тяжелом но счастливом детстве. Сегодня Я расскажу вам как постиг секреты этой магии, наконец то смог вывести спрайты на экран и научился рисовать фон, и надеюсь это будет не последняя мая статья на Хабре.

Мечта под катом

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность