Еще раз о терминаторе, MOS 6502 и Ion Maiden

Давно уже я написал эту заметку, но на HYPE не выкладывал ввиду некой «несерьёзности».
Но после того как погрузился в программирование на MOS 6502 думаю что пришла пора так сказать разбавить серьёзность парой забавностей.

Читать дальше →

Программирование для Famicom/NES/Денди в Nesicide+ca65: музыка и звуки (7)

Если вы еще совсем не в курсе о принципах на которых работает звуковой чип в Famicom/NES/Денди, то можете сперва провести небольшой ликбез по моей статье «О звуке». И надо же так совпало, что в день публикации этой статьи на хабре появилось очень подробное рассмотрение азов тут: habr.com/ru/post/482916/ Рекомендую ознакомится. Итак — в денди у нас есть набор примитивных осцилляторов-каналов: один треугольный, два прямоугольных, один шумовой и один однобитный DCPM. Программируются они через порты которые мы уже описывали в neslib.inc — группа портов с префиксов APU_*. Описание того как каждый канал настраивается, какие параметры имеет и самое главное — эксперименты потом со всем этим великолепием отнимут на мой взгляд слишком много времени у нас и это тот самый случай когда надо воспользоваться уже готовыми решениями. Мы так и поступим и не будем писать звуковой драйвер и редактор для него с нуля — а воспользуемся уже готовым открытым звуковым драйвером для Famicom/NES/Денди — FamiTone2 от Shiru. Драйвер и набор утилит к нему позволяет воспроизводить музыку и звуки созданные в популярном редакторе FamiTracker.

Читать дальше →

Программирование для Famicom/NES/Денди в Nesicide+ca65: ушибленный спрайт (6)

Научившись выводить и задний фон и спрайты мы готовы реализовать технику известную как zero sprite hit. Она применяется главным образом чтобы создать панель статистики в играх со скроллингом. По крайней мере в играх «первой волны».

Читать дальше →

Программирование для Famicom/NES/Денди в Nesicide+ca65: спрайты (5)

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

Читать дальше →

esxDOS для самых маленьких. Практикум чтения из файла и смещения по файлу

Всем привет!

Сегодня мы продолжим говорить про esxDOS и откроем портал в ад и напишем свой маленький запилятор попрактикуемся с чтением с SD-карты.

Это вторая статья, предполагается, что первая уже прочитана


Читать дальше →

Программирование для Famicom/NES/Денди в Nesicide+ca65: задний фон с прокруткой (4)

Итак, после создания модуля neslib который нам еще пригодится в будущем мы можем приступать к формированию основной программы — модуля main.s. Откроем его, удалим всё старое содержимое и начнём наполнять новым кодом:

Читать дальше →

Программирование для Famicom/NES/Денди в Nesicide+ca65: модуль neslib (3)

Пример 1 — скроллинг заднего фона — neslib

Тот тестовый проект Hello world что мы создали из шаблона Nesicide работает, но мы сейчас переделаем его полностью — от него останется только каркас проекта и два битмапа с двумя наборами тайлов где присутствуют изображения символов текста. Текущий набор исходников можно скачать тут: yadi.sk/d/_THxg1gxuCCVNw — учтите, что у меня они создавались в папке c:\devel\nes и проще всего развернуть их там же.


Читать дальше →

Программирование для Famicom/NES/Денди в Nesicide+ca65: архитектура MOS 6502 (2)

Еще немного про сегменты

Если вы до этого программировали на каком-нибудь другом ассемблере для 8-биток, то возможно, что все эти заморочки с сегментами на первый взгляд могут показаться ненужными. Почему бы не использовать директиву .ORG и явно не указывать где находятся код и данные?

Читать дальше →

Многопоточность на ZX Spectrum

Реализовав перехват прерывания на ZX Spectrum (о чём есть огромное количество статей) можно стать на шаг ближе к одной странной затее — вытесняющей многопоточности на этой 8–битной машине. Сразу же может возникнуть вопрос — а зачем оно надо?

Читать дальше →