1108.4 2===== 3 4- Never recreate an empty hard.dat in the game, even if there's a 5 problem opening it (avoids corruption when running both the game and 6 an editor at the same time). 7 (thanks CocoMonkey for the report) 8 9- DinkC: load_palette() now searches for palette in the right place 10 (thanks scratcher for the report) 11 12- DinkC: Dink position is updated after a new screen is loaded 13 (thanks metatarasal for the report) 14 15- New translations for the engine strings in Russian (thanks Yuri 16 Kozlov) and Hungarian (thanks Balázs Úr). 17 18 19108.2 20===== 21 22* User-visible changes: 23 24- New, simple versioning scheme, without scary .20YYMMDD date. 25 26- Properly play Dink's intro screen music (see below). 27 28- FreeDinkedit plays sounds on Windows. 29 30- New translation for the engine strings in Brazilian Portuguese 31 (thanks Enrico Nicoletto) 32 33- Update translations of the engine strings 34 (thanks Translation Project) 35 36- 64-bit support for Windows. 37 38* Developer notes: 39 40- Properly play Dink's intro screen music: the original game actually 41 tries both 3.mid and 1003.mid for playmidi("1003.mid"). 42 43- Improved build documentation. 44 45- Display SDL audio driver in debug mode. 46 47- Add AppStream/AppData file for GNU/Linux software centers. 48 49 501.08.20121209 51============= 52 53* User-visible changes: 54 55- Fix game freeze when warping in some special situations, such as 56 when lots of sprites are created; this bug was present in the 57 original Dink (thanks Bas Wijnen) 58 59- New translation for the engine strings in Catalan (thanks Àngel 60 Mompó) and Basque (thanks Gorka Azkarate Zubiaur) 61 62- Update translations of the engine strings (thanks Translation 63 Project), including the Dutch translation which was never credited 64 in this file yet (thanks Koen Torfs) 65 66 671.08.20120427 68============= 69 70* User-visible changes: 71 72- New translations for the engine strings: Esperanto (thanks Felipe 73 Castro), Slovenian (thanks Klemen Košir), Serbian (thanks Мирослав 74 Николић), Croatian (thanks Tomislav Krznar). 75 76- Fix a few bugs (see below). 77 78* Developer notes: 79 80- No palette conversion for dir.ff graphics in truecolor mode (bug in 81 The Blacksmith's Trail). 82 83- Play some MIDI files when the original CD is not present - this 84 behavior was partially broken a while ago. 85 86- Fix issue in some D-Mods related to DinkC's sp_seq(..., -1) command 87 (bug in Day of the Carcass). 88 89 90 911.08.20101114 92============= 93 94* User-visible changes: 95 96- Turbo mode: maintain Tab pressed, and FreeDink will run at triple 97 speed. Useful to accelerate cutscenes that you already saw. 98 99- Display "FreeDink" next to the engine version in the title screen, 100 so that people more easily identify whether they are using the 101 original engine or the FreeDink engine. This will help when people 102 are asking for assistance on the Dink forum, for instance. 103 104- Update Danish and Spanish translations. New Greek, Italian and 105 Czech translations. 106 107- Fix game crashes (experienced in "Agatha's Will", and "The River"). 108 109- Improved ms woe installer: do not ask about deletion for each and 110 every savegame or D-Mod file; add an entry in Add/Remove Programs in 111 the Control Panel; new header pictures. 112 113* Developer notes: 114 115- Some code clean-ups, namely in FreeDinkedit. 116 117- Override transparency for 32bit BMPs. 118 119- The first game crash is related to DinkC variable assignments on a 120 line longer than 100 characters (caused by one fixed-length buffer 121 that wasn't fixed during the DinkC parser clean-up). The second 122 game crash is when a D-Mod author uses an invalid sequence (number 123 >= 1000). 124 125- Document '-t'/'--truecolor' in the command-line output of '--help'. 126 127- Add 'contrib/search_script.c' to locate a DinkC script usage in the 128 world map. 129 130- Upgrade gettext infrastructure from 0.17 to 0.18. Rely on external 131 gettext (and libiconv) under ms woe, rather than the previous 132 bundled 'intl/'. In the process we gained .po charset conversion 133 for that platform. 134 135 1361.08.20100420 137============= 138 139* User-visible changes: 140 141- None - this release just fixes some compilation issues 142 143* Developer notes: 144 145- Include missing acsite.m4 file in releases 146 147- Update gnulib to fix calls to install-reloc on Debian-kfreebsd and 148 Hurd 149 150- Update cross-compilation instructions 151 152 1531.08.20100321 154============= 155 156* User-visible changes: 157 158- Fix a bug where the game would always close in some situations, 159 which was introduced in version 1.08.20090916 (related to the 160 'sp_custom' DinkC command). 161 162- Fix a crash in the developer console when trying to run a command 163 that doesn't exist; the bug was already present v1.08 where the code 164 originates, but Linux tend to be stricter when it comes to memory 165 errors ;) 166 167- New translations for the engine strings: Norwegian Bokmål (thanks 168 Alexander Krivács Schrøder), Finnish (thanks Jorma Karvonen), 169 Spanish (thanks Fernando Carmona Varo), Polish (thanks Michał 170 Trzebiatowski), Danish (thanks Joe Hansen), Vietnamese (thanks 171 Clytie Siddall), Indonesian (thanks Erwid M Jadied), German (thanks 172 Sarah Evans) and French (thanks me). 173 174* Developer notes: 175 176- Fix mikmod build support under ms woe for newer versions of 177 SDL_mixer (version >= 1.2.9) 178 179 1801.08.20090918 181============= 182 183* User-visible changes: 184 185- Correctly locates engine translations under Debian 186 187- Fix crash when quitting under ms woe 188 189* Developer notes: 190 191- Fixed slight memory leak in font lookup 192 193- Updated bundled DLLs 194 195 1961.08.20090916 197============= 198 199* User-visible changes: 200 201- NSIS (NullSoft Install System) script to generate a complete ms woe 202 installer (with FreeDink, DFArc and freedink-data) 203 204- Toggle fullscreen works on more platforms (not just X11) 205 206- New architecture: PSP (playstation portable) 207 208- New logging system, enabled with '-d' (instead of writing debug 209 information on standard output by default), with different 210 priorities (debug/info/warn/error/fatal). You also can easily check 211 for DinkC errors in your scripts by searching for "[DinkC]" in 212 DEBUG.TXT. In addition DinkC errors often carry the line number 213 (rather than the binary offset). 214 215- Dink doesn't crash on very long lines in dink.ini or DinkC scripts 216 217- DinkC: map_tile(...) can modify the first tile square (tile_index=0) 218 219- Lower startup RAM requirements (-7MB so far, and less memory 220 bandwidth for sounds); this is mostly useful for small devices. 221 222- Add support for contextual translations: when there are several 223 lines of dialog that are identical in a few scripts, but need to be 224 translated differently, you can add a context in your PO file such 225 as 'msgctxt "s3-chick:57"' (name of the script in lowercase without 226 extension + the line number). 227 228* Developer notes: 229 230- Dropped libffi dependency to support more architectures 231 232- Fixed SDL_ttf version check (it failed for macport's 2.1.0) 233 234- Code clean-ups, namely in the input subsystem (joystick) and 235 shutdown process. 236 237- Fixed numerous buffer overflows in the DinkC interpreter, and a 238 potential infinite loop during search/replace (when the replacement 239 countained search term). 240 241 2421.08.20090120 243============= 244 245* User-visible changes: 246 247- Fix game freeze in Pilgrim Quest (return value for DinkC functions 248 'get_sprite_with_this_brain', 'get_rand_sprite_with_this_brain', 249 'get_next_sprite_with_this_brain' and 'sp') 250 251* Developer notes: 252 253- Added scripts to rebuild snapshots, .deb, .rpm and .exe unattended 254 255 2561.08.20090109 257============= 258 259* User-visible changes: 260 261- i18n ("internationalization") - or support for translating D-Mods. 262 263- Fix some crashes due to improper D-Mod scripts (e.g. attempt to 264 modify sprite #1000): DinkC scripts are now better validated to 265 avoid this. 266 267* Developer notes: 268 269- DinkC functions are now called dynamically using libffi, for cleaner 270 bindings to the C engine core. The DinkC parser code was also 271 clarified and a few string functions were optimized. 272 273 2741.08.20080920 275============= 276 277* User-visible changes: 278 279- Supports playing Ogg Vorbis for background music (will look for .ogg 280 extension before .mid extension) 281 282* Developer notes: 283 284- Supports /usr/share/games alternate prefix for game data. 285 286- Can search and use system fonts under FreeDesktop-compliant systems 287 (using fontconfig) 288 289 2901.08.20080828: first official release 291===================================== 292 293FreeDink is based on version 1.07 of the original engine and also 294incorporates v1.08 improvements. 295 296The main change is that FreeDink is portable, so it can work under 297operating systems (e.g. GNU/Linux) and architectures (e.g. PowerPC). 298 299The following describe some differences with the original game engine. 300 301* User-visible changes: 302 303- Backward-incompatible changes in v1.08 can be disabled using a 304 'v1.07 mode' (--v1.07 option -- more information in doc/v1.08.txt). 305 This allows playing D-Mods that weren't upgraded to v1.08 yet. 306 307- Game graphics 308 309 - Better windowed mode: supports non-truecolor mode, and can switch 310 between windowed and full-screen using Alt + Enter (X11 only). 311 312 - Avoid color/palette temporary glitch after quitting show_bmp() 313 mode. 314 315 - Smoother truecolor fades, and avoid some glitches in palette mode. 316 317 - Use a different but metric-compatible fonts (alignment and 318 wrapping are conserved), due to copyright issues (see 319 doc/fonts.txt). 320 321 - Widen debug-mode line to avoid some unwanted line wrapping. 322 323- Gamepad: the threshold for joystick axis is slightly greater - with 324 the same threshold than the original game (~10%) Dink is going diags 325 too easily. Feedback welcome :) 326 327- Game speed: set maximum framerate to 50 FPS, which is compatible 328 with v1.08 (see doc/framerate.txt) 329 330- Installation: supports separate directories for original data and 331 additional D-Mods. This permits installing the game as 332 administrator in a write-protected directory, while allowing normal 333 users to install D-Mods in their personal directory. 334 335- Memory usage 336 337 - Requires less memory in truecolor mode (by not converting paletted 338 graphics to truecolor) 339 340 - Fixes memory leaks, in particular when loading a savegame 341 (reloaded graphics were duplicated in memory) 342 343- Editor fixes: 344 345 - To avoid issues with non-US keyboards in the editor, F1->F10-F11 346 and NumPad 0->9-. are used in addition to 1->0-` for tiles 347 selection. 348 349 - When vision is changed from the minimap mode in the editor, don't 350 display the current screen's sprites over the minimap. 351 352 - When text or number is asked in the editor, user now can press 353 'escape' to discard changes. 354 355 - In editor "Alternative Tile Hardness Selector", when going 356 completely to the right or to the bottom of the screen, avoid a 357 postponement for the square selector. Reported at 358 http://www.dinknetwork.com/forum.cgi?MID=57829 359 360 - When editing hardness, print the hardness index actually being 361 edited, instead of the one associated by the current background 362 tile. 363 364 - Display real-time information about hardness in hardness mode. 365 366* Developer notes: 367 368- Compressed BMP support: afaics in some situations, the original Dink 369 engines does not support compressed (RLE?) BMPs. Such BMPs are 370 notably used in "Prophecy of the Ancients" (like the 3 alternate 371 colored orbs) - when support is lacking, graphics are simply not 372 displayed which much complaining in DEBUG.TXT. I believe this 373 support depends on which DX version is used. More surprisingly: 374 there's a screen, still in PotA, where you can pass above and under 375 and bridge (you need to pass under the bridge to blow up a rock in 376 the above screen and thus reach the secret island). There's no way 377 to pass under the bridge when there's no compressed BMP support - I 378 haven't investigated much, but I guess either a missing sprite does 379 not clear the hardness for Dink to pass, either the missing sprite 380 is causing a DinkC script to stop. So, vanilla SDL does not support 381 compressed BMPs, so I used SDL_image everywhere to do so. This means 382 that FreeDink always support compressed BMPs. 383 384- Fix several array-out-of-bounds issues while reproducing the 385 original de-facto engine behavior. 386 387 - For example, in 'init_scripts', the script may check the active 388 status of sprite 1000, while the sprite array has 300 389 elements. This caused bugs after the port and is now 390 fixed. Curiously it didn't seem to cause bugs before. Such bug did 391 'appear' in v1.08 too. 392 393 - Sometimes, a init() or dink.ini line would be more than 80 chars, 394 which is its allocated length in the 'sequence' structure. This 395 would overwrite parts of the next sequence. Possibly this never 396 was an issue, because sequences were initialized incrementally, 397 but an init() line was more likely to cause breakage. This is 398 fixed anyway. 399 400 - When reloading a sequence through init() with a longer sequence, 401 v1.07 will overwrite bits of the next sequence, for dir.ff loading 402 only. v1.08 overwrites for both BMPs and dir.ff sequences to avoid 403 to a bug with mixed dir.ff and BMPs sequences. This bug is 404 documented in dink.ini and loads the sword (longer) hit sequence 405 before the first (shorter) sequence to work-around it. See 406 http://www.dinknetwork.com/forum.cgi?MID=92733 for details. In 407 FreeDink, sequences are never overwritten. 408 409 - Some D-Mods have sequences with more than 50 frames. This triggers 410 a buffer overflow in the original game BUT the overwritten data is 411 the animation metadata ('delay' and 'special' fields), which is 412 not critical for non-animated sprite sequences. Example: "The 413 Green Voice in my Head - Part 1 - Hangover & Agony", first save 414 game then east then house on the right: it shows a shelf with 415 broken vases with is seq 66 frame 65 (> 50). FreeDink reproduces 416 this behavior by allowing up to 1000 frames in a sequence but 417 without the buffer overflow part. 418 419- Command line: fails on invalid options. Supports undocumented 420 '-nomovie' for compatibility with DFArc2. Supports short aliases 421 (e.g. -window -> -w) and double-dash options (e.g. -window -> 422 --window). 423 424- Search path: Dink search data in additional places to support 425 separating reference data and user D-Mods. Check 426 doc/directory_layout.txt for information. 427 428- Dinkedit 429 430 - Dinkedit creates a custom sequence #1 but mark the 4th frame as 431 '-1'. This made FreeDinkEdit crash, so it's set to 0, which means 432 "end of sequence". 433 434 - The editor palette is now Ts01.bmp instead of esplash.bmp - just 435 like the game. This is simpler that way, and nobody changed the 436 editor palette anyway. 437