Introduction
============

This is YeoldeDink, a fork of GNU Freedink not associated with the GNU Project, derived from Ghostknights repo. All of Ghostknight's improved SDL logging features are included in this release. The changes I have implemented in this particular fork are as follows:

* Improved PNG support. PNG files should now work properly without a filename change and without having to resize sprites.
* Turned off some of the mouse capture options and touch events.
* Now uses "software renderer" by default.
* Debug mode now uses Dear Imgui, and has some extra features, as well as the potential for new ones.
* Implemented "get_client_fork()" as per Seth's recommendation. Currently returns 3.
* builds should play audio at 44.1khz now instead of 22.


0.2 update:
- Got rid of some windows and moved things into the menu bar
- 8-bit mode is now inaccessible
- Added sprite, variable, and script info viewers
- Moved the DinkC console into the floating info window
- Added the ability to pause the game while the console is active
- The game itself is now viewable in a separate window
- The main renderer can now be switched off too
- Expanded "Ultimate Cheat" and the log window a bit more
- Added "map viewer" window showing which screen you're on
- Quick save/load (slot 1337)

0.3 update:
- Added sysinfo window
- Audio control window for SFX and BGM levels
- added a slow mode
- added controller rumble when hurt
- pressing Tab now increases speed only in normal mode
- Added a speed menu.
- Added "play_mod_order(int order)" for tracker modules to DinkC commands. Requires SDL-Mixer 2.6 and up.
- SoundFonts also seem to work now by specifying the SDL_SOUNDFONTS environment variable on the command line. Confirmation is visible in the audio window.
- Added MP3 playback support in case you want to play Prelude properly.
- Added support for PNG tilescreens (that Seth missed ;-))

0.4:
- Didn't release and skipped straight to 0.5
- Fixed that mapnuke map.dat loading bug present in FB2 and others with high screen counts
- Fixed a minor issue where text from say() would appear white upon screen load after warping when it was supposed to be another colour

0.5:
- Reintroduced OpenGL renderer and 8-bit mode
- 8-bit mode only works properly with the -S command line flag (software renderer)
- The OpenGL renderer will always use 24-bit display mode
- Changed a few menus around
- Added variable and sprite editors. Remember you can ctrl+click on slider widgets to manually input a value. May need to turn the console on first for keyboard input.
- Pressing the Tab key in mouse mode resets the cursor to the middle of the screen
- The host mouse cursor only shows in debug mode and otherwise is hidden

0.6:
- Added a standardised gamepad mapping using SDL_Controller
- The mapping is not reassignable
- Added a map sprite editor to complement the live sprite editor
- Added an inbuilt launcher with D-mod support
- Menus moved around again
- Updated to the newest ImGui stable
- Fixed a bug with clipped sprites in the software renderer
- The Dink cursor should no longer move with the mouse while in debug mode
- The info window no longer displays by default in debug mode
- Pressing Alt+U will unfreeze sprite 1


Building
======

On Windows:
- Install MSYS2 and install the relevant packages in the Mingw64 environment. The others may work but are untested
- The relevant packages include SDL2, SDL2_image, SDL2_ttf, SDL_gfx, glm and a few others such as Fontconfig. Install anything else it complains about lacking
- You may also need libintl and Gettext, along with the relevant autotools packages such as autopoint and automake
- run ./bootstrap and then ./configure --disable-tests
- you should be able to run make and have it produce an exe in the src folder
- Package it up with the relevant 64-bit dlls.

On MacOS
- Install Homebrew from brew.sh
- Install the SDL2, SDL2_image, SDL2_ttf, glm, fontconfig, gettext, autotools, autopoint, automake etc
- Run ./bootstrap then ./configure --disable-tests
- run make and it should output an executable in src

Known Issues
============

* Transparent PNGs used as tilesets will show the tiles of the previous screen underneath.
* 256-colour mode simply will not work properly
* The editor will not build, and will throw linker errors.
* D-mod PNG sequences that replace those in Dink's data must have all frames replaced completely, or else will fall back to using the original BMPs.
* The software renderer may be slow in "desktop fullscreen" mode, particularly when speeding up the game with the Tab key. Resizing the window doesn't exhibit this.
