User Guide for v0.9 Help

Overview

YeOldeDink is a source port of the 1998 RTSoft game "Dink Smallwood" based upon "GNU Freedink" originally developed by Beuc until 2019 and released under the GNU GPL v3. YeOldeDink contains many new features and fixes many long-standing Freedink bugs.

Various Features

  • A completely rewritten debug interface using Dear ImGui that allows for the viewing and editing of most of the engine's inner state live.

  • Advanced logging from Ghostknight's repo.

  • Quick saving/loading, plus autosave.

  • An inbuilt reimplementation of "Ultimate Cheat".

  • A completely rewritten SFX backend using SoLoud that allows for MP3, FLAC, and Ogg Vorbis sound effects to be loaded through load_sound().

  • Compiled releases are using MixerX allowing for numerous MIDI backend choices.

  • MP3 support for Joshriot's "Prelude".

  • Native PNG support without having to resort to file extension hacks.

  • Improved game controller support with a standard mapping, rumble support, and auto-detected disconnects.

  • Save files contain the date and time of saving, rather than the level.

  • Gold and stats will lerp, rather than clattering endlessly or blowing out all available audio channels.

  • An integrated minimal D-mod launcher.

  • Phoenix's DinkLua and script abstracter backend.

Bugs from GNU Freedink resolved

  • The variable-clearing bug on 64-bit platforms

  • The sound effect memory clearing bug caused by newer releases of SDL2-Mixer which makes SFX output impossible.

  • Sound numbers are no longer returned incorrectly by playsound()

  • Calls to random() with zero as the range will no longer cause a crash, math_mod() called with zero as the divisor will produce an error in the error log, and dividing by zero in DinkC should silently fail.

  • D-mods that used MapNuke and have more than 768 screens as a result will no longer cause a crash upon visiting those high-numbered screens.

  • Hard.dat indices for tile screen 41 are now read properly when previously they were lopped off.

  • Sprites clipped to the point of invisibility will no longer cause a crash in certain cases.

  • Using show_bmp() in 24-bit mode will cancel a fade rather than leaving you in the dark.

History

In 2022 the Dink Module "Charlie's Legacy" uncovered a bug related to variable-clearing in the existing Freedink source that was only apparent on certain 64-bit platforms.

In the aftermath of this revelation, a Dink Network poster by the name of Ghostknight set out to resolve this bug and managed to implement an improved logging backend while doing so.

A month or so later, Dink Network user Yeoldetoast decided to take Ghostknight's source tree and add some features to it.

Last modified: 26 May 2024