Разработка и ромхакинг > Программирование
[SMD] SGDK
<< < (3/42) > >>
Doomguard45:

--- Цитата: s1nka от 12 Ноябрь 2015, 17:10:13 ---Doomguard45, это же SDK. Как его потом как запускать?
А так в /opt/ установить и потом игры собирать через Makefiles спокойно.

worm, я решил не мусорить в своей системе, сейчас виртуалку хочу подготовить и в ней всё собрать.
Были deb-пакеты со старой сборки еще на googlecode. У меня даже сохранился:
> 507df13eda6e02a2841af5d196671446 *gendev_1_all.deb
Его можно использоваться для сборки deb-пакета новой версии.

--- Конец цитаты ---

Ну на крайняк chmod, раньше я по своей глупости всё инсталил в систему, в итоге упала в один момент, сейчас только так  - никаких проблем
Takamura-kun:

--- Цитата: s1nka от 12 Ноябрь 2015, 17:10:13 ---Doomguard45, это же SDK. Как его потом как запускать?
А так в /opt/ установить и потом игры собирать через Makefiles спокойно.

worm, я решил не мусорить в своей системе, сейчас виртуалку хочу подготовить и в ней всё собрать.
Были deb-пакеты со старой сборки еще на googlecode. У меня даже сохранился:
> 507df13eda6e02a2841af5d196671446 *gendev_1_all.deb
Его можно использоваться для сборки deb-пакета новой версии.

--- Конец цитаты ---
Хорошо) я уже во всю проекты пилю :lol:
Единственное, что настораживает, так это...
--- Цитата: Компилятор ---предупреждение: несовместимые типы для внутренней функции «strcmp» [по умолчанию включена]
--- Конец цитаты ---
Хотя лучше такие относительно безобидные предупреждения, чем этот триклятый couldn't allocate heap, от которого спасения нет, на не менее триклятой виндузе.
ALKOSHA:
Тут не столько  триклятая виндуза с триклятыми убунтами, сколько триклятая сама СДК с триклятыми спрайтами.

Вот basiegaxorz менее триклятый, вроде. Но туторы на испанском нашёл только.
Как я понял, в data массив перегоняются программой imagenesis.
На практике ещё не осваивал, на днях попробую.
А триклятую sgdk думаю оставить до лучших времён, когда на неё запилят путёвый интерфейс и утилиты конвертации триклятых спрайтов (только сомневаюсь, что это произойдёт когда-нибудь).
Takamura-kun:
ALKOSHA, попробуйте проект violence pingouin от djcc, там все спрайты рисованы в graphics gale.
ALKOSHA:

--- Цитата: ALKOSHA от 17 Ноябрь 2015, 07:02:18 ---А триклятую sgdk думаю оставить до лучших времён, когда на неё запилят путёвый интерфейс

--- Конец цитаты ---

Настроил код-блокс (под триклятой вендой, конечно же), дАволен. :(
Хоть давно есть руководства по настройке эклипса, но C::B мне роднее.

А что касается васика, с ним есть траблы в плане 6-ти кнопочного контроллера, а так же со скроллингом. Но те траблы выявил не я. Читанул отзывы рэтро-программиздов.


--- Цитата: worm от 17 Ноябрь 2015, 07:38:44 ---ALKOSHA, попробуйте проект violence pingouin от djcc, там все спрайты рисованы в graphics gale.

--- Конец цитаты ---

яжНЕпрограммист, разбираться в чужом коде из десятков сишных файликов для меня занятие непосильное. Тем паче, как быть если захочу конвертануть из png или bmp...


Takamura-kun:

--- Цитата: ALKOSHA от 17 Ноябрь 2015, 22:35:28 ---Хоть давно есть руководства по настройке эклипса, но C::B мне роднее.

--- Конец цитаты ---
Java зло. Никогда не любил java программы. А гайд по настройке C::B есть давно на сайте sgdk :)

--- Цитата: ALKOSHA от 17 Ноябрь 2015, 22:35:28 ---А что касается васика, с ним есть траблы в плане 6-ти кнопочного контроллера, а так же со скроллингом.
--- Конец цитаты ---
Хоть и говорят, что начинать лучше с простого, ЯЩЕТАЮ, что лучше сразу погрузиться в изучение профессионального языка. Бейсик это так, песочница + далеко на нем не уедешь. Мы же с рождения не учили сначала английский язык, потому, что он проще русского, не говоря уже об азиатах) ...хоть и было бы неплохо.

--- Цитата: ALKOSHA от 17 Ноябрь 2015, 22:35:28 ---Тем паче, как быть если захочу конвертануть из png или bmp

--- Конец цитаты ---
В sgdk есть genres, там проблем с конвертацией не должно быть) он поддерживает много чего.
ALKOSHA:
Ну вот, допустим, начнём с чего попроще.  :neznayu: Не с пингвина того, криво нарисованного в графикс-гейле (в духе нынешних тошнотворных инди-игр), а с того, что поставляется в качестве примера в комплекте с СДК.
Залазим, значит, в gfx.res. Смотрим, шо там такое происходит.

--- Код: ---IMAGE bgb_image "bgb.png" -1
IMAGE bga_image "bga.png" -1
--- Конец кода ---

Собсно, указаны дэфайны файлов, которые конвертятся в ром в виде набора тайлов. -1 означает (как сказано в мануале)  лучшая компрессия.
Ну, по всей видимости, тут в лучшем случае RLE-алгоритм какой-нибудь.

Дальше интереснее - спрайты Саника.

--- Код: ---SPRITE sonic_sprite "sonic.png" 6 6 -1 5

--- Конец кода ---

6 6 - Ширина\высота. Это указано количество тайлов 8*8, приходящихся на спрайт? Или шо это ваще?
-1 - степень компрессии.
5 - интервал показа спрайта в анимации, насколько я понимаю.

Короче, мне необходимо для разгона именно раздуплиться с этим базисом. Помогите, пжалуйста.
Хочу понять, как сделать вывод массива спрайтов более 32*32. И в данном примере на бэкграундовые слои наложена сплошная картинка, а как организовать именно массивом тайлов, к примеру, 48*48 пикселей каждый тайл.
С сишными массивами я знаком. Мне бы просто понять нюансы этой сдк в плане спрайтов, тайлов, палитр и прочих заморочек рэтро-графики.
Takamura-kun:
ALKOSHA, на Вашем месте, я бы не стал ковырять пример соника - он до жути криво написан. Чем больше будет спрайт Вашего персонажа, тем больше будет лагов. Ну, а если для Вас главное - разобраться с самой структурой - тут все просто. Главное, чтобы спрайт был кратным восьми - можете забить spritesheet кубиками 8 на 8 или 16 на 16 и выделить каждую область такого размера, насколько большим должен быть 1 спрайт. Ширина и высота спрайта, как Вы заметили, указывается в .res, остальное в main.c в дефайнах :)

Анимации в spritesheet идут по вертикали и обозначены в исходнике дефайнами для удобства.

--- Код: ---#define ANIM_STAND      0
#define ANIM_WAIT       1
#define ANIM_WALK       2
#define ANIM_RUN        3
#define ANIM_BRAKE      4
#define ANIM_UP         5
#define ANIM_CROUNCH    6
#define ANIM_ROLL       7
--- Конец кода ---

Вот пример картинки, в .res указать SPRITE sonic_sprite "untitled.png" 8 10 -1 5
ALKOSHA:
Перерисовал спрайт Агрессора (https://youtu.be/iVOKmySBXsU) под 4-ёх битную палитру.



Нормально? Или шляпа получается? (хочу портировать его на сегу)
Takamura-kun:

--- Цитата: ALKOSHA от 24 Ноябрь 2015, 19:27:00 ---Нормально? Или шляпа получается? (хочу портировать его на сегу)

--- Конец цитаты ---
Вполне адекватно) "ябиграл" :lol:
Заинтересовал Ваш агрессор, на чем он писАлся?)
ALKOSHA:

--- Цитата: worm от 24 Ноябрь 2015, 19:41:37 ---на чем он писАлся?

--- Конец цитаты ---

На плюсах (хотя с самого начала ООП не использовал, за что и поплатился, захлебнувшись набором кучи переменных и ф-ций). Для вывода спрайтов и звука юзал библиотеку HGE.

Потом как-нибудь надеюсь полностью двиг под ООП переписать.
Takamura-kun:

--- Цитата: ALKOSHA от 24 Ноябрь 2015, 19:56:03 ---Потом как-нибудь надеюсь полностью двиг под ООП переписать.

--- Конец цитаты ---
Если под сегу, лучше остаться на породистых сях, я читал, плюсы дают более слоупочный и жирный код)
ALKOSHA:

--- Код: --- Image res/aggressor.png use color index >= 64
IMAGE resource require image with a maximum of 64 colors.
rm res/gfx.s

--- Конец кода ---

Цветов в sprite-shit'e  менее шестнадцати штук. Но сохранён он в 8-ми битной палитре (прозрачные пикселы тоже есть. В примере с соником они тоже присутствуют).
Как корректно сохранить png, чтоб компилятор ресурсов не матюкался ? Шоб с учётом прозрачных пикселей.

Добавлено позже:
Надо как-то уменьшить битность индексации палитры.
А то неиспользуемые цвета заполняют все 8 бит.



Добавлено позже:
О, в фотошопе есть Save for web, где можно указать кол-во индексированных цветов.

Добавлено позже:
Мда... транспарент не сохранился. Вместо него пиксели белые.
Да и палитра нарушена.

Takamura-kun:

--- Цитата ---Как корректно сохранить png, чтоб компилятор ресурсов не матюкался ?
--- Конец цитаты ---
1) Максимум - 16 цветов. В фотошопе image > mode > indexed color.
2) В размерах, картинка должна быть кратной 8ми.

--- Цитата ---- Шоб с учётом прозрачных пикселей.
- Мда... транспарент не сохранился. Вместо него пиксели белые.

--- Конец цитаты ---
Так и думал, что возникнет проблема с фоном - сам возился, помню))
"Фон" спрайта должен быть закрашен первым цветом палитры. Причем не важно, какой это цвет, главное, чтобы он был первым (слева) - первый цвет для сеги всегда прозрачный. :)
Видите, у Вас первым цветом местами закрашен персонаж? В этих местах, он прозрачный)

--- Цитата ---Да и палитра нарушена.
--- Конец цитаты ---
В сеге заложено всего (если ошибаюсь - поправьте) 256 цветов, которые она может отобразить. Если хоть один цвет из Вашей палитры не соответствует ни одному из тех, что заложены в сеге, компилятор подгоняет его под самый "родственный" этому цвету.
Например, если у Вас в палитре есть достаточно темный желто-зеленый цвет, компилятор может преобразовать его в коричневый.
ALKOSHA:

--- Цитата: worm от 25 Ноябрь 2015, 08:13:25 ---1) Максимум - 16 цветов. В фотошопе image > mode > indexed color.

--- Конец цитаты ---

Режим в фотожопе с индексированными цветами.
Более того, сохранял из фотошопа как 64-мя индексами, так и с 16-тью - результат один и тот же.


Добавлено позже:

--- Цитата ---Видите, у Вас первым цветом местами закрашен персонаж? В этих местах, он прозрачный)
--- Конец цитаты ---

Точно. Я и забыл уже сей момент.

Добавлено позже:

--- Цитата: worm от 25 Ноябрь 2015, 08:13:25 ---В сеге заложено всего (если ошибаюсь - поправьте) 256 цветов, которые она может отобразить.

--- Конец цитаты ---

512, вроде.

То есть надо взять дамп сеговской палитры, и ею рисовать? Окей попробую.
Не знаю насколько верная эта палитра, воспользуюсь ею для начала:
Takamura-kun:

--- Цитата: ALKOSHA от 25 Ноябрь 2015, 14:18:05 ---512, вроде.

--- Конец цитаты ---
Тьфу, 512. Пардон - голова дырявая)

--- Цитата: ALKOSHA от 25 Ноябрь 2015, 14:18:05 ---То есть надо взять дамп сеговской палитры, и ею рисовать?
--- Конец цитаты ---
Для достижения лучшего результата, лучше так и сделать. Но я, лично, не парюсь)
ALKOSHA:
Вот только непонятно, каким образом переместить прозрачный цвет  в таблице индексов на первое место.
Takamura-kun:

--- Цитата: ALKOSHA от 25 Ноябрь 2015, 15:32:55 ---Вот только непонятно, каким образом переместить прозрачный цвет  в таблице индексов на первое место.

--- Конец цитаты ---
Первый цвет сделать, к примеру, фиолетовым и залить им фон)
SPOT:

--- Цитата: ALKOSHA от 25 Ноябрь 2015, 14:18:05 ---Не знаю насколько верная эта палитра, воспользуюсь ею для начала:

--- Конец цитаты ---
Для понимания процесса советую прочитать "Sega MegaDrive палитра".
ALKOSHA:

--- Цитата: SPOT от 25 Ноябрь 2015, 16:16:12 ---Для понимания процесса советую прочитать "Sega MegaDrive палитра".


--- Конец цитаты ---

Та ну. Ковыряться в HEX-значениях муторное занятие.
Компилятор ресурсов и без того вполне нормально компарирует цвет к ближайшим значениям.

Добавлено позже:

--- Цитата: worm от 25 Ноябрь 2015, 16:02:28 ---Первый цвет сделать, к примеру, фиолетовым и залить им фон)

--- Конец цитаты ---

Хмм... ща попробовал кое-как отсортировать средствами фотошопы таким образом, чтоб сиреневый цвет был первым (сортировка по интенсивности цвета).
В процессе компиляции крашит  :-\
Что странно, графику-то компилит до конца, а крашит в момент компиляции посредством xgmtool.exe (отвечает за музло).

Добавлено позже:


Добавлено позже:

--- Цитата -----> executing plugin XGM...
Executing E:\sgdk112\bin/xgmtool "res/sonic1.vgm" "res/sonic1.bin" -s
rm res/music.s res/gfx.s
--- Конец цитаты ---
...
Скопировал со слиянием все подкаталоги из sample, только тогда докомпилировало до конца.
Почему-то если удалить то, что XGMtool нагадил во время сборки - крашит. А то, что графическая либа собирает нужно удалять для пересборки, иначе результата не видно будет. Но с либой музыки какая-то муть.

Добавлено позже:
всё-равно шляпа.


Добавлено позже:


Добавлено позже:
Похоже, что transparent  в любом случае 0x00 (чёрный, вне зависимости от расположения в таблице индексов). :?

Добавлено позже:
 0_0

Сделал чёрный цвет - заливкой на прозрачность, а самого чувака чуть-чуть прибавил в сторону серого.
Вроде уже и нормально на первый взгляд...


На второй взгляд...


Само музло играет на своей волне, а вот MC68000 чудит какую-то сатану.
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии