Subversion Repositories Games.Prince of Persia

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 pmbaty 1
Change log and history.
2
For recent changes, look at GitHub: https://github.com/NagyD/SDLPoP/commits/master
3
 
4
2012 July 28
5
============
6
Released disassembly of PoP1 DOS: http://forum.princed.org/viewtopic.php?p=11347#p11347
7
 
8
2013 September 01
9
=================
10
I posted the room-drawing code (rewritten to C+SDL) in the forum.
11
http://forum.princed.org/viewtopic.php?f=68&t=3368
12
 
13
2013 December
14
=============
15
Started rewriting the further parts of the disassembly to C.
16
 
17
2014 January 03
18
===============
19
Released disassembly: http://forum.princed.org/viewtopic.php?p=14291#p14291
20
 
21
2014 January
22
============
23
Most rewriting is done.
24
I started to find and fix the (many!) bugs.
25
Most of them resulted from the mis-reading of the disassembly.
26
 
27
2014 May 29
28
===========
29
Made the code compatible with GNU/Linux.
30
 
31
2014 July 11
32
============
33
First public mention of the port.
34
http://forum.princed.org/viewtopic.php?p=14975#p14975
35
 
36
2014 July 21
37
============
38
(version 1.00)
39
The first public release.
40
http://forum.princed.org/viewtopic.php?f=69&t=3512
41
 
42
2014 July 22
43
============
44
(version 1.01)
45
Fixed bugs:
46
FIXED: Game is too fast for a short time after switching rooms. (Or restarting the level)
47
FIXED: Cutscenes fade too fast without COMPAT_TIMER
48
FIXED: Andrew: "New rooms take quite some time to be drawn, with the screen being blank in-between"
49
FIXED: If the mouse cursor leaves/enters the window, the game does as if the pressed keys were released.
50
New feature:
51
DONE: Hide cursor in fullscreen.
52
 
53
2014 July 23
54
============
55
Fixed bugs:
56
FIXED: Keys did not repeat themselves.
57
	Needed for keys like "+" and "-".
58
FIXED: Starting a new game after winning a previous one makes all texts in the game blue instead of white.
59
 
60
2014 July 24
61
============
62
Fixed bugs:
63
FIXED: When the screen is flashing, there may be black rectangles around the moving objects.
64
FIXED: Can't do level 7 trick.
65
 
66
2014 August 01
67
==============
68
New feature:
69
DONE: Support LEVELS.DAT
70
 
71
2014 August 04
72
==============
73
Fixed bugs:
74
FIXED: Can't interrupt fading of title screen.
75
FIXED: (Micro Palace, level 12) If kid is on the very left (in bottom row), then shadow is in wrong direction (looking left), and is constantly turning around.
76
 
77
2014 August 05
78
==============
79
(version 1.02)
80
(Contains all fixes listed above)
81
 
82
2014 August 06
83
==============
84
FIXED: (Micro Palace, level 4) After kid enters exit door, chomper bites kid.
85
FIXED: shadow is partially green when he is looking to the right
86
FIXED: (Prince of Wateria, level 5 room 3) (palace) Empty potion has red bubbles.
87
DONE: Support all .DAT files
88
 
89
2014 August 07
90
==============
91
(version 1.03)
92
(Contains all fixes listed above)
93
 
94
2014 August 08
95
==============
96
(version 1.04)
97
FIXED: Made compatible with 64-bit.
98
 
99
2014 August 10
100
==============
101
FIXED: If color 0 of a palette was not black, then it was not transparent.
102
FIXED: PNGs with alpha channel are drawn properly.
103
 
104
2014 August 11
105
==============
106
(version 1.05)
107
(Contains all fixes listed above)
108
 
109
2014 August 23
110
==============
111
FIXED: When fighting, parry-attack-parry-attack-... sequences stop when the guard attacks.
112
 
113
2014 August 24
114
==============
115
(version 1.06)
116
DONE: Sound timing (slow-fall and intro needs this)
117
DONE: Background color of texts in intro and ending
118
FIXED: prandom(): initialize from current time
119
 
120
2014 August 28
121
==============
122
(version 1.07)
123
FIXED: Under Linux, the game hanged randomly, because the main timer sometimes didn't generate its event.
124
FIXED: Removed the "Would play sound", "length =", "set_char_collision" and "Loading chtab" messages.
125
	Those were annoying and possibly slowed the game down.
126
FIXED: Level 12: If I enter the last room while the music is still "playing", then the game does not advance to level 13.
127
	And quits with error: Tried to load cutscene for level 26, not in 0..15
128
FIXED: Level 12->13 transition should not restore full HP or show level number.
129
FIXED: Displaying text is visibly slow on some systems.
130
 
131
2014 September 05
132
=================
133
FIXED: Pressing "K" on a skeleton crashes the game.
134
 
135
2014 September 22
136
=================
137
(version 1.08)
138
DONE: Digi sounds (only from DAT)
139
 
140
2014 September 23
141
=================
142
FIXED: The game quits in the intro, when Jaffar opens the door.
143
 
144
2014 September 25
145
=================
146
FIXED: When doing the level 5 trick (backing through the gate), the kid appears in the room to the *right* instead of left.
147
FIXED: Level 5: If you back out from the room where the guard is originally (but the screen is not switched), the kid might fall through the floor at the level door.
148
 
149
2014 September 28
150
=================
151
(version 1.09)
152
(Contains all fixes listed above)
153
Renamed the project to SDLPoP.
154
DONE: Added version number to the window title.
155
 
156
2014 October 11
157
===============
158
(version 1.10)
159
FIXED: Made the game compatible with Mac OS X, based on the suggestions by StaticReturn (from the Princed forum).
160
CHANGE: Now cheats are disabled by default unless the game is compiled in debug mode.
161
 
162
2014 October 27
163
===============
164
CHANGE: Added a font inside the exe. So the game can start without the data/font/ folder.
165
CHANGE: Changed project type to GUI. This means that the (empty) console window won't appear under Windows.
166
CHANGE: Changed "SDL" to "SDLPoP" in the window title.
167
 
168
2014 October 28
169
===============
170
(version 1.11)
171
(Contains all changes listed above)
172
 
173
2014 December 3
174
===============
175
FIXED: When doing Trick 95, the kid might bounce back from the wall a bit.
176
 
177
2014 December 20
178
================
179
(version 1.12)
180
FIXED: Don't quit if there is no sound device available.
181
	Instead, just disable digi sound.
182
	This can happen, for example, on a Raspberry PI emulator (QEMU).
183
 
184
2015 February 13
185
================
186
(version 1.13)
187
Added support for music.
188
Fixed some memory leaks.
189
 
190
2015 February 16
191
================
192
(version 1.14)
193
FIXED: Changed project type to GUI in the "release" project, too.
194
FIXED: Ctrl-S did not turn off mixer sounds.
195
FIXED: Ctrl-S did not stop currently playing sounds.
196
DONE: Toggle fullscreen with alt-enter.
197
FIXED: If the game is in full screen, and I switch away (alt-tab) and back, most of the screen will be black, until it is redrawn.
198
 
199
2015 August 3
200
=============
201
(version 1.15)
202
 
203
General changes:
204
DONE: Migration from SDL1 to SDL2.
205
DONE: Game is now displayed at full resolution in fullscreen mode.
206
DONE: Window can now be resized.
207
DONE: Basic joystick support added.
208
DONE: Music files (*.ogg) are now bundled with the release.
209
CHANGE: Window is now displayed at 640 by 400 pixels by default.
210
CHANGE: Cleaned up harmless sound load errors.
211
CHANGE: Sound names are now read from file only once when sounds are loaded.
212
CHANGE: During loading of DAT files, read failures are now checked and reported.
213
CHANGE: More cleanly handle failures to read/write HOF file.
214
CHANGE: Improved reporting for known-failing loads.
215
CHANGE: Pass size of resource area instead of letting it get overridden.
216
CHANGE: The screen is now updated less frequently.
217
CHANGE: Tweaked timer behaviour. The game now attempts to correct for timer-related overhead somewhat, preventing screen updates lagging behind the monitor's refresh rate.
218
FIXED: Flashes are now displayed with a more consistent duration.
219
FIXED: Shift+L skipping cutscenes immediately is now prevented by a short delay timer.
220
FIXED: Fixed bug with flashes not repainting the screen upside down in flipped mode.
221
FIXED: Hardcoded font (hc_font) appeared as white rectangles.
222
 
223
New game additions and bug fixes:
224
DONE: Added quicksaving and quickloading (F6 to quicksave anywhere in a level, F9 to quickload).
225
- Also quicksave/quickload when shift is pressed
226
- Do not even attempt to quicksave after the kid has died
227
- Deny quicksave during the feather fall effect
228
- Allow quickloading from the title screen
229
FIXED: Prevented index to redraw_frames_above[] going out of bounds in set_redraw2(), triggered by loose tiles dropping out of the room from the rightmost column. This caused unpredictable behaviour, depending on the compiler.
230
FIXED: Fixed a bug where level doors would continue to open infinitely far when the global variable leveldoor_open has been modified due to special events or due to another level door being already open.
231
FIXED: Fixed the kid being able to enter closed level doors when there is another one open.
232
FIXED: Fixed a graphical bug occurring when the level start door is raised from the same room.
233
FIXED: Added optional fixes for a few gameplay quirks:
234
- Fix kid falling off the ledge when jumping after climbing two floors
235
- Fix "teleporting" four pixels further than necessary when climbing from firm ground while not in front of a wall
236
- Fix being able to survive lethal falls by jumping on top of a guard
237
- Fix triggering loose floors below by bumping into the wall above
238
- Enable the earlier fixes FIX_GATE_SOUNDS, FIX_TWO_COLL_BUG and FIX_INFINITE_DOWN_BUG.
239
- Fix temporarily standing on thin air when standing up on a falling loose tile
240
- Fix being able to press buttons through closed gates (Trick 1)
241
- Fix being able to grab ledges two stories down by bumping into a wall first
242
- Fix blood appearing on chompers when a skeleton is chomped
243
- Fix controls not being released during the drinking animation, causing unintended movement
244
- Add a way to crouch after climbing up (instead of climbing down again) by pressing down + forward
245
DONE: Increase the number of supported potion types to 32
246
- Quickloading is cancelled when a version string saved in QUICKSAVE.SAV does not match.
247
- Added rem_min and rem_tick to the quicksaved variables. The proposed penalty for quickloading is one minute subtracted from the saved remaining time.
248
FIXED: A drawing bug occurs when a loose tile is placed to the left of a potion (or sword).
249
- Fix guards following through closed gates
250
- Freeze time during the end level music
251
- Add option for debug cheats
252
 
253
Build changes:
254
DONE: Source code of the project has been added to GitHub.
255
CHANGE: Cleaned up and updated Makefile.
256
CHANGE: Added CMakeLists.txt for building using a CMake-based project model.
257
CHANGE: Added main.cpp and "extern C" declarations to allow compilation with a C++ compiler.
258
FIXED: Resolved warnings about multi-string literals by using an enum instead.
259
 
260
Refactorings:
261
CHANGE: Lots of things have changed with the switch to SDL2. To read about game migration from SDL1 to SDL2 in general, the SDL wiki provides a good overview at https://wiki.libsdl.org/MigrationGuide
262
CHANGE: The key_states[] array now has a size of SDL_NUM_SCANCODES and is indexed by SDL scancodes.
263
CHANGE: Modifier keys are now handled cleanly.
264
CHANGE: Removed unnecessary stuff (leftovers from the disassembly, or debug statements)
265
CHANGE: Many identifiers have been changed to better ones.
266
CHANGE: Added named enums for sound IDs, char_type.sword, timer IDs, colors, character frames and sequences.
267
CHANGE: Replaced a number of magic numbers in the code with their enum equivalents.
268
CHANGE: Sequence table deobfuscation.
269
- Fix seqtbl not compiling correctly in release mode
270
 
271
License:
272
Added GPLv3 license (2015 June 27).
273
 
274
2016 January 1
275
================
276
(version 1.16)
277
 
278
DONE: Added ability to view or record replays. (See Readme.txt for information on how to use)
279
DONE: Added changing options without recompiling: use SDLPoP.ini to configure various options.
280
DONE: The game now prompts whether to enable game fixes and enhancements. (See Readme.txt or the forum topic for further details)
281
DONE: Gameplay fix added for safe landing on spikes (Trick 65).
282
DONE: Demo mode can now be used (use the command-line parameter "demo"): in this mode, only the first two levels will be playable, and quotes from magazine reviews will be displayed.
283
DONE: Added ability to draw fake and invisible walls/floors. (See forum topic for details)
284
DONE: Added support for 1.3-format wave sounds.
285
DONE: Added support for alternate level colors. (1.3)
286
DONE: Added the dialog box in the copy protection level.
287
CHANGE: Changed joystick cutoff point to 30000.
288
CHANGE: Added index and NULL checks to chtab reads.
289
CHANGE: Improved the gameplay fix for guards following through closed gates by checking for can_guard_see_kid == 2. Also added a test level.
290
CHANGE: Added collision data, Char and Opp to the list of quicksaved variables.
291
CHANGE: Removed Makefile.win from the Git repository.
292
CHANGE: Added !=NULL to check_param() calls.
293
CHANGE: Build fixes.
294
FIXED: Fixed crash upon drawing characters that have no glyphs, such as newline/carriage return.
295
FIXED: The open potion now gets placed correctly in the copy protection level.
296
FIXED: Fixed interrupting of fades and the speed of fading in cutscenes.
297
FIXED: Changed vertical centering of text to match the original.
298
FIXED: Fixed the order of numbers in the Shift+C cheat.
299
FIXED: Fixed the demo quotes disappearing too soon.
300
DONE: Added option to start fullscreen, change window dimensions in the INI file.
301
DONE: Better INI processing & new custom gameplay options.
302
FIXED: Fixed wall connections not working for fake tiles.
303
DONE: New options: max hitpoints, first & last level where saving is allowed.
304
DONE: Added per-level settings to INI and INI processing.
305
DONE: Added support for named values in the INI file.
306
DONE: Improved gamepad support.
307
DONE: Added support for displaying the game with the original 4:3 aspect ratio.
308
 
309
2017 February 5
310
=================
311
(version 1.17)
312
 
313
General changes:
314
CHANGE: Moved source to src/. (That is, merged the with-folders branch into master.)
315
DONE: Moved OSX documentation to Readme.txt. Upgraded information there. Removed TODO text for the SDL2 port.
316
DONE: Added sources and fake tiles to Readme.
317
DONE: Added Markus installation method with brew install for OSX to the readme.
318
CHANGE: Updated OSX make command in Readme.
319
DONE: Updated forum link in Readme.
320
DONE: Added some contributors and thanks to the Readme.
321
DONE: Removed some old unneeded files.
322
DONE: Added comments to explain the available options in SDLPoP.ini
323
DONE: Add info on the "mod" command line option to doc/Readme.txt
324
DONE: Allow opening DAT files from the data/ directory as well; Moved DAT files to data/ to clean up the main folder.
325
CHANGE: Folders in the data/ directory no longer have the .DAT extension, so they can coexist with .DAT files.
326
FIXED: Removed Dev-C++ note from Linux Makefile.
327
FIXED: Use Mix_Music instead of Mix_Chunk to play music files. This reduces loading time. (contributed by @usineur)
328
FIXED: Fixed Dávid's name in the header comments.
329
DONE: Added an icon.
330
 
331
Miscellaneous game additions, changes, bug fixes:
332
CHANGE: Let time just run when quickloading immediately after quicksave
333
FIXED: Changed the RGB/BGR hack: check whether SDL2 bug occurs before applying RGB24 workaround.
334
FIXED: Fixed fake tiles randomly appeared in place of the disappearing sword.
335
FIXED: Fixed crashing on certain custom DAT files.
336
FIXED: Don't crash if some (or all) data files are missing.
337
CHANGE: Increased sound buffer size to remove noise.
338
CHANGE: Increased sound output settings to CD quality. (That is: 44100 Hz, 16-bit, Stereo.)
339
FIXED: Audio: Changed 16-bit to signed. (@vanfanel wrote this is needed on the Raspberry PI.)
340
FIXED: Fixed bug (and compiler warning) in redraw_at_cur_mob(). (Reported by @petervas.)
341
CHANGE: Change default of use_fixes_and_enhancements to false
342
FIXED: Don't repeat Alt+Enter.
343
FIXED: Alt+Enter should not un-pause the game.
344
CHANGE: Debug timer: display in top left corner, toggle with T
345
FIXED: Added a way to enable debug cheats: use command-line parameter "debug"
346
FIXED: Do not accept filenames as valid command-line parameters in check_param()
347
FIXED: Reduced flickering when text is drawn.
348
DONE: Added info screen shown at startup, with some explanation about SDLPoP.
349
FIXED: Fixed quickload penalty being applied even after time has stopped (after Jaffar has been killed)
350
FIXED: Fixed guards sometimes turning around immediately after quickloading (because is_guard_notice is not set to zero)
351
FIXED: Silenced warnings being printed about image 255, after entering an exit door.
352
FIXED: Fixed graphics bug with SDL 2.0.5 (contributed by @zaps166)
353
DONE: Added command-line parameter --version, -v: Display SDLPoP version and quit.
354
DONE: Added command-line parameter --help, -h: Display help and quit (points to the Readme).
355
DONE: Added command-line parameter seed=number: Set initial random seed, for testing.
356
 
357
Improved controller support:
358
DONE: Improved controller support; migrated to SDL_GameController API (reported by @EndeavourAccuracy).
359
DONE: Implemented two settings for joystick control: horizontal-only (default; idea and original implementation by @EndeavourAccuracy) and all-directional.
360
CHANGE: Controller: Remapped Quit to Start (was B).
361
DONE: Added haptic feedback (when the kid is hurt) for controllers with a rumble motor.
362
 
363
Support for playing mods/custom levelsets:
364
DONE: Added ability to organise mods into their own directories
365
DONE: Use a custom configuration file (mod.ini) for each mod
366
DONE: Allow choosing a levelset from the command line; usage: prince mod "Mod Name"
367
CHANGE: Use a separate Hall of Fame file when playing a custom levelset
368
CHANGE: Use a separate QUICKSAVE.SAV / PRINCE.SAV when playing a custom levelset
369
 
370
New customization/modding features:
371
DONE: CusPop option: start upside down
372
DONE: CusPop option: start in blind mode (slightly buggy)
373
DONE: CusPop option: set level before which the copy protection level appears
374
DONE: CusPop option: set up edges of the level
375
DONE: CusPop option: enable dungeon WDA in palace environment
376
DONE: Allow disabling the time limit completely (by setting 'start_minutes_left' to -1 in SDLPoP.ini)
377
DONE: When time is unlimited, show how much time has passed instead of how much time is remaining
378
DONE: CusPop option: change the hard-coded color palette
379
DONE: CusPop option: change the first level (starting level)
380
DONE: CusPop option: skip title sequence
381
DONE: CusPop option: set up effect of Shift+L in non-cheat mode
382
DONE: CusPop option: set up cutscenes
383
 
384
Replay improvements:
385
CHANGE: Replays get saved to the replays/ directory, have more recognizable names, and are played back in reverse creation order.
386
DONE: Allow changing the folder where replays are kept.
387
CHANGE: The replay format was changed -- older replays will no longer work!
388
CHANGE: Replay format: added magic number 0x50 0x31 0x52 ("P1R")
389
CHANGE: Replay format: replaced version strings with class, version and deprecation numbers that can be used to determine whether a replay is compatible.
390
CHANGE: Replay format: added the time of the recording (Unix time) to the replay format.
391
CHANGE: Replay format: added the name of the program that created the replay to the replay format.
392
CHANGE: Replay format: stored replay options are now split up into several sections.
393
CHANGE: Replay format: use 32-bit sizes independent of platform (32 or 64 bits).
394
CHANGE: Gameplay options are now stored differently in replays.
395
FIXED: Incompatible replays will be skipped in the cycle order.
396
FIXED: Added more informative error messages if a replay is incompatible.
397
FIXED: Fixed being unable to unpause while replaying.
398
FIXED: Fixed replays running out of sync when the end of a temporary effect is triggered by the music stopping (level 1 start, feather fall).
399
FIXED: Fixed several bugs that could cause crashes when a replay file is loaded.
400
DONE: Replay: show error message in a dialog box if replay loading failed.
401
DONE: Replay: stop the replay upon reaching the Princess room.
402
CHANGE: Don't play end level music while recording or replaying. (Reduces waiting time and improves reproducibility.)
403
DONE: Added a save dialog for replays. This replaces the automatically generated filenames for replays. Pressing Escape discards a replay.
404
DONE: Replay: start recording immediately if Ctrl+Tab pressed on the title screen.
405
DONE: When trying to quickload while recording, show the 'save replay' dialog.
406
FIXED: Fixed replay reproducibility across multiple levels. (Preserve the random seed to prevent going out-of-sync.)
407
DONE: Press F or Shift+F to skip forward through replays (F: skip to next room, Shift+F: skip to next level).
408
DONE: Added command-line option for validating replays, usage: prince validate "replays/replay.p1r"
409
 
410
Fixes for gameplay and drawing bugs, that are also present in the original Prince of Persia for DOS:
411
DONE: Added remembering guard hitpoints. (optional fix/enhancement)
412
FIXED: Fixed the kid being able to glide sideways through the top sections of walls/tapestries while in freefall.
413
FIXED: Fixed the kid dropping through tiles when dropping down from a tapestry.
414
FIXED: Fixed the landing animation aborting when landing against a gate or tapestry+floor instead of a wall.
415
FIXED: Fixed crashing from guards on level 14.
416
FIXED: Improved fix for "standing on thin air" bug.
417
FIXED: Fixed new falling bug caused by "glide through wall" fix, as well as a second wall glitch.
418
FIXED: Fixed unintended sword strike immediately after drawing sword.
419
FIXED: Fixed retreating out of a room without the room actually changing.
420
FIXED: Fixed running jump through tapestry.
421
DONE: Added test level for jumping through tapestry.
422
FIXED: Fixed guards being pushed into walls.
423
FIXED: Fixed jumping through a wall above a closed gate.
424
FIXED: Alternate fix for drawing bug when gates are stacked on top of each other.
425
FIXED: Alternate fix for drawing bug when climbing up to a floot with a big pillar top behind.
426
FIXED: Fixed chompers not starting when grabbing a ledge.
427
FIXED: Fixed offscreen guards not reappearing in adjacent rooms.
428
FIXED: Fixed feather fall effect being interrupted by a level door opening.
429
FIXED: Removed audible 'click' after the swinging sword sound. (contributed by @zaps166)
430
FIXED: Fixed unintended movement after putting the sword away (because controls do not get released properly).
431
 
432
Build changes, source code, refactoring:
433
DONE: OSX port upgraded from SDL to SDL2. Mixer library added in makefile and documentation. Tested.
434
DONE: Merged both makefiles. Now make is fully portable.
435
CHANGE: Updated CMakeLists.txt
436
FIXED: Removed duplicate const to avoid warnings in default gcc settings on OSX. Commented an always-true if.
437
DONE: Removed unneeded libraries from Dev-C++ projects.
438
DONE: Add OSX build configuration for CMake
439
FIXED: config: compile with USE_MIXER undefined
440
FIXED: Added extern to all variables in data.h.
441
FIXED: Removed duplicate definition of timer_stopped.
442
DONE: Also changed 0 to timer_0 where appropriate.
443
DONE: Visual C++ (NMake) support
444
CHANGE: Changed COUNT to sizeof in memset.
445
DONE: Added missing color ids, using the color names of the default EGA palette
446
CHANGE: Set minimum CMake version required to 2.8
447
DONE: Added some comments in land().
448
FIXED: Added range checks in load_frame().
449
FIXED: Added newline at the end of error messages that didn't already have one.
450
FIXED: Make NMakefile and unistd_win.h non-executable
451
DONE: Add optimization level (O2) to Makefile, silence uninitialized warning
452
DONE: Remove CMakeLists.txt in root directory
453
DONE: Added optimization (-O2) to Dev-C++ release project as well.
454
DONE: Add .editorconfig
455
DONE: Added maximum path length macro POP_MAX_PATH set to 256
456
CHANGE: Refactor so that HOF path is obtained from get_hof_path()
457
CHANGE: Refactor: removed options_type (replacement: options are stored using SDL_RWops streams).
458
DONE: Added new exceptions to .gitignore.
459
FIXED: Ignore replay options in SDLPoP.ini if USE_REPLAY is not defined
460
DONE: Added -std=gnu99 to the Dev-C++ project files.
461
 
462
(no release date yet)
463
=================
464
(upcoming version)
465
 
466
FIXED: Fixed allow_triggering_any_tile hack to work with stuck-closed chompers.
467
DONE: Linux: Added .desktop file and make install/uninstall.
468
DONE: Added option to enable lighting.
469
ADDED: You can make screenshots, both manually with a key or automatically from the command line.
470
ADDED: You can also make screenshots of the whole level.
471
ADDED: Whole-level screenshots can optionally show extra info, like door events.
472
ADDED: You can also start level 0 (demo) and level 15 (potions) from the command line.
473
ADDED: Automatically switch to keyboard or joystick/gamepad mode if there is input from that device.
474
FIXED: Fixed indentation (use tabs) and alignment (use spaces).
475
FIXED: Fixed compiling with MSVC and improve build scripts.
476
FIXED: On Windows, use Unicode/UTF-8 (instead of the current codepage) for replay filenames and directory names.
477
FIXED: Fixed the quicksave note in the splash: save = F6, load = F9.
478
FIXED: Ctrl+S now also mutes music.
479
FIXED: Fixed implicit-function-declaration warnings. (implemented by @Rondom)
480
DONE: Use 8-bit audio samples as a workaround if using older (buggy) SDL2 versions (older than 2.0.4).
481
FIXED: Removed redefinition of SDL_COMPILE_TIME_ASSERT.
482
FIXED: Add (back) SDL_Joystick interface because not all joysticks are SDL_Controller compatible. (implemented by @vanfanel)
483
DONE: Convert waves to mixer sounds when they are loaded, not when they are first played. (suggested by @vanfanel)
484
FIXED: Updated Readme.txt - fix macOS instructions.
485
DONE: Added option to force pixel perfect scaling (integer scale factors).
486
FIXED: Show level number when cycling between replays with Tab.