# How to create custom configurations 1. Create folder with name of custom configuration 1. Add `jabyengine_custom_config.hpp` to folder 1. Follow [guidelines](#jabyengine_custom_confighpp) 1. Build JabyEngine and select your configuration 1. Build your application and select your configuration ## jabyengine_custom_config.hpp ### Default configuration file ```c++ // Fix IntelliSense #include "../dummy_default_config.hpp" // Overwrite various configurations struct CustomConfiguration : public DefaultConfiguration { }; // Define macros here ``` ### `CustomConfiguration` options When overriding an option make sure to mark the function as `override` ```c++ struct DefaultConfiguration { struct BIOSFont { // VRAM position and CLUT position to load the BIOS font too static constexpr GPU::PositionU16 texture_load_pos(); static constexpr GPU::PositionU16 CLUT_load_pos(); }; // Offsets the default origin of the screen by the specified value static constexpr auto DisplayDefaultOffset; struct Periphery { // Turns on the second controller port and enables multi tap support static constexpr bool include_portB(); static constexpr bool use_multi_tap(); }; }; ``` ### `CustomConfiguration` macros ```c++ // Turns on debug information of the SPU MMU (on by default [for now]) #define __DEBUG_SPU_MMU__ // Turns on colored rectangles during boot (off by default) #define __USE_DEBUG_COLOR__ // Turns on PS3 support (on by default) #define __SUPPORT_PS3__ ```