NES - измерение времени выполнения кода

При разработке для ретро-платформ нередко возникает необходимость сделать оценку быстродействия разных частей программы — то, что в современной практике называется 'профилированием'. Например, после добавления новых возможностей в игру её логика перестала укладываться в один кадр, начались замедления, и требуется выяснить, на какой части кода нужно сосредоточить усилия по оптимизации в первую очередь. Конечно, для небольших фрагментов кода на ассемблере всегда можно (и нужно) посчитать время выполнения в тактах вручную, но на больших участках со сложной логикой, либо при написании программы на языке высокого уровня, этот подход не годится. Рассмотрим, какие способы решения этой задачи есть в арсенале современного разработчика для NES.


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

Threads on Z80

Привет, друзья.

Хочу поделиться с вами своими наработками. Сперва хочу извиниться за то, что постоянно буду использовать свой ассемблер ASAM. Увы, он работает только под 32-бита, у этого есть ряд причин, но почему это так, — не сейчас.

Теперь о сегодняшней теме, о параллельных потоках. Начиная с 2003 года я постоянно использую два типа потоков на Speccy: первый, мой любимый — это сквозные функции; и второй, о котором пойдёт речь — это классические потоки. Я приведу пример самых простых потоков, и если вам это нужно — вы легко сможете доработать его до своих нужд.

Thread'ы очень просты. Всё сводиться к двум основным процедурам — это создание и переключение потоков. Текущий вариант потоков эволюционировал из простых переключений между блоками памяти в переключение между страницами, что очень удобно для decrunch'ингов чего-нибудь, или для распаковок данных. Хочу отметить, что впервые оправданное использование потоков я ощутил при coding'е под ts-conf'у.

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

Как я побывал на Мультиматографе

В этой статье я бы хотел описать свои впечатления о фестивале Мультиматограф. Первое, что очень было приятно, получить приглашение на фестиваль от организаторов. Не знаю как выбирались люди кому высылать, а кому — нет эти приглашения, но последний раз меня лично приглашали на фестивали в 2010 году на HackersTop. Этот организаторский ход, я думаю принес свои плоды, о чем я расскажу чуть позже.

О фестивале было объявлено заранее, на многих тематических сайтах были созданы ветки, в которых можно было всё узнать и задать вопросы организаторам. Так же существует достаточно удобный сайт, на котором тоже можно получить всю интересующую информацию.

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

О передискретизации в Ayumi

Введение

Эмулятор Ayumi был создан специально для музыкантов, с учетом их повышенных требований к качеству моделирования работы звуковых чипов AY-3-8910 и YM2149F. Он существует в двух версиях: аудио плагин для работы в реальном времени и отдельное приложение для генерирования файлов формата WAV. От уже существующих эмуляторов вышеупомянутых чипов Ayumi отличается, в первую очередь, подходом к передискретизации (resampling), о котором рассказано далее.

Для привлечения внимания уважаемой публики я решил погуглить какую-нибудь симпатичную японку с именем Аюми (раз уж название эмулятора образовалось таким образом из «AY» и «YM»). Нашлось, вот... Анимешную Аюми убрал. Теперь вместо нее слон. Почему слон? Читайте, и узнаете!




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

Мультиматограф 11: начинаем принимать

С сегодняшнего дня мы начинаем прием работ на «Мультиматограф» (пока верстался номер наступил завтрашний день и прислано уже три работы).

Для тех, кто всё пропустил, «Мультиматограф» — олдскульный демофестиваль, который уже второй раз пройдет в Вологде, 25-26 апреля. Ранее демопати проходило совместно с крупным анимационным фестивалем (да-да, именно отсюда и пошло это странное для демопати название), но только не в этот раз. В этом году будет только демопати — более лайтово, более душевно: соберемся в кафе, будем смотреть демы и общаться.

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

Код мёртв

В 1967 французский философ и литературовед Ролан Барт напечатал знаменитое эссе «Смерть автора», название которого призвано напомнить нам цитату из Ницше: «Бог мёртв». Ницше, писавший в конце XIX века, имел в виду, что бог христианства больше не является ни для кого никаким авторитетом, и пора бы уже, наконец, сбросить его с паровоза современности; а Барт применяет похожее соображение к писателям, которых старое литературоведенье считало властителями читательских дум. Барт говорит о том, что настоящая литература случается не на страницах книжки, а в голове у каждого отдельно взятого читателя. Читатель может изучать личную и общественную жизнь автора, но никогда не поймёт до конца, что именно хотел сказать ему автор. Автор может убиться, но никогда не сможет полностью проконтролировать, что именно вообразил себе читатель. Нет никаких властителей дум, автор мёртв.

Сегодня у меня для вас не менее грандиозная новость: код мёртв, причём мёртв уже довольно давно.

Код может быть жив только когда его читают, разбирают, понимают. Когда в свежевышедшей деме обсуждают не источники графона, а эффект Икс, достигнутый применением трюка Игрек. Лайк! Я не очень застал эти золотые времена, но могу себе вообразить сотни, тысячи хакеров по всей стране, запускавших дрожащими руками новую дему, и при первых звуках музона прыгающих в отладчик. Оп-а, да у них тут
pop hl : ldd
приспособлено! Вау!!! кому нужна графика, когда и так всё видно. Правила, запрещающие аниму выглядели при таком раскладе совершенно логично. Орги прыгают в отладчик, а там вместо кода — килотонны данных! Жулики! Обманули! Почитать нечего! Скандал, сопли, кишки. Плохая дема, неинтересная, осуждаем.
Читать дальше →

Famicom/NES/Денди: битва за Status Bar

На Famicom/NES/Денди было одно сильно аукнувшееся гейм–девелоперам упрощение/удешевление — вместо четырёх экранных областей объёмом 4Кб выстроенных квадратом между которыми был возможен бесшовный скроллинг (с прокруткой) в консоли оставили только 2Кб VRAM и, таким образом, было только две экранных области с бесшовным скроллингом.
Т.е. виртуальный задний фон мог бы иметь такую раскладку:

(глубже теорию вопроса можно изучить в статье про графическую архитектуру Famicom/NES)
Но в итоге оставались только две эффективных области из этих четырёх. Причём коммутацией линий картриджа их можно было выстроить как вертикально так и горизонтально (оставшиеся области «зеркалились»). Таким образом чисто вертикальные или чисто горизонтальные скроллеры реализовывались легко из коробки, но с произвольным скроллингом возникал целый ряд проблем которые решали кто как.

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

Забытые советские технологии - оживают в полдень 21 века

Наверняка многие из читающих знакомы с советским калькулятором серии МК52, МК61. И вероятно кто-то из вас помнит что Лунный Коршун, не птица и не название космического корабля. Все это когда то невероятно увлекало и меня и моего товарища по несчастью, проделавшего накануне приличную работенку по адаптации исходного кода эмулятора МК61 на платформу stm32 mk61s gitlab.
Макет МК61s в корпусе МК52

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

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

Всем привет!

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

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


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