2024-06-19 12:42:01 +01:00
# ifndef GUARD_CONFIG_GENERAL_H
# define GUARD_CONFIG_GENERAL_H
2017-09-08 21:23:14 +01:00
2018-01-07 02:12:42 +00:00
// 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
2018-01-08 04:46:35 +00:00
// to define NDEBUG before release, however this has been changed as
// Ruby's actual debug build does not use the AGBPrint features.
2024-01-26 17:58:07 +00:00
# define NDEBUG
2018-01-09 03:03:07 +00:00
2022-09-06 12:40:29 +01:00
// To enable printf debugging, comment out "#define NDEBUG". This allows
2018-01-09 03:03:07 +00:00
// the various AGBPrint functions to be used. (See include/gba/isagbprint.h).
2022-09-06 12:40:29 +01:00
// See below for enabling different pretty printing versions.
# ifndef NDEBUG
# define PRETTY_PRINT_MINI_PRINTF (0)
# define PRETTY_PRINT_LIBC (1)
# define LOG_HANDLER_AGB_PRINT (0)
# define LOG_HANDLER_NOCASH_PRINT (1)
# define LOG_HANDLER_MGBA_PRINT (2)
// Use this switch to choose a handler for pretty printing.
// NOTE: mini_printf supports a custom pretty printing formatter to display preproc encoded strings. (%S)
// some libc distributions (especially dkp arm-libc) will fail to link pretty printing.
# define PRETTY_PRINT_HANDLER (PRETTY_PRINT_MINI_PRINTF)
// Use this switch to choose a handler for printf output.
// NOTE: These will only work on the respective emulators and should not be used in a productive environment.
// Some emulators or real hardware might (and is allowed to) crash if they are used.
// AGB_PRINT is supported on respective debug units.
# define LOG_HANDLER (LOG_HANDLER_MGBA_PRINT)
# endif
2018-01-09 03:03:07 +00:00
2020-12-13 21:16:48 +00:00
// Uncomment to fix some identified minor bugs
2022-08-26 03:35:22 +01:00
# define BUGFIX
2020-12-13 21:16:48 +00:00
2020-05-09 13:49:51 +01:00
// Various undefined behavior bugs may or may not prevent compilation with
// newer compilers. So always fix them when using a modern compiler.
2020-12-13 21:16:48 +00:00
# if MODERN || defined(BUGFIX)
2020-05-09 13:49:51 +01:00
# ifndef UBFIX
# define UBFIX
# endif
# endif
2022-08-24 21:10:32 +01:00
// Compatibility definition for other projects to detect pokeemerald-expansion
# define RHH_EXPANSION
// Legacy branch-based defines included for backwards compatibility
2022-08-25 00:31:55 +01:00
# define BATTLE_ENGINE
# define POKEMON_EXPANSION
# define ITEM_EXPANSION
2022-08-24 21:10:32 +01:00
2024-06-19 12:42:01 +01:00
// Generation constants used in configs to define behavior.
2023-12-06 15:52:01 +00:00
# define GEN_1 0
# define GEN_2 1
# define GEN_3 2
# define GEN_4 3
# define GEN_5 4
# define GEN_6 5
# define GEN_7 6
# define GEN_8 7
# define GEN_9 8
2024-06-19 12:42:01 +01:00
// Changing GEN_LATEST's value to a different Generation will change every default setting that uses it at once.
2023-07-31 14:41:53 +01:00
# define GEN_LATEST GEN_9
2022-09-05 19:49:14 +01:00
2023-02-08 14:54:12 +00:00
// General settings
2023-11-19 17:30:18 +00:00
# define EXPANSION_INTRO TRUE // If TRUE, a custom RHH intro will play after the vanilla copyright screen.
# define POKEDEX_PLUS_HGSS FALSE // If TRUE, enables the custom HGSS style Pokedex.
# define SUMMARY_SCREEN_NATURE_COLORS TRUE // If TRUE, nature-based stat boosts and reductions will be red and blue in the summary screen.
2023-12-22 17:39:15 +00:00
# define HQ_RANDOM TRUE // If TRUE, replaces the default RNG with an implementation of SFC32 RNG. May break code that relies on RNG.
2024-04-06 19:05:15 +01:00
# define COMPETITIVE_PARTY_SYNTAX TRUE // If TRUE, parties are defined in "competitive syntax".
2024-09-19 11:01:12 +01:00
# define AUTO_SCROLL_TEXT FALSE // If TRUE, text will automatically scroll to the next line after NUM_FRAMES_AUTO_SCROLL_DELAY. Players can still press A_BUTTON or B_BUTTON to scroll on their own.
# define NUM_FRAMES_AUTO_SCROLL_DELAY 49
2023-02-08 14:54:12 +00:00
2024-02-14 09:17:23 +00:00
// Measurement system constants to be used for UNITS
# define UNITS_IMPERIAL 0 // Inches, feet, pounds
# define UNITS_METRIC 1 // meters, kilograms
# define UNITS UNITS_IMPERIAL
# define CHAR_DEC_SEPARATOR CHAR_PERIOD // CHAR_PERIOD is used as a decimal separator only in the UK and the US. The rest of the world uses CHAR_COMMA.
2024-07-15 18:06:01 +01:00
// Naming Screen
# define AUTO_LOWERCASE_KEYBOARD GEN_LATEST // Starting in GEN_6, after entering the first uppercase character, the keyboard switches to lowercase letters.
2024-09-22 18:07:17 +01:00
# define SAVE_TYPE_ERROR_SCREEN FALSE // When enabled, this shows an error message when the game is loaded on a cart without a flash chip or on an emulator with the wrong save type setting instead of crashing.
2024-06-19 12:42:01 +01:00
# endif // GUARD_CONFIG_GENERAL_H