diff CHANGES.txt @ 0:c84446dfb3f5

initial add
author paulo@localhost
date Fri, 13 Mar 2009 00:39:12 -0700
parents
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/CHANGES.txt	Fri Mar 13 00:39:12 2009 -0700
     1.3 @@ -0,0 +1,1067 @@
     1.4 +0.46a (2008-11-09)
     1.5 +  * Preview at top is copied correctly from the back buffer
     1.6 +    (0.45a regression, reported by rednefed).
     1.7 +
     1.8 +_____________________________________________________________________
     1.9 +0.46 (2008-11-08)
    1.10 +  * Tracks number of 4x4 squares that the player forms
    1.11 +    (TOD parity; requested by Ghett0).
    1.12 +  * Added T-Party randomizer (requested by Lardarse).
    1.13 +  * Default lock delay for Zero set to 40 frames, even if it is
    1.14 +    played first (0.45 regression, reported by rck).
    1.15 +  * "[TC]" removed from scenario names (requested by caffeine).
    1.16 +  * PC: Uses fourCCs for option values in lj.ini.
    1.17 +  * PC: Uses double buffer for entire background (bug 0021).
    1.18 +  * PC: Can disable sound effects by deleting or renaming sound.dat
    1.19 +    (requested by moxie101).
    1.20 +  * PC: More of the code is 2-player-clean.
    1.21 +
    1.22 +_____________________________________________________________________
    1.23 +0.45 (2008-04-20)
    1.24 +  * New unified speed curve system: less code, more tables, for
    1.25 +    future loading from a file (bug 0040).
    1.26 +  * All speed curves except Rhythm and Rhythm Zero have been ported
    1.27 +    to the new system.  Notably, Master has been rewritten based on
    1.28 +    the tables from the wiki, and Exponential uses sections.  The
    1.29 +    lock delay speeds up as brutally after 600 pieces as always.
    1.30 +  * Added kludge in the basic makefile that allows building on *BSD
    1.31 +    and GNU/Linux: 'make linux' (patch by kesiev).
    1.32 +  * ljpath: Fixed a couple misspellings in the non-Windows code path
    1.33 +    (reported by kesiev).
    1.34 +  * ljpath: Supports libfat when running on Nintendo DS.
    1.35 +  * A few descriptions of options have been shortened to fit into
    1.36 +    the new GBA/DS look (reported by Bloodstar; patch by caffeine).
    1.37 +  * Writes result and options text to standard output as well as to
    1.38 +    lj-scores.txt. This allows you to do 'lj | postprocessor' even
    1.39 +    if you can't do 'tail -f lj-scores.txt' (requested by kesiev).
    1.40 +  * DS: Writes result and options to /data/lockjaw/lj-scores.txt.
    1.41 +
    1.42 +_____________________________________________________________________
    1.43 +0.44 (2008-02-20)
    1.44 +  * Computes the preview and hold offset of all pieces (was
    1.45 +    wkNextMove in <= 0.43) from the entry position of the I
    1.46 +    tetromino (was wkSpawnMove in <= 0.43).
    1.47 +  * Kick tables have been inverted to a single struct per rotation
    1.48 +    system, for future loading from a file (bug 0016).
    1.49 +  * SKIP_IF system for handling J/L/T exceptions in Arika is replaced
    1.50 +    with IF_NOT_CENTER: wall kicks are allowed if the free-space
    1.51 +    orientation overlaps any blocks other than in the center column.
    1.52 +  * Options DAS doesn't repeat too fast, even on those systems where
    1.53 +    vsync() is a no-op (0.43 regression, reported by caffeine).
    1.54 +    This has the same cause as 0022: Windows Vista ignores vsync().
    1.55 +  * Options DAS doesn't continue across page boundaries.
    1.56 +  * GBA/DS: Options has new look.
    1.57 +  * DS: Reads the touch screen and the X and Y buttons.  Right now,
    1.58 +    touch isn't mapped to anything, but X and Y are Far Right and
    1.59 +    Far Left.
    1.60 +
    1.61 +_____________________________________________________________________
    1.62 +0.43a (2008-02-11)
    1.63 +  * Arika modified to use SKIP_IF3 after (not before) the basic
    1.64 +    position.  This restores ability to rotate J, L, and T with
    1.65 +    kicks turned off, such as in IRS (reported by Lion).
    1.66 +  * PC: Uses shfolder.dll so that installability works even on
    1.67 +    Windows 98 (0.43 regression, reported by Rich Nagel).
    1.68 +  * PC: Key bindings to J, M, and Z are correctly saved (0.43
    1.69 +    regression, reported by DIGITAL).
    1.70 +  * PC: In Game Keys, the names of Up and Down key bindings are
    1.71 +    clearer (requested by 4matsy).
    1.72 +
    1.73 +_____________________________________________________________________
    1.74 +0.43 (2008-02-10)
    1.75 +  * Player can initial-rotate out of block out (bug 0090).
    1.76 +  * Initial rotation doesn't use wall kick (bug 0059).
    1.77 +  * Names for values in Drop scoring and Shadow fixed
    1.78 +    (0.42 regression, reported by Lardarse).
    1.79 +  * Number of line clears in DS debrief should be cut off at the
    1.80 +    right side less often (bug 0089; fix based on a patch by kesiev).
    1.81 +  * Fixed line clear gravity in cascade preset (reported by 4matsy).
    1.82 +  * Fixed Fibonacci scoring with more than 8 lines per piece
    1.83 +    (reported by 4matsy).
    1.84 +  * Debrief is more compact, allowing GBA to use debrief (bug 0031;
    1.85 +    fix based on a patch by kesiev).
    1.86 +  * Debrief: Zigzag secret grade requires the hole in the top row to
    1.87 +    be covered (reported by Kitaru).
    1.88 +  * PC: If installed.txt is in the same folder as the program,
    1.89 +    ignores the current directory and stores all writable files
    1.90 +    to the user's application data folder (bug 0091).
    1.91 +  * PC: When loading skins, searches for files in the folder with
    1.92 +    the .skin file instead of the current directory (bug 0033).
    1.93 +  * PC: Replay sets up playback gimmick (0.42 regression,
    1.94 +    reported by DIGITAL).
    1.95 +  * PC: LJVorbis doesn't double-fclose the .ogg file
    1.96 +    (reported by kesiev).
    1.97 +  * PC: Mouse drops to bottom after skin or replay selection
    1.98 +    (requested by jujube).
    1.99 +  * PC: Options is separated into pages, like on GBA/DS (bug 0082).
   1.100 +    This frees up room for larger type (requested by jujube).
   1.101 +
   1.102 +_____________________________________________________________________
   1.103 +0.42 (2008-02-03) aka LOCKJAW XLII
   1.104 +  * Docs: Most of TODO.txt has been converted to a numbered list
   1.105 +    of bugs (bug 0100).
   1.106 +  * An off-by-1/65536 error in enter below ceiling was fixed.
   1.107 +    This means it doesn't give one extra row of room to slide on
   1.108 +    at the top of the well (reported by Caithness and Kukuunen).
   1.109 +  * In case of a block out, draws the offending piece in the well
   1.110 +    before entering game over animation.
   1.111 +  * Extra 5-frame cascade delay removed.
   1.112 +  * With Lockdown set to Step reset, lock delay resets on the
   1.113 +    first floor kick.
   1.114 +  * Tengen rotation system tries kicking one space to the left
   1.115 +    (requested by zaphod77).
   1.116 +  * Options' names and values are looked up from fourCCs for future
   1.117 +    localizability.
   1.118 +  * Options: Names of speeds in fractions of 1G are computed.
   1.119 +  * Options skips unpacking options with a value of 255.
   1.120 +    This allows multiple pref structures to be unpacked on top
   1.121 +    of each other, and each overrides the ones before it.
   1.122 +  * Debrief displays options on a second page.
   1.123 +  * Debrief correctly displays soft drop speed as a fraction (0.41
   1.124 +    regression, reported by Lardarse).
   1.125 +  * Debrief: PC specific parts moved to separate source code file.
   1.126 +  * Debrief uses a lower-level function to format ISO 8601 date
   1.127 +    and time so as not to bring in the floating-point library's
   1.128 +    space overhead on platforms without an FPU.
   1.129 +  * Debrief plays a sound when turning the page.
   1.130 +  * PC: Delay for holding Esc to quit no longer depends on
   1.131 +    display refresh rate.  Instead, it uses the global 60 Hz
   1.132 +    timer (reported by Sara).
   1.133 +  * PC: Draws speedometer even when preview is at right,
   1.134 +    as long as there is room, that is, 3 or fewer next pieces
   1.135 +    (requested by Cubicz).
   1.136 +  * PC: Gimmick choice moved to Options to match GBA/DS.
   1.137 +  * PC: Select scenario before starting game (bug 0041).
   1.138 +  * PC options uses standardized GBA names (OPTIONS_*) instead of
   1.139 +    PC names (LJPREFS_*).
   1.140 +  * PC options Shift sound scale, Side, and Next position moved to
   1.141 +    skin.
   1.142 +  * PC options sets initial options using initOptions() from GBA/DS.
   1.143 +    Incidentally, this restores the initial randomizer to bag
   1.144 +    (0.41 regression and may make similar regressions less likely.
   1.145 +  * PC options uses unpackOptions() from GBA/DS.
   1.146 +  * PC options sound is also routed through the cross-platform
   1.147 +    sound manager.
   1.148 +  * PC: lj.ini uses fourCCs as names for easier saving and loading.
   1.149 +  * PC: Switching between windowed and full screen in Options
   1.150 +    no longer needs the user to restart the program.
   1.151 +  * PC: LJVorbis doesn't crash if polled while the music is stopped.
   1.152 +    This can happen when cross-platform code plays sound effects
   1.153 +    during debrief.
   1.154 +  * PC: Skin controls window size, or full screen resolution
   1.155 +    (bug 0017).
   1.156 +  * PC/DS: Displays a description of some option values in addition
   1.157 +    to descriptions of options themselves.
   1.158 +  * GBA/DS: Options disabled on the PC are disabled here.
   1.159 +  * GBA: Menus are faster now that part of the text engine has been
   1.160 +    moved to fast RAM.
   1.161 +  * DS: Plays sound for game over (bug 0064).
   1.162 +  * DS: Options displayed on touch screen for future touch operation.
   1.163 +  * DS: Displays debrief after game ends (bug 0031).
   1.164 +
   1.165 +_____________________________________________________________________
   1.166 +0.41 (2007-12-18)
   1.167 +  * Piece set and randomizer are decoupled (requested by Lardarse
   1.168 +    and Dood77).
   1.169 +  * New piece set: iCheat(tm) deals only I tetrominoes, like an
   1.170 +    infamous cheat code for some other game (requested by DIGITAL).
   1.171 +  * New garbage style "Preload zigzag", which preloads a zigzag
   1.172 +    pattern of holes.
   1.173 +  * At debrief time, if at least two rows of the zigzag pattern
   1.174 +    or at least four rows of a rectum (1-block-wide opening) are
   1.175 +    formed, shows a secret grade based on the number of pattern
   1.176 +    rows instead of the number of blocks left in the playfield.
   1.177 +  * Debrief options section sorted by position in options menu.
   1.178 +  * Debrief allows for multiple pages of reports.
   1.179 +
   1.180 +_____________________________________________________________________
   1.181 +0.40a (2007-11-30)
   1.182 +  * Does not attempt to create a ghost piece before the first
   1.183 +    falling piece.  This may fix a crash on some systems if the
   1.184 +    first game played during a session has deep drop turned on
   1.185 +    (reported by Rich Nagel on Windows 98 Second Edition).
   1.186 +  * Deep drop ghost piece code stops checking at the ceiling.
   1.187 +
   1.188 +_____________________________________________________________________
   1.189 +0.40 (2007-11-27)
   1.190 +  * Split out speed curves and randomizers to separate files called
   1.191 +    speed.c and random.c.
   1.192 +  * Adjusted master delays to be closer to TAP; 600-999 no longer
   1.193 +    overlap Death 000-399.
   1.194 +  * Displays short description of each option (requested by AXYPB).
   1.195 +  * Drill gimmick is back, with the new goal of clearing the bottom
   1.196 +    row (requested by DIGITAL).
   1.197 +  * Begin to add code for explosive line clear gimmick; not yet
   1.198 +    integrated (requested by Joshua).
   1.199 +  * Debrief shows number of floor kicks.
   1.200 +  * Bottom blocks is called Deep drop to match recent Multiblocks.
   1.201 +  * PC: Close box works in Options and Game Keys.
   1.202 +  * PC: Does not redraw title screen if close box is clicked.
   1.203 +  * PC: If skin sets transparentPF=1, hotlines and line clear
   1.204 +    animations are drawn transparent (requested by Rich Nagel).
   1.205 +  * GBA/DS: Can quit game from pause screen (requested by AXYPB).
   1.206 +  * GBA/DS: Copyright notice and options screen drawn with
   1.207 +    proportional font for readability.
   1.208 +  * GBA/DS: Menu uses the same sound manager that the game play
   1.209 +    uses, not the platform-specific sound manager.
   1.210 +  * GBA: Sound for end of game (requested by Lardarse).
   1.211 +  * DS: Closing the lid pauses the game and turns off the screens
   1.212 +    (requested by AXYPB).
   1.213 +  * DS: Unavailable hold piece is really grayed out.
   1.214 +  * DS: Real music and sound effects engine (requested by
   1.215 +    bob_fossil).
   1.216 +
   1.217 +_____________________________________________________________________
   1.218 +0.39 (2007-10-24)
   1.219 +  * Does not double line clear delay (unknown regression).
   1.220 +  * Source code includes new files options.h and old_pc_options.c
   1.221 +    which were mistakenly left out of 0.38 (reported by tr3).
   1.222 +  * Draws "hotline" symbol on lines being cleared (requested by
   1.223 +    Rosti LFC and kiwibonga).
   1.224 +  * Debrief no longer counts a zero line T-spin as a home run
   1.225 +    (0.28 regression; reported by Lardarse).
   1.226 +  * New randomizer 7+1-piece Bag adds one randomly selected
   1.227 +    tetromino to each bag (requested by colour_thief).
   1.228 +  * Refactored speed curve state information for pseudo-OO
   1.229 +    refactoring.
   1.230 +  * New option: Bottom blocks allows the falling piece to fall past
   1.231 +    blocks into an appropriately shaped hole (requested by mar).
   1.232 +  * Added bottom blocks and well size to debrief.
   1.233 +  * New gluing options Sticky and Sticky by color.
   1.234 +  * PC: Skin specifies the loop point and whether the music starts
   1.235 +    before or after the "Ready, Go" animation.
   1.236 +  * PC: Skin specifies music volume (requested by DIGITAL).
   1.237 +  * PC: Fixed off-by-one in sideways delay (reported by Lardarse).
   1.238 +  * PC: Fields with blkH > 24, especially blkH == 48 and Well height
   1.239 +    10, are more likely to fit on screen (reported by Needle).
   1.240 +
   1.241 +_____________________________________________________________________
   1.242 +0.38 (2007-09-11)
   1.243 +  * Plays a .ljm specified at the command line (requested by
   1.244 +    Rich Nagel).
   1.245 +  * More refactoring for multiplayer.
   1.246 +  * Added wall kick opcode SKIP_IF3, similar to SKIP_IF except it
   1.247 +    also checks the two cells above the specified cell.
   1.248 +  * L, J, and T in Arika use SKIP_IF3 to check the entire center
   1.249 +    column when rotating to vertical (requested by edo).
   1.250 +  * Moves new tetrominoes to be between the walls (fixing Tengen in
   1.251 +    width 4) and, if "Enter above playfield" is off, down far enough
   1.252 +    so that they're within the playfield (requested by Caithness).
   1.253 +  * New rotation system: Climbing, based on Tetris DX.  (No, you
   1.254 +    can't wall-climb yet because the sub-block behavior differs.)
   1.255 +  * Option "4x4 squares" is called "Gluing".  Other gluing options
   1.256 +    are planned.
   1.257 +  * In Square gluing, formation of a square adds a delay
   1.258 +    equal to line clear delay.
   1.259 +  * PC: Refactored to share some of the GBA/DS options logic.
   1.260 +  * PC: Moved most sound effect code into pcsound.c.
   1.261 +  * PC: Sound for 4x4 square formation (cribbed from TOD).
   1.262 +  * PC: Reloads the default skin's configuration before loading 
   1.263 +    the skin, so that skins always inherit from the default skin
   1.264 +    and not the last chosen skin (requested by Rich Nagel).
   1.265 +  * GBA: Uses duration as priority for square wave sound effects,
   1.266 +    which should prevent the section up sound from getting
   1.267 +    interrupted as often.
   1.268 +  * GBA/DS: Draws real-time speedometer.
   1.269 +
   1.270 +_____________________________________________________________________
   1.271 +0.37 (2007-07-09)
   1.272 +  * Requires "Up" and "Alt firm drop" to be pressed again when
   1.273 +    lock delay is turned off or less than DAS delay
   1.274 +    (requested by reivilo).
   1.275 +  * Keypress count is reset to 0 even in "Play .ljm" (reported by
   1.276 +    jujube).
   1.277 +  * Playing a broken .ljm from the gimmick menu gives an informative
   1.278 +    error message instead of crashing (0.32a regression; reported by
   1.279 +    Rosti LFC).
   1.280 +  * Rhythm section-up logic waits for 64 beats at L bpm, not L+1 bpm.
   1.281 +  * Fixed a potential buffer overflow in shuffleColumns (the "banana"
   1.282 +    item), brought on by the expansion of the playfield to 12 columns
   1.283 +    (0.33 regression).
   1.284 +  * Better comments in source code about wall kick entry macros
   1.285 +    WK(x, y), WKX(wk), WKY(wk) in lj.h (requested by Lardarse).
   1.286 +  * PC: Reinstate Bach music while investing a trademark claim.
   1.287 +  * PC: Separate music for Rhythm speed curves.
   1.288 +  * PC: Does not use stretch blitter when drawing the blocks of
   1.289 +    sprite pieces at full size (e.g. falling piece).
   1.290 +  * PC: blitField() blits adjacent rows in one call, which is
   1.291 +    faster on slow machines (requested by Matthew).
   1.292 +  * PC: Size of hold piece respects blkW and blkH.
   1.293 +  * README describes build instructions for GBA and DS.
   1.294 +  * For user convenience, the Allegro DLL is included with the
   1.295 +    executable, and the source code is in a separate archive.
   1.296 +
   1.297 +_____________________________________________________________________
   1.298 +0.36 (2007-05-21)
   1.299 +  * Allows DAS delay up to 400 ms (requested by Rich Nagel).
   1.300 +  * Option for entry within or above ceiling (requested by DIGITAL
   1.301 +    and Cubicz).
   1.302 +  * Option for hold piece behavior (requested by Lardarse).
   1.303 +  * PC: User can change individual game keys, like in StepMania
   1.304 +    (requested by DIGITAL and Rosti LFC).
   1.305 +  * PC: Minor changes to included background music.
   1.306 +  * PC: Option for playing a scale during sideways motion
   1.307 +    (requested by herc).
   1.308 +  * PC: Selecting a skin saves options (reported by Rich Nagel).
   1.309 +  * PC: When loading saved options, treats 16 ms DAS delay as valid
   1.310 +    (reported by jujube).
   1.311 +  * PC: Skin setting for a transparent background (requested by
   1.312 +    cdsboy and Bloodstar).
   1.313 +  * PC: Demo recording uses "Rec" and "Play" in addition to icons.
   1.314 +  * PC: Reallocates back buffer after each skin switch, avoiding
   1.315 +    problems related to changes in blkW and blkH (reported by
   1.316 +    Rich Nagel).
   1.317 +  * GBA/DS: Fixed line clear options (0.34 regression).
   1.318 +  * GBA/DS: Press Start after lose, rather than timing out to options
   1.319 +    (requested by Webby).
   1.320 +  * "Default" means not to pay back a loan.  Manual uses "initial"
   1.321 +    or "preset" instead (requested by Bruce Tognazzini).
   1.322 +
   1.323 +_____________________________________________________________________
   1.324 +0.35 (2007-04-25)
   1.325 +  * New speed curve Game Boy Heart.
   1.326 +  * New speed curve Death 300+, which starts three sections into
   1.327 +    Death just like cgwg's cheat for TAP (requested by Amnesia).
   1.328 +  * New randomizer 10-piece Memoryless.
   1.329 +  * First garbage line takes into account well width (reported by
   1.330 +    Lardarse).
   1.331 +  * Displays section number for NES, Game Boy, and Game Boy Heart
   1.332 +    speed curves (requested by Rich Nagel).
   1.333 +  * Debrief displays Quadra-style pieces per active minute
   1.334 +    (requested by Cubicz).
   1.335 +  * Debrief calls pieces "pieces" instead of "tetrominoes" in
   1.336 +    10-piece randomizers because I2, I3, L3 are not tetrominoes.
   1.337 +  * PC: Gimmick and level are displayed in skin foreground color
   1.338 +    (missed in 0.30; reported by Rich Nagel).
   1.339 +  * PC: Skin file name suffix is now .skin not .ini, so that skin.ini
   1.340 +    cannot be confused with lj.ini.  The default skin is called
   1.341 +    default.skin not skin.ini.
   1.342 +  * PC: Title screen has option to select skin (requested by
   1.343 +    cdsboy).
   1.344 +  * PC: Block size is no longer hard-coded at 24x24 pixels.
   1.345 +    The new .skin commands blkW= and blkH= control their size
   1.346 +    (requested by Bloodstar).
   1.347 +  * PC: Source code comes with new installation guide written by
   1.348 +    Lardarse in "docs/Compiling_on_Windows.txt".
   1.349 +
   1.350 +_____________________________________________________________________
   1.351 +0.34a (2007-03-27)
   1.352 +  * PC: Fixed hidden level in Next at right mode (0.33 regression).
   1.353 +  * DS: Fixed hidden sprites due to bug in devkitARM R20 libnds
   1.354 +    (0.34 regression).
   1.355 +  * DS: New touch screen code should eliminate erroneous low notes
   1.356 +    played upon pen-up.
   1.357 +
   1.358 +_____________________________________________________________________
   1.359 +0.34 (2007-03-23)
   1.360 +  * Fixed Move to Back piece set (0.14 regression: dang!).
   1.361 +  * Separate options for number of previewed pieces above shadow and
   1.362 +    outside field (requested by kiwibonga, caffeine, and Cubicz).
   1.363 +  * Option to disable IRS (requested by DIGITAL).
   1.364 +  * Garbage gimmicks (vs., drill 40, hr derby) replaced with new
   1.365 +    garbage option (requested by Cubicz).
   1.366 +  * In garbage style "Vs.", player can choose difficulty 1 through 4
   1.367 +    (requested by Caithness).
   1.368 +  * Option for line clear delay, independent of entry delay
   1.369 +    (requested by kiwibonga).
   1.370 +  * Garbage style Drill no longer automatically tops out on
   1.371 +    short playfields.
   1.372 +  * Garbage style Vs. generates garbage with SZSZ randomizer.
   1.373 +  * Frequency of Vs. w/Items bananas is independent of randomizer.
   1.374 +  * Fixed self-clearing garbage (0.33 regression).
   1.375 +  * GBA/DS: Fixed pause button hiding left and right walls
   1.376 +    (0.33 regression).
   1.377 +  * GBA/DS: R button also works as hold piece (requested by
   1.378 +    PetitPrince).
   1.379 +
   1.380 +_____________________________________________________________________
   1.381 +0.33 (2007-03-08)
   1.382 +  * New speed curve Rhythm Zero is identical to Rhythm except it
   1.383 +    operates at 0G instead of 20G (requested by Cubicz and caffeine).
   1.384 +  * Speed curves that do not use level reset level to 0.
   1.385 +    Therefore, playing a game of Death then a game of Exponential
   1.386 +    on GBA/DS no longer shows the level that the player finished
   1.387 +    Death on as the level during Exponential.
   1.388 +  * Maximum well width increased to 12 (requested by Zed0).
   1.389 +  * Hold piece does not reset floor kicks, lock delay time in entry
   1.390 +    reset, or Rhythm's placement timer.
   1.391 +  * GBA/DS: More shared code moved to file "ljgbads.inc".
   1.392 +  * PC: Stops end-of-section sound when game is over
   1.393 +    (requested by Bloodstar).
   1.394 +
   1.395 +_____________________________________________________________________
   1.396 +0.32a (2007-02-25)
   1.397 +  * PC: Fixed demo recording (0.32 regression; reported by Rosti LFC)
   1.398 +  * PC: Option to record all games from the start
   1.399 +    (requested by cdsboy, DIGITAL, Cubicz, and colour_thief).
   1.400 +  * PC: Added Play .ljm gimmick:
   1.401 +    Allegro file selector pops up, and the player can choose the
   1.402 +    filename of a demo to play back (requested by Lardarse).
   1.403 +
   1.404 +_____________________________________________________________________
   1.405 +0.32 (2007-02-13)
   1.406 +  * Changed a CPU yield behavior that was affecting battery
   1.407 +    efficiency on the GBA and DS front ends (reported by Mighty Max).
   1.408 +  * Removed Low Rider gimmick in favor of option for well height
   1.409 +    (requested by Matthew).
   1.410 +  * Option for well width, like Shimizu's Tetris Semipro-68k.
   1.411 +    Combine this with a low well height to simulate BIG mode of
   1.412 +    TGM and Heboris (requested by Matthew).
   1.413 +  * Options for entry delay and sideways delay have "max" added to
   1.414 +    their description to clarify things (requested by kotetsu213 and
   1.415 +    Ezzelin).
   1.416 +  * All speed options given in Hz or G are given in both.
   1.417 +  * PC: Next above shadow works in all playfield positions (reported
   1.418 +    by caffeine).
   1.419 +  * GBA/DS: Added option for soft drop speed (requested by Ezzelin).
   1.420 +  * GBA/DS: Some shared code moved to file "ljgbads.inc".
   1.421 +  * GBA: Unavailable hold piece is grayed out.
   1.422 +  * GBA/DS: Lock delay = no lock works (reported by Ezzelin).
   1.423 +  * GBA/DS: Fixed frames/ms display of delays (reported by Ezzelin).
   1.424 +
   1.425 +_____________________________________________________________________
   1.426 +0.31 (2007-02-03)
   1.427 +  * Draws the score and next pieces before blitting the playfield
   1.428 +    in case a front-end draws the score or next pieces inside the
   1.429 +    playfield.
   1.430 +  * In Baboo!, speed curve Zero sets the level to the number of
   1.431 +    keypresses so far.
   1.432 +  * PC, GBA: Plays sound effect for end of section in speed curves
   1.433 +    that use sections (Master, Death, NES, Game Boy).
   1.434 +  * PC: Option to draw next pieces inside the playfield, above the
   1.435 +    shadow (requested by caffeine, cdsboy, and Cubicz).
   1.436 +  * GBA, DS: Blocks within a piece are drawn connected once they lock
   1.437 +    (TOD parity, requested by Lardarse and Bloodstar).
   1.438 +  * GBA, DS: Baboo! no longer double-counts console buttons passed
   1.439 +    through the joypad reading code.
   1.440 +  * README: "color=image" clone-and-hack error fixed (reported by
   1.441 +    Bloodstar).
   1.442 +  * README: Explains black rectangle in upper left corner as an
   1.443 +    icon for stop (requested by herc).
   1.444 +  * README: Explains controls on GBA and DS.
   1.445 +
   1.446 +_____________________________________________________________________
   1.447 +0.30 (2007-02-01)
   1.448 +  * Fixed ARE display in debrief, which could cause a crash in some
   1.449 +    situations (0.26 regression?).
   1.450 +  * Garbage no longer self-clears in Cascade gravity (reported by
   1.451 +    Bloodstar).
   1.452 +  * In high gravity, land a T with one block over an overhang and
   1.453 +    rotate it once so that it falls and clears a line.  This is no
   1.454 +    longer counted as a T-spin.
   1.455 +  * During a replay, counts keypresses by the replay player.
   1.456 +  * PC: Scales undersized background images to the size of the window
   1.457 +    (requested by Bloodstar).
   1.458 +  * PC: If a piece enters during a skipped frame, a second upward
   1.459 +    trail is no longer drawn (reported by Bloodstar and caffeine).
   1.460 +  * PC: "Next at top" layout draws speedometer (requested by
   1.461 +    matt_hatter83).
   1.462 +  * PC: Trails option is saved properly (reported by caffeine).
   1.463 +  * PC: User can customize the game's text and background colors
   1.464 +    using skin.ini (requested by Bloodstar).
   1.465 +  * Added rudimentary port to Nintendo DS for people with MAX Media
   1.466 +    Dock, M3 Pro, SuperCard Rumble, or SLOT-1 cards, which can run
   1.467 +    DS homebrew but not GBA homebrew.
   1.468 +  * Moscow Nights removed from lj-contrib due to research into the
   1.469 +    copyright term extensions enacted by Russian Federation during
   1.470 +    the 1990s.
   1.471 +
   1.472 +_____________________________________________________________________
   1.473 +0.29 (2007-01-17)
   1.474 +  * TDS scoring recognizes chains properly (reported by Lardarse).
   1.475 +  * TDS scoring section factor stops increasing after 190 lines.
   1.476 +  * Added NES scoring method.
   1.477 +  * Added scoring for soft and hard drops to options and debrief.
   1.478 +  * Cascade no longer deletes the bottom row when lines high on the
   1.479 +    playfield are cleared (reported by Lardarse).
   1.480 +  * PC: Draws trails when a tetromino goes up or down rapidly.
   1.481 +    (Option to turn them off.)
   1.482 +  * PC: Handles dirty rectangles for next pieces and score
   1.483 +    separately.
   1.484 +  * Scoring section of README describes all scoring methods.
   1.485 +
   1.486 +_____________________________________________________________________
   1.487 +0.28 (2007-01-04)
   1.488 +  * Added Cascade gravity, as seen in Quadra, Tetris Worlds Cascade,
   1.489 +    and Tetris DS Touch.
   1.490 +  * Master/Death: Level starts at -1, so that the first piece is
   1.491 +    played at level 0 (requested by Lardarse).
   1.492 +  * Changed T-spin detection to save whether or not a rotation
   1.493 +    involved a kick (0: move; 1: rotate; 2: rotate with kick) so
   1.494 +    that scoring methods such as TDS can score T-spins with and
   1.495 +    without kicks differently.
   1.496 +  * Added TDS scoring method (line clears only).
   1.497 +  * New, more general, possibly easier to understand reshuffle code
   1.498 +    in bag randomizer (requested by Lardarse)
   1.499 +  * GBA: Gold and silver square colors added (requested by Lardarse).
   1.500 +  * PC: Game over in low ceiling no longer fades the area outside the
   1.501 +    playfield (reported by Lardarse).
   1.502 +  * PC: Close box interrupts starting and game over animations.
   1.503 +  * README warns that 4x4 squares mode needs ljconn.
   1.504 +
   1.505 +_____________________________________________________________________
   1.506 +0.27 (2006-12-20)
   1.507 +  * GBA version includes a valid header (requested by Ezzelin).
   1.508 +  * Fixed incorrect spawn orientations for Game Boy rotation system
   1.509 +    (0.25? regression, reported by Lardarse).
   1.510 +  * Fixed incorrect win/loss sound early in 180 seconds (0.25
   1.511 +    regression).
   1.512 +  * New randomizer 10-piece Bag, including the domino and both
   1.513 +    trominoes.
   1.514 +  * GBA version now reports entry and lock delays in both frames
   1.515 +    and milliseconds.
   1.516 +  * Possibly fixed off-by-one in Game Boy speed curve section
   1.517 +    computation, which caused an incorrect slowdown in 210-219
   1.518 +    section (reported by Ezzelin).
   1.519 +
   1.520 +_____________________________________________________________________
   1.521 +0.26 (2006-12-15)
   1.522 +  * Option to allow game to proceed in the background (requested by
   1.523 +    Ezzelin).  However, Windows doesn't appear to pass joystick
   1.524 +    presses to the game running in the background.  FCE Ultra has
   1.525 +    what appears to be exactly the same problem.
   1.526 +  * Added Game Boy and NES speed curves.
   1.527 +  * Options and Game Keys are accessed through title screen, not
   1.528 +    gimmick selection.
   1.529 +  * Option to hide playfield without changing the skin.
   1.530 +  * Rearranged rules section of options to correspond more closely to
   1.531 +    the sequence of operations for each tetromino.
   1.532 +  * Soft or hard drop set to "lock on release" no longer produces
   1.533 +    double locks at 20G.
   1.534 +  * Disable initial hard drop when set to "lock" and entry delay is
   1.535 +    greater than 0 but less than DAS delay.
   1.536 +  * Checks for 4x4 squares top to bottom per comparison with The New
   1.537 +    Tetris (N64).
   1.538 +  * Finer grained selections in entry delay (requested by
   1.539 +    matt_hatter83) and lock delay (requested by caffeine).
   1.540 +    They now are at 50ms increments at the low end.
   1.541 +  * Expanded TGM speed curve to 12 sections.  One comparatively slow
   1.542 +    section at 20G was added to Master before Death-equivalent starts
   1.543 +    (now Death 0 is equivalent to Master 600, not 500), and one
   1.544 +    faster section was added to the end of Death based on info posted
   1.545 +    to wiki by colour_thief.
   1.546 +  * Added H.R. Derby gimmick:
   1.547 +    Like Marathon, but every line you clear other than with a
   1.548 +    home run or a T-spin gives you garbage.
   1.549 +  * Ready Go animation is 1.2 seconds, not 2.0 seconds.
   1.550 +  * Preliminary support for Game Boy Advance, with experimental
   1.551 +    paged options replacing scrolling options.
   1.552 +
   1.553 +_____________________________________________________________________
   1.554 +0.25 (2006-11-28)
   1.555 +  * Fixed History 6 Rolls deciding between the first piece algorithm
   1.556 +    and the subsequent pieces algorithm (reported by Lardarse).
   1.557 +  * Fixed a signedness issue that broke 180 seconds gimmick in the
   1.558 +    case that a tetromino was kept active between 3:00 and 3:01 (0.24
   1.559 +    regression; reported by caffeine).
   1.560 +  * Allows ending the game with a piece in mid-air (0.24 regression).
   1.561 +  * Removed Arika and renamed Arika+TI to Arika.  For the old
   1.562 +    Arika behavior, set Options:Floor kicks to 0.
   1.563 +  * Options screen allows DAS, allowing future versions to make more
   1.564 +    options and more values for each option available in a less
   1.565 +    cumbersome way.
   1.566 +
   1.567 +_____________________________________________________________________
   1.568 +0.24 (2006-11-16)
   1.569 +  * Added Score style to options and debrief.
   1.570 +  * Choice of LJ or TNT64 scoring is based on chosen score style, not
   1.571 +    whether 4x4 squares are turned on.
   1.572 +  * Added Hotline scoring method, where only lines cleared on
   1.573 +    specific rows count toward scoring.  When enabled, draws white
   1.574 +    lines through empty spaces in these rows.
   1.575 +  * New soft drop and hard drop lock setting: Lock on release.  It's
   1.576 +    a spring-loaded system:  When you press the button, it doesn't
   1.577 +    lock, but when you let go, it locks (requested by colour_thief).
   1.578 +  * Option to override lock delay time (requested by caffeine).
   1.579 +  * Option to limit upward kicks (requested by Needle). This may
   1.580 +    obviate the difference between Arika and Arika+TI.
   1.581 +  * Sped up line clear in Master 300-499 to make less of a jarring
   1.582 +    transition to "death" style timings.
   1.583 +  * LJM loading fails even more gracefully on wrong format version,
   1.584 +    properly treating an LJM of the wrong version as not existing.
   1.585 +  * Fixed bug in 0.23's application switch pausing where switching
   1.586 +    away while already paused would require two Esc presses to
   1.587 +    continue (reported by caffeine).
   1.588 +  * Does not stop play until after the line clear animation finishes.
   1.589 +    This allows the game to properly update the single, double,
   1.590 +    triple, etc. counts for the last line that completes the goal
   1.591 +    (0.19 scoring regression?; reported by caffeine).
   1.592 +  * Refactored duplicated option loading code.
   1.593 +  * Options: Ditched parallel struct and array in favor of a
   1.594 +    single list of named indices.
   1.595 +  * Corrected Moscow Nights and Kalinka in lj-contrib for greater
   1.596 +    compatibility with obscure s3m players that can't handle odd
   1.597 +    numbers of channels (requested by Lardarse).
   1.598 +
   1.599 +_____________________________________________________________________
   1.600 +0.23 (2006-11-04)
   1.601 +  * Fixed S and Z in Sega 1988.
   1.602 +  * DUMB has been wrapped in a library called LJMusic and can be
   1.603 +    turned off at compile time (edit ljmusic.c and makefile) if you
   1.604 +    don't want to install DUMB.
   1.605 +  * Added support for Xiph.org's OggVorbis codec to LJMusic
   1.606 +    (requested by Needle).
   1.607 +  * Option to ignore sideways movement on first frame (like TGM
   1.608 +    series) (requested by Needle, seconded by caffeine).
   1.609 +  * Properly pauses the game when the player switches away from the
   1.610 +    window (requested by Lardarse).
   1.611 +  * Fails gracefully (does nothing) instead of crashing when loading
   1.612 +    replay files of a different format version.
   1.613 +  * Moved as much as possible below setting display mode so that
   1.614 +    people porting LJ to other platforms can toss up working alert()
   1.615 +    boxes earlier (requested by cdsboy).
   1.616 +
   1.617 +_____________________________________________________________________
   1.618 +0.22 (2006-10-23)
   1.619 +  * Fixed color system change after reloading (0.20 regression?,
   1.620 +    reported by lardarse).  Should always unpack options just before
   1.621 +    loading skin.
   1.622 +  * All numbers in saved states are stored big-endian, making movies
   1.623 +    compatible between 0.22 for Windows and Intel Mac and 0.22 for
   1.624 +    PowerPC Mac (requested by cdsboy).
   1.625 +  * Sega rotation systems renamed to Arika for less confusion with
   1.626 +    the rotation systems in Sega's Tetris games from 1988 and 1998
   1.627 +    (requested by Needle).
   1.628 +  * Added Sega 1988 rotation system (like Arika without wall kicks).
   1.629 +  * Preliminary Vorbis playback code is included in the source code
   1.630 +    distribution but has not been activated in the program.
   1.631 +    (The keys to compiling OggVorbis on MinGW+MSYS are 1. set the
   1.632 +    prefix to match the MINGDIR you used to build Allegro, and
   1.633 +    2. disable creation of the shared library.)
   1.634 +
   1.635 +_____________________________________________________________________
   1.636 +0.21 (2006-10-21)
   1.637 +  * Added new T-spin detection rule "3-corner T no kick", identical
   1.638 +    to 3-corner T except that a wallkick is not counted as a rotation
   1.639 +    (requested by kotetsu213).
   1.640 +  * Options that don't apply because of how another option is set
   1.641 +    are grayed out with an explanation (requested by Needle).
   1.642 +  * Debrief tells number of blocks left in the playfield and whether
   1.643 +    saved state was used (requested by caffeine).
   1.644 +  * Debrief tells what level the player stopped on.
   1.645 +  * Added support for saving input stream ("demo" or "movie") to file
   1.646 +    "demo.ljm".  Press [ to start/stop recording and ] to start/stop
   1.647 +    playback (requested by caffeine).
   1.648 +  * Pieces are actually random again (0.20 regression).
   1.649 +  * New lockdown mode: Entry reset.  Instead of resetting, the lock
   1.650 +    timer pauses while the piece is falling (requested by caffeine).
   1.651 +  * No +20 for banking more than 5 beats (requested by caffeine).
   1.652 +  * 250 ms entry delay option (requested by matt_hatter83).
   1.653 +  * Entry and sideways delays in Master and Death use the shorter of
   1.654 +    the speed curve's delay and the user's delay.
   1.655 +  * Added soft drop speed to options.
   1.656 +  * Added settings 8.6 Hz through 6.7 Hz to Sideways speed.
   1.657 +
   1.658 +_____________________________________________________________________
   1.659 +0.20 (2006-10-15)
   1.660 +  * Fixed color system change after options (0.19 regression).
   1.661 +  * Restored ability to hold first piece (0.17 regression?).
   1.662 +  * Requires down to be re-pressed only when entry delay is less
   1.663 +    than sideways delay.
   1.664 +  * In modes with ARE, allow initial hard drop even on first piece
   1.665 +    (requested by caffeine).
   1.666 +  * Visual refresh in Game Keys.
   1.667 +  * Game Keys ignores keypresses for 1/4 second after each key is
   1.668 +    set, which should fix problems with GameCube to USB adapters
   1.669 +    (requested by Caithness).
   1.670 +  * All platforms use a single randomizer, whose state is associated
   1.671 +    with the playfield.
   1.672 +  * ARE is a binary option again, as several speed curves ignored the
   1.673 +    old version's difference between constant and decreasing.
   1.674 +  * Moved version display to title screen.
   1.675 +  * Sound effect for win differs from that for game over.
   1.676 +  * Sound effect for rotating a piece on its first active frame.
   1.677 +  * Begun to add assertions, causing game over if they fail.
   1.678 +  * Added support for saving the state of the playfield.
   1.679 +    Press [ to save or ] to load.  Movies might be next.
   1.680 +
   1.681 +_____________________________________________________________________
   1.682 +0.19 (2006-09-28):
   1.683 +  * Use of SRS or Sega colors is determined by a flag set for each
   1.684 +    rotation system.  The rule is that rotation systems that use
   1.685 +    bounding box rotation should use SRS colors.
   1.686 +  * Added TOD M4 rotation system (face up entry + bounding box
   1.687 +    rotation + roughly TGM style compensation).
   1.688 +  * List items in Options flicker much less.
   1.689 +  * Beginning of an actual title screen.
   1.690 +  * Removed Rhythm gimmick in favor of speed curve option.
   1.691 +  * Added Master and Death speed curves (requested by Needle).
   1.692 +    Death hasn't been tested thoroughly because the developer
   1.693 +    sucks at death.
   1.694 +  * Blits only those playfield rows that have changed, making
   1.695 +    animation smoother on old, cheap, or mobile video cards
   1.696 +    (requested by cosmonaut).
   1.697 +  * Rhythm speed curve no longer has what feels like a big elbow
   1.698 +    (requested by caffeine).  Specifically it gives 20 points
   1.699 +    instead of banking more than 5 pieces' worth of time.
   1.700 +  * Doesn't draw the state after the tetromino spawns but before
   1.701 +    initial rotation has taken effect (requested by Needle).
   1.702 +  * Added sound effect for hold piece (requested by Needle).
   1.703 +  * Land and lock sound much better (requested by Needle).
   1.704 +  * Shuffle columns (seen only in Vs. w/ Items) correctly disconnects
   1.705 +    blocks horizontally.
   1.706 +  * In Square mode, T-spins cause avalanches.
   1.707 +  * In Square mode, lines containing a piece of a 4x4 block are worth
   1.708 +    more, and homers are worth less.
   1.709 +  * Fixed ignoring diagonal presses (0.17 regression).
   1.710 +  * Created a new struct "LJPrefs" to hold preferences set by the
   1.711 +    player in the Options menu separately from the parameters
   1.712 +    that the game actually uses. This allows gimmicks to override
   1.713 +    preferences more cleanly.
   1.714 +  * Added support for future scoring methods where the score per line
   1.715 +    at a given point in the chain is based on a formula.
   1.716 +  * Created a union that combines the new struct with the array that
   1.717 +    the Options menu edits to improve maintainability of Options.
   1.718 +
   1.719 +_____________________________________________________________________
   1.720 +0.18 (2006-09-16):
   1.721 +  * Fixed Classic lock reset (unknown regression).
   1.722 +  * Fixed misbehavior when hold is pressed after a piece
   1.723 +    lands but before it locks (0.17 regression).
   1.724 +  * Shadow is drawn using the piece's color, at 25% opacity,
   1.725 +    from rows 4 and 5 of ljblocks.
   1.726 +  * Fixed shadow option saving (0.17a regression).
   1.727 +  * Added option to hide shadow color or change shadow opacity.
   1.728 +  * Split Sega rotation system into one with and one without
   1.729 +    TGM3's upward kicks.
   1.730 +  * Added NES and Game Boy rotation systems.
   1.731 +  * README: Illustration of game play has an image map.  The reader
   1.732 +    can select (hover over) a region of the screenshot, and the
   1.733 +    browser will show the title of the region as a tooltip.
   1.734 +  * BPM is now called speed level in preparation for other
   1.735 +    speed curves (including TGM and TA Death).
   1.736 +
   1.737 +_____________________________________________________________________
   1.738 +0.17 (2006-09-13):
   1.739 +  * Option for sticky gravity per color, as seen in The Next Tetris.
   1.740 +  * "Ready, Go" is centered, even in low ceiling gimmicks.
   1.741 +  * Added TGM3's upward kick to Sega T rotations.
   1.742 +  * Added Tengen rotation system.
   1.743 +  * Removed TGM gimmick in favor of entry delay option.
   1.744 +  * Initial hold works at any time.  The key can be pressed and
   1.745 +    released during entry delay or even during line clear delay.
   1.746 +  * Initial actions do not inflate keypress count
   1.747 +    (helpful in Baboo! with entry delay).
   1.748 +  * Draws hold piece in garbage colors when it is not available.
   1.749 +  * Options scroll.
   1.750 +  * Option to draw next pieces to right in constant size or above.
   1.751 +  * Better looking scroll bar in options.
   1.752 +  * Debrief: In naive gravity, reports T-spin singles, doubles,
   1.753 +    and triples separately from non-T-spins.  In other line
   1.754 +    clear gravity modes, "home run" is now called "quad".
   1.755 +  * Fixed a buffer overflow bug in sticky: fillCLoop() no longer
   1.756 +    treats the right side of one row and the left side of the
   1.757 +    row above it as one region.
   1.758 +  * Clarified manual as to the purpose of the Vs. gimmicks.
   1.759 +  * Separated platform specific stuff into a separate struct.
   1.760 +  * Refactored scoring into a separate function for future movement
   1.761 +    to gimmick and option control.
   1.762 +  * Debrief formats the report into a string and then writes it
   1.763 +    to a file and the screen all at once.
   1.764 +  * Refactored play() to move everything in the game loop that is
   1.765 +    not platform specific out of ljpc.c into new file ljplay.c.
   1.766 +  * Wall kick table is no longer flipped, making it easier to add
   1.767 +    new rotation systems.
   1.768 +  * Unified counterclockwise and clockwise rotation code.
   1.769 +
   1.770 +_____________________________________________________________________
   1.771 +0.16 (2006-09-03):
   1.772 +  * Fixed instant sideways speed (0.15 regression).
   1.773 +  * In countdown modes, debrief screen displays whether clear was
   1.774 +    successful.
   1.775 +  * 6-piece Bag no longer makes Vs. ridiculously easy.
   1.776 +  * Counts score and garbage separately for future shift to
   1.777 +    gimmick-controlled scoring.
   1.778 +  * Displays score instead of garbage on the play screen.
   1.779 +  * Counts singles, doubles, triples, and homers, and displays them
   1.780 +    in debrief.
   1.781 +  * Option to hide falling piece in addition to shadow.
   1.782 +  * Can load mod, xm, or it music in addition to s3m.
   1.783 +  * Moved skin description from lj.ini to skin.ini, and the name of
   1.784 +    this skin description file name can be changed with the Skin=
   1.785 +    command in lj.ini.
   1.786 +  * Closes lj.ini when reading it.
   1.787 +  * All vkey->action game key handling code moved to macro.c for
   1.788 +    future refactoring.
   1.789 +  * Build process uses automatic generation of C files' dependencies
   1.790 +    for future refactoring of header files.
   1.791 +  * Added two versions of NES-style blocks to lj-contrib:
   1.792 +    one by tepples and one by deepdorp.
   1.793 +
   1.794 +_____________________________________________________________________
   1.795 +0.15 (2006-08-27):
   1.796 +  * Options for DAS delay, number of next pieces, and window vs.
   1.797 +    full screen.
   1.798 +  * Options scrolling doesn't cause the dialog's title and
   1.799 +    instructions to flicker.
   1.800 +  * Small font's 5 glyph is the same width as other digits.
   1.801 +  * Fixed O shape table.
   1.802 +  * Macros (vkey->action mappings past the first 8) are in a
   1.803 +    lookup table in the new file macro.c.  This paves the way
   1.804 +    for a future macro editor.
   1.805 +  * Added macros Alt. Firm Drop and Alt. Hold.
   1.806 +  * Game Keys displays names for all keys, not just printable keys.
   1.807 +  * In Sega rotation mode, reads block images from ljblocks-sega.bmp
   1.808 +    and ljconn-sega.bmp if available.
   1.809 +  * If ljbg.jpg is not available, uses a plain white backdrop.
   1.810 +  * Reads file names for block images, background image, and music
   1.811 +    from lj.ini, which the player can edit with a text editor.
   1.812 +  * New "6-piece Bag" randomizer is one stick short of a bundle.
   1.813 +  * Added an arrangement of the minuet from JS Bach's French Suite
   1.814 +    in B minor (BWV 814) to lj-contrib.
   1.815 +
   1.816 +_____________________________________________________________________
   1.817 +0.14 (2006-08-18):
   1.818 +  * pause() renamed to pauseGame() to fix namespace collision on
   1.819 +    platforms with unistd.h (Linux, BSD, Mac).
   1.820 +  * Gimmick settings for initial gravity, ARE, and ceiling height
   1.821 +    are initialized from a lookup table.
   1.822 +  * History 6 Rolls randomizer uses correct initial history (ZSZS)
   1.823 +    and correct selection for the first piece (I, J, L, or T).
   1.824 +  * Blocks are drawn connected within each tetromino if ljconn.bmp
   1.825 +    is present.
   1.826 +  * Corrected connection table for O tetromino.
   1.827 +  * Rhythm's BPM counter increases after every 64 beats, not every
   1.828 +    64 tetrominoes.
   1.829 +  * Added Low Vs. gimmick:
   1.830 +    Like Vs. CPU with a low ceiling.
   1.831 +
   1.832 +_____________________________________________________________________
   1.833 +0.13 (2006-08-15):
   1.834 +  * Hard drop lock option "Zangi" renamed to "Slide".
   1.835 +  * Added soft drop lock option.
   1.836 +  * Ignores diagonal presses differently: instead of pretending the
   1.837 +    keys are up, it pretends that they haven't changed from the last
   1.838 +    frame.  UP, UP+RIGHT, UP no longer makes a double hard drop.
   1.839 +  * Esc pauses the game and music instead of immediately quitting.
   1.840 +  * Added contributions from cdsboy to lj-contrib.
   1.841 +
   1.842 +_____________________________________________________________________
   1.843 +0.12 (2006-08-13):
   1.844 +  * Creates lj.ini if it doesn't exist, instead of crashing on
   1.845 +    startup.
   1.846 +  * Added half-size Aver16 font.
   1.847 +  * Zero gravity (as in Baboo!) + Zangi hard drop = land and lock,
   1.848 +    instead of just sit there
   1.849 +  * Option to use classic (Game Boy style) or step-reset (TGM style)
   1.850 +    lockdown instead of move-reset (SRS style) lockdown.
   1.851 +  * Contains connection tables for all pieces.  Not used yet,
   1.852 +    but will be used for Cascade (where gravity is based on shapes
   1.853 +    of pieces), Square (which forms big squares only out of whole
   1.854 +    tetrominoes), and Bombliss (which doesn't place a bomb in a block
   1.855 +    that has blocks on opposite sides of it within the piece, such as
   1.856 +    the middle of an I, J, L, or T).
   1.857 +  * Pieces can carry bomb blocks within them.  Not used yet,
   1.858 +    but will be used for Bombliss.
   1.859 +  * Option for sticky gravity.  This will also be used for Bombliss.
   1.860 +  * Options rearranged: game on top, control in middle,
   1.861 +    view on bottom.
   1.862 +  * Options menu uses a smaller font and scrolls if necessary (but
   1.863 +    it's not necessary just yet).
   1.864 +  * Zero isn't wider than other digits in the large or small font.
   1.865 +  * Split debrief screen into debrief.c.
   1.866 +  * Debrief displays lockdown and line clear gravity type.
   1.867 +  * List of options in debrief is written with smaller font.
   1.868 +  * Config screen does a better job of ignoring simultaneous presses
   1.869 +    on USB joystick adapters that map the Control Pad to both axes
   1.870 +    and buttons (such as EMS USB2).
   1.871 +  * Main menu and options always respond to the arrow keys (in
   1.872 +    addition to the keys set in Game Keys), allowing players to
   1.873 +    reset Game Keys even when the keys have become corrupted.
   1.874 +
   1.875 +_____________________________________________________________________
   1.876 +0.11 (2006-08-01):
   1.877 +  * Added Instant, 20 Hz, 15 Hz, and 12 Hz sideways speeds.
   1.878 +  * Added randomizer History 6 Rolls, very similar to Move to Back
   1.879 +    but sometimes repeating recent tetrominoes.
   1.880 +  * Allows separate wall kick tables for clockwise and anticlockwise
   1.881 +    rotation.
   1.882 +  * New "theta=default" in piece->block expansion reflects the
   1.883 +    rotation system's initial orientations for new pieces, next
   1.884 +    pieces, and the hold piece.
   1.885 +  * Option to use Sega rotations instead of SRS rotations.
   1.886 +  * Option for ignoring diagonal presses.
   1.887 +  * Option for locking or not when using hard drop (Up).
   1.888 +  * Option to turn off smooth gravity animation.
   1.889 +  * Option to use TNT style T-spin detection instead of TDS style.
   1.890 +  * Debrief displays rotation system and T-spin detection.
   1.891 +  * Saves options to lj.ini.
   1.892 +  * Split options screen and wall kick table into separate source
   1.893 +    code files.
   1.894 +  * Plays music in stereo.
   1.895 +  * Site distributes contributed graphics and music files to
   1.896 +    replace the defaults.
   1.897 +
   1.898 +_____________________________________________________________________
   1.899 +0.10 (2006-07-27):
   1.900 +  * Set default full screen color depth to 16-bit which may be more
   1.901 +    compatible than 15-bit.
   1.902 +  * Press Print Screen to save the current screen as ljsnap.bmp.
   1.903 +  * Plays next piece sound whenever the next column moves up.
   1.904 +    0.08-0.09 didn't do so for the first hold in a game.
   1.905 +  * No longer tries rotating right when rotating left fails.
   1.906 +  * Handles DirectDraw amnesia (screen corruption in Alt+Tab)
   1.907 +    correctly in menu, game play, and debrief screens.
   1.908 +  * Asset and video buffer cleanup consolidated into one function.
   1.909 +  * Gravity speeds up 50% faster.
   1.910 +  * Added options menu for selecting sideways movement speed and
   1.911 +    randomizer.
   1.912 +  * Added more randomizers: 14-piece bag, move-to-back (TGM style),
   1.913 +    memoryless (classic), and SZSZ (used in the well-known proof
   1.914 +    that memoryless cannot be played indefinitely).
   1.915 +  * Debrief screen displays date and time of report generation as
   1.916 +    well as randomizer and sideways speed, and logs what it displays
   1.917 +    to lj-scores.txt.
   1.918 +  * Moved all gimmick-specific code from lj.c to new file gimmicks.c.
   1.919 +  * Built against Allegro 4.2.0.  (Users of previous versions will
   1.920 +    need the new DLL.)
   1.921 +  * Countdown based gimmicks (40 lines, 180 seconds, Baboo!,
   1.922 +    TGM World, Drill 40) use the same countdown variable for
   1.923 +    end state detection that they had used for countdown sound.
   1.924 +  * Support for tracked music using DUMB.
   1.925 +  * Manual is HTML.
   1.926 +
   1.927 +_____________________________________________________________________
   1.928 +0.09 (2006-07-16):
   1.929 +  * Reverted sideways kicks of I tetromino rotating from horizontal
   1.930 +    to vertical based on testing I-I interactions in Tetris DS.
   1.931 +  * Key pretending is more consistent.
   1.932 +  * TGM World stops at 290 lines, more like Tetris The Grand Master.
   1.933 +  * In gimmicks with ARE (currently TGM World), allows initial
   1.934 +    hard drop.
   1.935 +  * Licensed as free software under GNU General Public License.
   1.936 +  * Fixed incomplete first bag (0.08 regression).
   1.937 +  * Has its own icon instead of the wall kick editor's icon.
   1.938 +  * No double initial rotation when using initial hold in TGM World.
   1.939 +  * Input actions are a 32-bit record for future recording.
   1.940 +  * Hidden next piece is a separate variable, which next piece
   1.941 +    sound also respects, fixing Items.
   1.942 +
   1.943 +_____________________________________________________________________
   1.944 +0.08 (2006-07-08):
   1.945 +  * Plays sounds for the next piece like TGM.
   1.946 +  * No longer allows 800x552 window now that 0.08 displays the
   1.947 +    gimmick name.
   1.948 +  * Supports spawn delay and line delay.
   1.949 +  * Supports initial hold and rotation.
   1.950 +  * Supports variable garbage randomness.
   1.951 +  * Begun to move gimmick code out of core.
   1.952 +  * Added TGM World gimmick:
   1.953 +    Standard S.M.G., except there's a half-second delay before each
   1.954 +    tetromino, and a half-second delay after each tetromino that
   1.955 +    forms at least one line. So if you want fast play, make more
   1.956 +    lines at once.
   1.957 +  * Added Drill 40 gimmick: 
   1.958 +    Like 40 lines, but the screen starts with 18 rows of garbage.
   1.959 +    Be prepared to rely on SRS infinite spin for the first few
   1.960 +    lines until your skill improves.
   1.961 +
   1.962 +_____________________________________________________________________
   1.963 +0.07 (2006-06-30):
   1.964 +  * Added Baboo gimmick:
   1.965 +    Standard S.M.G., except there is no gravity, and the game
   1.966 +    ends after 300 keypresses.
   1.967 +  * Cleaned up the font a bit.
   1.968 +  * Corrected wall kicks for I tetromino to match an updated
   1.969 +    description provided by nicholas.  Specifically, I tetromino
   1.970 +    prefers kick-down to kick-up.
   1.971 +  * Removed sound-not-found debug message.
   1.972 +  * Plays "ready, go!" like TGM.
   1.973 +  * Bigger font for lines and time.
   1.974 +
   1.975 +_____________________________________________________________________
   1.976 +0.06 (2006-06-25):
   1.977 +  * Gimmicks are sorted into columns.
   1.978 +  * Debrief responds to controller mapping.
   1.979 +  * Debrief shows keypresses per tetromino and garbage per minute.
   1.980 +  * Loads/saves vkey configuration from/to disk instead of
   1.981 +    prompting the user every time the program starts.
   1.982 +  * Build system switched to GNU Make.
   1.983 +  * Terminal window ("DOS box") hidden.
   1.984 +  * Responds to window system's close button.
   1.985 +  * Counts down 5-4-3-2-1 in line or time limited gimmicks.
   1.986 +  * Icon in the top left corner of the window is customized.
   1.987 +  * Displays ljbg.jpg in the window's blank space.
   1.988 +  * Displays blocks from ljblocks.bmp.
   1.989 +  * Releases the CPU for 5ms per frame when possible, so that
   1.990 +    background tasks such as a music player can keep up.
   1.991 +  * Increased sound effects' volume so that music players do not
   1.992 +    completely overpower them.
   1.993 +  * Added macros for rotate twice, move far left, and move far right.
   1.994 +  * Corrected fix to alternation between falling and landed states
   1.995 +    that occurred especially when sliding a tetromino to the right
   1.996 +    under high gravity.
   1.997 +  * Added Items gimmick:
   1.998 +    Standard S.M.G., except after the first 7 pieces you get
   1.999 +    random starting orientations, no rotation, and hidden next
  1.1000 +    pieces, and the speed goes to 1G.  Every time you are given an
  1.1001 +    I piece, either you get 2 lines of garbage or the columns of
  1.1002 +    blocks in the well are shuffled.
  1.1003 +  * Fixed scoring tables in README.txt.
  1.1004 +
  1.1005 +_____________________________________________________________________
  1.1006 +0.05 (2006-06-23):
  1.1007 +  * Included readme.txt.
  1.1008 +  * Debrief report shows more decimal places in time and PPM.
  1.1009 +  * Game over plays a simple animation and sound.
  1.1010 +  * Playfield can be resized (with a recompile).
  1.1011 +  * Removed hardcoded key binding help text.
  1.1012 +  * Window is bigger in preparation for wallpaper.
  1.1013 +  * Display mode is 15/16/24/32-bit in preparation for wallpaper.
  1.1014 +  * Added Low Rider gimmick:
  1.1015 +    Standard S.M.G. with an 8-block-tall visible playfield.
  1.1016 +
  1.1017 +_____________________________________________________________________
  1.1018 +0.04 (2006-06-22):
  1.1019 +  * Uses an OS-native bitmap rather than an Allegro bitmap,
  1.1020 +    which may allow faster drawing with some video cards.
  1.1021 +  * Allows play from a keyboard or a joystick.
  1.1022 +  * Presents a key configuration screen when the program starts.
  1.1023 +  * A 500ms delay after the game ends. Drama will come soon to this
  1.1024 +    space.
  1.1025 +
  1.1026 +_____________________________________________________________________
  1.1027 +0.03 (2006-06-21):
  1.1028 +  * Debriefing responds only to Esc, Enter, and keypad Enter.
  1.1029 +  * Compensates for refresh rates other than 60 Hz.
  1.1030 +  * Change log included with program.
  1.1031 +  * Plays sound effects for shift, rotate, land, lock, line, b2b.
  1.1032 +  * Bigger text using the "Aver" font.
  1.1033 +  * Lock delay in Marathon decreases gradually after gravity
  1.1034 +    surpasses 20G.
  1.1035 +  * Reads keys through a bitfield, allowing for custom key->vkey
  1.1036 +    bindings to be implemented in the future.
  1.1037 +  * (Internal) Does not alternate between "falling" and "landed"
  1.1038 +    states when resetting lock delay on slide.
  1.1039 +
  1.1040 +_____________________________________________________________________
  1.1041 +0.02 (2006-06-19):
  1.1042 +  * Speed level progresses 1/3 as fast.
  1.1043 +  * Added menu for selecting a gimmick (game mode) to play.
  1.1044 +  * Added Marathon gimmick:
  1.1045 +    Like Vs. but no garbage.
  1.1046 +  * Added 40 lines gimmick:
  1.1047 +    Like Marathon but ends after 40 lines.
  1.1048 +  * Added 3 minutes gimmick (like Marathon but ends after 10800
  1.1049 +    frames).
  1.1050 +  * Added Rhythm gimmick:
  1.1051 +    20G, and if you fall below the minimum PPM, it automatically
  1.1052 +    locks the tetromino, and the minimum PPM increases by 10 every
  1.1053 +    64 tetrominoes.
  1.1054 +  * Debriefing computes PPM and score.
  1.1055 +  * Debriefing returns to gimmick selection instead of exiting
  1.1056 +    the program.
  1.1057 +
  1.1058 +_____________________________________________________________________
  1.1059 +0.01 (2006-06-14):
  1.1060 +  * initial release
  1.1061 +  * full SRS implemented
  1.1062 +  * 7-piece bag randomizer
  1.1063 +  * 1G DAS
  1.1064 +  * smooth falling animation
  1.1065 +  * playfield size: 10w x 24h; pieces start above row 20
  1.1066 +  * 8 next pieces and 1 hold piece
  1.1067 +  * Vs. gimmick:
  1.1068 +    Standard S.M.G., except before every I tetromino after the first,
  1.1069 +    you get 4 garbage lines.
  1.1070 +