SGDK
A free and open development kit for the Sega Mega Drive
|
Basic SGDK library configuration file. More...
Go to the source code of this file.
Macros | |
#define | LOG_LEVEL_DISABLE 0 |
Log disable. | |
#define | LOG_LEVEL_ERROR 1 |
Log for error only. | |
#define | LOG_LEVEL_WARNING 2 |
Log for error and warning. | |
#define | LOG_LEVEL_INFO 3 |
Log for error, warning and info (as memory allocation) | |
#define | LIB_LOG_LEVEL LOG_LEVEL_ERROR |
Define library log level (for debug build) | |
#define | LIB_DEBUG 0 |
Set it to 1 to enable KDebug logging (Gens KMod) to log some errors (as memory allocation). | |
#define | LIB_LOG_LEVEL LOG_LEVEL_DISABLE |
Define library log level (for debug build) | |
#define | HALT_Z80_ON_DMA 1 |
Set it to 1 if you want to force Z80 halt during DMA operation (default). Some Megadrive models need it to prevent some possible DMA transfer corruption or even 68000 memory or Z80 invalid data fetch in very rare case. This actually happen when Z80 access the main BUS exactly at same time you trigger a DMA operation. If you are 100% sure that you are actually avoiding that case you may try to disable the flag (at your own risk though). | |
#define | HALT_Z80_ON_IO 1 |
Set it to 1 if you want to force Z80 halt during IO port (controller) accesses. Some Megadrive models (as some MD2) need it to prevent some possible (but very rare) Z80 corruption bugs (may happen when Z80 access the main BUS during IO port access from 68K). | |
#define | DMA_DISABLED 0 |
Set it to 1 if you want to completely disable DMA transfers (for testing purpose) and replace them with (slower) software CPU copy. | |
#define | LEGACY_SPRITE_ENGINE 0 |
Set it to 1 if you want to use the old sprite engine instead of the new one. The old sprite engine allow to access or change the internal VDP sprite indexes, this can be useful in some situations (as sprite multiplexing). The new sprite engine provide better VDP sprite usage in general allowing to display a bit more sprites in practice. | |
#define | LEGACY_ERROR_HANDLER 0 |
Set it to 1 to use the original SGDK's error handling screen and vectors. Otherwise error handler from the MD Debugger project is used, which supports source code symbols with "debug" build proifle and backtrace. | |
#define | ENABLE_BANK_SWITCH 0 |
Set it to 1 to enable automatic bank switch using official SEGA mapper for ROM > 4MB. | |
#define | ENABLE_NEWLIB 0 |
Set it to 1 if you want to use newlib with SGDK. That will disable any standard methods from SGDK to replace them by newlib library implementation. | |
#define | ENABLE_LOGO 0 |
Set it to 1 if you want to have the kit intro logo. | |
#define | MODULE_EVERDRIVE 0 |
Set it to 1 if you want to use EVERDRIVE programming methods (written by Krikzz). | |
#define | MODULE_FAT16 0 |
Set it to 1 if you want to use FAT16 methods for Everdrive cart (written by Krikzz). This cost a bit more than 1 KB of RAM. | |
#define | MODULE_MEGAWIFI 0 |
Set it to 1 if you want to enable MegaWiFi functions and support code (written by Jesus Alonso - doragasu) | |
#define | MODULE_FLASHSAVE 1 |
Set it to 1 if you want to enable Flash Save functions (written by Jesus Alonso - doragasu). There is no reason to disable it as it doesn't consume extra memory. | |
#define | MODULE_CONSOLE 1 |
Set it to 1 if you want to enable the TTY text console module (written by Andreas Dietrich). It consume about 28 bytes of memory when enabled. | |
Basic SGDK library configuration file.
This unit is used to define some specific compilation option of the library.
#define ENABLE_BANK_SWITCH 0 |
Set it to 1 to enable automatic bank switch using official SEGA mapper for ROM > 4MB.
When automatic bank switch is enabled all internal BIN data structures declared in .far_rodata section will be accessed using BANK_getFarData(..) method (mapper.c). That may impact performance quite a bit it's why it's disabled by default if you don't require bank switch.
#define LEGACY_ERROR_HANDLER 0 |
Set it to 1 to use the original SGDK's error handling screen and vectors.
Otherwise error handler from the MD Debugger project is used, which supports source code symbols with "debug" build proifle and backtrace.
The new error handler, however, completely takes over exception vectors and doesn't allow to set your own callbacks for errors (e.g. addressErrorCB).
If you rely on callbacks to override error handling behavior, consider using legacy system instead.