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