mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-11-18 04:27:38 +01:00
3264cf697f
Previously, aggressive loop optimizations with a new compiler were not possible due to undefined behaviour at end of arrays. A macro "UBFIX" is added to allow ifdefs for fixes which resolve undefined behavior. For example newer GCC versions will detect various bugs in the original game code and will otherwise not compile with -Werror.
38 lines
1.2 KiB
C
38 lines
1.2 KiB
C
#ifndef GUARD_CONFIG_H
|
|
#define GUARD_CONFIG_H
|
|
|
|
// In the Generation 3 games, Asserts were used in various debug builds.
|
|
// Ruby/Sapphire and Emerald do not have these asserts while Fire Red
|
|
// still has them in the ROM. This is because the developers forgot
|
|
// to define NDEBUG before release, however this has been changed as
|
|
// Ruby's actual debug build does not use the AGBPrint features.
|
|
#define NDEBUG
|
|
|
|
// To enable print debugging, comment out "#define NDEBUG". This allows
|
|
// the various AGBPrint functions to be used. (See include/gba/isagbprint.h).
|
|
// Some emulators support a debug console window: uncomment NoCashGBAPrint()
|
|
// and NoCashGBAPrintf() in libisagbprn.c to use no$gba's own proprietary
|
|
// printing system. Use NoCashGBAPrint() and NoCashGBAPrintf() like you
|
|
// would normally use AGBPrint() and AGBPrintf().
|
|
|
|
// NOTE: Don't try to enable assert right now as many pointers
|
|
// still exist in defines and WILL likely result in a broken ROM.
|
|
|
|
#define ENGLISH
|
|
|
|
#ifdef ENGLISH
|
|
#define UNITS_IMPERIAL
|
|
#else
|
|
#define UNITS_METRIC
|
|
#endif
|
|
|
|
// Various undefined behavior bugs may or may not prevent compilation with
|
|
// newer compilers. So always fix them when using a modern compiler.
|
|
#if MODERN
|
|
#ifndef UBFIX
|
|
#define UBFIX
|
|
#endif
|
|
#endif
|
|
|
|
#endif // GUARD_CONFIG_H
|