| Разработка и ромхакинг > Ромхакинг и программирование |
| 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". Внимательно мониторь ее, т.к. это исчадие ада может испортить все - стать причиной багов в коде проекта, либо даже причиной того, что ром и вовсе не скомпилируется. Увидел эту ошибку - просто компилируй заново. --- Конец цитаты --- |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |