Change log and history.
For recent changes, look at GitHub: https://github.com/NagyD/SDLPoP/commits/master

2012 July 28
============
Released disassembly of PoP1 DOS: http://forum.princed.org/viewtopic.php?p=11347#p11347

2013 September 01
=================
I posted the room-drawing code in the forum.
http://forum.princed.org/viewtopic.php?f=68&t=3368

2013 December
=============
Started rewriting the further parts of the disassembly to C.

2014 January 03
===============
Released disassembly: http://forum.princed.org/viewtopic.php?p=14291#p14291

2014 January
============
Most rewriting is done.
I started to find and fix the (many!) bugs.
Most of them resulted from the mis-reading of the disassembly.

2014 May 29
===========
Made the code compatible with GNU/Linux.

2014 July 11
============
First public mention of the port.
http://forum.princed.org/viewtopic.php?p=14975#p14975

2014 July 21
============
(version 1.00)
The first public release.
http://forum.princed.org/viewtopic.php?f=69&t=3512

2014 July 22
============
(version 1.01)
Fixed bugs:
FIXED: Game is too fast for a short time after switching rooms. (Or restarting the level)
FIXED: Cutscenes fade too fast without COMPAT_TIMER
FIXED: Andrew: "New rooms take quite some time to be drawn, with the screen being blank in-between"
FIXED: If the mouse cursor leaves/enters the window, the game does as if the pressed keys were released.
New feature:
DONE: Hide cursor in fullscreen.

2014 July 23
============
Fixed bugs:
FIXED: Keys did not repeat themselves.
	Needed for keys like "+" and "-".
FIXED: Starting a new game after winning a previous one makes all texts in the game blue instead of white.

2014 July 24
============
Fixed bugs:
FIXED: When the screen is flashing, there may be black rectangles around the moving objects.
FIXED: Can't do level 7 trick.

2014 August 01
==============
New feature:
DONE: Support LEVELS.DAT

2014 August 04
==============
Fixed bugs:
FIXED: Can't interrupt fading of title screen.
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.

2014 August 05
==============
(version 1.02)
(Contains all fixes listed above)

2014 August 06
==============
FIXED: (Micro Palace, level 4) After kid enters exit door, chomper bites kid.
FIXED: shadow is partially green when he is looking to the right
FIXED: (Prince of Wateria, level 5 room 3) (palace) Empty potion has red bubbles.
DONE: Use .DAT files

2014 August 07
==============
(version 1.03)
(Contains all fixes listed above)

2014 August 08
==============
(version 1.04)
FIXED: Made compatible with 64-bit.

2014 August 10
==============
FIXED: If color 0 of a palette was not black, then it was not transparent.
FIXED: PNGs with alpha channel are drawn properly.

2014 August 11
==============
(version 1.05)
(Contains all fixes listed above)

2014 August 23
==============
FIXED: When fighting, parry-attack-parry-attack-... sequences stop when the guard attacks.

2014 August 24
==============
(version 1.06)
DONE: Sound timing (slow-fall and intro needs this)
DONE: Background color of texts in intro and ending
FIXED: prandom(): initialize from current time

2014 August 28
==============
(version 1.07)
FIXED: Under Linux, the game hanged randomly, because the main timer sometimes didn't generate its event.
FIXED: Removed the "Would play sound", "length =", "set_char_collision" and "Loading chtab" messages.
	Those were annoying and possibly slowed the game down.
FIXED: Level 12: If I enter the last room while the music is still "playing", then the game does not advance to level 13.
	And quits with error: Tried to load cutscene for level 26, not in 0..15
FIXED: Level 12->13 transition should not restore full HP or show level number.
FIXED: Displaying text is visibly slow on some systems.

2014 September 05
=================
FIXED: Pressing "K" on a skeleton crashes the game.

2014 September 22
=================
(version 1.08)
DONE: Digi sounds (only from DAT)

2014 September 23
=================
FIXED: The game quits in the intro, when Jaffar opens the door.

2014 September 25
=================
FIXED: When doing the level 5 trick (backing through the gate), the kid appears in the room to the *right* instead of left.
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.

2014 September 28
=================
(version 1.09)
(Contains all fixes listed above)
Renamed the project to SDLPoP.
DONE: Added version number to the window title.

2014 October 11
===============
(version 1.10)
FIXED: Made the game compatible with Mac OS X, based on the suggestions by StaticReturn (from the Princed forum).
CHANGE: Now cheats are disabled by default unless the game is compiled in debug mode.

2014 October 27
===============
CHANGE: Added a font inside the exe. So the game can start without the data/font/ folder.
CHANGE: Changed project type to GUI. This means that the (empty) console window won't appear under Windows.
CHANGE: Changed "SDL" to "SDLPoP" in the window title.

2014 October 28
===============
(version 1.11)
(Contains all changes listed above)

2014 December 3
===============
FIXED: When doing Trick 95, the kid might bounce back from the wall a bit.

2014 December 20
================
(version 1.12)
FIXED: Don't quit if there is no sound device available.
	Instead, just disable digi sound.
	This can happen, for example, on a Raspberry PI emulator (QEMU).

2015 February 13
================
(version 1.13)
Added support for music.
Fixed some memory leaks.

2015 February 16
================
(version 1.14)
FIXED: Changed project type to GUI in the "release" project, too.
FIXED: Ctrl-S did not turn off mixer sounds.
FIXED: Ctrl-S did not stop currently playing sounds.
DONE: Toggle fullscreen with alt-enter.
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.

2015 August 3
=============
(version 1.15)

General changes:
DONE: Migration from SDL1 to SDL2. 
DONE: Game is now displayed at full resolution in fullscreen mode.
DONE: Window can now be resized.
DONE: Basic joystick support added.
DONE: Music files (*.ogg) are now bundled with the release.
CHANGE: Window is now displayed at 640 by 400 pixels by default.
CHANGE: Cleaned up harmless sound load errors.
CHANGE: Sound names are now read from file only once when sounds are loaded.
CHANGE: During loading of DAT files, read failures are now checked and reported.
CHANGE: More cleanly handle failures to read/write HOF file.
CHANGE: Improved reporting for known-failing loads.
CHANGE: Pass size of resource area instead of letting it get overridden.
CHANGE: The screen is now updated less frequently.
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.
FIXED: Flashes are now displayed with a more consistent duration.
FIXED: Shift+L skipping cutscenes immediately is now prevented by a short delay timer.
FIXED: Fixed bug with flashes not repainting the screen upside down in flipped mode.
FIXED: Hardcoded font (hc_font) appeared as white rectangles.

New game additions and bug fixes:
DONE: Added quicksaving and quickloading (F6 to quicksave anywhere in a level, F9 to quickload).
- Also quicksave/quickload when shift is pressed
- Do not even attempt to quicksave after the kid has died
- Deny quicksave during the feather fall effect
- Allow quickloading from the title screen
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.
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.
FIXED: Fixed the kid being able to enter closed level doors when there is another one open.
FIXED: Fixed a graphical bug occurring when the level start door is raised from the same room.
FIXED: Added optional fixes for a few gameplay quirks:
- Fix kid falling off the ledge when jumping after climbing two floors
- Fix "teleporting" four pixels further than necessary when climbing from firm ground while not in front of a wall
- Fix being able to survive lethal falls by jumping on top of a guard
- Fix triggering loose floors below by bumping into the wall above
- Enable the earlier fixes FIX_GATE_SOUNDS, FIX_TWO_COLL_BUG and FIX_INFINITE_DOWN_BUG.
- Fix temporarily standing on thin air when standing up on a falling loose tile
- Fix being able to press buttons through closed gates (Trick 1)
- Fix being able to grab ledges two stories down by bumping into a wall first
- Fix blood appearing on chompers when a skeleton is chomped
- Fix controls not being released during the drinking animation, causing unintended movement
- Add a way to crouch after climbing up (instead of climbing down again) by pressing down + forward
DONE: Increase the number of supported potion types to 32
- Quickloading is cancelled when a version string saved in QUICKSAVE.SAV does not match.
- Added rem_min and rem_tick to the quicksaved variables. The proposed penalty for quickloading is one minute subtracted from the saved remaining time.
FIXED: A drawing bug occurs when a loose tile is placed to the left of a potion (or sword).
- Fix guards following through closed gates
- Freeze time during the end level music
- Add option for debug cheats

Build changes:
DONE: Source code of the project has been added to GitHub.
CHANGE: Cleaned up and updated Makefile.
CHANGE: Added CMakeLists.txt for building using a CMake-based project model.
CHANGE: Added main.cpp and "extern C" declarations to allow compilation with a C++ compiler.
FIXED: Resolved warnings about multi-string literals by using an enum instead.

Refactorings:
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
CHANGE: The key_states[] array now has a size of SDL_NUM_SCANCODES and is indexed by SDL scancodes.
CHANGE: Modifier keys are now handled cleanly.
CHANGE: Removed unnecessary stuff (leftovers from the disassembly, or debug statements)
CHANGE: Many identifiers have been changed to better ones.
CHANGE: Added named enums for sound IDs, char_type.sword, timer IDs, colors, character frames and sequences.
CHANGE: Replaced a number of magic numbers in the code with their enum equivalents.
CHANGE: Sequence table deobfuscation.
- Fix seqtbl not compiling correctly in release mode

License:
Added GPLv3 license (2015 June 27).

2016 January 1
================
(version 1.16)

DONE: Added ability to view or record replays. (See Readme.txt for information on how to use)
DONE: Added changing options without recompiling: use SDLPoP.ini to configure various options. 
DONE: The game now prompts whether to enable game fixes and enhancements. (See Readme.txt or the forum topic for further details)
DONE: Gameplay fix added for safe landing on spikes (Trick 65).
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.
DONE: Added ability to draw fake and invisible walls/floors. (See forum topic for details)
DONE: Added support for 1.3-format wave sounds.
DONE: Added support for alternate level colors. (1.3)
DONE: Added the dialog box in the copy protection level.
CHANGE: Changed joystick cutoff point to 30000.
CHANGE: Added index and NULL checks to chtab reads.
CHANGE: Improved the gameplay fix for guards following through closed gates by checking for can_guard_see_kid == 2. Also added a test level.
CHANGE: Added collision data, Char and Opp to the list of quicksaved variables.
CHANGE: Removed Makefile.win from the Git repository.
CHANGE: Added !=NULL to check_param() calls.
CHANGE: Build fixes.
FIXED: Fixed crash upon drawing characters that have no glyphs, such as newline/carriage return.
FIXED: The open potion now gets placed correctly in the copy protection level.
FIXED: Fixed interrupting of fades and the speed of fading in cutscenes.
FIXED: Changed vertical centering of text to match the original.
FIXED: Fixed the order of numbers in the Shift+C cheat.
FIXED: Fixed the demo quotes disappearing too soon.
DONE: Added option to start fullscreen, change window dimensions in the INI file.
DONE: Better INI processing & new custom gameplay options.
FIXED: Fixed wall connections not working for fake tiles.
DONE: New options: max hitpoints, first & last level where saving is allowed.
DONE: Added per-level settings to INI and INI processing.
DONE: Added support for named values in the INI file.
DONE: Improved gamepad support.
DONE: Added support for displaying the game with the original 4:3 aspect ratio.
