{ // Lines starting with '//' are comments. // // About filesystem paths specified in this config: // The "gameFolder" path is resolved either relative // to the directory containing the mkxp executable // (the default behavior), or relative to the current // working directory (when compiled with // -DWORKDIR_CURRENT). All other paths are resolved // relative to gameFolder and ignoring both RTPs and // encrypted archives. Since this is JSON, any // backslashes in paths need to be escaped (i.e. a // single backslash becomes a double backslash). If // that's too much hassle, you can use a single forward // slash instead (even on Windows). // Some influential environment variables, set them to either "1" or "0": // "MKXPZ_WINDOWS_CONSOLE" // - Enables/disables the extra console window on Windows. It appears by // default whenever mkxp-z is started in debug mode. // "MKXPZ_MACOS_METAL" // - Setting this will influence the rendering backend used. // Probably not a good idea to mess with it unless you have some kind of issue. // OpenGL is default on x86, and Metal is the default on Apple Silicon. // This takes priority over the config option if it's set. // "MKXPZ_FOLDER_SELECT" // - Allows the manual selection of the game's folder at startup. // Only works on macOS at the moment. // "MTL_HUD_ENABLED" // - On macOS 13 (Ventura) and over, provided the Metal backend is used, // this will enable a full performance HUD containing more details than // the built-in framerate display. // Specify the RGSS version to run under. // Possible values are 0, 1, 2, 3. If set to 0, // mkxp will try to guess the required version // based on the game files found in gameFolder. // If this fails, the version defaults to 1. // (default: 0) // // "rgssVersion": 1, // Continuously display average FPS in window title. // This can always be toggled with F2 at runtime. // (default: disabled) // // "displayFPS": false, // Continuously print average FPS to console. // This setting does not affect the window title // FPS display toggled via F2 // (default: disabled) // // "printFPS": false, // Game window is resizable // (default: enabled) // // "winResizable": true, // Start game in fullscreen (this can // always be toggled with Alt-Enter at runtime) // (default: disabled) // // "fullscreen": false, // Preserve game screen aspect ratio, // as opposed to stretch-to-fill // (default: enabled) // // "fixedAspectRatio": true, // Apply smooth interpolation when game screen // is upscaled // 0: Nearest-Neighbor // 1: Bilinear // 2: Bicubic // 3: Lanczos3 // 4: xBRZ // (default: 0) // // "smoothScaling": 0, // Apply smooth interpolation when game screen // is downscaled (same values as smoothScaling) // (default: 0) // // "smoothScalingDown": 0, // Apply smooth interpolation when bitmaps // are upscaled (same values as smoothScaling) // (default: 0) // // "bitmapSmoothScaling": 0, // Apply smooth interpolation when bitmaps // are downscaled (same values as smoothScaling) // (default: 0) // // "bitmapSmoothScalingDown": 0, // Apply mipmap interpolation when game screen // or bitmaps are downscaled (requires // "smoothScalingDown": 1 or "bitmapSmoothScalingDown": 1) // (default: false) // // "smoothScalingMipmaps": false, // Sharpness when using Bicubic scaling. // A good starting range is 0 to 100, // but you may wish to go outside that range in either direction. // (default: 100) // // "bicubicSharpness": 100, // Scaling factor for xBRZ interpolation // (set to at least the ratio of your window size // to the game's native resolution) // (default: 1.0) // // "xbrzScalingFactor": 4.0, // Replace the game's Bitmap files with external high-res files // provided in the "Hires" directory. // (You'll also need to set the below Scaling Factors.) // (default: disabled) // // "enableHires": false, // Scaling factor for textures (e.g. Bitmaps) // (higher values will look better if you use high-res textures) // (default: 1.0) // // "textureScalingFactor": 4.0, // Scaling factor for screen framebuffer // (higher values will look better if you use high-res textures) // (default: 1.0) // // "framebufferScalingFactor": 4.0, // Scaling factor for tileset atlas // (higher values will look better if you use high-res textures) // (default: 1.0) // // "atlasScalingFactor": 4.0, // Sync screen redraws to the monitor refresh rate // (default: disabled) // // "vsync": false, // Specify the window width on startup. If set to 0, // it will default to the default resolution width // specific to the RGSS version (640 in RGSS1, 544 // in RGSS2 or higher). // (default: 0) // // "defScreenW": 640, // Specify the window height on startup. If set to 0, // it will default to the default resolution height // specific to the RGSS version (480 in RGSS1, 416 // in RGSS2 or higher). // (default: 0) // // "defScreenH": 480, // Override the game window title // (default: none) // // "windowTitle": "Custom Title", // Enforce a static frame rate // (0 = disabled) // // "fixedFramerate": 0, // Skip (don't draw) frames when behind. // Can be changed at runtime, but this is the // default value when the game starts. // (default: disabled) // // "frameSkip": false, // Use a fixed framerate that is approx. equal to the // native screen refresh rate. This is different from // "fixedFramerate" because the actual frame rate is // reported back to the game, ensuring correct timers. // If the screen refresh rate cannot be determined, // this option is force-disabled. // This option may be force-disabled at build time. // (default: disabled) // // "syncToRefreshrate": false, // A list of fonts to render without alpha blending. // (default: none) // // "solidFonts": [ // "Arial", // "Times New Roman", // ], // Prefer the use of Metal over OpenGL on macOS. // This defaults to false under Intel machines, // and true under ARM/Apple Silicon ones (which // merely emulate OpenGL anyway) // // Try changing this if you have graphics problems. // Metal is far better, but ANGLE may not initialize correctly // on some Intel machines. // // On Apple Silicon it's probably better to not touch it. // Emulated OpenGL is buggy, and it will also break things like // the Steam overlay. // (default: true if Apple Silicon, false if Intel) // // "preferMetalRenderer": true, // Work around buggy graphics drivers which don't // properly synchronize texture access, most // apparent when text doesn't show up or the map // tileset doesn't render at all // (default: disabled) // // "subImageFix": false, // Enable framebuffer blitting if the driver is // capable of it. Some drivers carry buggy // implementations of this functionality, so // disabling it can be used as a workaround. // Force-disabled when // smoothScaling or smoothScalingDown isn't // Nearest-Neighbor or Bilinear. // (default: disabled on windows, enabled on other systems) // // "enableBlitting": false, // Limit the maximum size (width, height) of // most textures mkxp will create (exceptions are // rendering backbuffers and similar). // If set to 0, the hardware maximum is used. // This is useful for recording traces that can // be played back on machines with lower specs. // (default: 0) // // "maxTextureSize": 0, // Scale up the game screen by an integer amount, // as large as the current window size allows, before // doing any last additional scalings to fill part or // all of the remaining window space (or none at all // if lastMileScaling is disabled). // If fixedAspectRatio is disabled, the integer scale // factors in horizontal and vertical direction can differ // depending on how much space is available, otherwise // they are forced to the smaller of the two. // (default: disabled) // // "integerScalingActive": false, // When integer scaling is enabled, this option controls // whether the scaled game screen is further scaled // (with linear interpolation when smoothScaling is enabled) // to fill the rest of the game window. // Note that this option still respects fixedAspectRatio. // (default: enabled) // // "integerScalingLastMile": true, // Set the base path of the game to '/path/to/game' // (default: executable directory) // // "gameFolder": ".", // Use either right or left Alt + Enter to toggle // fullscreen // (default: disabled) // // "anyAltToggleFS": false, // Enable F12 game reset // (default: enabled) // // "enableReset": true, // Enable F1/keybinding menu // (default: enabled) // // "enableSettings": true, // Allow symlinks for game assets to be followed // (default: enabled) // // "allowSymlinks": true, // Organisation / company and application / game // name to build the directory path where mkxp // will store game specific data (eg. key bindings). // If not specified, mkxp-z will use a folder based // on the name of the game, if possible, defaulting // to "." for Org and "mkxp-z" for App otherwise. // (default: none) // // "dataPathOrg": "mycompany", // "dataPathApp": "mygame", // Set the game window icon to 'path/to/icon.png' // Only functions on Linux. // (default: none) // // "iconPath": "/path/to/icon.png", // Instead of playing an RPG Maker game, // execute a single plain text script instead // (default: none) // // "customScript": "/path/to/script.rb", // Define raw scripts (e.g. compatibility wrappers) // to be executed before the actual Scripts.rxdata // execution starts // (default: none) // // "preloadScript": [ // "scripts/preload/ruby_classic_wrap.rb", // "scripts/preload/mkxp_wrap.rb", // "scripts/preload/win32_wrap.rb", // ], // Define raw scripts to be executed before the // rgss_main execution starts for RGSS 3. // (default: none) // // "postloadScript": [ // "/path/to/script.rb", // ], // Index all accesible assets via their lower case path // (emulates windows case insensitivity) // (default: enabled) // // "pathCache": true, // Add 'rtp1', 'rtp2.zip' and 'game.rgssad' to the asset search path // (multiple allowed). You can use folders, RGSS archives, and any archive // formats supported by PhysicsFS; see the compatibility list at: // https://www.icculus.org/physfs/docs/html/ // (default: none) // // "RTP": [ // "/path/to/rtp1", // "/path/to/rtp2.zip", // "/path/to/game.rgssad", // ], // Similar to the RTP option, except items are loaded before // the game archive and folder, for incremental game updates // or modding. // (default: none) // // "patches": [ // "/path/to/patch1.zip", // "/path/to/patch2", // ], // Use the script's name as filename in warnings and error messages // (default: enabled) // // "useScriptNames": true, // Font substitutions allow drop-in replacements of fonts // to be used without changing the RGSS scripts, // eg. providing 'Open Sans' when the game thinkgs it's // using 'Arial'. Font family to be substituted and // replacement family are separated by one sole '>'. // Be careful not to include any spaces. // This is not connected to the built-in font, which is // always used when a non-existing font family is // requested by RGSS. // (default: none) // // "fontSub": [ // "Arial>Open Sans", // "Times New Roman>Liberation Serif", // ], // Because mkxp is usually distributed as a stand alone // build, no predefined load paths are initialized // ($:, $LOAD_PATH) in the MRI backend. With this option, // they can be specified manually (eg. when using a system // libruby.so). It is however recommended to statically // link all required gems into libruby.so. // (default: none) // // "rubyLoadpath": [ // "/usr/lib64/ruby/", // "/usr/local/share/ruby/site_ruby", // ], // Determines whether MJIT is enabled. This probably // won't work unless you also have the header file // that it needs. Only works with Ruby 2.6 or higher. // This Ruby feature is experimental. // (default: false) // // "JITEnable": false, // Determines what level of verbosity to use when // logging MJIT events. Starts at 0, which is next // to nothing. Set it higher to see more. // (default: 0) // // "JITVerboseLevel": 0, // Determines how many compiled methods that Ruby // will keep in its MJIT cache. // (default: 100) // // "JITMaxCache": 100, // Determines how many times a function has to be // called before it is compiled by MJIT. // (default: 10000) // // "JITMinCalls": 10000, // Determines whether YJIT is enabled. // Only works with Ruby 3.1 or higher. // This Ruby feature is experimental. // (default: false) // // "YJITEnable": false, // SoundFont to use for midi playback (via fluidsynth) // (default: none) // // "midiSoundFont": "Audio/BGM/GMGSx.sf2", // Activate "chorus" effect for midi playback // // "midiChorus": false, // Activate "reverb" effect for midi playback // // "midiReverb": false, // Number of OpenAL sources to allocate for SE playback. // If there are a lot of sounds playing at the same time // and audibly cutting each other off, try increasing // this number. Maximum: 64. // // "SESourceCount": 6, // Number of streams to open for BGM tracks. If the game // needs multitrack audio, this should be set to as many // available tracks as the game needs. Maximum: 16. // // "BGMTrackCount": 1, // The Windows game executable name minus ".exe". By default // this is "Game", but some developers manually rename it. // mkxp needs this name because both the .ini (game // configuration) and .rgssad (encrypted data archive) must // carry the same name minus their extension, and we cannot // guess the executable's name. // You could just as well rename them both to "Game.ini" and // "Game.rgssad", but specifying the executable name here // is a tiny bit less intrusive. // // "execName": "Game", // You can define alternate terminology for the different // inputs recognized by RPG Maker. A, B, C, X, Y, Z, L, and R // can all be set using this dictionary, and will be displayed // on the F1 menu. This is only a cosmetic effect, so it will // have no effect on the game's scripts. // // "bindingNames": { // "c": "Confirm", // "b": "Cancel", // "x": ..., // }, // Dump tile atlas (for debugging purposes) // (default: false) // // "dumpAtlas": false, }