Релиз RetroSpriteEditor 0.2.8 [open source]

Добрый день дорогие разработчики для NES (у нас же была Денди). Я занялся электроникой и пока не освоил нужных знаний, решил пописать на ассемблере для NES какие-нибудь игры и погонять байты туда-сюда. Я обнаружил, что для Linux нет нормального редактора рисования для NES и поэтому я написал свой редактор. Хочу показать его возможности, может кому-то будет интересно и я буду рад, если кто-то будет пользоваться кроме меня.

Итак, интерфейс. Я писал его на GTK4. Доступна версия для Windows. Для Linux можно готовую сборку взять на flathub

https://flathub.org/ru/apps/io.github.xverizex.RetroSpriteEditor

А для Windows можно взять на github

https://github.com/xverizex/RetroSpriteEditor

Окно с открытым проектом выглядит так:

Начальный экран
Начальный экран

Как видно, существует два холста, ну или два банка памяти. Один для спрайтов, другой для фона. В нижнем правом углу есть четыре палитры с индексами (для удобства). Можно менять цвета на лету. В PALETTE SETUP можно настроить цвет для каждой палитры сразу.

Рисование производится только карандашом. Первый цвет у палитры это цвет прозрачности и поэтому этим цветом можно стирать пиксели. В будущих версиях я добавлю новые фичи, а пока перейдем к фону.

Фон
Фон

Как мы видим, когда текущий режим - фон, то доступна кнопка SETUP SCREEN. Давайте перейдем по ней.

Размещение тайлов для экрана
Размещение тайлов для экрана

Слева наш фон. Справа экран как он будет выглядеть в игре. Это настройка экрана. красные квадраты - это мегатайлы. В NES есть ограничения по количеству цветов и я это учёл. Каждый мегатайл хранит в себе четыре палитры. Желтым цветом поделены палитры внутри красного квадрата (мегатайла). Так можно удобно оценить куда лучше поместить спрайт для фона. Можно создавать новые вкладки и размещать на них тайлы. Это будут разные экраны в игре.

Всего три команды: копирование (копируем с фона на экран), стирание (стирание с экрана). И указать настройки для мегатайла.

Когда уже устраивает картинка, то можно нажать на кнопку EXPORT и получить код на ассемблере, который будет записывать точно так же тайлы на экран. Также экспортируется вся палитра для экрана. Пока что экспортируется в ca65 ассемблер. Теперь, чтобы отобразить экран, который мы создали в программе, нам нужно всего лишь вызвать функцию и всё.

@xverizex
17.12.2023 12:15 UTC
Первоисточник

Комментарии

@ivangermes
17.12.2023 22:43 UTC
0

А подскажите, как вы добились того, что в Windows не срабатывает SmartScreen?
Приложение просто запускается и все )

Никогда не занимался разработкой под Windows.
Но недавно решил собрать свой toy project под винду.
С удивлением обнаружил, что запустить его для конечного пользователя не так уж и просто. Надо согласится с кучей всяких рисков.

Гугл подсказал, что нужно подписать приложение сертификатом за огромные тыщи ).

А у вас просто запускается и все. Без всяких предупреждений. )

@xverizex
17.12.2023 22:45 UTC
+1

Я для этого ничего не делал. Приложение написано на gtk и собрано из msys-mingw-64.

@Anrock
22.12.2023 11:14 UTC
+1

Насколько я знаю SmartScreen по умолчанию считает любые новые бинари рисковыми. Через некоторое время и некоторое количество запусков на разных машинах SmartScreen срабатывать перестанет. Дежурные issues про "в вашей программе вирус" это реальность достаточного большого количества независимых разработчиков.