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