DC-SWAT Forum

Полная версия: Fenix
Вы просматриваете yпpощеннyю веpсию форума. Пеpейти к полной веpсии.
Теперь на сайте будет раздел посвященный Fenix engine.
Так же доступна новая версия в которой добавилась поддержка Fenix DLL.
SDK для компилирования Fenix DLL, сам движек, портированные dll, и информация о последних версиях доступна в новом разделе сайта Fenix
Хех...
Пора бы уже...
Токо вот не могу понять зачем там SDL и KoS функции??
Ну как это зачем.
Если ты будешь создавать модуль, то нужно же использовать какие то функции, стандартные, ОС зависимые и дополнительные. И чтобы не запихивать это лишний раз в память(ведь это уже загружено Fenix'ом) сделано перенаправление туда где они уже есть. Не обязательно их использовать если это не нужно, главное что это возможно, а нужно будет полюбому, если ты там не hello world конечно сделал.

Понял...
а как им пользоваться, этим SDK?
Нужно иметь настроенный cygwin с компиляторами и KOS, мона ее даже не компилить, она только для файлов заголовков нужна будет(.h).
Пример модуля я положил туда, можешь вот просто зайти в папку с SDK и написать make, скомпилится как модуль файл module.c (это тестовый модуль - пример), будет 2 файла:
1. dgb-module.klf - этот не используем, можно его удалить, он для debug, т.е. он компилится немного подругому, чтобы было видно используешь ли ты функции которые не доступны без дополнительных библиотек. Если компилятор ошибок не выдал при компилировании этого debug модуля, то значит все ок.
2. module.klf - этот модуль используем, причем в DC версии Fenix, я сделал возможность прописывать адреса подулей в любые места, не так как для других платформ, там только в той же папке они могут лежать. Т.е. например можно написать /vmu/a1/module.klf

Еще есть один нюанс, когда компилируешь Fenix приложение, то прописывая загрузку модуля, компилятор идет его проверять по этому адресу. С адресом то проблем нет, можно насоздавать любых папок(в том числе и /vmu/a1 или /cd и т.п.), но вот он его проверяет еще на совместимость, поэтому компилятор начинает ругаться, типа что это не приложение Win32, для обхода этой проблемы тупо ложим вместо нашего дримовского модуля, любой другой скомпиленный под Win32(т.е. dll) называем его как нужно и все, компилятор больше не ругается и нормально компилит, потом просто ложим дримовский модуль вместо win32 для запуска на дриме.
Компилятор Fenix я потом исправлю, чтобы он не проверял эти модули, чтоб не парится с такой махинацией, хоть и не очень сложной.

Еще о компилировании модулей в SDK.
Там есть папки include, lib и libdebug.
include - здесь лежат заголовки Fenix, чтобы можно было использовать функции иго.
lib - здесь лежит скомпиленная библиотека libdebug, можно и свои ложить.
libdebug - это библиотека, в которой прописаны fake функции KOS, Fenix, SDL и т.д. Она нужна для компилирования debug модуля - dbg-module.klf
В исходниках этой библиотеки можете посмотреть названия всех функций, которые вы можете использовать без дополнительных библиотек. Они там прописаны как int func_name
URL ссылки