Skip to content
Stephane Dallongeville edited this page Nov 28, 2020 · 27 revisions

SGDK uses a generic makefile to compile project. In order to be properly recognized by the makefile you need to organize your project folder structure as following:

project root

  • src = source files
  • inc = include files
  • res = resource files
  • out = output files (will be created automatically)

where

  • source files can be .c (C source file), .s (68k assembly source file) or .s80 (Z80 assembly source file)
  • include files can be .h (C include file) or .inc (assembly include file)
  • primary resource files should be .res (resource definition file compiled by rescomp tool, see bin/rescomp.txt file)
  • others resources files can be located anywhere while you are referring them correctly in your .res file.
    • .bmp = image file (indexed colors only)
    • .png = image file (indexed colors only)
    • .vgm = VGM music dump file (Megadrive only)
    • .xgm = XGM music file
    • .wav = WAV sound file (used for SFX)
    • .bin = binary data file
    • .c = C source file
    • .s = 68k assembly source file

You can read the bin/rescomp.txt file to have more information about supported resource files. Note that SGDK supports sub-folder for sources, up to 2 depth levels (for instance: src/engine/enemy/enemy_fly.c)

Then to compile your project you need to use the following command directly from your project folder:

%GDK_WIN%\bin\make -f %GDK_WIN%\makefile.gen

Normally if everything went right you should obtain a rom.bin file in the out folder. You can directly load this rom.bin file into an emulator (or put on your flash cart if you have one) to test it.

You can now continue to the tutorials section to start the serious things :)

Clone this wiki locally