DC-SWAT Forum
Помощь новичку в программировании под дрим. - Версия для печати

+- DC-SWAT Forum (http://www.dc-swat.ru/forum)
+-- Форум: Sega Dreamcast (/forum-2.html)
+--- Форум: Programming (/forum-8.html)
+--- Тема: Помощь новичку в программировании под дрим. (/thread-3655.html)

Страниц: 1 2 3


Помощь новичку в программировании под дрим. - Ivan Guber - 04.11.2019 15:41

Нужна помощь в сборке библиотеки libgl от kazade в DreamSDK.
Стандартные библиотеки устанавливаются в два клика через DreamSDK менеджер, а эту как то видимо вручную надо ставить. Если не сложно опишите процес установки и сборки данной библиотеки в mingw (установлена DreamSDK R2).


RE: Помощь новичку в программировании под дрим. - megavolt85 - 04.11.2019 18:28

распакуй libgl в kos-ports
открой консоль mingw в директории libgl
дай команду make


RE: Помощь новичку в программировании под дрим. - Ivan Guber - 04.11.2019 20:26

Я так и делал, но библиотека не компилируется, выдает ошибку. Huh

[Изображение: IrI3LCj.png]


RE: Помощь новичку в программировании под дрим. - megavolt85 - 04.11.2019 20:47

такое ощущение что не настроена переменная PATH
кстати переименуй папку libgl в GLdc ,в мейк файле есть завязка на это
дай команду make create_kos_link , потом make build


RE: Помощь новичку в программировании под дрим. - Ivan Guber - 04.11.2019 21:32

Дал команду make_create_kos_link и выдало ошибку, потом ввел make build и в итоге библиотека собралась.

[Изображение: Yr74dNz.png]


RE: Помощь новичку в программировании под дрим. - Ivan Guber - 04.11.2019 23:48

Пытался собрать пример depth func от kazade, но он не собирается. Указал путь к примеру и дал команду make в итоге ошибка (как я понял компилятор не находит библиотеку libGLdc).

[Изображение: qzsY4js.png]
[Изображение: dQMiX0m.png]

Установил библиотеку libpng чтобы посмотреть в какие директории DreamSDK кладет header'ы и lib и закинул по такому же принципу header'ы и lib от GLdc.

В общем libGldc.a положил в /kos-port/lib и /kos-port/Gldc/inst/lib
gl.h, glu.h, glext.h и glkos.h в /kos-port/include/GL и /kos-port/Gldc/inst/include

Не могу понять почему компилятор не собирает пример? Ведь я закинул библиотеку в нужные папки, а толку нет!

Попробовал собрать пример png (который идет в комплекте с DreamSDK) он прекрасно собирается и работает на дриме.


RE: Помощь новичку в программировании под дрим. - megavolt85 - 05.11.2019 00:23

это косяк в Makefile этого примера, в нём не указано что надо линковать с libGldc

надо добавить -lGldc
$(OBJEXTRA) -lGldc -lm -lkosutils $(KOS_LIBS)


RE: Помощь новичку в программировании под дрим. - SWAT - 05.11.2019 09:23

Зачем вообще эта приставка dc там не понятно, KOS уже давно вся ориентирована только на дрим.


RE: Помощь новичку в программировании под дрим. - Ivan Guber - 05.11.2019 09:58

(05.11.2019 00:23)megavolt85 писал(а):  это косяк в Makefile этого примера, в нём не указано что надо линковать с libGldc

надо добавить -lGldc
$(OBJEXTRA) -lGldc -lm -lkosutils $(KOS_LIBS)
Огромное спасибо! Теперь пример скомпилился, но в CodeBlock пример не хочет компилироваться и соответственно я не могу из за этого использовать debug.

Я создал новый проект в Codeblock и скопировал туда код из примера depth_func. В project->build options->link settings->link libraries указал путь \kos-port\Gldc\lib\libGLdc.a
В итоге при сборке CodeBlock находит ошибки в glu.c, named_array.c и draw.c

В чем может быть проблема?

скриншоты (Click to View)

Цитата:||=== Build: Debug in depth_func (compiler: GNU GCC Compiler for Sega Dreamcast) ===|
c:\dreamsdk\msys\1.0\opt\toolchains\dc\sh-elf\bin\..\lib\gcc\sh-elf\4.7.3\..\..\..\..\sh-elf\bin\ld.exe: C:\DreamSDK\msys\1.0\opt\toolchains\dc\kos-ports\GLdc\inst\lib\libGLdc.a(glu.o)||in function `gluPerspective':|
C:\DreamSDK\msys\1.0\opt\toolchains\dc\kos-ports\GLdc\GL\glu.c|14|undefined reference to `_tanf'|
c:\dreamsdk\msys\1.0\opt\toolchains\dc\sh-elf\bin\..\lib\gcc\sh-elf\4.7.3\..\..\..\..\sh-elf\bin\ld.exe: C:\DreamSDK\msys\1.0\opt\toolchains\dc\kos-ports\GLdc\inst\lib\libGLdc.a(named_array.o)||in function `named_array_init':|
C:\DreamSDK\msys\1.0\opt\toolchains\dc\kos-ports\GLdc\containers\named_array.c|19|undefined reference to `_ceil'|
c:\dreamsdk\msys\1.0\opt\toolchains\dc\sh-elf\bin\..\lib\gcc\sh-elf\4.7.3\..\..\..\..\sh-elf\bin\ld.exe: C:\DreamSDK\msys\1.0\opt\toolchains\dc\kos-ports\GLdc\inst\lib\libGLdc.a(draw.o)||in function `light':|
C:\DreamSDK\msys\1.0\opt\toolchains\dc\kos-ports\GLdc\GL\draw.c|982|undefined reference to `_fminf'|
||error: ld returned 1 exit status|
||=== Build failed: 4 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|



RE: Помощь новичку в программировании под дрим. - megavolt85 - 05.11.2019 17:54

ты не указал в CodeBlock что нужно слинковать ее с библиотекой математических функций libm ( -lm )


RE: Помощь новичку в программировании под дрим. - Ivan Guber - 05.11.2019 19:03

megavolt85 огромное спасибо! Теперь пример собирается в CodeBlock. Если бы ты мне не помог, я бы еще долго думал в чем проблема.


RE: Помощь новичку в программировании под дрим. - PVS - 06.11.2019 02:54

megavolt85
Ты мне как-то скидывал либы КОС2018 собранные на gcc 5.2.0, если сейчас у тебя есть собранный КОС на более новом gcc, то поделись, если не трудно Smile


RE: Помощь новичку в программировании под дрим. - megavolt85 - 06.11.2019 03:29

сиди на 5.2.0, я задрался баги вылавливать на более свежих компиляторах, вот вроде всё нормально, тут бах эксепшн какой нибудь, собираю тот же код на 5.2.0, работает как часы
а cpp на новых так и вовсе глючит, так что не советую обновляться


RE: Помощь новичку в программировании под дрим. - Ivan Guber - 07.01.2020 17:18

Возникла проблема с запуском примера multitexture_arrays. В main.c и pvr-texture.c прописал корректный путь к header'aм, в makefile добавил -lGldc, при сборке ошибок нет, но при запуске на дриме выдает черный экран.

в логе выдает ошибку

OUTPUT:> Assertion "0 && "Not Implemented"" failed at GL/draw.c:748 in `_readDiffuseData'
OUTPUT:> arch: shutting down kernel

Как ее исправить?


RE: Помощь новичку в программировании под дрим. - megavolt85 - 07.01.2020 20:24

надо код смотреть, по этой ошибке трудно что либо сказать


RE: Помощь новичку в программировании под дрим. - megavolt85 - 07.01.2020 23:13

а вообще тебе как начинающему рекомендую осваивать KATANA SDK, буквально пару дней назад мне присылали потестить несколько бинариков на KATANA и KOS, так вот KOS в глубоком отсосе по производительности, да и не мало я игр похачил, тонну кода насмотрелся, так вот свежие игры на KOS последней версии можно сравнить с ранними играми на KATANA SDK, код не оптимизирован до безобразия, реально противно смотреть, единственный плюс что можно хакнуть и вставить свой код, но это отнюдь не красит компилятор которым это собиралось
я конечно видел многое и то что древние компиляторы срали, но поверь офф игры собранные в 2000-х идеальны в плане кода и современные компиляторы которыми собирается KOS это полное говно, они оставляют кучу дыр, память используется не рационально


RE: Помощь новичку в программировании под дрим. - Ivan Guber - 07.01.2020 23:51

Собрал два KATANA'вских примера, но на дриме они не запускаются (dcload-ip зависает на receiving data), в чем может быть проблема?


RE: Помощь новичку в программировании под дрим. - MilkeyWilkey - 08.01.2020 00:00

(07.01.2020 23:13)megavolt85 писал(а):  а вообще тебе как начинающему рекомендую осваивать KATANA SDK

вот кстати тоже планирую занятся дримом, может перенести пару простых игр с пк, поэтому интересует, а какие вообще у обоих вариантов важные ограничения по сравнению с официальными играми? какие возможности есть у одного, которых нет у другого варианта? и что такое в принципе Win CE, этим вообще можно пользоваться? есть же на дриме пара портов с пк именно на нём сделанных


RE: Помощь новичку в программировании под дрим. - megavolt85 - 08.01.2020 02:11

Ivan GR
Код:
File format is ELF, start address is 0x8c008300
Section IP, lma 0x8c008000, size 32768

твой пример собран под адрес 0x8c008300, это адрес IP.BIN отсюда и проблемы, там уже сидит dc-load

MilkeyWilkey плюс KOS только в поддержке SD и HDD, в остальном одни минусы, причём их настолько много что замучаешься перечислять
WINCE это SDK, то есть используется ядро винды, по скорости оно конечно уступает KATANA, плюс это ядро отжирает память, но таким образом было проще портировать игры с винды за счёт того что API поддерживает Direct 3D, точней транслирует его в формат понятный Power VR


RE: Помощь новичку в программировании под дрим. - 111 - 08.01.2020 14:13

(07.01.2020 23:13)megavolt85 писал(а):  а вообще тебе как начинающему рекомендую осваивать KATANA SDK
только если не планируется продавать свое поделие. Да даже за бесплатно не все так однозначно, ведь до сих пор водятся сектанты, запрещающие выкладывать публично все, что "нелегально" (т.е. сделанное "краденым" софтом).
И да, советовать нужно в первую очередь сделать что-то на пк (желательно на С без плюсов (ну или С++, но в стиле "С с классами"). Сразу лезть в консольный сдк смысла нет никакого.

(07.01.2020 23:13)megavolt85 писал(а):  так вот KOS в глубоком отсосе по производительности
скажем так, хуже, но не катастрофически. Один нюанс только: нормальную скорость без asm'а не получить никак.

(07.01.2020 23:13)megavolt85 писал(а):  офф игры собранные в 2000-х идеальны в плане кода и современные компиляторы которыми собирается KOS это полное говно, они оставляют кучу дыр, память используется не рационально
а вот swat как рази-таки топил за кос именно из-за новых компиляторов, например:
http://www.dc-swat.ru/forum/thread-1240-post-18924.html#pid18924
лол
===========
Ivan GR, с какой целью этим всем интересуешься? И да, даже если просто любопытство, то про KGL\GLdc можешь сразу забыть, ничего толкового с ними не сделаешь.

Кстати, если надо:
https://dcemulation.org/phpBB/viewtopic.php?f=29&p=1057292#p1057292