Автор Тема: SGDK  (Прочитано 74220 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #120 : 05 Декабрь 2015, 11:29:45 »
Ну, дык, для СДКи ресурсы готовлю. Вряд ли тема была бы уместна в иной ветке форума.

Оффлайн worm

  • Пользователь
  • Сообщений: 1071
  • Пол: Мужской
  • Сожру
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #121 : 05 Декабрь 2015, 13:29:33 »
Люди, тема была создана для оказания помощи, а не критики её автора. Нагуглить обучалок и понять, что сега так не работает и ничего не режет, он и сам сможет. Если знаете - объясните, нет - тогда и постить нет смысла.

« Последнее редактирование: 05 Декабрь 2015, 13:59:36 от worm »

Оффлайн Ogr

  • Пользователь
  • Сообщений: 7392
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #122 : 05 Декабрь 2015, 13:32:24 »
Цитата: worm
Жаль лайки не предусмотрены xD

"лайки" за глупость? как говорится: дурак дурака...

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #123 : 05 Декабрь 2015, 13:37:25 »
worm, да у меня просто пукан бомбит от того, что взяли прекрасный инструмент, аналогов которого нет на других платформах, благодаря которому в последнее время было сделано множество пиратских игр (чип и дейл, чёрный плащ на сежку, всё благодаря ему). А какие прекрасные звуковые движки, хер где найдёте подобное или сами что-нибудь такое сделаете. Реальный труд десятка людей. Было выпущено куча хоумрю на нём и есть форум с бездонными ветками на спрайтсманде, и давай на него наговаривать:
булина нет, криво спрайты работают, херовые экзамплы в туторе, фигня, а не движок, криворукие сделали, 90% выкинуть оттуда, НИНУЖНО.

Ух, как же у меня бомбит.

Оффлайн worm

  • Пользователь
  • Сообщений: 1071
  • Пол: Мужской
  • Сожру
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #124 : 05 Декабрь 2015, 13:56:12 »
"лайки" за глупость?
Не Вам.

как говорится: дурак дурака...
Дурак-не дурак, а с грамматикой знаком)

К тому же, я попытался помочь всем, чем смог, а не писал пустые посты в стиле "нифига, это не так, чайнег", не подкреплённые никакими аргументами и не несущими в себе полезной информации.

Если кого обидел - прошу прощения, просто когда вы пишете " ты не прав", нужно также добавлять почему и как это можно решить. Мне, если больше нечего сказать, я просто молча листаю тему и как только увижу вопрос по знакомой теме - отвечу.

worm, да у меня просто пукан бомбит от того, что взяли прекрасный инструмент, аналогов которого нет на других платформах, благодаря которому в последнее время было сделано множество пиратских игр (чип и дейл, чёрный плащ на сежку, всё благодаря ему). А какие прекрасные звуковые движки, хер где найдёте подобное или сами что-нибудь такое сделаете. Реальный труд десятка людей. Было выпущено куча хоумрю на нём и есть форум с бездонными ветками на спрайтсманде, и давай на него наговаривать:
булина нет, криво спрайты работают, херовые экзамплы в туторе, фигня, а не движок, криворукие сделали, 90% выкинуть оттуда, НИНУЖНО.

Ух, как же у меня бомбит.
я понимаю, но можно же спокойно аргументировать неправоту? Бомбёжка не поможет (возьмём мой случай) понять, зачем в сгдк, к примеру, сообщение об отсутствии шрифта, если при его отсутствии, ром даже не соберется)

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #125 : 05 Декабрь 2015, 13:58:08 »
Цитата: worm
зачем в сгдк, к примеру, сообщение об отсутствии шрифта, если при его отсутствии, ром даже не соберется)

Фатальных промах стефа, а ещё 89% о чём там?

Оффлайн Ogr

  • Пользователь
  • Сообщений: 7392
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #126 : 05 Декабрь 2015, 14:06:19 »
Цитата: worm
просто когда вы пишете " ты не прав", нужно также добавлять почему и как это можно решить.

слышал выражение "половина ответа - правильно заданный вопрос"? вот то то и оно. на идиотские утверждения, получают соответствующие ответы.

Оффлайн worm

  • Пользователь
  • Сообщений: 1071
  • Пол: Мужской
  • Сожру
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #127 : 05 Декабрь 2015, 14:10:56 »
а ещё 89% о чём там?
много лишнего кода, к примеру, есть функции, состоящие из нескольких полноценных функций, без которых можно и обойтись) процессор же у сеги не двужильный) 90% это сутрировано, конечно, однако проблема есть.

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #128 : 05 Декабрь 2015, 14:18:08 »
Цитата: worm
90% это сутрировано, конечно, однако проблема есть.

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

Цитата: worm
есть функции, состоящие из нескольких полноценных функций

Что это значит, вызов функции из функций? Так делается чтобы дубляжа кода не было и для логической разбивки.

И об этом
Цитата: worm
а не писал пустые посты

Должен быть определённый порог. Есть туторы, есть куча разжёванной информации.
Когда твои вопросы выходят за покрытые темы в справке, то да, тут уже можно задавать вопросы.
Но и самому работать нужно, разбираться.


Оффлайн worm

  • Пользователь
  • Сообщений: 1071
  • Пол: Мужской
  • Сожру
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #129 : 05 Декабрь 2015, 14:30:55 »
Цитата
Да я понял что не от далёкого ума тут смеялись над "убогостью" sgdk, а от того что просто поржать вдвоём решили, заодно за свои успехи не так неудобно.
Не ты виноват же, а кривой инструмент.
Никто не смеялся над её убогостью. Успокойтесь Вы уже) а если серьезно, был бы сгдк плохим, мы бы тут его не исследовали.
Некоторые функции используются однажды, а есть и такие, которые не нужны конкретному проекту - надо бы флаги какие придумать, чтобы не собирать неиспользуемый код.

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #130 : 05 Декабрь 2015, 14:51:31 »
Так весь код доступен, меняешь его, меняешь мейкфайл и всё.
Тем более там не так его много, чтобы весь не осилить перечитать и осознать.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #131 : 06 Декабрь 2015, 11:43:24 »
Каким образом скроллить плэйн, чтоб каждый ряд пикселей, вышедший за пределы экрана, оказывался с противоположной стороны экрана ? (Как в интровой заставке jungle strike бесконечно повторяющийся фон прокручивается).

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #132 : 06 Декабрь 2015, 13:26:07 »
Ну смотри.

У тебя есть два возможных видео режима 32*28 CELL (256*224 PIXEL) и 40*28 CELL (320*224 PIXEL)
И есть такие ограничения по размеру плейнов.
32*32,    32*64,    32*128,
64*32,    64*64,    128*32

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

Но если взять стандартное разрешение сеги с шириной 320, то ширина плейна должна быть минимум 64.
И получается такая картина на примере страйка.
У тебя бэкграуд, который можно совместить по краям и не будет разрывов, и ты скролишь по нему всему, а когда он доходит до границы, то автоматически варпается.



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

Оффлайн worm

  • Пользователь
  • Сообщений: 1071
  • Пол: Мужской
  • Сожру
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #133 : 06 Декабрь 2015, 18:55:25 »
Вопрос по gendev (sgdk под линукс).
Все было хорошо до переустановки линукса. После, началась такая джигурда...
Компилирует ром с какими-то данными в начале (с нулевого оффсета).
Сначала это были jsr ссылки (4e b9 xx xx xx xx), после чего я переустановил mint в надежде на то, что проблема исчезнет, однако этого не произошло - на том месте, где был ряд jsr'ов, теперь красуется какая-то другая гадость. В мейкфайлы не лез. Что это может быть?

К слову, о windows версии...
В попе sgdk имеется гнойно-известная заноза, ошибка компиляции couldn't allocate heap, которая время от времени нарывает, давая о себе знать. В том же everdrive sdk, этой проблемы нет. Оба сдк используют одну и ту же версию компилятора - проверено в hex, 0 отличий. Разработчики винят виндузу, игнорируя исправность everfrive sdk. Как можно исправить sgdk? Я устал от этой ошибки, вылазит в 90% случаев.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #134 : 06 Декабрь 2015, 22:29:00 »
Прошу прощения что засоряю эфир, но хотел пожаловаться что у меня снова всё через Ж >:(  выходит.
Такой лютый бадыль, шо я ваще в шоке.

Вот как было, когда на сцене был только один фон, и массив спрайтиков (78 партиклов, ракетка и мячик).

(кстати, от синих катышек избавился, задав цвет фона VDP_setBackgroundColor (1). Токмо с параметром странновато пока. 1 - это очень тёмно-красный, но не чёрный. 0 - это синий. 2 - уже не помню, но цвета там как-то рандомно сделаны).

Вроде бы всё замечательно, и можно ничего не трогать и оставить, как есть.
Но мне этого мало.
Хотел было добавить плэйн скроллирующегося "тумана"
...

То есть:
- фон за плэйнами обрёл неведомо какой цвет, и сэт-бэкграунд-калор никоим образом уже не влияет.
- плэйн "тумана скроллируется, но сам туман неведомо откуда из памяти берётся. И цыхырки с координатами скроллируются вслед за ним, но это не страшно.
- благо со спрайтиками всё ок.


Палитра "тумана" в гимпе:

И она же в сеговской видео-оперативе (первая по счёту):

В содержимом VDP намёков на тайлы тумана не нашёл (должен быть дизеринг пикселей ).
Разве что вот какая-то фигня, которая постоянно меняется при скроллировании:

компрессию задавал -1. То есть аж до такого вида не могло ужать.

Сам "туман" разрешением 320*48 (между прочим, его надо дважды продублировать на плэйне, чтоб он скроллировался без разрыва. Пока не знаю как. Ну, кроме варианта предварительно в файле сделать 640 по ширине, но это изврат.)

Вряд ли дело в большом разрешении, так как в примере с соником бэкграунды вообще в 640*224.

Добавлено позже:
Цитата
но сам туман неведомо откуда из памяти берётся

Из-за невнимательности.
[Дизеринг надо будет плотнее сделать]


Но вопрос с цветом фона и состыковкой двух изображений на одном плэйне (две повторяющихся картинки шириной 320 на плэйне 640 пикселей) остаётся открыт.
« Последнее редактирование: 06 Декабрь 2015, 23:40:21 от ALKOSHA »

Оффлайн Ogr

  • Пользователь
  • Сообщений: 7392
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #135 : 07 Декабрь 2015, 00:40:48 »
Цитата: ALKOSHA
Палитра "тумана" в гимпе:

И она же в сеговской видео-оперативе (первая по счёту):

выложи спрайт(ы) которые ты в SGDK импортировал.
Цитата: ALKOSHA
Но вопрос с цветом фона и состыковкой двух изображений на одном плэйне (две повторяющихся картинки шириной 320 на плэйне 640 пикселей) остаётся открыт.

ручками сделать. ищи на подобие "создание цикличных текстур".

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #136 : 07 Декабрь 2015, 00:59:05 »
Цитата
выложи спрайт(ы) которые ты в SGDK импортировал.

Тот вопрос уже снят.
Говорю же.
Цитата
Из-за невнимательности.
забыл изменить указатель на адрес начала картинки, из-за чего вместо тайлов "тумана" выводились тайлы бэкграунда.

ручками сделать. ищи на подобие "создание цикличных текстур".

То есть сделать предварительно повторяющуюся "текстуру" в файле шириной 640 ? Не. Я не про то. Такой вариант я и сам знаю.

Тут вопрос именно в том, чтоб не засорять память, хранить в ней текстуру шириной 320, и процедурно её вывести дважды на слой.

Оффлайн Ogr

  • Пользователь
  • Сообщений: 7392
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #137 : 07 Декабрь 2015, 01:19:43 »
Цитата: ALKOSHA
То есть сделать предварительно повторяющуюся "текстуру" в файле шириной 640 ? Не. Я не про то. Такой вариант я и сам знаю.Тут вопрос именно в том, чтоб не засорять память, хранить в ней текстуру шириной 320, и процедурно её вывести дважды на слой.

сделать чтобы левый и правый края у 320 совпадали. ТЕ, не был виден шов при стыковке.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #138 : 07 Декабрь 2015, 01:30:17 »
VDP_drawImageEx(u16 plan, const Image *image, u16 basetile, u16 x, u16 y, u16 loadpal, u16 use_dma)
Думаю зеркальным отображением ещё воспользоваться, но среди атрибутов этой фишки не видать.

Добавлено позже:
сделать чтобы левый и правый края у 320 совпадали. ТЕ, не был виден шов при стыковке.

Речь не о том, как это сделать в редакторах, а-ля пэинт\фотожоп. С артом я уж как-нибудь сам разберусь.

Я про принцип процедурного вывода на плэйн.

Если сделать так 
VDP_drawImageEx(APLAN, &fog, TILE_ATTR_FULL(PAL0, FALSE, FALSE, FALSE, ind), 0, 0, FALSE, TRUE);
VDP_drawImageEx(APLAN, &fog, TILE_ATTR_FULL(PAL0, FALSE, FALSE, FALSE, ind), 320, 0, FALSE, TRUE);
То второй вывод картинки, который теоретически должен оказаться за пределами экрана, оказывается на том же самом месте, но несколькими знакоместами ниже.
Да ещё при этом снова вылазят тайлы ракетки на бэкграунд.

Методом тыка если пошаманить, вторая картинка всё равно полностью не выведется.
   
Короче, ясно. Надо уменьшить размер картинки до ~128, и где-то 3 раза её выводить.
Знать бы, сколько пикселей буфера за пределами экрана. И исправит ли это ситуацию с вылезающими на бэкграунд тайлами ракетки.

Добавлено позже:
Картина понемногу проясняется.
То координаты задаются познакоместно, а не попиксельно.

Добавлено позже:
Да. Значение 40 - то что надо.
Но как теперь избавиться от этих тайлов ракетки внизу фона ?
« Последнее редактирование: 07 Декабрь 2015, 02:32:30 от ALKOSHA »

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #139 : 08 Декабрь 2015, 20:53:34 »
В этой сгдк уже пробовали зеркалить плэйны ? Какой процедуркой ?

В примере с сонником видно, что последний флаг отвечает за зеркалку по иксу.
  if (movx > 0)
        SPR_setAttribut(&sprites[0], TILE_ATTR(PAL2, TRUE, FALSE, FALSE));
    else if (movx < 0)
        SPR_setAttribut(&sprites[0], TILE_ATTR(PAL2, TRUE, FALSE, TRUE));

Со спрайтами эта фишка работает отлично.
А плейн как отзеркалить ? Если просто поменять флаг в плэйне, то зеркалится каждый ряд знакоместа, а сам порядок тайлов остаётся без изменений.
« Последнее редактирование: 08 Декабрь 2015, 21:02:36 от ALKOSHA »

Оффлайн Ogr

  • Пользователь
  • Сообщений: 7392
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #140 : 08 Декабрь 2015, 21:05:43 »
ALKOSHA, в фотошопе фильтры-другое-сдвиг, смещаешь и зарисовываешь получившийся шов. цикличный спрайт готов.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #141 : 08 Декабрь 2015, 21:12:22 »
в фотошопе фильтры-другое-сдвиг, смещаешь и зарисовываешь получившийся шов. цикличный спрайт готов.


Знаю. То несостыковка по швам была из-за того, что изначально задавал координаты попиксельно (320 по ширине), а надо было познакоместно (40 символов по ширине).

Добавлено позже:
Щас пытаюсь зеркальное отображение сделать (дабы сэкономить на памяти)

Вот, набросал концепт, где бэкграунд симметричный.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #142 : 09 Декабрь 2015, 12:41:10 »
А есть ли в сгдк ф-ция  задержки.  Что-то вроде delay(ms) или pause(ms) ?
Или придётся делать пустым циклом?

и давай на него наговаривать:
булина нет

Если есть, то каким образом объявить булевскую переменную?


Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #143 : 09 Декабрь 2015, 13:03:30 »
ALKOSHA, вот у тебя рук с глазами совсем нет, зачем ты спрашиваешь каждую мелочь.
В timer.h заглянуть не судьба?

Цитата: ALKOSHA
Если есть, то каким образом объявить булевскую переменную?

Ты понимаешь какую чушь несёшь, тебе что, булины должны в битах храниться, чем тебе байт плох? Берёшь и объявляешь тип новый, если без шаблонов жить не умеешь.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #144 : 09 Декабрь 2015, 13:15:12 »


Цитата
Ты понимаешь какую чушь несёшь, тебе что, булины должны в битах храниться, чем тебе байт плох?

Так значит булинов, как типа переменной, всё-таки нет. О чём я и говорил ранее. Зачем же тогда было ёрничать по этому поводу?

Добавлено позже:
Ты понимаешь какую чушь несёшь, тебе что, булины должны в битах храниться, чем тебе байт плох?

Байтом в памяти переменная и так не хранится. Шина данных между процом и памятью 16-ти битная - двух байтная.
Это уже на высоком уровне переменная для пользователя представляется как байт.

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #145 : 09 Декабрь 2015, 13:19:28 »
#define boolean u8
Сложно да, сломался ты? Хватит чушь уже нести, возьми и выучи уже все функции в сдк, чтобы глупых вопросов больше не задавать.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #146 : 09 Декабрь 2015, 13:24:33 »
Цитата
чтобы глупых вопросов больше не задавать.

Ладно. Ну а на счёт зеркалки плейнов - глупый вопрос?

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #147 : 09 Декабрь 2015, 13:37:14 »
Цитата: ALKOSHA
Это уже на высоком уровне переменная для пользователя представляется как байт.

Да, ассемблер - высокий уровень, и мува там байтового не существует.
И речь о том, что ты возникал, мол чего булина нет, чего чар использовать чтоли. А разницы нет, никакой и не может быть.

Цитата: ALKOSHA
Ну а на счёт зеркалки плейнов

Ты очень плохо вопросы задаёшь, мне лень в них разбираться и отвечать на каждый. Я сдк открывал 3 года назад последний раз и то всё помню. Будет время гляну что там в плейнах по докам.



Добавлено позже:
И не, по-моему нельзя просто взять и отзеркалить плейн со всей инфой.
Зеркалишь тайлы и загружаешь в другом порядке.

Оффлайн ALKOSHA

  • Пользователь
  • Сообщений: 805
  • Люблю донди.
    • ВКонтакте
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #148 : 15 Декабрь 2015, 19:41:08 »
Скиньте, пожалуйста, сорс анимации фона 320*240, если есть таковой.
Именно не скроллами всякими или палитрами, а сменой кадров.
Хотя бы двух-кадровый.


Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1025
  • Пол: Мужской
    • Просмотр профиля
Re: Настройка SGDK
« Ответ #149 : 15 Декабрь 2015, 19:56:24 »
ALKOSHA, Ты потайлово научился плейн грузить?
Просто берёшь и грузишь новые тайлы в нужных местах и всё.

Добавлено позже:
А если ты хочешь прямо весь плейн перезагрузить, то есть два кадра полностью уникальные - не успеешь за кадр.
Только свапами плейнов или скроллом быстрым.