annotate CHANGES.txt @ 1:38c62fded078

initial builds (linux and lj.nds)
author paulo@localhost
date Fri, 13 Mar 2009 01:10:13 -0700
parents
children
rev   line source
paulo@0 1 0.46a (2008-11-09)
paulo@0 2 * Preview at top is copied correctly from the back buffer
paulo@0 3 (0.45a regression, reported by rednefed).
paulo@0 4
paulo@0 5 _____________________________________________________________________
paulo@0 6 0.46 (2008-11-08)
paulo@0 7 * Tracks number of 4x4 squares that the player forms
paulo@0 8 (TOD parity; requested by Ghett0).
paulo@0 9 * Added T-Party randomizer (requested by Lardarse).
paulo@0 10 * Default lock delay for Zero set to 40 frames, even if it is
paulo@0 11 played first (0.45 regression, reported by rck).
paulo@0 12 * "[TC]" removed from scenario names (requested by caffeine).
paulo@0 13 * PC: Uses fourCCs for option values in lj.ini.
paulo@0 14 * PC: Uses double buffer for entire background (bug 0021).
paulo@0 15 * PC: Can disable sound effects by deleting or renaming sound.dat
paulo@0 16 (requested by moxie101).
paulo@0 17 * PC: More of the code is 2-player-clean.
paulo@0 18
paulo@0 19 _____________________________________________________________________
paulo@0 20 0.45 (2008-04-20)
paulo@0 21 * New unified speed curve system: less code, more tables, for
paulo@0 22 future loading from a file (bug 0040).
paulo@0 23 * All speed curves except Rhythm and Rhythm Zero have been ported
paulo@0 24 to the new system. Notably, Master has been rewritten based on
paulo@0 25 the tables from the wiki, and Exponential uses sections. The
paulo@0 26 lock delay speeds up as brutally after 600 pieces as always.
paulo@0 27 * Added kludge in the basic makefile that allows building on *BSD
paulo@0 28 and GNU/Linux: 'make linux' (patch by kesiev).
paulo@0 29 * ljpath: Fixed a couple misspellings in the non-Windows code path
paulo@0 30 (reported by kesiev).
paulo@0 31 * ljpath: Supports libfat when running on Nintendo DS.
paulo@0 32 * A few descriptions of options have been shortened to fit into
paulo@0 33 the new GBA/DS look (reported by Bloodstar; patch by caffeine).
paulo@0 34 * Writes result and options text to standard output as well as to
paulo@0 35 lj-scores.txt. This allows you to do 'lj | postprocessor' even
paulo@0 36 if you can't do 'tail -f lj-scores.txt' (requested by kesiev).
paulo@0 37 * DS: Writes result and options to /data/lockjaw/lj-scores.txt.
paulo@0 38
paulo@0 39 _____________________________________________________________________
paulo@0 40 0.44 (2008-02-20)
paulo@0 41 * Computes the preview and hold offset of all pieces (was
paulo@0 42 wkNextMove in <= 0.43) from the entry position of the I
paulo@0 43 tetromino (was wkSpawnMove in <= 0.43).
paulo@0 44 * Kick tables have been inverted to a single struct per rotation
paulo@0 45 system, for future loading from a file (bug 0016).
paulo@0 46 * SKIP_IF system for handling J/L/T exceptions in Arika is replaced
paulo@0 47 with IF_NOT_CENTER: wall kicks are allowed if the free-space
paulo@0 48 orientation overlaps any blocks other than in the center column.
paulo@0 49 * Options DAS doesn't repeat too fast, even on those systems where
paulo@0 50 vsync() is a no-op (0.43 regression, reported by caffeine).
paulo@0 51 This has the same cause as 0022: Windows Vista ignores vsync().
paulo@0 52 * Options DAS doesn't continue across page boundaries.
paulo@0 53 * GBA/DS: Options has new look.
paulo@0 54 * DS: Reads the touch screen and the X and Y buttons. Right now,
paulo@0 55 touch isn't mapped to anything, but X and Y are Far Right and
paulo@0 56 Far Left.
paulo@0 57
paulo@0 58 _____________________________________________________________________
paulo@0 59 0.43a (2008-02-11)
paulo@0 60 * Arika modified to use SKIP_IF3 after (not before) the basic
paulo@0 61 position. This restores ability to rotate J, L, and T with
paulo@0 62 kicks turned off, such as in IRS (reported by Lion).
paulo@0 63 * PC: Uses shfolder.dll so that installability works even on
paulo@0 64 Windows 98 (0.43 regression, reported by Rich Nagel).
paulo@0 65 * PC: Key bindings to J, M, and Z are correctly saved (0.43
paulo@0 66 regression, reported by DIGITAL).
paulo@0 67 * PC: In Game Keys, the names of Up and Down key bindings are
paulo@0 68 clearer (requested by 4matsy).
paulo@0 69
paulo@0 70 _____________________________________________________________________
paulo@0 71 0.43 (2008-02-10)
paulo@0 72 * Player can initial-rotate out of block out (bug 0090).
paulo@0 73 * Initial rotation doesn't use wall kick (bug 0059).
paulo@0 74 * Names for values in Drop scoring and Shadow fixed
paulo@0 75 (0.42 regression, reported by Lardarse).
paulo@0 76 * Number of line clears in DS debrief should be cut off at the
paulo@0 77 right side less often (bug 0089; fix based on a patch by kesiev).
paulo@0 78 * Fixed line clear gravity in cascade preset (reported by 4matsy).
paulo@0 79 * Fixed Fibonacci scoring with more than 8 lines per piece
paulo@0 80 (reported by 4matsy).
paulo@0 81 * Debrief is more compact, allowing GBA to use debrief (bug 0031;
paulo@0 82 fix based on a patch by kesiev).
paulo@0 83 * Debrief: Zigzag secret grade requires the hole in the top row to
paulo@0 84 be covered (reported by Kitaru).
paulo@0 85 * PC: If installed.txt is in the same folder as the program,
paulo@0 86 ignores the current directory and stores all writable files
paulo@0 87 to the user's application data folder (bug 0091).
paulo@0 88 * PC: When loading skins, searches for files in the folder with
paulo@0 89 the .skin file instead of the current directory (bug 0033).
paulo@0 90 * PC: Replay sets up playback gimmick (0.42 regression,
paulo@0 91 reported by DIGITAL).
paulo@0 92 * PC: LJVorbis doesn't double-fclose the .ogg file
paulo@0 93 (reported by kesiev).
paulo@0 94 * PC: Mouse drops to bottom after skin or replay selection
paulo@0 95 (requested by jujube).
paulo@0 96 * PC: Options is separated into pages, like on GBA/DS (bug 0082).
paulo@0 97 This frees up room for larger type (requested by jujube).
paulo@0 98
paulo@0 99 _____________________________________________________________________
paulo@0 100 0.42 (2008-02-03) aka LOCKJAW XLII
paulo@0 101 * Docs: Most of TODO.txt has been converted to a numbered list
paulo@0 102 of bugs (bug 0100).
paulo@0 103 * An off-by-1/65536 error in enter below ceiling was fixed.
paulo@0 104 This means it doesn't give one extra row of room to slide on
paulo@0 105 at the top of the well (reported by Caithness and Kukuunen).
paulo@0 106 * In case of a block out, draws the offending piece in the well
paulo@0 107 before entering game over animation.
paulo@0 108 * Extra 5-frame cascade delay removed.
paulo@0 109 * With Lockdown set to Step reset, lock delay resets on the
paulo@0 110 first floor kick.
paulo@0 111 * Tengen rotation system tries kicking one space to the left
paulo@0 112 (requested by zaphod77).
paulo@0 113 * Options' names and values are looked up from fourCCs for future
paulo@0 114 localizability.
paulo@0 115 * Options: Names of speeds in fractions of 1G are computed.
paulo@0 116 * Options skips unpacking options with a value of 255.
paulo@0 117 This allows multiple pref structures to be unpacked on top
paulo@0 118 of each other, and each overrides the ones before it.
paulo@0 119 * Debrief displays options on a second page.
paulo@0 120 * Debrief correctly displays soft drop speed as a fraction (0.41
paulo@0 121 regression, reported by Lardarse).
paulo@0 122 * Debrief: PC specific parts moved to separate source code file.
paulo@0 123 * Debrief uses a lower-level function to format ISO 8601 date
paulo@0 124 and time so as not to bring in the floating-point library's
paulo@0 125 space overhead on platforms without an FPU.
paulo@0 126 * Debrief plays a sound when turning the page.
paulo@0 127 * PC: Delay for holding Esc to quit no longer depends on
paulo@0 128 display refresh rate. Instead, it uses the global 60 Hz
paulo@0 129 timer (reported by Sara).
paulo@0 130 * PC: Draws speedometer even when preview is at right,
paulo@0 131 as long as there is room, that is, 3 or fewer next pieces
paulo@0 132 (requested by Cubicz).
paulo@0 133 * PC: Gimmick choice moved to Options to match GBA/DS.
paulo@0 134 * PC: Select scenario before starting game (bug 0041).
paulo@0 135 * PC options uses standardized GBA names (OPTIONS_*) instead of
paulo@0 136 PC names (LJPREFS_*).
paulo@0 137 * PC options Shift sound scale, Side, and Next position moved to
paulo@0 138 skin.
paulo@0 139 * PC options sets initial options using initOptions() from GBA/DS.
paulo@0 140 Incidentally, this restores the initial randomizer to bag
paulo@0 141 (0.41 regression and may make similar regressions less likely.
paulo@0 142 * PC options uses unpackOptions() from GBA/DS.
paulo@0 143 * PC options sound is also routed through the cross-platform
paulo@0 144 sound manager.
paulo@0 145 * PC: lj.ini uses fourCCs as names for easier saving and loading.
paulo@0 146 * PC: Switching between windowed and full screen in Options
paulo@0 147 no longer needs the user to restart the program.
paulo@0 148 * PC: LJVorbis doesn't crash if polled while the music is stopped.
paulo@0 149 This can happen when cross-platform code plays sound effects
paulo@0 150 during debrief.
paulo@0 151 * PC: Skin controls window size, or full screen resolution
paulo@0 152 (bug 0017).
paulo@0 153 * PC/DS: Displays a description of some option values in addition
paulo@0 154 to descriptions of options themselves.
paulo@0 155 * GBA/DS: Options disabled on the PC are disabled here.
paulo@0 156 * GBA: Menus are faster now that part of the text engine has been
paulo@0 157 moved to fast RAM.
paulo@0 158 * DS: Plays sound for game over (bug 0064).
paulo@0 159 * DS: Options displayed on touch screen for future touch operation.
paulo@0 160 * DS: Displays debrief after game ends (bug 0031).
paulo@0 161
paulo@0 162 _____________________________________________________________________
paulo@0 163 0.41 (2007-12-18)
paulo@0 164 * Piece set and randomizer are decoupled (requested by Lardarse
paulo@0 165 and Dood77).
paulo@0 166 * New piece set: iCheat(tm) deals only I tetrominoes, like an
paulo@0 167 infamous cheat code for some other game (requested by DIGITAL).
paulo@0 168 * New garbage style "Preload zigzag", which preloads a zigzag
paulo@0 169 pattern of holes.
paulo@0 170 * At debrief time, if at least two rows of the zigzag pattern
paulo@0 171 or at least four rows of a rectum (1-block-wide opening) are
paulo@0 172 formed, shows a secret grade based on the number of pattern
paulo@0 173 rows instead of the number of blocks left in the playfield.
paulo@0 174 * Debrief options section sorted by position in options menu.
paulo@0 175 * Debrief allows for multiple pages of reports.
paulo@0 176
paulo@0 177 _____________________________________________________________________
paulo@0 178 0.40a (2007-11-30)
paulo@0 179 * Does not attempt to create a ghost piece before the first
paulo@0 180 falling piece. This may fix a crash on some systems if the
paulo@0 181 first game played during a session has deep drop turned on
paulo@0 182 (reported by Rich Nagel on Windows 98 Second Edition).
paulo@0 183 * Deep drop ghost piece code stops checking at the ceiling.
paulo@0 184
paulo@0 185 _____________________________________________________________________
paulo@0 186 0.40 (2007-11-27)
paulo@0 187 * Split out speed curves and randomizers to separate files called
paulo@0 188 speed.c and random.c.
paulo@0 189 * Adjusted master delays to be closer to TAP; 600-999 no longer
paulo@0 190 overlap Death 000-399.
paulo@0 191 * Displays short description of each option (requested by AXYPB).
paulo@0 192 * Drill gimmick is back, with the new goal of clearing the bottom
paulo@0 193 row (requested by DIGITAL).
paulo@0 194 * Begin to add code for explosive line clear gimmick; not yet
paulo@0 195 integrated (requested by Joshua).
paulo@0 196 * Debrief shows number of floor kicks.
paulo@0 197 * Bottom blocks is called Deep drop to match recent Multiblocks.
paulo@0 198 * PC: Close box works in Options and Game Keys.
paulo@0 199 * PC: Does not redraw title screen if close box is clicked.
paulo@0 200 * PC: If skin sets transparentPF=1, hotlines and line clear
paulo@0 201 animations are drawn transparent (requested by Rich Nagel).
paulo@0 202 * GBA/DS: Can quit game from pause screen (requested by AXYPB).
paulo@0 203 * GBA/DS: Copyright notice and options screen drawn with
paulo@0 204 proportional font for readability.
paulo@0 205 * GBA/DS: Menu uses the same sound manager that the game play
paulo@0 206 uses, not the platform-specific sound manager.
paulo@0 207 * GBA: Sound for end of game (requested by Lardarse).
paulo@0 208 * DS: Closing the lid pauses the game and turns off the screens
paulo@0 209 (requested by AXYPB).
paulo@0 210 * DS: Unavailable hold piece is really grayed out.
paulo@0 211 * DS: Real music and sound effects engine (requested by
paulo@0 212 bob_fossil).
paulo@0 213
paulo@0 214 _____________________________________________________________________
paulo@0 215 0.39 (2007-10-24)
paulo@0 216 * Does not double line clear delay (unknown regression).
paulo@0 217 * Source code includes new files options.h and old_pc_options.c
paulo@0 218 which were mistakenly left out of 0.38 (reported by tr3).
paulo@0 219 * Draws "hotline" symbol on lines being cleared (requested by
paulo@0 220 Rosti LFC and kiwibonga).
paulo@0 221 * Debrief no longer counts a zero line T-spin as a home run
paulo@0 222 (0.28 regression; reported by Lardarse).
paulo@0 223 * New randomizer 7+1-piece Bag adds one randomly selected
paulo@0 224 tetromino to each bag (requested by colour_thief).
paulo@0 225 * Refactored speed curve state information for pseudo-OO
paulo@0 226 refactoring.
paulo@0 227 * New option: Bottom blocks allows the falling piece to fall past
paulo@0 228 blocks into an appropriately shaped hole (requested by mar).
paulo@0 229 * Added bottom blocks and well size to debrief.
paulo@0 230 * New gluing options Sticky and Sticky by color.
paulo@0 231 * PC: Skin specifies the loop point and whether the music starts
paulo@0 232 before or after the "Ready, Go" animation.
paulo@0 233 * PC: Skin specifies music volume (requested by DIGITAL).
paulo@0 234 * PC: Fixed off-by-one in sideways delay (reported by Lardarse).
paulo@0 235 * PC: Fields with blkH > 24, especially blkH == 48 and Well height
paulo@0 236 10, are more likely to fit on screen (reported by Needle).
paulo@0 237
paulo@0 238 _____________________________________________________________________
paulo@0 239 0.38 (2007-09-11)
paulo@0 240 * Plays a .ljm specified at the command line (requested by
paulo@0 241 Rich Nagel).
paulo@0 242 * More refactoring for multiplayer.
paulo@0 243 * Added wall kick opcode SKIP_IF3, similar to SKIP_IF except it
paulo@0 244 also checks the two cells above the specified cell.
paulo@0 245 * L, J, and T in Arika use SKIP_IF3 to check the entire center
paulo@0 246 column when rotating to vertical (requested by edo).
paulo@0 247 * Moves new tetrominoes to be between the walls (fixing Tengen in
paulo@0 248 width 4) and, if "Enter above playfield" is off, down far enough
paulo@0 249 so that they're within the playfield (requested by Caithness).
paulo@0 250 * New rotation system: Climbing, based on Tetris DX. (No, you
paulo@0 251 can't wall-climb yet because the sub-block behavior differs.)
paulo@0 252 * Option "4x4 squares" is called "Gluing". Other gluing options
paulo@0 253 are planned.
paulo@0 254 * In Square gluing, formation of a square adds a delay
paulo@0 255 equal to line clear delay.
paulo@0 256 * PC: Refactored to share some of the GBA/DS options logic.
paulo@0 257 * PC: Moved most sound effect code into pcsound.c.
paulo@0 258 * PC: Sound for 4x4 square formation (cribbed from TOD).
paulo@0 259 * PC: Reloads the default skin's configuration before loading
paulo@0 260 the skin, so that skins always inherit from the default skin
paulo@0 261 and not the last chosen skin (requested by Rich Nagel).
paulo@0 262 * GBA: Uses duration as priority for square wave sound effects,
paulo@0 263 which should prevent the section up sound from getting
paulo@0 264 interrupted as often.
paulo@0 265 * GBA/DS: Draws real-time speedometer.
paulo@0 266
paulo@0 267 _____________________________________________________________________
paulo@0 268 0.37 (2007-07-09)
paulo@0 269 * Requires "Up" and "Alt firm drop" to be pressed again when
paulo@0 270 lock delay is turned off or less than DAS delay
paulo@0 271 (requested by reivilo).
paulo@0 272 * Keypress count is reset to 0 even in "Play .ljm" (reported by
paulo@0 273 jujube).
paulo@0 274 * Playing a broken .ljm from the gimmick menu gives an informative
paulo@0 275 error message instead of crashing (0.32a regression; reported by
paulo@0 276 Rosti LFC).
paulo@0 277 * Rhythm section-up logic waits for 64 beats at L bpm, not L+1 bpm.
paulo@0 278 * Fixed a potential buffer overflow in shuffleColumns (the "banana"
paulo@0 279 item), brought on by the expansion of the playfield to 12 columns
paulo@0 280 (0.33 regression).
paulo@0 281 * Better comments in source code about wall kick entry macros
paulo@0 282 WK(x, y), WKX(wk), WKY(wk) in lj.h (requested by Lardarse).
paulo@0 283 * PC: Reinstate Bach music while investing a trademark claim.
paulo@0 284 * PC: Separate music for Rhythm speed curves.
paulo@0 285 * PC: Does not use stretch blitter when drawing the blocks of
paulo@0 286 sprite pieces at full size (e.g. falling piece).
paulo@0 287 * PC: blitField() blits adjacent rows in one call, which is
paulo@0 288 faster on slow machines (requested by Matthew).
paulo@0 289 * PC: Size of hold piece respects blkW and blkH.
paulo@0 290 * README describes build instructions for GBA and DS.
paulo@0 291 * For user convenience, the Allegro DLL is included with the
paulo@0 292 executable, and the source code is in a separate archive.
paulo@0 293
paulo@0 294 _____________________________________________________________________
paulo@0 295 0.36 (2007-05-21)
paulo@0 296 * Allows DAS delay up to 400 ms (requested by Rich Nagel).
paulo@0 297 * Option for entry within or above ceiling (requested by DIGITAL
paulo@0 298 and Cubicz).
paulo@0 299 * Option for hold piece behavior (requested by Lardarse).
paulo@0 300 * PC: User can change individual game keys, like in StepMania
paulo@0 301 (requested by DIGITAL and Rosti LFC).
paulo@0 302 * PC: Minor changes to included background music.
paulo@0 303 * PC: Option for playing a scale during sideways motion
paulo@0 304 (requested by herc).
paulo@0 305 * PC: Selecting a skin saves options (reported by Rich Nagel).
paulo@0 306 * PC: When loading saved options, treats 16 ms DAS delay as valid
paulo@0 307 (reported by jujube).
paulo@0 308 * PC: Skin setting for a transparent background (requested by
paulo@0 309 cdsboy and Bloodstar).
paulo@0 310 * PC: Demo recording uses "Rec" and "Play" in addition to icons.
paulo@0 311 * PC: Reallocates back buffer after each skin switch, avoiding
paulo@0 312 problems related to changes in blkW and blkH (reported by
paulo@0 313 Rich Nagel).
paulo@0 314 * GBA/DS: Fixed line clear options (0.34 regression).
paulo@0 315 * GBA/DS: Press Start after lose, rather than timing out to options
paulo@0 316 (requested by Webby).
paulo@0 317 * "Default" means not to pay back a loan. Manual uses "initial"
paulo@0 318 or "preset" instead (requested by Bruce Tognazzini).
paulo@0 319
paulo@0 320 _____________________________________________________________________
paulo@0 321 0.35 (2007-04-25)
paulo@0 322 * New speed curve Game Boy Heart.
paulo@0 323 * New speed curve Death 300+, which starts three sections into
paulo@0 324 Death just like cgwg's cheat for TAP (requested by Amnesia).
paulo@0 325 * New randomizer 10-piece Memoryless.
paulo@0 326 * First garbage line takes into account well width (reported by
paulo@0 327 Lardarse).
paulo@0 328 * Displays section number for NES, Game Boy, and Game Boy Heart
paulo@0 329 speed curves (requested by Rich Nagel).
paulo@0 330 * Debrief displays Quadra-style pieces per active minute
paulo@0 331 (requested by Cubicz).
paulo@0 332 * Debrief calls pieces "pieces" instead of "tetrominoes" in
paulo@0 333 10-piece randomizers because I2, I3, L3 are not tetrominoes.
paulo@0 334 * PC: Gimmick and level are displayed in skin foreground color
paulo@0 335 (missed in 0.30; reported by Rich Nagel).
paulo@0 336 * PC: Skin file name suffix is now .skin not .ini, so that skin.ini
paulo@0 337 cannot be confused with lj.ini. The default skin is called
paulo@0 338 default.skin not skin.ini.
paulo@0 339 * PC: Title screen has option to select skin (requested by
paulo@0 340 cdsboy).
paulo@0 341 * PC: Block size is no longer hard-coded at 24x24 pixels.
paulo@0 342 The new .skin commands blkW= and blkH= control their size
paulo@0 343 (requested by Bloodstar).
paulo@0 344 * PC: Source code comes with new installation guide written by
paulo@0 345 Lardarse in "docs/Compiling_on_Windows.txt".
paulo@0 346
paulo@0 347 _____________________________________________________________________
paulo@0 348 0.34a (2007-03-27)
paulo@0 349 * PC: Fixed hidden level in Next at right mode (0.33 regression).
paulo@0 350 * DS: Fixed hidden sprites due to bug in devkitARM R20 libnds
paulo@0 351 (0.34 regression).
paulo@0 352 * DS: New touch screen code should eliminate erroneous low notes
paulo@0 353 played upon pen-up.
paulo@0 354
paulo@0 355 _____________________________________________________________________
paulo@0 356 0.34 (2007-03-23)
paulo@0 357 * Fixed Move to Back piece set (0.14 regression: dang!).
paulo@0 358 * Separate options for number of previewed pieces above shadow and
paulo@0 359 outside field (requested by kiwibonga, caffeine, and Cubicz).
paulo@0 360 * Option to disable IRS (requested by DIGITAL).
paulo@0 361 * Garbage gimmicks (vs., drill 40, hr derby) replaced with new
paulo@0 362 garbage option (requested by Cubicz).
paulo@0 363 * In garbage style "Vs.", player can choose difficulty 1 through 4
paulo@0 364 (requested by Caithness).
paulo@0 365 * Option for line clear delay, independent of entry delay
paulo@0 366 (requested by kiwibonga).
paulo@0 367 * Garbage style Drill no longer automatically tops out on
paulo@0 368 short playfields.
paulo@0 369 * Garbage style Vs. generates garbage with SZSZ randomizer.
paulo@0 370 * Frequency of Vs. w/Items bananas is independent of randomizer.
paulo@0 371 * Fixed self-clearing garbage (0.33 regression).
paulo@0 372 * GBA/DS: Fixed pause button hiding left and right walls
paulo@0 373 (0.33 regression).
paulo@0 374 * GBA/DS: R button also works as hold piece (requested by
paulo@0 375 PetitPrince).
paulo@0 376
paulo@0 377 _____________________________________________________________________
paulo@0 378 0.33 (2007-03-08)
paulo@0 379 * New speed curve Rhythm Zero is identical to Rhythm except it
paulo@0 380 operates at 0G instead of 20G (requested by Cubicz and caffeine).
paulo@0 381 * Speed curves that do not use level reset level to 0.
paulo@0 382 Therefore, playing a game of Death then a game of Exponential
paulo@0 383 on GBA/DS no longer shows the level that the player finished
paulo@0 384 Death on as the level during Exponential.
paulo@0 385 * Maximum well width increased to 12 (requested by Zed0).
paulo@0 386 * Hold piece does not reset floor kicks, lock delay time in entry
paulo@0 387 reset, or Rhythm's placement timer.
paulo@0 388 * GBA/DS: More shared code moved to file "ljgbads.inc".
paulo@0 389 * PC: Stops end-of-section sound when game is over
paulo@0 390 (requested by Bloodstar).
paulo@0 391
paulo@0 392 _____________________________________________________________________
paulo@0 393 0.32a (2007-02-25)
paulo@0 394 * PC: Fixed demo recording (0.32 regression; reported by Rosti LFC)
paulo@0 395 * PC: Option to record all games from the start
paulo@0 396 (requested by cdsboy, DIGITAL, Cubicz, and colour_thief).
paulo@0 397 * PC: Added Play .ljm gimmick:
paulo@0 398 Allegro file selector pops up, and the player can choose the
paulo@0 399 filename of a demo to play back (requested by Lardarse).
paulo@0 400
paulo@0 401 _____________________________________________________________________
paulo@0 402 0.32 (2007-02-13)
paulo@0 403 * Changed a CPU yield behavior that was affecting battery
paulo@0 404 efficiency on the GBA and DS front ends (reported by Mighty Max).
paulo@0 405 * Removed Low Rider gimmick in favor of option for well height
paulo@0 406 (requested by Matthew).
paulo@0 407 * Option for well width, like Shimizu's Tetris Semipro-68k.
paulo@0 408 Combine this with a low well height to simulate BIG mode of
paulo@0 409 TGM and Heboris (requested by Matthew).
paulo@0 410 * Options for entry delay and sideways delay have "max" added to
paulo@0 411 their description to clarify things (requested by kotetsu213 and
paulo@0 412 Ezzelin).
paulo@0 413 * All speed options given in Hz or G are given in both.
paulo@0 414 * PC: Next above shadow works in all playfield positions (reported
paulo@0 415 by caffeine).
paulo@0 416 * GBA/DS: Added option for soft drop speed (requested by Ezzelin).
paulo@0 417 * GBA/DS: Some shared code moved to file "ljgbads.inc".
paulo@0 418 * GBA: Unavailable hold piece is grayed out.
paulo@0 419 * GBA/DS: Lock delay = no lock works (reported by Ezzelin).
paulo@0 420 * GBA/DS: Fixed frames/ms display of delays (reported by Ezzelin).
paulo@0 421
paulo@0 422 _____________________________________________________________________
paulo@0 423 0.31 (2007-02-03)
paulo@0 424 * Draws the score and next pieces before blitting the playfield
paulo@0 425 in case a front-end draws the score or next pieces inside the
paulo@0 426 playfield.
paulo@0 427 * In Baboo!, speed curve Zero sets the level to the number of
paulo@0 428 keypresses so far.
paulo@0 429 * PC, GBA: Plays sound effect for end of section in speed curves
paulo@0 430 that use sections (Master, Death, NES, Game Boy).
paulo@0 431 * PC: Option to draw next pieces inside the playfield, above the
paulo@0 432 shadow (requested by caffeine, cdsboy, and Cubicz).
paulo@0 433 * GBA, DS: Blocks within a piece are drawn connected once they lock
paulo@0 434 (TOD parity, requested by Lardarse and Bloodstar).
paulo@0 435 * GBA, DS: Baboo! no longer double-counts console buttons passed
paulo@0 436 through the joypad reading code.
paulo@0 437 * README: "color=image" clone-and-hack error fixed (reported by
paulo@0 438 Bloodstar).
paulo@0 439 * README: Explains black rectangle in upper left corner as an
paulo@0 440 icon for stop (requested by herc).
paulo@0 441 * README: Explains controls on GBA and DS.
paulo@0 442
paulo@0 443 _____________________________________________________________________
paulo@0 444 0.30 (2007-02-01)
paulo@0 445 * Fixed ARE display in debrief, which could cause a crash in some
paulo@0 446 situations (0.26 regression?).
paulo@0 447 * Garbage no longer self-clears in Cascade gravity (reported by
paulo@0 448 Bloodstar).
paulo@0 449 * In high gravity, land a T with one block over an overhang and
paulo@0 450 rotate it once so that it falls and clears a line. This is no
paulo@0 451 longer counted as a T-spin.
paulo@0 452 * During a replay, counts keypresses by the replay player.
paulo@0 453 * PC: Scales undersized background images to the size of the window
paulo@0 454 (requested by Bloodstar).
paulo@0 455 * PC: If a piece enters during a skipped frame, a second upward
paulo@0 456 trail is no longer drawn (reported by Bloodstar and caffeine).
paulo@0 457 * PC: "Next at top" layout draws speedometer (requested by
paulo@0 458 matt_hatter83).
paulo@0 459 * PC: Trails option is saved properly (reported by caffeine).
paulo@0 460 * PC: User can customize the game's text and background colors
paulo@0 461 using skin.ini (requested by Bloodstar).
paulo@0 462 * Added rudimentary port to Nintendo DS for people with MAX Media
paulo@0 463 Dock, M3 Pro, SuperCard Rumble, or SLOT-1 cards, which can run
paulo@0 464 DS homebrew but not GBA homebrew.
paulo@0 465 * Moscow Nights removed from lj-contrib due to research into the
paulo@0 466 copyright term extensions enacted by Russian Federation during
paulo@0 467 the 1990s.
paulo@0 468
paulo@0 469 _____________________________________________________________________
paulo@0 470 0.29 (2007-01-17)
paulo@0 471 * TDS scoring recognizes chains properly (reported by Lardarse).
paulo@0 472 * TDS scoring section factor stops increasing after 190 lines.
paulo@0 473 * Added NES scoring method.
paulo@0 474 * Added scoring for soft and hard drops to options and debrief.
paulo@0 475 * Cascade no longer deletes the bottom row when lines high on the
paulo@0 476 playfield are cleared (reported by Lardarse).
paulo@0 477 * PC: Draws trails when a tetromino goes up or down rapidly.
paulo@0 478 (Option to turn them off.)
paulo@0 479 * PC: Handles dirty rectangles for next pieces and score
paulo@0 480 separately.
paulo@0 481 * Scoring section of README describes all scoring methods.
paulo@0 482
paulo@0 483 _____________________________________________________________________
paulo@0 484 0.28 (2007-01-04)
paulo@0 485 * Added Cascade gravity, as seen in Quadra, Tetris Worlds Cascade,
paulo@0 486 and Tetris DS Touch.
paulo@0 487 * Master/Death: Level starts at -1, so that the first piece is
paulo@0 488 played at level 0 (requested by Lardarse).
paulo@0 489 * Changed T-spin detection to save whether or not a rotation
paulo@0 490 involved a kick (0: move; 1: rotate; 2: rotate with kick) so
paulo@0 491 that scoring methods such as TDS can score T-spins with and
paulo@0 492 without kicks differently.
paulo@0 493 * Added TDS scoring method (line clears only).
paulo@0 494 * New, more general, possibly easier to understand reshuffle code
paulo@0 495 in bag randomizer (requested by Lardarse)
paulo@0 496 * GBA: Gold and silver square colors added (requested by Lardarse).
paulo@0 497 * PC: Game over in low ceiling no longer fades the area outside the
paulo@0 498 playfield (reported by Lardarse).
paulo@0 499 * PC: Close box interrupts starting and game over animations.
paulo@0 500 * README warns that 4x4 squares mode needs ljconn.
paulo@0 501
paulo@0 502 _____________________________________________________________________
paulo@0 503 0.27 (2006-12-20)
paulo@0 504 * GBA version includes a valid header (requested by Ezzelin).
paulo@0 505 * Fixed incorrect spawn orientations for Game Boy rotation system
paulo@0 506 (0.25? regression, reported by Lardarse).
paulo@0 507 * Fixed incorrect win/loss sound early in 180 seconds (0.25
paulo@0 508 regression).
paulo@0 509 * New randomizer 10-piece Bag, including the domino and both
paulo@0 510 trominoes.
paulo@0 511 * GBA version now reports entry and lock delays in both frames
paulo@0 512 and milliseconds.
paulo@0 513 * Possibly fixed off-by-one in Game Boy speed curve section
paulo@0 514 computation, which caused an incorrect slowdown in 210-219
paulo@0 515 section (reported by Ezzelin).
paulo@0 516
paulo@0 517 _____________________________________________________________________
paulo@0 518 0.26 (2006-12-15)
paulo@0 519 * Option to allow game to proceed in the background (requested by
paulo@0 520 Ezzelin). However, Windows doesn't appear to pass joystick
paulo@0 521 presses to the game running in the background. FCE Ultra has
paulo@0 522 what appears to be exactly the same problem.
paulo@0 523 * Added Game Boy and NES speed curves.
paulo@0 524 * Options and Game Keys are accessed through title screen, not
paulo@0 525 gimmick selection.
paulo@0 526 * Option to hide playfield without changing the skin.
paulo@0 527 * Rearranged rules section of options to correspond more closely to
paulo@0 528 the sequence of operations for each tetromino.
paulo@0 529 * Soft or hard drop set to "lock on release" no longer produces
paulo@0 530 double locks at 20G.
paulo@0 531 * Disable initial hard drop when set to "lock" and entry delay is
paulo@0 532 greater than 0 but less than DAS delay.
paulo@0 533 * Checks for 4x4 squares top to bottom per comparison with The New
paulo@0 534 Tetris (N64).
paulo@0 535 * Finer grained selections in entry delay (requested by
paulo@0 536 matt_hatter83) and lock delay (requested by caffeine).
paulo@0 537 They now are at 50ms increments at the low end.
paulo@0 538 * Expanded TGM speed curve to 12 sections. One comparatively slow
paulo@0 539 section at 20G was added to Master before Death-equivalent starts
paulo@0 540 (now Death 0 is equivalent to Master 600, not 500), and one
paulo@0 541 faster section was added to the end of Death based on info posted
paulo@0 542 to wiki by colour_thief.
paulo@0 543 * Added H.R. Derby gimmick:
paulo@0 544 Like Marathon, but every line you clear other than with a
paulo@0 545 home run or a T-spin gives you garbage.
paulo@0 546 * Ready Go animation is 1.2 seconds, not 2.0 seconds.
paulo@0 547 * Preliminary support for Game Boy Advance, with experimental
paulo@0 548 paged options replacing scrolling options.
paulo@0 549
paulo@0 550 _____________________________________________________________________
paulo@0 551 0.25 (2006-11-28)
paulo@0 552 * Fixed History 6 Rolls deciding between the first piece algorithm
paulo@0 553 and the subsequent pieces algorithm (reported by Lardarse).
paulo@0 554 * Fixed a signedness issue that broke 180 seconds gimmick in the
paulo@0 555 case that a tetromino was kept active between 3:00 and 3:01 (0.24
paulo@0 556 regression; reported by caffeine).
paulo@0 557 * Allows ending the game with a piece in mid-air (0.24 regression).
paulo@0 558 * Removed Arika and renamed Arika+TI to Arika. For the old
paulo@0 559 Arika behavior, set Options:Floor kicks to 0.
paulo@0 560 * Options screen allows DAS, allowing future versions to make more
paulo@0 561 options and more values for each option available in a less
paulo@0 562 cumbersome way.
paulo@0 563
paulo@0 564 _____________________________________________________________________
paulo@0 565 0.24 (2006-11-16)
paulo@0 566 * Added Score style to options and debrief.
paulo@0 567 * Choice of LJ or TNT64 scoring is based on chosen score style, not
paulo@0 568 whether 4x4 squares are turned on.
paulo@0 569 * Added Hotline scoring method, where only lines cleared on
paulo@0 570 specific rows count toward scoring. When enabled, draws white
paulo@0 571 lines through empty spaces in these rows.
paulo@0 572 * New soft drop and hard drop lock setting: Lock on release. It's
paulo@0 573 a spring-loaded system: When you press the button, it doesn't
paulo@0 574 lock, but when you let go, it locks (requested by colour_thief).
paulo@0 575 * Option to override lock delay time (requested by caffeine).
paulo@0 576 * Option to limit upward kicks (requested by Needle). This may
paulo@0 577 obviate the difference between Arika and Arika+TI.
paulo@0 578 * Sped up line clear in Master 300-499 to make less of a jarring
paulo@0 579 transition to "death" style timings.
paulo@0 580 * LJM loading fails even more gracefully on wrong format version,
paulo@0 581 properly treating an LJM of the wrong version as not existing.
paulo@0 582 * Fixed bug in 0.23's application switch pausing where switching
paulo@0 583 away while already paused would require two Esc presses to
paulo@0 584 continue (reported by caffeine).
paulo@0 585 * Does not stop play until after the line clear animation finishes.
paulo@0 586 This allows the game to properly update the single, double,
paulo@0 587 triple, etc. counts for the last line that completes the goal
paulo@0 588 (0.19 scoring regression?; reported by caffeine).
paulo@0 589 * Refactored duplicated option loading code.
paulo@0 590 * Options: Ditched parallel struct and array in favor of a
paulo@0 591 single list of named indices.
paulo@0 592 * Corrected Moscow Nights and Kalinka in lj-contrib for greater
paulo@0 593 compatibility with obscure s3m players that can't handle odd
paulo@0 594 numbers of channels (requested by Lardarse).
paulo@0 595
paulo@0 596 _____________________________________________________________________
paulo@0 597 0.23 (2006-11-04)
paulo@0 598 * Fixed S and Z in Sega 1988.
paulo@0 599 * DUMB has been wrapped in a library called LJMusic and can be
paulo@0 600 turned off at compile time (edit ljmusic.c and makefile) if you
paulo@0 601 don't want to install DUMB.
paulo@0 602 * Added support for Xiph.org's OggVorbis codec to LJMusic
paulo@0 603 (requested by Needle).
paulo@0 604 * Option to ignore sideways movement on first frame (like TGM
paulo@0 605 series) (requested by Needle, seconded by caffeine).
paulo@0 606 * Properly pauses the game when the player switches away from the
paulo@0 607 window (requested by Lardarse).
paulo@0 608 * Fails gracefully (does nothing) instead of crashing when loading
paulo@0 609 replay files of a different format version.
paulo@0 610 * Moved as much as possible below setting display mode so that
paulo@0 611 people porting LJ to other platforms can toss up working alert()
paulo@0 612 boxes earlier (requested by cdsboy).
paulo@0 613
paulo@0 614 _____________________________________________________________________
paulo@0 615 0.22 (2006-10-23)
paulo@0 616 * Fixed color system change after reloading (0.20 regression?,
paulo@0 617 reported by lardarse). Should always unpack options just before
paulo@0 618 loading skin.
paulo@0 619 * All numbers in saved states are stored big-endian, making movies
paulo@0 620 compatible between 0.22 for Windows and Intel Mac and 0.22 for
paulo@0 621 PowerPC Mac (requested by cdsboy).
paulo@0 622 * Sega rotation systems renamed to Arika for less confusion with
paulo@0 623 the rotation systems in Sega's Tetris games from 1988 and 1998
paulo@0 624 (requested by Needle).
paulo@0 625 * Added Sega 1988 rotation system (like Arika without wall kicks).
paulo@0 626 * Preliminary Vorbis playback code is included in the source code
paulo@0 627 distribution but has not been activated in the program.
paulo@0 628 (The keys to compiling OggVorbis on MinGW+MSYS are 1. set the
paulo@0 629 prefix to match the MINGDIR you used to build Allegro, and
paulo@0 630 2. disable creation of the shared library.)
paulo@0 631
paulo@0 632 _____________________________________________________________________
paulo@0 633 0.21 (2006-10-21)
paulo@0 634 * Added new T-spin detection rule "3-corner T no kick", identical
paulo@0 635 to 3-corner T except that a wallkick is not counted as a rotation
paulo@0 636 (requested by kotetsu213).
paulo@0 637 * Options that don't apply because of how another option is set
paulo@0 638 are grayed out with an explanation (requested by Needle).
paulo@0 639 * Debrief tells number of blocks left in the playfield and whether
paulo@0 640 saved state was used (requested by caffeine).
paulo@0 641 * Debrief tells what level the player stopped on.
paulo@0 642 * Added support for saving input stream ("demo" or "movie") to file
paulo@0 643 "demo.ljm". Press [ to start/stop recording and ] to start/stop
paulo@0 644 playback (requested by caffeine).
paulo@0 645 * Pieces are actually random again (0.20 regression).
paulo@0 646 * New lockdown mode: Entry reset. Instead of resetting, the lock
paulo@0 647 timer pauses while the piece is falling (requested by caffeine).
paulo@0 648 * No +20 for banking more than 5 beats (requested by caffeine).
paulo@0 649 * 250 ms entry delay option (requested by matt_hatter83).
paulo@0 650 * Entry and sideways delays in Master and Death use the shorter of
paulo@0 651 the speed curve's delay and the user's delay.
paulo@0 652 * Added soft drop speed to options.
paulo@0 653 * Added settings 8.6 Hz through 6.7 Hz to Sideways speed.
paulo@0 654
paulo@0 655 _____________________________________________________________________
paulo@0 656 0.20 (2006-10-15)
paulo@0 657 * Fixed color system change after options (0.19 regression).
paulo@0 658 * Restored ability to hold first piece (0.17 regression?).
paulo@0 659 * Requires down to be re-pressed only when entry delay is less
paulo@0 660 than sideways delay.
paulo@0 661 * In modes with ARE, allow initial hard drop even on first piece
paulo@0 662 (requested by caffeine).
paulo@0 663 * Visual refresh in Game Keys.
paulo@0 664 * Game Keys ignores keypresses for 1/4 second after each key is
paulo@0 665 set, which should fix problems with GameCube to USB adapters
paulo@0 666 (requested by Caithness).
paulo@0 667 * All platforms use a single randomizer, whose state is associated
paulo@0 668 with the playfield.
paulo@0 669 * ARE is a binary option again, as several speed curves ignored the
paulo@0 670 old version's difference between constant and decreasing.
paulo@0 671 * Moved version display to title screen.
paulo@0 672 * Sound effect for win differs from that for game over.
paulo@0 673 * Sound effect for rotating a piece on its first active frame.
paulo@0 674 * Begun to add assertions, causing game over if they fail.
paulo@0 675 * Added support for saving the state of the playfield.
paulo@0 676 Press [ to save or ] to load. Movies might be next.
paulo@0 677
paulo@0 678 _____________________________________________________________________
paulo@0 679 0.19 (2006-09-28):
paulo@0 680 * Use of SRS or Sega colors is determined by a flag set for each
paulo@0 681 rotation system. The rule is that rotation systems that use
paulo@0 682 bounding box rotation should use SRS colors.
paulo@0 683 * Added TOD M4 rotation system (face up entry + bounding box
paulo@0 684 rotation + roughly TGM style compensation).
paulo@0 685 * List items in Options flicker much less.
paulo@0 686 * Beginning of an actual title screen.
paulo@0 687 * Removed Rhythm gimmick in favor of speed curve option.
paulo@0 688 * Added Master and Death speed curves (requested by Needle).
paulo@0 689 Death hasn't been tested thoroughly because the developer
paulo@0 690 sucks at death.
paulo@0 691 * Blits only those playfield rows that have changed, making
paulo@0 692 animation smoother on old, cheap, or mobile video cards
paulo@0 693 (requested by cosmonaut).
paulo@0 694 * Rhythm speed curve no longer has what feels like a big elbow
paulo@0 695 (requested by caffeine). Specifically it gives 20 points
paulo@0 696 instead of banking more than 5 pieces' worth of time.
paulo@0 697 * Doesn't draw the state after the tetromino spawns but before
paulo@0 698 initial rotation has taken effect (requested by Needle).
paulo@0 699 * Added sound effect for hold piece (requested by Needle).
paulo@0 700 * Land and lock sound much better (requested by Needle).
paulo@0 701 * Shuffle columns (seen only in Vs. w/ Items) correctly disconnects
paulo@0 702 blocks horizontally.
paulo@0 703 * In Square mode, T-spins cause avalanches.
paulo@0 704 * In Square mode, lines containing a piece of a 4x4 block are worth
paulo@0 705 more, and homers are worth less.
paulo@0 706 * Fixed ignoring diagonal presses (0.17 regression).
paulo@0 707 * Created a new struct "LJPrefs" to hold preferences set by the
paulo@0 708 player in the Options menu separately from the parameters
paulo@0 709 that the game actually uses. This allows gimmicks to override
paulo@0 710 preferences more cleanly.
paulo@0 711 * Added support for future scoring methods where the score per line
paulo@0 712 at a given point in the chain is based on a formula.
paulo@0 713 * Created a union that combines the new struct with the array that
paulo@0 714 the Options menu edits to improve maintainability of Options.
paulo@0 715
paulo@0 716 _____________________________________________________________________
paulo@0 717 0.18 (2006-09-16):
paulo@0 718 * Fixed Classic lock reset (unknown regression).
paulo@0 719 * Fixed misbehavior when hold is pressed after a piece
paulo@0 720 lands but before it locks (0.17 regression).
paulo@0 721 * Shadow is drawn using the piece's color, at 25% opacity,
paulo@0 722 from rows 4 and 5 of ljblocks.
paulo@0 723 * Fixed shadow option saving (0.17a regression).
paulo@0 724 * Added option to hide shadow color or change shadow opacity.
paulo@0 725 * Split Sega rotation system into one with and one without
paulo@0 726 TGM3's upward kicks.
paulo@0 727 * Added NES and Game Boy rotation systems.
paulo@0 728 * README: Illustration of game play has an image map. The reader
paulo@0 729 can select (hover over) a region of the screenshot, and the
paulo@0 730 browser will show the title of the region as a tooltip.
paulo@0 731 * BPM is now called speed level in preparation for other
paulo@0 732 speed curves (including TGM and TA Death).
paulo@0 733
paulo@0 734 _____________________________________________________________________
paulo@0 735 0.17 (2006-09-13):
paulo@0 736 * Option for sticky gravity per color, as seen in The Next Tetris.
paulo@0 737 * "Ready, Go" is centered, even in low ceiling gimmicks.
paulo@0 738 * Added TGM3's upward kick to Sega T rotations.
paulo@0 739 * Added Tengen rotation system.
paulo@0 740 * Removed TGM gimmick in favor of entry delay option.
paulo@0 741 * Initial hold works at any time. The key can be pressed and
paulo@0 742 released during entry delay or even during line clear delay.
paulo@0 743 * Initial actions do not inflate keypress count
paulo@0 744 (helpful in Baboo! with entry delay).
paulo@0 745 * Draws hold piece in garbage colors when it is not available.
paulo@0 746 * Options scroll.
paulo@0 747 * Option to draw next pieces to right in constant size or above.
paulo@0 748 * Better looking scroll bar in options.
paulo@0 749 * Debrief: In naive gravity, reports T-spin singles, doubles,
paulo@0 750 and triples separately from non-T-spins. In other line
paulo@0 751 clear gravity modes, "home run" is now called "quad".
paulo@0 752 * Fixed a buffer overflow bug in sticky: fillCLoop() no longer
paulo@0 753 treats the right side of one row and the left side of the
paulo@0 754 row above it as one region.
paulo@0 755 * Clarified manual as to the purpose of the Vs. gimmicks.
paulo@0 756 * Separated platform specific stuff into a separate struct.
paulo@0 757 * Refactored scoring into a separate function for future movement
paulo@0 758 to gimmick and option control.
paulo@0 759 * Debrief formats the report into a string and then writes it
paulo@0 760 to a file and the screen all at once.
paulo@0 761 * Refactored play() to move everything in the game loop that is
paulo@0 762 not platform specific out of ljpc.c into new file ljplay.c.
paulo@0 763 * Wall kick table is no longer flipped, making it easier to add
paulo@0 764 new rotation systems.
paulo@0 765 * Unified counterclockwise and clockwise rotation code.
paulo@0 766
paulo@0 767 _____________________________________________________________________
paulo@0 768 0.16 (2006-09-03):
paulo@0 769 * Fixed instant sideways speed (0.15 regression).
paulo@0 770 * In countdown modes, debrief screen displays whether clear was
paulo@0 771 successful.
paulo@0 772 * 6-piece Bag no longer makes Vs. ridiculously easy.
paulo@0 773 * Counts score and garbage separately for future shift to
paulo@0 774 gimmick-controlled scoring.
paulo@0 775 * Displays score instead of garbage on the play screen.
paulo@0 776 * Counts singles, doubles, triples, and homers, and displays them
paulo@0 777 in debrief.
paulo@0 778 * Option to hide falling piece in addition to shadow.
paulo@0 779 * Can load mod, xm, or it music in addition to s3m.
paulo@0 780 * Moved skin description from lj.ini to skin.ini, and the name of
paulo@0 781 this skin description file name can be changed with the Skin=
paulo@0 782 command in lj.ini.
paulo@0 783 * Closes lj.ini when reading it.
paulo@0 784 * All vkey->action game key handling code moved to macro.c for
paulo@0 785 future refactoring.
paulo@0 786 * Build process uses automatic generation of C files' dependencies
paulo@0 787 for future refactoring of header files.
paulo@0 788 * Added two versions of NES-style blocks to lj-contrib:
paulo@0 789 one by tepples and one by deepdorp.
paulo@0 790
paulo@0 791 _____________________________________________________________________
paulo@0 792 0.15 (2006-08-27):
paulo@0 793 * Options for DAS delay, number of next pieces, and window vs.
paulo@0 794 full screen.
paulo@0 795 * Options scrolling doesn't cause the dialog's title and
paulo@0 796 instructions to flicker.
paulo@0 797 * Small font's 5 glyph is the same width as other digits.
paulo@0 798 * Fixed O shape table.
paulo@0 799 * Macros (vkey->action mappings past the first 8) are in a
paulo@0 800 lookup table in the new file macro.c. This paves the way
paulo@0 801 for a future macro editor.
paulo@0 802 * Added macros Alt. Firm Drop and Alt. Hold.
paulo@0 803 * Game Keys displays names for all keys, not just printable keys.
paulo@0 804 * In Sega rotation mode, reads block images from ljblocks-sega.bmp
paulo@0 805 and ljconn-sega.bmp if available.
paulo@0 806 * If ljbg.jpg is not available, uses a plain white backdrop.
paulo@0 807 * Reads file names for block images, background image, and music
paulo@0 808 from lj.ini, which the player can edit with a text editor.
paulo@0 809 * New "6-piece Bag" randomizer is one stick short of a bundle.
paulo@0 810 * Added an arrangement of the minuet from JS Bach's French Suite
paulo@0 811 in B minor (BWV 814) to lj-contrib.
paulo@0 812
paulo@0 813 _____________________________________________________________________
paulo@0 814 0.14 (2006-08-18):
paulo@0 815 * pause() renamed to pauseGame() to fix namespace collision on
paulo@0 816 platforms with unistd.h (Linux, BSD, Mac).
paulo@0 817 * Gimmick settings for initial gravity, ARE, and ceiling height
paulo@0 818 are initialized from a lookup table.
paulo@0 819 * History 6 Rolls randomizer uses correct initial history (ZSZS)
paulo@0 820 and correct selection for the first piece (I, J, L, or T).
paulo@0 821 * Blocks are drawn connected within each tetromino if ljconn.bmp
paulo@0 822 is present.
paulo@0 823 * Corrected connection table for O tetromino.
paulo@0 824 * Rhythm's BPM counter increases after every 64 beats, not every
paulo@0 825 64 tetrominoes.
paulo@0 826 * Added Low Vs. gimmick:
paulo@0 827 Like Vs. CPU with a low ceiling.
paulo@0 828
paulo@0 829 _____________________________________________________________________
paulo@0 830 0.13 (2006-08-15):
paulo@0 831 * Hard drop lock option "Zangi" renamed to "Slide".
paulo@0 832 * Added soft drop lock option.
paulo@0 833 * Ignores diagonal presses differently: instead of pretending the
paulo@0 834 keys are up, it pretends that they haven't changed from the last
paulo@0 835 frame. UP, UP+RIGHT, UP no longer makes a double hard drop.
paulo@0 836 * Esc pauses the game and music instead of immediately quitting.
paulo@0 837 * Added contributions from cdsboy to lj-contrib.
paulo@0 838
paulo@0 839 _____________________________________________________________________
paulo@0 840 0.12 (2006-08-13):
paulo@0 841 * Creates lj.ini if it doesn't exist, instead of crashing on
paulo@0 842 startup.
paulo@0 843 * Added half-size Aver16 font.
paulo@0 844 * Zero gravity (as in Baboo!) + Zangi hard drop = land and lock,
paulo@0 845 instead of just sit there
paulo@0 846 * Option to use classic (Game Boy style) or step-reset (TGM style)
paulo@0 847 lockdown instead of move-reset (SRS style) lockdown.
paulo@0 848 * Contains connection tables for all pieces. Not used yet,
paulo@0 849 but will be used for Cascade (where gravity is based on shapes
paulo@0 850 of pieces), Square (which forms big squares only out of whole
paulo@0 851 tetrominoes), and Bombliss (which doesn't place a bomb in a block
paulo@0 852 that has blocks on opposite sides of it within the piece, such as
paulo@0 853 the middle of an I, J, L, or T).
paulo@0 854 * Pieces can carry bomb blocks within them. Not used yet,
paulo@0 855 but will be used for Bombliss.
paulo@0 856 * Option for sticky gravity. This will also be used for Bombliss.
paulo@0 857 * Options rearranged: game on top, control in middle,
paulo@0 858 view on bottom.
paulo@0 859 * Options menu uses a smaller font and scrolls if necessary (but
paulo@0 860 it's not necessary just yet).
paulo@0 861 * Zero isn't wider than other digits in the large or small font.
paulo@0 862 * Split debrief screen into debrief.c.
paulo@0 863 * Debrief displays lockdown and line clear gravity type.
paulo@0 864 * List of options in debrief is written with smaller font.
paulo@0 865 * Config screen does a better job of ignoring simultaneous presses
paulo@0 866 on USB joystick adapters that map the Control Pad to both axes
paulo@0 867 and buttons (such as EMS USB2).
paulo@0 868 * Main menu and options always respond to the arrow keys (in
paulo@0 869 addition to the keys set in Game Keys), allowing players to
paulo@0 870 reset Game Keys even when the keys have become corrupted.
paulo@0 871
paulo@0 872 _____________________________________________________________________
paulo@0 873 0.11 (2006-08-01):
paulo@0 874 * Added Instant, 20 Hz, 15 Hz, and 12 Hz sideways speeds.
paulo@0 875 * Added randomizer History 6 Rolls, very similar to Move to Back
paulo@0 876 but sometimes repeating recent tetrominoes.
paulo@0 877 * Allows separate wall kick tables for clockwise and anticlockwise
paulo@0 878 rotation.
paulo@0 879 * New "theta=default" in piece->block expansion reflects the
paulo@0 880 rotation system's initial orientations for new pieces, next
paulo@0 881 pieces, and the hold piece.
paulo@0 882 * Option to use Sega rotations instead of SRS rotations.
paulo@0 883 * Option for ignoring diagonal presses.
paulo@0 884 * Option for locking or not when using hard drop (Up).
paulo@0 885 * Option to turn off smooth gravity animation.
paulo@0 886 * Option to use TNT style T-spin detection instead of TDS style.
paulo@0 887 * Debrief displays rotation system and T-spin detection.
paulo@0 888 * Saves options to lj.ini.
paulo@0 889 * Split options screen and wall kick table into separate source
paulo@0 890 code files.
paulo@0 891 * Plays music in stereo.
paulo@0 892 * Site distributes contributed graphics and music files to
paulo@0 893 replace the defaults.
paulo@0 894
paulo@0 895 _____________________________________________________________________
paulo@0 896 0.10 (2006-07-27):
paulo@0 897 * Set default full screen color depth to 16-bit which may be more
paulo@0 898 compatible than 15-bit.
paulo@0 899 * Press Print Screen to save the current screen as ljsnap.bmp.
paulo@0 900 * Plays next piece sound whenever the next column moves up.
paulo@0 901 0.08-0.09 didn't do so for the first hold in a game.
paulo@0 902 * No longer tries rotating right when rotating left fails.
paulo@0 903 * Handles DirectDraw amnesia (screen corruption in Alt+Tab)
paulo@0 904 correctly in menu, game play, and debrief screens.
paulo@0 905 * Asset and video buffer cleanup consolidated into one function.
paulo@0 906 * Gravity speeds up 50% faster.
paulo@0 907 * Added options menu for selecting sideways movement speed and
paulo@0 908 randomizer.
paulo@0 909 * Added more randomizers: 14-piece bag, move-to-back (TGM style),
paulo@0 910 memoryless (classic), and SZSZ (used in the well-known proof
paulo@0 911 that memoryless cannot be played indefinitely).
paulo@0 912 * Debrief screen displays date and time of report generation as
paulo@0 913 well as randomizer and sideways speed, and logs what it displays
paulo@0 914 to lj-scores.txt.
paulo@0 915 * Moved all gimmick-specific code from lj.c to new file gimmicks.c.
paulo@0 916 * Built against Allegro 4.2.0. (Users of previous versions will
paulo@0 917 need the new DLL.)
paulo@0 918 * Countdown based gimmicks (40 lines, 180 seconds, Baboo!,
paulo@0 919 TGM World, Drill 40) use the same countdown variable for
paulo@0 920 end state detection that they had used for countdown sound.
paulo@0 921 * Support for tracked music using DUMB.
paulo@0 922 * Manual is HTML.
paulo@0 923
paulo@0 924 _____________________________________________________________________
paulo@0 925 0.09 (2006-07-16):
paulo@0 926 * Reverted sideways kicks of I tetromino rotating from horizontal
paulo@0 927 to vertical based on testing I-I interactions in Tetris DS.
paulo@0 928 * Key pretending is more consistent.
paulo@0 929 * TGM World stops at 290 lines, more like Tetris The Grand Master.
paulo@0 930 * In gimmicks with ARE (currently TGM World), allows initial
paulo@0 931 hard drop.
paulo@0 932 * Licensed as free software under GNU General Public License.
paulo@0 933 * Fixed incomplete first bag (0.08 regression).
paulo@0 934 * Has its own icon instead of the wall kick editor's icon.
paulo@0 935 * No double initial rotation when using initial hold in TGM World.
paulo@0 936 * Input actions are a 32-bit record for future recording.
paulo@0 937 * Hidden next piece is a separate variable, which next piece
paulo@0 938 sound also respects, fixing Items.
paulo@0 939
paulo@0 940 _____________________________________________________________________
paulo@0 941 0.08 (2006-07-08):
paulo@0 942 * Plays sounds for the next piece like TGM.
paulo@0 943 * No longer allows 800x552 window now that 0.08 displays the
paulo@0 944 gimmick name.
paulo@0 945 * Supports spawn delay and line delay.
paulo@0 946 * Supports initial hold and rotation.
paulo@0 947 * Supports variable garbage randomness.
paulo@0 948 * Begun to move gimmick code out of core.
paulo@0 949 * Added TGM World gimmick:
paulo@0 950 Standard S.M.G., except there's a half-second delay before each
paulo@0 951 tetromino, and a half-second delay after each tetromino that
paulo@0 952 forms at least one line. So if you want fast play, make more
paulo@0 953 lines at once.
paulo@0 954 * Added Drill 40 gimmick:
paulo@0 955 Like 40 lines, but the screen starts with 18 rows of garbage.
paulo@0 956 Be prepared to rely on SRS infinite spin for the first few
paulo@0 957 lines until your skill improves.
paulo@0 958
paulo@0 959 _____________________________________________________________________
paulo@0 960 0.07 (2006-06-30):
paulo@0 961 * Added Baboo gimmick:
paulo@0 962 Standard S.M.G., except there is no gravity, and the game
paulo@0 963 ends after 300 keypresses.
paulo@0 964 * Cleaned up the font a bit.
paulo@0 965 * Corrected wall kicks for I tetromino to match an updated
paulo@0 966 description provided by nicholas. Specifically, I tetromino
paulo@0 967 prefers kick-down to kick-up.
paulo@0 968 * Removed sound-not-found debug message.
paulo@0 969 * Plays "ready, go!" like TGM.
paulo@0 970 * Bigger font for lines and time.
paulo@0 971
paulo@0 972 _____________________________________________________________________
paulo@0 973 0.06 (2006-06-25):
paulo@0 974 * Gimmicks are sorted into columns.
paulo@0 975 * Debrief responds to controller mapping.
paulo@0 976 * Debrief shows keypresses per tetromino and garbage per minute.
paulo@0 977 * Loads/saves vkey configuration from/to disk instead of
paulo@0 978 prompting the user every time the program starts.
paulo@0 979 * Build system switched to GNU Make.
paulo@0 980 * Terminal window ("DOS box") hidden.
paulo@0 981 * Responds to window system's close button.
paulo@0 982 * Counts down 5-4-3-2-1 in line or time limited gimmicks.
paulo@0 983 * Icon in the top left corner of the window is customized.
paulo@0 984 * Displays ljbg.jpg in the window's blank space.
paulo@0 985 * Displays blocks from ljblocks.bmp.
paulo@0 986 * Releases the CPU for 5ms per frame when possible, so that
paulo@0 987 background tasks such as a music player can keep up.
paulo@0 988 * Increased sound effects' volume so that music players do not
paulo@0 989 completely overpower them.
paulo@0 990 * Added macros for rotate twice, move far left, and move far right.
paulo@0 991 * Corrected fix to alternation between falling and landed states
paulo@0 992 that occurred especially when sliding a tetromino to the right
paulo@0 993 under high gravity.
paulo@0 994 * Added Items gimmick:
paulo@0 995 Standard S.M.G., except after the first 7 pieces you get
paulo@0 996 random starting orientations, no rotation, and hidden next
paulo@0 997 pieces, and the speed goes to 1G. Every time you are given an
paulo@0 998 I piece, either you get 2 lines of garbage or the columns of
paulo@0 999 blocks in the well are shuffled.
paulo@0 1000 * Fixed scoring tables in README.txt.
paulo@0 1001
paulo@0 1002 _____________________________________________________________________
paulo@0 1003 0.05 (2006-06-23):
paulo@0 1004 * Included readme.txt.
paulo@0 1005 * Debrief report shows more decimal places in time and PPM.
paulo@0 1006 * Game over plays a simple animation and sound.
paulo@0 1007 * Playfield can be resized (with a recompile).
paulo@0 1008 * Removed hardcoded key binding help text.
paulo@0 1009 * Window is bigger in preparation for wallpaper.
paulo@0 1010 * Display mode is 15/16/24/32-bit in preparation for wallpaper.
paulo@0 1011 * Added Low Rider gimmick:
paulo@0 1012 Standard S.M.G. with an 8-block-tall visible playfield.
paulo@0 1013
paulo@0 1014 _____________________________________________________________________
paulo@0 1015 0.04 (2006-06-22):
paulo@0 1016 * Uses an OS-native bitmap rather than an Allegro bitmap,
paulo@0 1017 which may allow faster drawing with some video cards.
paulo@0 1018 * Allows play from a keyboard or a joystick.
paulo@0 1019 * Presents a key configuration screen when the program starts.
paulo@0 1020 * A 500ms delay after the game ends. Drama will come soon to this
paulo@0 1021 space.
paulo@0 1022
paulo@0 1023 _____________________________________________________________________
paulo@0 1024 0.03 (2006-06-21):
paulo@0 1025 * Debriefing responds only to Esc, Enter, and keypad Enter.
paulo@0 1026 * Compensates for refresh rates other than 60 Hz.
paulo@0 1027 * Change log included with program.
paulo@0 1028 * Plays sound effects for shift, rotate, land, lock, line, b2b.
paulo@0 1029 * Bigger text using the "Aver" font.
paulo@0 1030 * Lock delay in Marathon decreases gradually after gravity
paulo@0 1031 surpasses 20G.
paulo@0 1032 * Reads keys through a bitfield, allowing for custom key->vkey
paulo@0 1033 bindings to be implemented in the future.
paulo@0 1034 * (Internal) Does not alternate between "falling" and "landed"
paulo@0 1035 states when resetting lock delay on slide.
paulo@0 1036
paulo@0 1037 _____________________________________________________________________
paulo@0 1038 0.02 (2006-06-19):
paulo@0 1039 * Speed level progresses 1/3 as fast.
paulo@0 1040 * Added menu for selecting a gimmick (game mode) to play.
paulo@0 1041 * Added Marathon gimmick:
paulo@0 1042 Like Vs. but no garbage.
paulo@0 1043 * Added 40 lines gimmick:
paulo@0 1044 Like Marathon but ends after 40 lines.
paulo@0 1045 * Added 3 minutes gimmick (like Marathon but ends after 10800
paulo@0 1046 frames).
paulo@0 1047 * Added Rhythm gimmick:
paulo@0 1048 20G, and if you fall below the minimum PPM, it automatically
paulo@0 1049 locks the tetromino, and the minimum PPM increases by 10 every
paulo@0 1050 64 tetrominoes.
paulo@0 1051 * Debriefing computes PPM and score.
paulo@0 1052 * Debriefing returns to gimmick selection instead of exiting
paulo@0 1053 the program.
paulo@0 1054
paulo@0 1055 _____________________________________________________________________
paulo@0 1056 0.01 (2006-06-14):
paulo@0 1057 * initial release
paulo@0 1058 * full SRS implemented
paulo@0 1059 * 7-piece bag randomizer
paulo@0 1060 * 1G DAS
paulo@0 1061 * smooth falling animation
paulo@0 1062 * playfield size: 10w x 24h; pieces start above row 20
paulo@0 1063 * 8 next pieces and 1 hold piece
paulo@0 1064 * Vs. gimmick:
paulo@0 1065 Standard S.M.G., except before every I tetromino after the first,
paulo@0 1066 you get 4 garbage lines.
paulo@0 1067