1; ==================== 2; SDLPoP configuration 3; ==================== 4 5; This is the configuration file for SDLPoP. 6; Lines starting with a semicolon (";") are comment lines and are ignored by SDLPoP. 7; They are used to document the available customization options. 8 9; "default" is a valid setting for any option. 10 11; N.B. You can also use the in-game menu to configure SDLPoP: press Escape or Backspace while in-game. 12; The in-game configuration is saved to the file SDLPoP.cfg. 13; The settings from the .cfg file will then be applied, until you modify SDLPoP.ini (this file) again. 14 15 16 17[General] 18; Show the in-game menu when you pause the game by pressing Escape. 19; If this is disabled, you can still bring up the menu using Backspace. 20enable_pause_menu = true 21 22; Enable or disable the potions (copy protection) level. 23enable_copyprot = false 24 25; Enable music. 26enable_music = true 27 28; Enable or disable fading. 29enable_fade = true 30 31; Enable or disable flashing. 32enable_flash = true 33 34; Enable or disable texts. 35enable_text = true 36 37; Display the SDLPoP information screen when the game starts. 38enable_info_screen = true; 39 40; Start the game in fullscreen mode. (In-game fullscreen toggle: Alt+Enter) 41start_fullscreen = false 42 43; Width and height of the game window. 44; By default, the window is 640 pixels wide and 400 pixels tall. 45; When using the "correct aspect ratio" option, the default height is 480 instead of 400. 46pop_window_width = default 47pop_window_height = default 48 49; Render the game in the originally intended 4:3 aspect ratio. 50; NB. Works best using a high resolution. 51use_correct_aspect_ratio = false 52 53; Enable pixel perfect scaling. That is, make all pixels the same size by forcing integer scale factors. 54; Note: If you enable both integer scaling and the 4:3 aspect ratio setting above, 55; then integer scaling will be disabled, unless the window is at least 1600 x 1200 pixels (without the border). 56; Integer scaling will also be disabled if the window is smaller than 320 x 200 pixels. 57; Note: You need to compile with SDL 2.0.5 or newer for this. 58use_integer_scaling = false 59 60; Scaling method. 61; Possible values: 62; * sharp = Use nearest-neighbor resampling. 63; * fuzzy = First scale to double size with nearest-neighbor scaling, then scale to full screen with smooth scaling. 64; * blurry = Use smooth scaling. 65scaling_type = sharp 66 67; If using a controller with a rumble motor, provide haptic feedback when the kid is hurt. 68enable_controller_rumble = true 69 70; When using a controller, only use the joysticks for horizontal movement (instead of all-directional movement). 71; This could make the game easier to control, depending on your preference and depending on which controller you have. 72joystick_only_horizontal = true 73 74; Joystick 'dead zone' sensitivity threshold. Range: 0 to 32767 (default = 8000) 75joystick_threshold = 8000 76 77; You can get this file from 78; https://github.com/gabomdq/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt 79; if you need it 80;gamecontrollerdb_file = gamecontrollerdb.txt 81 82; You can choose which levels to play using the 'levelset' option: 83; 'original' --> play the original levels (Default) 84; 'Your Mod Name' --> play a custom levelset (the custom files must be in a directory "mods/Your Mod Name/") 85 86levelset = original 87 88; The base directory where SDLPoP will look for custom levelsets. (default = mods) 89mods_folder = mods 90 91 92[AdditionalFeatures] 93; Enable quicksave/load feature. (In-game: press F6 to quicksave, F9 to quickload) 94enable_quicksave = true 95 96; Try to let time keep running out when quickloading. (similar to Ctrl+A) 97; Technically, the 'remaining time' is still restored, but with a penalty for elapsed time (up to 1 minute). 98; The one minute penalty will also be applied when quickloading from e.g. the title screen. 99enable_quicksave_penalty = true 100 101; Enable recording/replay feature. 102enable_replay = true 103 104; The folder where replays will be kept. 105replays_folder = replays 106 107; Darken those parts of the screen that are not near a torch. 108enable_lighting = false 109 110 111[Enhancements] 112; Turn on game fixes and enhancements. 113; Below, you can pick which fixes/enhancements will be active. 114; NB. If use_fixes_and_enhancements is set to 'false', all of the below options are disabled. 115use_fixes_and_enhancements = false 116 117; Adds a way to crouch immediately after climbing up: press down and forward simultaneously. 118; In the original game, this could not be done (pressing down always causes the kid to climb down). 119enable_crouch_after_climbing = true 120 121; Time runs out while the level ending music plays; however, the music can be skipped by disabling sound. 122; This option stops time while the ending music is playing (so there is no need to disable sound). 123enable_freeze_time_during_end_music = true 124 125; Enable guard hitpoints not resetting to their default (maximum) value when re-entering the room. 126enable_remember_guard_hp = true 127 128; If a room is linked to itself on the left, the closing sounds of the gates in that room can't be heard. 129fix_gate_sounds = true 130 131; An open gate or chomper may enable the Kid to go through walls. (Trick 7, 37, 62) 132fix_two_coll_bug = true 133 134; If a room is linked to itself at the bottom, and the Kid's column has no floors, the game hangs. 135fix_infinite_down_bug = true 136 137; When a gate is under another gate, the top of the bottom gate is not visible. 138fix_gate_drawing_bug = true 139 140; When climbing up to a floor with a big pillar top behind, turned right, Kid sees through floor. 141fix_bigpillar_climb = true 142 143; When climbing up two floors, turning around and jumping upward, the kid falls down. 144; This fix makes the workaround of Trick 25 unnecessary. 145fix_jump_distance_at_edge = true 146 147; When climbing to a higher floor, the game unnecessarily checks how far away the edge below is; 148; This contributes to sometimes "teleporting" considerable distances when climbing from firm ground. 149fix_edge_distance_check_when_climbing = true 150 151; Falling from a great height directly on top of guards does not hurt. 152fix_painless_fall_on_guard = true 153 154; Bumping against a wall may cause a loose floor below to drop, even though it has not been touched. (Trick 18, 34) 155fix_wall_bump_triggers_tile_below = true 156 157; When pressing a loose tile, you can temporarily stand on thin air by standing up from crouching. 158fix_stand_on_thin_air = true 159 160; Buttons directly to the right of gates can be pressed even though the gate is closed (Trick 1) 161fix_press_through_closed_gates = true 162 163; By jumping and bumping into a wall, you can sometimes grab a ledge two stories down (which should not be possible). 164fix_grab_falling_speed = true 165 166; When chomped, skeletons cause the chomper to become bloody even though skeletons do not have blood. 167fix_skeleton_chomper_blood = true 168 169; Controls do not get released properly when drinking a potion, sometimes causing unintended movements. 170fix_move_after_drink = true 171 172; A drawing bug occurs when a loose tile is placed to the left of a potion (or sword). 173fix_loose_left_of_potion = true 174 175; Guards may "follow" the kid to the room on the left or right, even though there is a closed gate in between. 176fix_guard_following_through_closed_gates = true 177 178; When landing on the edge of a spikes tile, it is considered safe. (Trick 65) 179fix_safe_landing_on_spikes = true 180 181; The kid may glide through walls after turning around while running (especially when weightless). 182fix_glide_through_wall = true 183 184; The kid can drop down through a closed gate, when there is a tapestry (doortop) above the gate. 185fix_drop_through_tapestry = true 186 187; When dropping down and landing right in front of a wall, the entire landing animation should normally play. 188; However, when falling against a closed gate or a tapestry(+floor) tile, the animation aborts. 189; (The game considers these tiles floor tiles; so it mistakenly assumes that no x-position adjustment is needed) 190fix_land_against_gate_or_tapestry = true 191 192; Sometimes, the kid may automatically strike immediately after drawing the sword. 193; This especially happens when dropping down from a higher floor and then turning towards the opponent. 194fix_unintended_sword_strike = true 195 196; By repeatedly pressing 'back' in a swordfight, you can retreat out of a room without the room changing. (Trick 35) 197fix_retreat_without_leaving_room = true 198 199; The kid can jump through a tapestry with a running jump to the left, if there is a floor above it. 200fix_running_jump_through_tapestry = true 201 202; Guards can be pushed into walls, because the game does not correctly check for walls located behind a guard. 203fix_push_guard_into_wall = true 204 205; By doing a running jump into a wall, you can fall behind a closed gate two floors down. (e.g. skip in Level 7) 206fix_jump_through_wall_above_gate = true 207 208; If you grab a ledge that is one or more floors down, the chompers on that row will not start. 209fix_chompers_not_starting = true 210 211; As soon as a level door has completely opened, the feather fall effect is interrupted because the sound stops. 212fix_feather_interrupted_by_leveldoor = true 213 214; Guards will often not reappear in another room if they have been pushed (partly or entirely) offscreen. 215fix_offscreen_guards_disappearing = true 216 217; While putting the sword away, if you press forward and down, and then release down, the kid will still duck. 218fix_move_after_sheathe = true 219 220; After uniting with the shadow in level 12, the hidden floors will not appear until after the flashing stops. 221fix_hidden_floors_during_flashing = true 222 223; By jumping towards one of the bottom corners of the room and grabbing a ledge, you can teleport to the room above. 224fix_hang_on_teleport = true 225 226; You can enter closed exit doors after you met the shadow or Jaffar died, or after you opened one of multiple exits. 227fix_exit_door = true 228 229; You cannot save game while floating in feather mode. 230fix_quicksave_during_feather = true 231 232; If you are using the caped prince graphics, and crouch with your back towards a closed gate on the left edge on the room, then the prince will slide through the gate. 233fix_caped_prince_sliding_through_gate = true 234 235; Guards become inactive if they are standing on a door top (with floor), or if the prince is standing on a door top. 236fix_doortop_disabling_guard = true 237 238 239[CustomGameplay] 240; Turn on customization options. 241; Below, you can change individual options. 242; NB. If use_custom_options is set to 'false', the options below are not used. 243use_custom_options = true 244 245; Starting minutes left. (default = 60) 246; To disable the time limit completely, set this to -1. 247start_minutes_left = 60 248 249; Starting number of ticks left in the first minute. (default = 719) 250; 1 tick = 1/12 second, so by default there are 59.92 seconds left in the first minute. 251start_ticks_left = 719 252 253; Starting hitpoints. (default = 3) 254start_hitp = 3 255 256; Maximum number of hitpoints you can get. (default = 10) 257max_hitp_allowed = 10 258 259; First level where you can save the game. (default = 3) 260saving_allowed_first_level = 3 261 262; Last level where you can save the game. (default = 13) 263saving_allowed_last_level = 13 264 265; Start the game with the screen flipped upside down, similar to Shift+I (default = false) 266start_upside_down = false 267 268; Start in blind mode, similar to Shift+B (default = false) 269start_in_blind_mode = false 270 271; The potions level will appear before this level. Set to 'never' to disable. (default = 2) 272copyprot_level = 2 273 274; Set up edges of the level. 275; Tile drawn at the top of the room if there is no room that way. (default = floor) 276; E.g. 0: empty, 1: floor, 20: wall (etc.) 277drawn_tile_top_level_edge = floor 278 279; Tile drawn at the left of the room if there is no room that way. (default = wall) 280drawn_tile_left_level_edge = wall 281 282; Tile behavior at the top or left of the room if there is no room that way (default = wall) 283level_edge_hit_tile = wall 284 285; Enable triggering any tile. (default = false) 286; For example, a button could make loose floors fall, or start a stuck chomper. 287allow_triggering_any_tile = false 288 289; Enable the dungeon Wall Drawing Algorithm (WDA) in the palace environment. 290; N.B. Use with a modified VPALACE.DAT that provides dungeon-like wall graphics! 291enable_wda_in_palace = false 292 293; Colors of the hard-coded color palette (RGB values 0..255, will be rounded down to nearest multiple of 4). 294vga_color_0 = 0, 0, 0 295vga_color_1 = 0, 0, 170 296vga_color_2 = 0, 170, 0 297vga_color_3 = 0, 170, 170 298vga_color_4 = 170, 0, 0 299vga_color_5 = 170, 0, 170 300vga_color_6 = 170, 85, 0 301vga_color_7 = 170, 170, 170 302vga_color_8 = 85, 85, 85 303vga_color_9 = 85, 85, 255 304vga_color_10 = 85, 255, 85 305vga_color_11 = 85, 255, 255 306vga_color_12 = 255, 85, 85 307vga_color_13 = 255, 85, 255 308vga_color_14 = 255, 255, 85 309vga_color_15 = 255, 255, 255 310 311; Level that will be loaded when starting a new game. (default = 1) 312first_level = 1 313 314; Always skip the title sequence: the first level will be loaded immediately. (default = false) 315skip_title = false 316 317; First level where level skipping with Shift+L is denied in non-cheat mode. (default = 4) 318shift_L_allowed_until_level = 4 319 320; Number of minutes left after Shift+L is used in non-cheat mode. (default = 15) 321shift_L_reduced_minutes = 15 322 323; Number of ticks left after Shift+L is used in non-cheat mode. (default = 719) 324; (1 tick = 1/12 second, 719 ticks is 59.92 seconds) 325shift_L_reduced_ticks = 719 326 327; Hitpoints the kid has on the demo level. (default = 4) 328demo_hitp = 4 329 330; Demo level ending screen. (default = 24) 331demo_end_room = 24 332 333; Level where the presentation music is played when the kid crouches down. (default = 1) 334intro_music_level = 1 335 336; First level (except the demo level) where kid has the sword at the beginning of the level. (default = 2) 337; Set to 'never' to always start without the sword. 338have_sword_from_level = 2 339 340; Level where there is a checkpoint. (default = 3) 341; The checkpoint is triggered when leaving room 7 to the left. 342checkpoint_level = 3 343 344; Respawn direction after triggering the checkpoint. (default = left) 345checkpoint_respawn_dir = left 346 347; Room where you respawn after triggering the checkpoint. (default = 2) 348checkpoint_respawn_room = 2 349 350; Tile position (0 to 29) where you respawn after triggering the checkpoint. (default = 6) 351checkpoint_respawn_tilepos = 6 352 353; Room where a tile is cleared after respawning at the checkpoint location. (default = 7) 354checkpoint_clear_tile_room = 7 355 356; Location (column/row) of the cleared tile after respawning at the checkpoint location. (default: column = 4, row = top) 357; Possible row values are: 0: top, 1: middle, 2: bottom 358checkpoint_clear_tile_col = 4 359checkpoint_clear_tile_row = top 360 361; Level and room where a skeleton can come alive. (default: level = 3, room = 1) 362skeleton_level = 3 363skeleton_room = 1 364 365; The skeleton will wake up if the kid is on one of these two columns. (defaults = 2,3) 366skeleton_trigger_column_1 = 2 367skeleton_trigger_column_2 = 3 368 369; Location (column/row) of the skeleton tile that will awaken. (default: column = 5, row = middle) 370skeleton_column = 5 371skeleton_row = middle 372 373; Whether the level door must first be opened before the skeleton awakes. (default = true) 374skeleton_require_open_level_door = true 375 376; Skill of the awoken skeleton. (default = 2) 377skeleton_skill = 2 378 379; If the skeleton falls into this room, it will reappear there. (default = 3) 380skeleton_reappear_room = 3 381 382; Horizontal coordinate where the skeleton reappears. (default = 133) 383; (58 = left edge of the room, 198 = right edge) 384skeleton_reappear_x = 133 385 386; Row on which the skeleton reappears. (default = middle) 387skeleton_reappear_row = middle 388 389; Direction the skeleton is facing when it reappears. (default = right) 390skeleton_reappear_dir = right 391 392; Level and room where the mirror appears. (default: level = 4, room = 4) 393mirror_level = 4 394mirror_room = 4 395 396; Location (column/row) of the tile where the mirror appears. (default: column = 4, row = top) 397mirror_column = 4 398mirror_row = top 399 400; Tile type that appears when the mirror should appear. (default = mirror) 401mirror_tile = mirror 402 403; Show the kid's mirror image in the mirror. (default = true) 404show_mirror_image = true 405 406; Level where the kid can progress to the next level by falling off a specific room. (default: level = 6, room = 1) 407falling_exit_level = 6 408falling_exit_room = 1 409 410; If the kid starts in this level in this room, the starting room will not be shown, 411; but the room below instead, to allow for a falling entry. (default: level = 7, room = 17) 412falling_entry_level = 7 413falling_entry_room = 17 414 415; Level and room where the mouse appears. (default: level = 8, room = 16) 416mouse_level = 8 417mouse_room = 16 418 419; Number of ticks to wait before the mouse appears. (default = 150) 420mouse_delay = 150 421 422; Mouse object type. (default = 24) 423; Be careful: a value not 24 will change the mouse for the kid. 424mouse_object = 24 425 426; Horizontal starting coordinate of the mouse. (default = 200) 427mouse_start_x = 200 428 429; Level and rooms where visible loose floor tiles will fall down. (default: level = 13, rooms = 23,16) 430loose_tiles_level = 13 431loose_tiles_room_1 = 23 432loose_tiles_room_2 = 16 433 434; Range of loose floor tile positions that will be pressed. (default = 22 to 27) 435loose_tiles_first_tile = 22 436loose_tiles_last_tile = 27 437 438; Killing the guard in this level causes the screen to flash, and event 0 to be triggered upon leaving the room. (default = 13) 439jaffar_victory_level = 13 440 441; How long the screen will flash after killing Jaffar. (default = 18) 442jaffar_victory_flash_time = 18 443 444; First level where the level number will not be displayed. (default = 14) 445hide_level_number_from_level = 14 446 447; Level number displayed on level 13. (default = 12) 448level_13_level_number = 12 449 450; Level where Jaffar's death stops time. (default = 13) 451victory_stops_time_level = 13 452 453; Level and room where you can win the game. (default: level = 14, room = 5) 454win_level = 14 455win_room = 5 456 457; Number of ticks to wait before a loose floor falls. (default = 11) 458loose_floor_delay = 11 459 460; Game speed when not fighting (delay between frames in 1/60 seconds). Smaller is faster. (default = 5) 461base_speed = 5 462 463; Game speed when fighting (delay between frames in 1/60 seconds). Smaller is faster. (default = 6) 464fight_speed = 6 465 466; Chomper speed (length of the animation cycle in frames). Smaller is faster. (default = 15) 467chomper_speed = 15 468 469 470; The following customization options can be used in all level sections: 471; level_type = 0: dungeon, 1: palace 472; level_color = 0: colors from VDUNGEON.DAT/VPALACE.DAT, >0: colors from PRINCE.DAT (You need a PRINCE.DAT from 1.3 or 1.4 for this.) 473; guard_type = -1: none, 0: guard, 1: fat, 2: skel, 3: vizier, 4: shadow 474; guard_hp = Base hitpoints for guards on this level. 475; cutscene = 0: none, 2 or 6: standing, 4: lying down, 8: mouse leaves, 9: mouse returns, 12: standing or turn around 476; The numbers correspond to the number of the level which had that cutscene in the original game. 477; entry_pose = 0: turning, 1: falling, 2: running 478; seamless_exit = -1: disabled, >0: room where the level can be seamlessly exited. 479; The default values can be found in doc/default_level_options.txt . 480[Level 0] ; demo 481[Level 1] 482[Level 2] 483[Level 3] 484[Level 4] 485[Level 5] 486[Level 6] 487[Level 7] 488[Level 8] 489[Level 9] 490[Level 10] 491[Level 11] 492[Level 12] 493[Level 13] ; Jaffar 494[Level 14] ; princess 495[Level 15] ; potions 496 497 498; The following customization options can be used for guard skills: 499; strikeprob = Probability of striking, from 0 to 255. 500; restrikeprob = Probability of re-striking after block, from 0 to 255. 501; blockprob = Probability of blocking, from 0 to 255. 502; impblockprob = Probability of improper blocking, from 0 to 255. 503; advprob = Probability of going into hit range, from 0 to 255. 504; refractimer = Refractory period after pain, in frames. 505; extrastrength = Extra hit points. 506; The default values can be found in doc/default_skill_options.txt . 507[Skill 0] 508[Skill 1] 509[Skill 2] 510[Skill 3] 511[Skill 4] 512[Skill 5] 513[Skill 6] 514[Skill 7] 515[Skill 8] 516[Skill 9] 517[Skill 10] ; a in apoplexy 518[Skill 11] ; b in apoplexy 519