# SGDK
Установка как здесь
https://github.com/Stephane-D/SGDK/wiki/SGDK-Installation. После обновления SGDK стоит всегда запускать build_lib.bat для сборки библиотек lib\libmd.a и lib\libmd_debug.a.
Для последней версии SGDK скачать репозиторий (
https://github.com/Stephane-D/SGDK, Code > Download ZIP и запуск build_lib.bat), но, кроме исправлений, там могут быть проблемы (например, у меня сейчас не происходит сборка релизного рома, только в debug режиме).
Я использую GDK_WIN из переменных среды как путь к SGDK, поэтому в переменные среды нужно добавить GDK_WIN с путём вида C:\sgdk.
Информации на wiki мало, полезнее посмотреть код примеров в sample. Документация по функциям в sgdk\doc\index.html. Чтобы разобраться лучше и написать свои версии функций, придётся смотреть код реализации в src. При обновлении SGDK часто происходит переименовывание функций и констант, тогда нужно адаптировать код, в чём помогут доки и примеры.
# Сборка кода в SGDK
В папке проекта src, inc, res, out (
https://github.com/Stephane-D/SGDK/wiki/SGDK-Usage). В inc заголовочные файлые .h. В res ресурсы и описываются они в .res файлах, для каждого там генерируется .h, чтобы обращаться в коде. В src код .c, там генерируется папка boot один раз и после обновления sgdk её нужно удалять, иначе будет ошибка, в ней rom_head.c где можно изменить данные заголовка рома. В out временные файлы после сборки и сам ром.
Для сборки рома нужно выполнить в командной строке, находясь в папке проекта:
%GDK_WIN%\bin\make -f %GDK_WIN%\makefile.gen
Если не указывать GDK_WIN в переменных среды, то вместо %GDK_WIN% должен быть путь до SGDK.
Если ресурсы изменились или были изменения в .h файле, то сборщик будет использовать старые данные из out и будет ошибка и неверное поведение, тогда перед сборкой нужно очистить вызовом:
%GDK_WIN%\bin\make -f %GDK_WIN%\makefile.gen clean
Также можно просто удалить папку out. Если файлы проекта добавлялись, удалялись, у них менялись имена, то после очистки останутся файлы, так что периодически стоит удалять out для экономии места.
Проще всего написать команды выше в .bat файл чтобы делать сборку его запуском.