Разработка и ромхакинг > Программирование
[SMD] SGDK
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 чудит какую-то сатану.
Навигация
Перейти к полной версии