Pixel Art в Linux

King's Valley objectsНовая игра, над которой уже неделю идет работа будет в old-school стиле. А для этого стиля хорошо подходит Pixel Art. До сего момента вся графика делалась в любимом мною GIMP. Но, стоит признаться самому себе, он для этого подходит не лучшим образом.

Поиск подходящих Pixel Art редакторов дал два проекта – Aseprite и GrafX2.

Aseprite Это редактор с открытым кодом, доступны бинарные сборки для Windows и OS X. Обе платные. Линуксоиды могут взять сорцы на GitHub и собрать редактор самостоятельно.

Мне для сборки Aseprite пришлось пропатчить несколько правил для сборки – оставляем libpng, giflib, pixman и libloadpng идущие в комплекте.

$ mkdir build ; cd build
$ cmake -DENABLE_UPDATER=off \
 -DUSE_SHARED_ALLEGRO4=on \
 -DUSE_SHARED_CURL=on \
 -DUSE_SHARED_JPEGLIB=on \
 -DUSE_SHARED_LIBLOADPNG=off \
 -DUSE_SHARED_LIBPNG=off \
 -DUSE_SHARED_TINYXML=on \
 -DUSE_SHARED_ZLIB=on \
 -DFULLSCREEN_PLATFORM=on  ..
$ make

После стрипаем бинарник (strip aseprite), дабы уменьшить его размер в 15 раз.

Далее кладем полученный бинарник вместе с директорией data в удобное место и пользуемся на здоровье.

Aseprite интуитивно-понятный, но у меня не умеет работать в полноэкранном режиме, размеры окна задаются в конфиге (не умеет налету менять разрешение), поддерживает одновременную работу с несколькими проектами, поддерживает слои и анимацию.

GrafX2 Расторовый графический редактор, создан под впечатлением от амиговских редакторов Deluxe Paint и Brilliance. Нацелен на создание 8-битной графики, включает большое количество инструментов и эффектов, подходящие для pixel-art, игровой графики. Редактор написан для Linux и Windows, но может быть портирован и на другие платформы (по заверению автора).

Умеет переключать разрешение окна налету, умеет полноэкранный режим. Менее интуитивен. Очень понравилась работа с палитрой цветов.

Samsung Galaxy Nexus и Android 4.2.x

Samsung Galaxy Nexus Под этой маркой идет много разных смартфонов, которые отличаются id и, соответственно, поставщиком обновления. Больше никаких различий нет. Определить по стране приобретения или по надписям на коробке поставщика обновлений нельзя. Более того, этот id нельзя посмотреть штатными средствами – нужна сторонняя утилита (тысячи их в маркете).

Мне не повезло и достался мне девайс с поставщиком от Samsung (id девайса yakjuxw), который позволил мне обновиться аж до android 4.1.1. Все, на этом Samsung свою задачу посчитал выполненной.
На днях вышло обновление до 4.2.2 и мне ну очень захотелось получить его тоже. Всяческие танцы с бубном, которые якобы позволяют уговорить Samsung прислать мне обновление не прокатывают.
Под руку попалась документация и ссылки на оригинальные образы от Google. Почитал, решился, обновился.

Итак, документация и ссылка на нужный образ – https://developers.google.com/android/nexus/images
Для установки оригинальной прошивки нужно разлочить бутлоадер (как два пальца обос-ть) – https://source.android.com/source/building-devices.html
После этого из того же фастбута заливается оригинальная прошивка (я залил 4.1.2, но можно было и сразу залить 4.2.2) и уже по воздуху ставится обновление.

Предупреждение – после заливки оригинальной прошивки (не по воздуху) все данные в девайсе (в том числе и во внутренней флешке) будут уничтожены.

Все действия делал из-под Linux.

Linux Adobe Flash bug

Наконец то нашел решение проблемы с “синими мордами” во флеше. Оказалось, что это очередной баг в Adobe Flash.
Нужно исправить (или добавить параметр) в файле /etc/adobe/mms.cfg:

EnableLinuxHWVideoDecode=1

А так же нужно запретить оверлей в ~/.bashrc:

export VDPAU_NVIDIA_NO_OVERLAY=1

Решение найдено тут.

Kindle Touch и ландшафтный режим

Наконец то появилась прошивка с поддержкой landscape режима. Теперь читать документацию в этом режиме стало гораздо удобнее.
К счастью, для обновления прошивки подойдет любая ОС, в том числе и мой любимый Linux. Достаточо залить файл с прошивкой на устройство и сказать устройству обновиться. На обновление прошивки ушло минут 10-15, устройство за это время несколько раз перегрузилось.

Из недостатков стоит заметит, что переключение режима относится ко всем книгам сразу, а не индивидуально, как того хотелось бы.

Прошивка и инструкция находятся тут – Kindle Touch firmware.

Использовани системного DPI в Firefox

Изменение DPI в системе влияет только на интерфейс Firefox, а контент страницы отображает используя DPI 96. Исправить сие можно в about:config при помоще параметра layout.css.devPixelsPerPx. Его значение можно расчитать по формуле:

SYSTEM_DPI / 96

К примеру, у меня в системе DPI = 142, следовательно 142 / 96 = 1.48. Меняем значение и наслаждаемся жизнью.

ALPS и закрытые спецификации touchpad

В моем относительно новом лэптопе, Dell Latitude e6510, установлена новая версия тачпада от жадной компании ALPS.
Сегодня решил использовать его не как обычную ps/2 мышку, а как обычный тачпад. Пора поискать решение проблемы в Гугеле. Поиск дал понять – проблема до сих пор не решена. Но есть патч для ядра, переводящий тачпад в режим IntelliMouse. А это уже хорошо, хотя и хотелось бы полноценного мультитача.

Итак, бегом в багтреккер RedHat и качаем патч Andrew Skalski’s patch enabling vertical scrolling (кстати, обратите внимание на 75 комментарий – весьма занимательное чтиво).

Патчим ядро:

# cd /usr/src/linux
# patch -p1 </path/to/alps.patch

Собираем и устанавливаем его.

В настройках X-сервера в секции тачпада вместо драйвера synaptics используем evdev. Все теперь тачпад работает как IntelliMouse.

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

$ xinput -list

Включение тачпада:

$ xinput set-int-prop YOUR_ID "Device Enabled" 8 1

Выключение тачпада:

$ xinput set-int-prop YOUR_ID "Device Enabled" 8 0

Можно написать простейший скрипт и забиндить его на клавишу отключения тачпада.

Linux, 12309, USB

Флешками пользуюсь редко, но когда это происходит, то скорость записи БОЛЬШОГО файла на флешку очень раздражает. При этом iow в максимуме, а операции с диском ужасно замедляются. Но эту проблему можно вылечить. Рекомендации от shimon (некто с LOR):

# sysctl vm.overcommit_memory=2
# echo 8388608 > /proc/sys/vm/dirty_bytes
# echo 8388608 > /proc/sys/vm/dirty_background_bytes

по умолчанию везде были нули.

Теперь запись на флешку делается существенно быстрее без тормозов системы. Я очень доволен.

Все подробности описаны в борьба с багом 12309.

Разработка Android-приложений под Gentoo Linux

Решил опробовать свои силы в разработке приложений (точнее игр) под Android. Поскольку моя основная домашняя система Gentoo Linux, то я решил разобраться с вопросом разработки именно под ней.

Все не так сложно, когда знаешь, что и как нужно устанавливать. Хотя мне предварительно пришлось повозиться с поиском и осознанием документации.
» Read more

1 2 3 21