Awful
[openitg.git] / changelog.txt
1 OpenITG, beta 3 (in development)
2 --------------------------------
3 -New GameCommands:
4 "clearmachinelogs" - clears crash logs from machine.
5 "transferlogsfrommachine" - transfers crash logs to a USB drive.
6 -Miscellaneous changes:
7 Changed default key for P1 select from Shift to forward slash (/)
8 Allow mounting the directory "Data/patch/patch/" as a patch instead of patch.zip
9 Changed OptionsList behavior (Exit on multiple selection, don't insta-exit on button)
10 Changed "DebugTheme" preference to "ShowThemeErrors"
11 Radar values (including step counts) now calculated for machine edits
12 Added blinking for GAME_BUTTON_START on LIGHTSMODE_MENU
13 Added StartRoulette and StartRandom messages for themes
14 Win32: Crash dialog shows OpenITG logo/text in place of StepMania (Wanny)
15 -New LUA bindings:
16 "GetDiskSpaceTotal", "GetDiskSpaceFree" - returns a string describing the
17 total or available disk space on the partition with UserPacks
18 "GetProductVer" - returns the OpenITG version (e.g. "beta 3")
19 HighScore: "GetModifiers"
20 ProfileManager: "IsSongNew(Song)"
21 -Fixed Linux bugs:
22 USB devices would occasionally not be accepted
23 -Fixed minor cross-platform bugs:
24 BPMDisplay: display BPM multiplied by music rate twice instead of once
25 NoteDisplay: Twirl would render strangely with Flip, Tornado, etc.
26 ScreenGameplay: announcers actually work (Wanny)
27 ScreenDebugOverlay can now override used font (Wanny)
28 SongManager: fixed potential crash from random songs including customs
29 -Backend updates:
30 Arch updated to use SM4's RageDriver structure
31 Cleaned up LightsMapping structs so all mappings take arrays
32 Boost ITGIO/PIUIO thread priority (tentative fix for coin nomming)
33 Use read/write buffers for RageFile (tentative fix for slow memcard reading)
34 Switched to SM4-style button enumerations
35 -Compile chain updates:
36 Added "--with-sse2" flag to configure to enable SSE2 heuristic optimization
37
38 OpenITG, beta 2 (August 10th, 2009)
39 --------------------------------
40 -New preferences:
41 "GiveUpTime" - amount of time that Start must be held to give up songs
42 -New metrics:
43 ScreenTestInput - X, Y, On, and Off commands for text ("Inputs", "Devices")
44 -Fixed Linux bugs:
45 USB devices that only reported as "sda" would stay in checking forever
46 Misdetection of partitions on USB devices caused some mounts to fail
47 -Fixed cross-platform bugs:
48 BPM display on gameplay doesn't scale with Music Rate setting
49 Several stray PauseMountingThread() calls causing cards to respond slowly
50 Perspective setting is not properly saved on USB profiles
51 Custom song loading cancellation causes delayed input events
52 ScreenArcadeStart times out, even with missing I/O handler
53 -New screen:
54 "ScreenUserPacks" - formerly ScreenAddSongs, manages USB-transferred game data.
55 -Code Structure Additions:
56 UserPackManager - singleton for managing users' add-on packs for the machine
57 -Miscellaneous changes:
58 Backported StepMania 4's RageFileManager, for better load handling
59 Backported Win32 renderer identification for display stats
60 Changed to StepMania 4 method of scaling screenshots
61 De-clamped PercentageDisplay (Getting Started displays properly now)
62 Long/Marathon calculated with steps length instead of music length
63 Moved "ScreenAddSongs" to "ScreenUserPacks", heavily updated interface
64 Improved Colorized Graph logic
65 Split bookkeeping into separate pages for machine v. service credits
66 -New menu structures:
67 LinkedOptionsMenu - set of intertwined menus, example metrics in home folder
68 -New file driver:
69 RageFileDriverProbe - heuristic-based file driver that allows en/decrypted ZIPs
70 -New LUA bindings:
71 HighScore: "GetName", "GetScore", "GetPercentDP", "GetDate",
72 "GetSurvivalSeconds", "IsFillInMarker"
73 HighScoreList: "GetHighScores"
74 -New LUA member bindings:
75 ActorFrame: "SetUpdateCommand" (called on each ::Update, with fDeltaTime)
76 Actor: "addcommand", "GetName"
77 Game: "GetName"
78 PlayerStageStats: too much stuff to list here
79 Song: "StepsLengthSeconds"
80 -New LUA singleton bindings:
81 GameState: "GetCurrentGame"
82
83 OpenITG, beta 1 (May 15th, 2009)
84 --------------------------------
85 -Obligatory code cleanup
86 -Windows additions:
87 OpenITG icon (Lightning)
88 Updated version information
89 -New Preferences:
90 "DebugInputDrivers" - additional debugging info for various I/O drivers
91 "EasterEggs2" - OpenITG-specific easter eggs (hint: play from a DDR group folder)
92 -New LUA singleton bindings:
93 GameState: "GetCurBPS", "DelayedGameCommand" (required for "theme" GameCommands)
94 NoteSkin: "GetNoteSkinNames"
95 ThemeManager: "GetCurLanguage", "GetCurThemeName", "GetThemeNames"
96 -New LUA bindings:
97 Course: "GetCourseDir"
98 PIUIO: "MK6_GetSensors"
99 RadarValues: "GetValue"
100 RageUtil: "SecondsToMMSS", "SecondsToHHMMSS", "SecondsToMSSMsMs"
101 Song: "IsLong", "IsMarathon", "IsCustomSong", "GetGroupName", and "MusicLengthSeconds"
102 Steps, Trail: "GetRadarValues"
103 -New LUA globals:
104 "RADAR_CATEGORY_TAPS", "RADAR_CATEGORY_HOLDS", etc. for RadarValues
105 "OPENITG_VERSION" - returns a 3-digit token for version information
106 (xyy - x is build type, yy is version; also in Win32 "Properties")
107 -New Screens:
108 "ScreenAddSongs" - allows addition of game data through operator menu (temp. disabled)
109 "ScreenPlayLights" - plays music, can run actors for cabinet/game lights
110 -New InputHandler:
111 "MK3" - controls the Andamiro MK3 and MK5 ISA boards, for the heck of it
112 -New LightsDriver:
113 "G15" - controls LCD on the G15 gaming keyboard, also for the heck of it
114 -New GameCommands:
115 "ReloadTheme" - forces a complete reload of metrics and graphics
116 -New metrics:
117 "MissComboCommand" metric for Combo display
118 -New features:
119 Added "NoteWillCrossIn1Beat", "NoteWillCrossIn2Beats", etc. for beginner helper
120 ScreenTestInput and ScreenTestLights broadcast Messages to actors
121 Re-backported input debounce, except it works this time. :)
122 CodeDetector ties for opening the OptionsList on ScreenSelectMusic
123 Record service credits separately in MachineProfile and Coins.xml
124 ScreenTestInput now triggers lights when arrows are pressed
125 "SongLength" sort on the song wheel
126 More intelligent lights autogeneration for single charts
127 Separate bookkeeper counter for service credits in Bookkeeping
128 (divided in the menu by Regular Credits / Service Credits)
129 LightsMapper - set which bits are triggered on LIGHTSMAN events
130 Added LightsMapping structs to ITGIO, PIUIO, and PacDrive
131 -New modifiers:
132 "Twirl" - rotates arrows (and holds!) around the Y axis
133 "Roll" - rotates arrows around the X axis
134 -Compilation updates:
135 Added date/version text to ProductInfo and DiagnosticsUtil
136 Rewrote "archutils/Win32/verinc.c" to generate a new verinfo.h
137 -Fixed Windows bugs:
138 Crashlogs saving in Program (were supposed to save in Data)
139 "View crash dump" working incorrectly on the crash dialog
140 Inaccurate crashlog count in System Diagnostics
141 RageDisplay_D3D: fixed texture material issues, texture translation issues, and noteskin rendering
142 -Fixed Linux bugs:
143 Tentative fix for memory card mounting issues (Matt1360)
144 64-bit crash on RageCryptInterface_ITG2 (dawnwolf)
145 Screensaver disable code didn't work for X11
146 -Fixed minor cross-platform bugs:
147 Custom song data not deallocated after the end of a round
148 Impressively inefficient method of re-creating the songs vector
149 "Disqualification" display showed for unjoined players on music rate
150 M-mod code didn't adjust to songs or courses with hidden BPMs
151 Slowdown on ScreenArcadeDiagnostics due to heavy device polling
152 No-timeout warning flood on custom song loading
153 Sensor reading problems with PIUIO on Test Input
154 Round text on ScreenSelectMusic not updating for non-song entries
155 -Fixed major cross-platform bugs:
156 Infinite loop and crash on changing coin modes on ScreenTitleJoin
157 Crash when changing from Intense to Normal-only courses or vice versa
158 Patched OGG songs circumvented Long/Marathon song limits
159 Crash on machine Edit-only songs (not a bug, but...)
160 M-mods crashed on marathons and malfunctioned on gimmicks
161 Tentative fix for strange crashes on "theme" GameCommand
162 -Misc. changes:
163 "Tiny" can be used in place of "Mini" (4.0 compatibility)
164 M-mods disqualify on songs with hidden BPMs
165 (because it makes it easier to select a 'safe' modifier)
166 Load USB profile songs into memory, instead of onto the disk
167 Complete crypto rewrite - should be much more flexible
168 LightsDriver_External always loaded, to prevent arcade I/O problems
169 ScreenOptionsMenu switched to "Menu" lights mode
170 Always grab a serial number from the dongle, and autogen on fallback
171
172 OpenITG, prebeta (November 25th, 2008)
173 --------------------------------------
174 -Lots more code cleanup
175 -Compilation updates:
176 Added SVN revision script for Linux make (SM devs)
177 Added patch to compile on GCC 4.3 (dawnwolf)
178 Added patch to compile against LUA 5.1 (cyt0plas, Spectere)
179 -New features:
180 Preliminary "M-mod" support (same format as C-mods, e.g. "M600")
181 Added custom courses ( /ProfileFolder/Courses/ )
182 -Misc. changes:
183 Added coin counter functionality to LIGHTSMAN
184 Added RageCryptInterface for easier crypto implementations
185 Added code to enforce only one Iow or PIUIO handler
186 Fixed 'lights briefly flicker off on song start' annoyance
187 -PIUIO changes:
188 Tentative fix for sensor-read problems
189 Added coin counter functionality
190 -Fixed bugs:
191 Fixed overwrite of InputType with "Home"
192 Failed 'pTrail' assertion in Marathon mode
193 Accidental PIUIO coin counter activation
194 Linux: couldn't open GTK loading window
195 ITGIO - P1 Left and Right reversed
196 patch.zip mounted multiple times on start
197 Possible to load redundant arcade I/O drivers and cause problems
198
199 OpenITG, alpha 8 (August 29th, 2008)
200 ------------------------------------
201 -Lots of code cleanup
202 -New LightsDriver:
203 PacDrive ("pacdrive") - run lights using an Ultimarc PacDrive
204 -Misc. changes:
205 Allow multiple lights drivers (use at your own risk)
206 Disqualification for music rate under 1.0x
207 -ITGIO changes:
208 Softcoded ITGIO input and added default mappings
209 Added mappings for all cabinet lighting
210 Fixed "no output on ITGIO" issue (read: full I/O support)
211 -PIUIO changes:
212 Support for r16 kernel hack handling
213 Lots of misc. structural changes
214 -New modifier:
215 HoldsToRolls, a reversed NoRolls (make Bend Your Mind a living hell!)
216 -Fixed mistakes:
217 SCREENMAN doesn't zero update after custom song loading
218 -Fixed bugs:
219 OptionsList crashes on load
220 Attract volume immediately resets after round
221 Attract volume isn't properly reset when entering operator menu
222 Crash on non-song wheel items after highlighted custom songs
223 -Removals:
224 ThreadedLights and associated code (too many bugs)
225
226 OpenITG, alpha 7 (July 11th, 2008)
227 ----------------------------------
228 -Preliminary, hacky lights-cabinet support in theme SM files
229 -Barebones work on tournament mode (it's still a while away)
230 -Input changes:
231 Newer, more ITG-like input debouncing (half-working...)
232 "Select" or "MenuLeft+MenuRight" cancels custom song loading
233 Linux joystick driver is now threaded (and supports DebugUSBInput)
234 X11 input code backported from 4.0
235 -New LUA functions:
236 IsUsingMemoryCard(PlayerNumber) - self-explanatory
237 Debug() - output debugging lines regardless of log settings
238 -New LUA globals:
239 "OPENITG" (boolean) - can be used for compatibility with ITG2 AC scripts
240 -New (major) code functions:
241 StepsUtil::RemoveStepsOutsideMeterRange()
242 StepsUtil::RemoveStepsOutsideDifficultyRange()
243 Song::HasStepsWithinMeterRange()
244 -New messages:
245 "CardReadyP1", "CardReadyP2" - played when a card is verified ready
246 -New preferences:
247 "DebugInputDrivers" - replaces DebugUSBInput, provides stats on I/O speed
248 "SoundVolumeAttract" - volume during attract sequences
249 "ThreadedLights" - run the lights outside the regular game loop, more accurate
250 "UseUnstablePIUIODriver" - set true to use the experimental I/O driver
251 -New config options:
252 "SoundVolumeAttract" - see above
253 -New metrics:
254 "CompareScores" (ScreenGameplay) - manually set whether to compare or not
255 "OptionsList" (ScreenSelectMusic) - add a side panel to change options
256 instead of the old options menu
257 -New Screens:
258 "ScreenExitCommand" - Functions as ScreenExit, but with the ability to launch
259 an executable file before exiting. Must have 'ExecPath' and 'ExecParams' in the
260 metrics entry
261 "ScreenTextEntryArcade" - a more arcade-friendly text entry screen (WIP)
262 -Fixed bugs:
263 BGCHANGES2 charts don't play properly
264 Timer is stuck at 0 if timer runs out on "Chance"
265 "nomines" and "nostretch" transforms have no effect in the editor menu
266 (OpenGL) Arrow shader fails on full-screen, causing scrolling brackets
267 Actor sounds ignore attract sound settings
268 After switching themes, OpenITG crashes on the songwheel
269 Theme switching sometimes causes failed asserts
270 Phantom input when canceling custom song loads
271 ScreenArcadeStart loops endlessly until manual exit
272 Without song previews, custom song lights don't properly load
273 -Fixed mistakes:
274 Removed some personalized testing code
275 Removed some annoying opendir() error messages
276 -Code structure changes:
277 "MiscITG" moved to "DiagnosticsUtil"
278
279 OpenITG, alpha 6 (May 30th, 2008)
280 ---------------------------------
281 -Code structure changes:
282 Reverted InputFilter - too little gain for too many problems
283 -New metrics in ScreenGameplay:
284 (Note: must be in Event Mode, Versus, and playing the same chart)
285 "ScorePxAheadCommand" - played when player's score is higher
286 "ScorePxBehindCommand" - played when player's score is lower
287 -New preferences:
288 "InputDebounceTime" - self-explanatory
289 -New game commands:
290 "clearcredits" - clears credits on the machine (useful for testing)
291 "theme" - sets the theme, by name, when used (useful for theme switchers)
292 -Linux changes:
293 Tentative fix for memory card port/bus detection on usb_storage
294 -Win32 changes:
295 Added code to reboot on crashes for arcade builds (#define ITG_ARCADE)
296 -Misc. changes:
297 Enabled pad lighting on ScreenDemonstration
298 Coins added by GameCommands are not counted toward bookkeeping totals
299 Round text on ScreenSelectMusic updates for long/marathon songs
300 Moved OpenITG-specific profile options to Extra.ini (caused ITG2 crashes)
301 Disabled autogeneration of new Public/Private RSA keys on load failure
302 -Fixed bugs:
303 Some custom songs end immediately after start
304 Repeating menu input error on ScreenSelectMusic
305 Editor doesn't draw properly, causes failed asserts
306 Song wheel doesn't "budge" when attempting to move after Chance
307 "Revert from Disk" in editor causes duplicate charts, crashes
308 Crash on bookkeeping when switching to an undefined screen
309 In AutoplayCPU, rolls cause early judgments of arrows and mines
310
311 OpenITG, alpha 5 (April 30th, 2008)
312 -----------------------------------
313 -New screens:
314 ScreenArcadeStart - implemented, functional, does stuff
315 -Code structure changes:
316 Reboot-on-crash is disabled in non-arcade builds
317 Gameplay lights now autogen from dance-single only
318 InputHandler_Linux_Iow changed to InputHandler_Iow
319 InputHandler_Linux_PIUIO changed to InputHandler_PIUIO
320 InputFilter backported from 4.0, modified a bit
321 -PIUIO changes:
322 Added timer for testing input speed
323 Partially added coin counter code (not functional yet)
324 Changed input from 64-bit datatype to 32-bit datatype
325 -Fixed input bugs:
326 Input always auto-remaps on startup
327 Input sometimes locks up after song loading fails
328 Player 2 I/O board input is mapped to Player 1's side
329 PIUIO only reports arrow presses from right sensor
330 -Fixed general bugs:
331 Edits for Single show on all difficulties
332 Some modifiers don't animate in the editor
333 Song wheel can be moved on Chance
334 Voltage doesn't calculate correctly (lol, DDR)
335 -Fixed mistakes:
336 "ITGIO" and "PIUIO" were reversed in RageInputDevice
337 -Mapping changes:
338 Added working Iow input mappings (output is still borked)
339 Added working service/test and coin mappings for PIUIO
340 -New code functions:
341 LOG->Debug() - always displays to stdout, without logging
342 GetIP() - currently Linux-only, returns IP and subnet
343 -New preferences:
344 "CustomSongPreviews" - play audio previews of custom songs
345 "InputDebounceTime" - self-explanatory; smooth out bouncing input
346 -New USB profile features:
347 "AdditionalSpeedMods" - add specified speed modifiers
348
349 OpenITG, alpha 4 (March 21st, 2008)
350 -----------------------------------
351 -Fixed Win32 bugs:
352 OpenITG hangs/crashes/<bad stuff> when custom songs sample plays
353 Backgrounds are centered on the top left during gameplay
354 (Maybe?) Color1 as boolean LUA parsing error
355 -Fixed cross-platform bugs:
356 Editor's stepchart doesn't scroll properly
357 -Fixed package mistakes:
358 data.zip causes "Assertion 'm_LockCnt == 0' failed" error
359
360 OpenITG, alpha 3 (March 17th, 2008)
361 -----------------------------------
362 -Mapping changes:
363 Added PIUIO/IOW default mappings
364 Added default keyboard maps for Select (P1 = right Shift, P2 = numpad 0)
365 -PrefsManager changes:
366 Removed "BrokenBGs" - binary plays BG scripts from all songs now
367 Added "DebugUSBInput" - output raw and formatted USB data to console
368 Backported "VisualDelaySeconds" on request
369 -Fixed bugs:
370 Start sound doesn't play when course is selected
371 Potential memory leak (minor) on SongManager array
372 -New Screens:
373 ScreenArcadeStart (unfinished/not implemented in the Makefiles)
374 ScreenArcadeDiagnostics - installation and diagnostic information
375 ScreenArcadePatch - update the game through USB patches
376 -New data types:
377 USBDevice - a basic structure for reading USB hardware data
378 USBDriver - an abstracted USB I/O driver based off of libusb
379 ITGIO - a USBDriver specialised for ITG-IO JAMMA kits
380 PIUIO - a USBDriver specialised for ITG2 dedicated cabinet I/O boards
381 -New LightsDriver:
382 External ("ext") - makes light data globally available for other drivers
383 -New InputHandlers:
384 Linux_PIUIO ("piuio") - partially functional, not very usable
385 Linux_Iow ("iow") - untested, should be fully functional
386 -New RageFileDrivers:
387 RFDCrypt - handles AES-encrypted .zip files
388 RFDPatch - handles AES-encrypted patches
389 -New USB profile features:
390 Choose to save Catalog files ("UseCatalogXML") - default off
391 -New licensed code:
392 -AES encryption/decryption schemes, by Brian Gladman
393 -Public domain iButton SDK from Maxim IC
394 -New project files:
395 Patch-OpenITG.rsa - a new Patch verification sig for future OpenITG .bxr patches
396
397 OpenITG, alpha 2 (January 27th, 2008)
398 ---------------------------------------------
399 -New preference:
400 BrokenBGs - Emulate R21-style background handling
401 -Some code cleanup
402 -Fixed bugs:
403 Windows: all of the weird bugs
404 Wheel changes songs even when Select is held down
405 Group banners do not load properly
406 -Unfixed bugs:
407 Cancelling song selection through USB removal causes mount errors
408
409
410 OpenITG, alpha 1.1 (December 5th, 2007)
411 ---------------------------------------------
412 -Windows build, many thanks to Sniper257
413 -Fixed bugs:
414 Forced random on customs does not select song
415 Bizarre behavior when Tab is held during forced random
416 MAJOR: Gameplay input locks up on some errors
417 MAJOR: Custom song loading crashes on Windows
418 -Unfixed bugs:
419 Group banners do not load
420 Cancelling song selection through USB removal causes mount errors
421
422
423 OpenITG, alpha 1 (December 2nd, 2007)
424 ---------------------------------------------
425 -Revision 21-style song loading support, starting at PlayersFinalized().
426
427 -Settable preferences (defaults in parentheses):
428 CustomMaxSeconds - Maximum allowed song length (120 seconds)
429 CustomMaxSizeMB - Maximum allowed song size (5 MB)
430 CustomMaxStepSizeKB - Maximum allowed SM file size (100 KB)
431 CustomsLoadMax - Limit amount of songs loaded (50 songs)
432 CustomsLoadTimeout - Custom song loading timeout (5.00 seconds)
433 SongEdits - Enable/disable custom songs. (0 [false])
434
435 -Significant new code functions:
436 SCREENMAN->OverlayMessage() - message overlay on top of screen
437 SCREENMAN->HideOverlayMessage - remove message from screen
438 SONGMAN->LoadPlayerSongs() - loads songs from a player's profile
439 (RageUtil) CopyWithProgress() - copy a file while sending progress
440 (fPercent) to a function pointer