Stephane Dallongeville released SDGK Version 1.6.
SDGK is a free development kit allowing to develop software in C language for the Sega Mega Drive.
It contains the development library itself (with the code sources) and some custom tools used to compile resources.
SGDK uses the GCC compiler (m68k-elf target) and the libgcc to generate ROM image.
Binaries (GCC 6.3) are provided for Windows OS for convenience but you need to install it by yourself for others operating systems.
Note that SGDK also requires Java (custom tools need it) so you need to have Java installed on your system.
SGDK 1.6 MIGRATION NOTE
- replaced appack tool by new APJ (Java APLIB packer) tool written from scratch
- much faster compression speed
- better exit operation
- added new MAP resource and MAP_xx methods (in map.h unit) to handle large maps / background scrolling easily (finally !)
- integrated APJ tool for faster ApLib compression
- added per resource size information, fixed Map resource export...
- we can now disable sprite cutting optimisation ('NONE' value for opt parameter)
- fixed a small bug on Sprite cutting optimisation process
- added 'optimisation' parameter to TILESET resource
- fixed bug on tilemap generation with base tile index used
- fixed a mall bug in BIN resource export
- fixed a small bug on ALIGN directive
- optimized tile parsing
- now remember last used folder
- added deps file (.d) support for better dependencies handling
- added sources sub folders support (2 depth levels)
- removed useless and undesired warnings
- added GET STARTED part
- major rewrite / revamp to take benefit of Markdown format (thanks to Astrofra)
- others changes
- WARNING - IMPORTANT CHANGE
Added SYS_doVBlankProcess(..) to replace automatic V-Int processing of SGDK.
This was done to avoid issues with missing interrupts protection and to offer more control in general.
So basically you should replace all your VDP_waitVSync() references with SYS_doVBlankProcess()
- faster user callback interrupt handling
- modified ROM header to enable SRAM by default
- fixed small initialization issue
- minor fix on SSF2 mapper initialization
- added LOG_LEVEL setting allowing different level of log for debug (default = LOG_LEVEL_WARNING)
- removed interrupts protection where they are not anymore useful
- small change for more accurate detection of frame miss
Added new MAP engine (map.h unit) to handle large maps / background scrolling easily from MAP resource:
- Map* MAP_create(const MapDefinition* mapDef, VDPPlane plane, u16 baseTile);
- void MAP_scrollTo(Map* map, u32 x, u32 y);
- u16 MAP_getMetaTile(Map* map, u16 x, u16 y);
- u16 MAP_getTile(Map* map, u16 x, u16 y);
- void MAP_getMetaTilemapRect(Map* map, u16 x, u16 y, u16 w, u16 h, u16* dest);
- void MAP_getTilemapRect(Map* map, u16 x, u16 y, u16 w, u16 h, bool column, u16* dest);
- added DMA_xxxFast() methods (no 128 KB bank cross check)
- small tweaks for bit faster DMA queue
- tweaks in general to DMA methods
- increased default DMA queue size (we can quickly reach 64)
- fixed a small bug on VDP_drawTextBG(..) method
- added VDP_waitVBlank() and VDP_waitVActive() methods
- added VDP_getPlaneAddress() method (was internal first)
- added support to u32/s32 type to sprintf(..) function
- fixed fix16ToStr(..) and fix32ToStr(..) methods
- fixed a small bug on PCM command play (thanks to hsk)
- better restoring of Z80 BUS request state
- added Z80_getAndRequestBus() method
- added loading of a dummy driver by default to keep Z80 active on init
- replaced some u16 parameter by bool where it makes sense to have it
- Updated for SGDK 1.6 changes
- minors changes (updated to version 1.31)
- updated background to complete level dimension.
- updated to take benefit of the new MAP resource and advanced MAP methods
- added alternate scrolling update mode (still using new MAP unit)
SGDK 1.6 MIGRATION NOTE
- Replace all VDP_waitVSync() references with SYS_doVBlankProcess()
- Replace all VDP_waitVInt() references with SYS_doVBlankProcess()