CHANGES.txt 48 KB

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