Разработка и ромхакинг > Ромхакинг и программирование
SGDK
<< < (17/40) > >>
Ti_:

--- Цитата: ALKOSHA от 01 Декабрь 2016, 00:09:51 ---Полно? Ха!
Я знаю только Road rash, scitchin, Zero tolerance, Outlander, Blood shot, Corporate, Duke nukem, заставки Battletoads DD (так же, как и на денде, только менее дискретно, и более хайрезно)... эмм... больше пока ничего не припомню.

--- Конец цитаты ---
Ну в той же Дюне карта расширяется на брифинге.

--- Цитата: ALKOSHA от 01 Декабрь 2016, 00:09:51 ---Полное вращение на 360' делается тоже пререндером.

--- Конец цитаты ---
https://www.youtube.com/watch?v=Ue8O9QKzrBk

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

--- Цитата: ALKOSHA от 30 Ноябрь 2016, 20:44:54 ---99% игор с масштабированием\вращением спрайтов -  тоже ведь пререндер.
(И зачастую симметричный.)

--- Конец цитаты ---
75% игр в которых всякие псевдо вращения и растровые эффекты? Оставшееся пререндер/программно поровну. Во всяком случае не 1% точно.
ALKOSHA:

--- Цитата: Ti_ от 01 Декабрь 2016, 10:24:26 ---Ну в той же Дюне карта расширяется на брифинге.
--- Конец цитаты ---
Но не спрайт же.
Так быстро скейлить сега может лишь за счёт растрового эффекта.
Это ВЕСЬ слой скейлится. А спрайт относительно спрайта не отскейлишь так.
Lawnmower Man последний босс. Там тоже быстро масштабируется рожа. Но это не спрайт тоже -  растровый эффект. Как и параллакс попиксельный почти.
Только пока не знаю каким образом по горизонтали растягивается.

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

--- Цитата: ALKOSHA от 01 Декабрь 2016, 10:48:08 ---Во всяком случае не 1% точно.
--- Конец цитаты ---

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

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

--- Цитата: Ti_ от 01 Декабрь 2016, 10:24:26 ---https://www.youtube.com/watch?v=Ue8O9QKzrBk

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

Скорее всего тоже пререндер. Надо смотреть VDP.

 С попиксельным выводом сежка гладко не утянет такое.

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

Добавлено позже:
И даже тут - растровый эффект с попиксельным скроллом + пререндер на определённые углы.
https://youtu.be/OGDtViPngi8?t=217

Это всё из-за того, что по вертикали сега не умеет скроллить попиксельно. А лишь по 16 пикселей. Поэтому полный оборот не сделаешь.

Добавлено позже:
Вся жизнь этой чахленькой приставки - сплошной пререндер. :hang:

Добавлено позже:
Парадокс, но даже на СНЕС есть пререндер спрайтов.
Топ гир 2. Видимо, наспех портировали, не адаптировав под аппаратную графику.
Машинки дискретно приближаются, и за счёт симметрии виден стык диззеринга пикселей. Возможно есть ещё подобные случаи.
 
Подозрительно тормозной Outlander. Сега уж ладно, у неё видяха каличная. Но на СНЕС фпс ничуть не выше. И "приближается" как то рывками (хрусть-хрусть-хрусть), будто тоже пререндер.
Ti_:

--- Цитата: ALKOSHA от 01 Декабрь 2016, 10:48:08 ---Но не спрайт же.
Так быстро скейлить сега может лишь за счёт растрового эффекта.
Это ВЕСЬ слой скейлится. А спрайт относительно спрайта не отскейлишь так.

--- Конец цитаты ---
Ну да не спрайт. Ну в видеопамяти видно что тайлы расширяются, то есть не растровый.


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

--- Цитата: ALKOSHA от 01 Декабрь 2016, 10:48:08 ---Скорее всего тоже пререндер. Надо смотреть VDP.

--- Конец цитаты ---
посмотри
ALKOSHA:

--- Цитата: Ti_ от 01 Декабрь 2016, 11:32:26 ---посмотри

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

Но не факт, что это даст пояснение. Ведь если оно находу тянет спрайты с картриджа, то VDP обновляться будет в реалтайме, как и любая другая мелкая анимация.
blackbird_ru:

--- Цитата: ALKOSHA от 01 Декабрь 2016, 10:48:08 ---Парадокс, но даже на СНЕС есть пререндер спрайтов.
--- Конец цитаты ---
Так снес не умеет зумить и вращать спрайты, только один фоновый слой.
Ti_:
Выдрал код вращения спрайтов из турикана:
MetalliC:
симпатично. только table1.bin не табличка, а хренова кучка процедурок поворота на все возможные углы.
ALKOSHA:

--- Цитата: Ti_ от 01 Декабрь 2016, 19:28:33 ---Выдрал код вращения спрайтов из турикана:
--- Конец цитаты ---
0_0
ALKOSHA:
Как бы так Стэфу намекнуть, чтоб он всё-таки помимо автоматического определение зеркальных тайлов сделал  зеркалку всего изображения.
Вот например домик (ну к примеру. Там всё что угодно, любую декорацию) чтоб как-то разнообразить надо флипнуть. А это значит надо весь тайл-сэт перебирать в цикле. Я не программизд, для меня это сложновато и непонятно. Было бы удобней, если бы в функции вывода пикчи был флаг зеркального изображения, а то зеркалятся лишь тайлы, а позиции их остаются неизменными.

worm:
Ti_, Проиграл с подливой от вращающегося сцаника :'D
ALKOSHA:
Странная фишечка в новой версии SGDK.
Когда спрайт уходит за экран, то он затирается. То есть если вернуть его координаты в видимую область, та часть его, что оказалась за экраном, будет стёрта.
В предыдущей версии такого не было. Там спрайт хорошо себя чувствовал на всём виртуальном экране 512*512... Или какой-то флаг надо включить, или чё?  :?


--- Код: ---sprites[0] = SPR_addSprite(&logo1, 100, 100, TILE_ATTR(PAL2, TRUE, FALSE, FALSE));// так инициализирую
...
logopos++;
SPR_setPosition(sprites[0], logopos, 75); // так перемещаю


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

Добавлено позже:
Или настроить разрешение виртуальной области, или чё  :? ?
ALKOSHA:
Была последняя надежда на пояснение.



ALKOSHA:
Ну бадыль конкретный же.
Не только со спрайтами, а и с плэйнами.
Плэйны тоже затираются.  >:(
ALKOSHA:
А, не. То я протупил в коде. Плэйны скроллятся нормально.
Но спрайты всё равно стираются, оказавшись за экраном.  :neznayu:
Томахомэ:
Нужна помощь в научении компиляции при помощи IDE - тут вот как раз начал изучать Сишку, а тренируемые навыки решил обкатывать на Megadrive, хеллоуворлдики свои первые для него делать. Ну и вот, самое сложное здесь для меня - это собрать из исходника готовый ром. В качестве IDE решил выбрать Code::Blocks, благо, из всех предложенных на Github-страничке проекта настройка именно этого IDE была показана и объяснена наиболее подробно и наглядно.
Только вот сделал я всё вроде по инструкции, однако при сборке компилятор выдаёт ошибки:


--- Код: ----------------- Build: Debug in VsemPrivet (compiler: SGDK)---------------

Checking if target is up-to-date: make.exe -q -f C:\Users\1\Downloads\sgdk122a\makefile.gen Debug
Running command: make.exe -f C:\Users\1\Downloads\sgdk122a\makefile.gen
C:/Users/1/Downloads/sgdk122a/bin/mkdir -p src/boot
C:/Users/1/Downloads/sgdk122a/bin/mkdir -p out
C:/Users/1/Downloads/sgdk122a/bin/mkdir -p out/src
C:/Users/1/Downloads/sgdk122a/bin/mkdir -p out/res
C:/Users/1/Downloads/sgdk122a/bin/gcc -BC:/Users/1/Downloads/sgdk122a/bin -n -T C:/Users/1/Downloads/sgdk122a/md.ld -nostdlib out/sega.o @out/cmd_ C:/Users/1/Downloads/sgdk122a/lib/libmd.a C:/Users/1/Downloads/sgdk122a/lib/libgcc.a -o out/rom.out
C:/Users/1/Downloads/sgdk122a/lib/libmd.a(sys.o): In function `_start_entry':
sys.c:(.text+0x906): undefined reference to `main'
C:/Users/1/Downloads/sgdk122a/lib/libmd.a(sys.o): In function `_reset_entry':
sys.c:(.text+0x914): undefined reference to `main'
make: *** [out/rom.out] Error 1
Process terminated with status 2 (0 minute(s), 1 second(s))
2 error(s), 0 warning(s) (0 minute(s), 1 second(s))
 

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

Никто не знает, в чём тут дело?
worm:
Томахомэ, похоже, дело в linker settings. Не знаю, почему этот шаг упустили в новой инструкции - в более ранних ее версиях описывалось, что в linker settings нужно включить файлы .a расширения из папки lib. Вообще, SGDK я не "навещал" уже давно, а codeblocks - тем более, т.к. лично для меня, bat-ник оказался удобнее. Там даже пути в environment variables не надо прописывать - указал в батнике, да и все.
@echo off

@SET GDK=C:/SGDK
@SET GDK_WIN=C:\SGDK
@SET PATH=C:\SGDK\bin;%PATH%

echo =================== CLEANING... ====================
if exist out rmdir out /s /q
if exist src\boot rmdir src\boot /s /q
if exist res\*.h del res\*.h
if exist res\*.s del res\*.s

echo =================== BUILDING... ===================
%GDK_WIN%\bin\make -f %GDK_WIN%\makefile.gen

echo ==================== DONE! ======================
pauseКладешь эту дрянь в папку с проектом, запускаешь, ром готов. Только учти, если у тебя vista или более поздняя виндуза, то с 50% вероятностью, ты словишь ошибку "couldn't allocate heap". Внимательно мониторь ее, т.к. это исчадие ада может испортить все - стать причиной багов в коде проекта, либо даже причиной того, что ром и вовсе не скомпилируется. Увидел эту ошибку - просто компилируй заново. Эта ошибка - не побочный эффект батника, я ловил ее множество раз на code blocks. Это - причина криворукости одной печально известной корпорации, ныне нагло проталкивающей нам свои обновления. На линуксе этой проблемы нет, однако порт давно не обновлялся.
Томахомэ:

--- Цитата: worm от 03 Апрель 2017, 00:53:15 ---Томахомэ, похоже, дело в linker settings. Не знаю, почему этот шаг упустили в новой инструкции - в более ранних ее версиях описывалось, что в linker settings нужно включить файлы .a расширения из папки lib. Вообще, SGDK я не "навещал" уже давно, а codeblocks - тем более, т.к. лично для меня, bat-ник оказался удобнее. Там даже пути в environment variables не надо прописывать - указал в батнике, да и все.
@echo off

@SET GDK=C:/SGDK
@SET GDK_WIN=C:\SGDK
@SET PATH=C:\SGDK\bin;%PATH%

echo =================== CLEANING... ====================
if exist out rmdir out /s /q
if exist src\boot rmdir src\boot /s /q
if exist res\*.h del res\*.h
if exist res\*.s del res\*.s

echo =================== BUILDING... ===================
%GDK_WIN%\bin\make -f %GDK_WIN%\makefile.gen

echo ==================== DONE! ======================
pauseКладешь эту дрянь в папку с проектом, запускаешь, ром готов. Только учти, если у тебя vista или более поздняя виндуза, то с 50% вероятностью, ты словишь ошибку "couldn't allocate heap". Внимательно мониторь ее, т.к. это исчадие ада может испортить все - стать причиной багов в коде проекта, либо даже причиной того, что ром и вовсе не скомпилируется. Увидел эту ошибку - просто компилируй заново. Эта ошибка - не побочный эффект батника, я ловил ее множество раз на code blocks. Это - причина криворукости одной печально известной корпорации, ныне нагло проталкивающей нам свои обновления. На линуксе этой проблемы нет, однако порт давно не обновлялся.

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

Сработало! Большое вам спасибо!
worm:

--- Цитата: Томахомэ от 03 Апрель 2017, 06:28:07 ---Сработало! Большое вам спасибо!

--- Конец цитаты ---
Рад, что оказался кому-то полезен)
Томахомэ:
При попытке скомпилировать исходник на C++ батник выдаёт такую вот ошибку: см. скриншот.

Тут что может быть причиной?
worm:
А об этой ошибке я писал выше)

--- Цитата: worm от 03 Апрель 2017, 00:53:15 ---Только учти, если у тебя vista или более поздняя виндуза, то с 50% вероятностью, ты словишь ошибку "couldn't allocate heap". Внимательно мониторь ее, т.к. это исчадие ада может испортить все - стать причиной багов в коде проекта, либо даже причиной того, что ром и вовсе не скомпилируется. Увидел эту ошибку - просто компилируй заново.
--- Конец цитаты ---
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

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