Skip to content

Changelog

Rodrigo Alfonso edited this page May 14, 2024 · 122 revisions

Compatibility

  • New versions are compatible with old savefiles.
    • (some settings might be reset after upgrading)
  • Don't mix versions in multiplayer sessions.
  • Don't mix *.pius files or *.gbfs libraries from different versions.

v1.10.*

hq

New features:

  • The game can now play High-quality audio by reading uncompressed PCM files from the flash cart's SD card!
  • Added support for EZ Flash Omega flash carts when using Background videos and High-quality audio
  • Added support for SD cards formatted in exFAT
  • Added Modern theme
  • Added Rewind functionality to Training mode, useful to practice difficult parts
  • Added Rumble options
  • Added Global offset option

Graphical improvements:

  • Important sprite rework, supporting multiple themes
  • Added scaling effect to in-game score
  • Added scaling effect to Stage Break animation
  • Added scaling effect to S grades

Misc. changes:

  • Improved handling of SELECT key to quit multiplayer sessions
  • Adjusted fade time when confirming songs
  • Background blink can now be disabled in multiplayer
  • Multiplayer battles can now be tied

Build process updates:

  • Added OPUS and JPEG support to the importer

Bugfixes:

  • Fixed pending audio glitches (e.g. when navigating to the next page after confirming a song)

v1.9.*

New features:

  • The game can now display Background videos by reading them from the flash cart's SD card! (EverDrive exclusive feature)
  • Added PS/2 keyboard support via Link Port
  • Added Rumble support via Link Port, for cartridges without Rumble
  • Added a FixedVelocity speed hack that ignores mid-game multiplier changes. Grade saving is disabled while this mod is active
  • Added more post-game content after completing challenges

Optimizations:

  • Rearranged game loop for better usage of VDraw time
  • Moved lots of functions to IWRAM
  • Added optional EWRAM overclock
  • Removed unused features from gba-sprite-engine

Graphical improvements:

  • You can now move the instructor's body when pressing keys in the Controls screen
  • Manually improved Home screen and Selection screen color conversion

Misc. changes:

  • Challenge mode now uses FixedVelocity.
  • Rumble is now enabled by default
  • The Settings screen now shows the trigger buttons and teaches users how to enter the Admin menu
  • The NIGHT color filter was replaced with a new ETHEREAL filter, which looks nicer
  • Pixelate = FIXED will now use one less mosaic level so the life bar content is readable
  • The A+B+START+SELECT combo is now ignored in multiplayer sessions (except for cancelling the song) to prevent involuntary disconnects
  • The Link Cable multiplayer has now a slightly higher timeout to handle the case where one console has background videos and the other doesn't

Build process updates:

  • Added a --fast option to the importer to use async I/O (~2x faster)
  • Adding global offset support
  • Added configuration options to the portable song importer
  • The importer now forces the expected node version
  • Improved build error messages

Bugfixes:

  • Reduced life bar's blink speed to once every 2 frames to make it more visible on some GBA displays
  • Fixed occasional audio clicks during multiplayer sessions by enabling nested interrupts for VBlank
  • Fixed occasional audio glitches during screen transitions

Patches:

  • (v1.9.1) Improved SD card reading error messages
  • (v1.9.1) Fixed a glitch where Rumble would remain enabled after failing a song on a new beat

v1.8.*

New features:

  • Added a new challenge mode when completing the campaign mode 👀
  • Arcade modes now store Dance Grades by index instead of by level. This allows saving different scores for charts that have the same numeric level (e.g. s19-a, s19-b)

Misc. changes:

  • Stage Break = DEATH will now display the life bar at minimum level and ignore BADs in the judgement phase
  • Now the game remembers the page/song when switching between campaign and the challenge (e.g. impossible) modes
  • Bubbles in the Home screen will 'regenerate' when leaving a submenu
  • Removed pixel blinking effect from the Home screen

Optimizations:

  • Now charts use static EWRAM to prevent crashes due to allocation failures
  • Updated gba-link-connection to v6.0.3, which fixes potential autopairing issues (e.g. two couples trying to create two separate sessions via Wireless Adapter)

Bugfixes:

  • Fixed a small memory leak after playing a song
  • Fixed a bug with the random number generator that was causing the last value of a range to be ignored
  • Fixed a glitch where the user could enter the "Audio lag" option and navigate to the previous/next option during the transition

Patches:

  • (v1.8.1) Added small fixes and adjustments to the new challenge mode
  • (v1.8.2) The Wireless Adapter is now put in low consumption mode when not in use
  • (v1.8.3) General system stability improvements to enhance the user's experience 😅
  • (v1.8.3) Fixed Rate = +1 mod in Impossible mode (v1.8.0 regression)
  • (v1.8.3) Fixed 'mark as defective' combo being enabled during challenge mode
  • (v1.8.3) The challenge mode now displays the current song
  • (v1.8.3) If the Arcade library matches the selected difficulty level of the Campaign mode (most common case), the game now remembers the selected song when switching between modes
  • (v1.8.3) The importer is now provided as a portable Windows executable
  • (v1.8.4) Huh... all this time prefetch was disabled. Well, free performance boost!
  • (v1.8.4) The sprite limit was increased from 50 to 90
  • (v1.8.4) The Bounce mod now uses a slightly less aggressive curve
  • (v1.8.4) Fixed an importer bug which could cause subindexes to appear in situations where they shouldn't (e.g. deleting level-99 charts via offsets.pofs)

v1.7.*

New features:

  • Menu controls
    • demo3
    • Menus can now be navigated using two key layouts: GBA style (new), and PIU style
    • GBA style feels more natural, as it's how most GBA games work (navigate with arrows and confirm with A)
    • The default layout was changed to GBA style, but it can be changed using the Admin menu
  • Single-player Arcade mode
    • demo4
    • Double charts can now be selected directly using the level change buttons
    • Added AutoVelocity, under the Speed hacks mod (replaces Random speeds). AutoVelocity ignores the multiplier and sets a regular scroll BPM for all songs
    • Added Color filter mod (replaces Decolorize), with 16 different filters to alter game's background and sprites
    • Added Bounce mod, which makes the arrows (and/or its receptors) bounce
    • Added AutoMod mod, which randomly combines all mods every 1~4 beats
    • Modified LINEAR and MICRO variants of Jump/Reduce mods to move the game area rhythmically
    • Consecutive charts with the same numeric level now have a subindex to differentiate them
    • Enabled mods are now highlighted to easily identify which ones are in use
    • Added a warning to let users know when the current mods won't let them save their Dance Grades
  • Multiplayer Arcade mode
    • demo11
    • VS mode now makes the winner's life bar bounce during gameplay to enhance competitiveness
    • Now players don't have to set the difficulty level after each song; the game remembers
  • Impossible mode
    • demo12
    • It now uses the AutoMod/INSANE, +1 rate, and mirror steps mods
  • Admin menu
    • offsets
    • Added a menu to set up custom offsets for each song/level. This feature is useful if you're playing a non-tested song pack and encounter an out-of-sync song. Now, you can add +/- 8ms offsets, which will be recorded in the save file and applied when playing.

Engine fixes:

  • This build fixes ~32768 corner cases related to chart reading, increasing overall compatibility (specially with gimmick charts)
  • Added mid-note BPM changes support. This fixes a lot of out-of-sync charts
  • Important ASYNC_STOP (aka setting #SCROLLS to 0) rewrite. This fixes multiple bugs where ASYNC_STOPs caused the chart to end up completely out of sync, with a broken metronome, or with infinite holds
  • BPM changes and arrow predictions are now executed even if the chart has stopped
  • The importer now ensures that every HOLD_START will have a subsequent HOLD_END. Now most of the start events have their duration pre-assigned, so no chart should show broken holds again
  • Events inside WARP sections are no longer ignored by the importer, as they are important for gimmick charts. Instead, these are ignored during the judgement phase, to avoid unfair MISSes
  • Unsupported #SCROLLS segments are now emulated as regular speed changes. It doesn't have the same effect, but it works better than ignoring them. This fixes songs with a broken multiplier
  • MISSes are now judged by timing instead of by their Y coordinate. This is important when using low multiplier / speed values.
  • Using a lower FAST_BPM_WARP constant also fixed some songs
  • Fixed a corner case with fake segments events which caused some fake notes to appear as regular notes
  • Removed frame skip in chart reading code, which fixes some glitches in gimmick charts
  • Fixed a corner case where a Scroll BPM change could be ignored until the player manually adjusts the multiplier
  • Equivalent keys (like RIGHT and B for CENTER) now trigger new keypress events even when the other key is already pressed. This makes single-note trills easier
  • Precision of hold arrow judging was adjusted
  • The default scroll BPM change speed was adjusted (100 => 150) and a lower arrow speed limit was set (1px/frame)

Engine improvements:

  • Added co-op chart support: pump-couple and pump-routine
  • SSC parsing is now more robust, ignoring comments and finding charts using #NOTEDATA:; tags
  • Unsupported S, V and H events are now individually ignored instead of ignoring the whole chart
  • Unsupported negative #SPEEDS are now individually ignored instead of ignoring the whole chart

Optimizations:

  • Optimized IWRAM code, making everything faster and preventing slowdowns in complex charts
  • Reduced memory access and CPU usage during gameplay
  • Updated gba-link-connection to v6
    • Significantly reduced latency in multiplayer sessions (both wired and wireless)
    • Significantly reduced CPU consumption in multiplayer sessions
  • Reduced base ROM size by removing dead gba-sprite-engine code
  • Reduced final ROM size by optimizing space in the PIUS format

Misc. changes:

  • Pressing L and R in menus now lets the player change the option in any direction
  • You can now exit any menu using either START or SELECT
  • Finishing the game now takes user to the updated Home screen
  • Rumble is now disabled during fast-forward (Training mode)
  • SUDDEN_DEATH was renamed to DEATH
  • The FAST Background blink mode was removed
  • The keys tutorial was moved from song 1 to song 0
  • Holding START before entering a multiplayer mode will now set the communication mode to Wireless Host
  • Wireless multiplayer will now use a slightly higher timeout value
  • Library autoscroll can now be used in multiplayer
  • Added save file validation code

Build process updates:

  • Support for double/multiplayer chart offsets, subindex, and delete keyword in offset.pofs files
  • The importer can now automatically add BOSS levels when creating Campaign builds
  • Fixed some errors with the parsing of chart vs global properties
  • Fixed an error that caused complexity to be zero if the charts didn't have a #LASTSECONDHINT
  • Using a Campaign build with an Arcade library will now show a proper error when running the ROM (instead of crashing)
  • Reusing romid.u32 while changing the song count will now throw a proper error instead of building an incorrect ROM file
  • Fixed make package silently failing when the output ROM file was in use
  • All errors thrown by the importer now have more details

Graphical improvements:

  • Song screen
    • Fake HOLD_FILL notes now look fake (dedicated sprite)
  • Home screen
    • Increased demo chart complexity when some of the campaign modes are completed
  • Multiplayer/Connecting screen
    • Added a 'transmitting' animated icon
  • Selection screen
    • DOUBLE mode now has its own color palette, to easily identify what type of charts we're seeing
    • Added 'transmitting' animated icons. On the host side, it will show two 'sending' icons over the lights. On the client side, a 'receiving' icon at the corner
  • Dance Grade screen
    • Updated winner message in VS multiplayer mode for clarity

Bugfixes:

  • Fixed a random DMA lockup on hardware
  • Fixed a glitch where changing the multiplier before the first SET_TEMPO event would cause the Scroll BPM to be set to 0, making initial arrows appear from nowhere
  • Fixed a glitch where correctly judged arrows would pass through receptors when using the Reduce mod
  • Fixed a glitch during transitions where the Selection screen could show garbage for one frame
  • Fixed a bug where I/O SD blink time was tied to the value of the -now deprecated- Background blink speed setting
  • Fixed a bug related to numeric level synchronization (again) in multiplayer sessions
  • Fixed a bug where SRAM LED blink/ON HIT was also blinking with other player's arrows
  • Fixed a bug where other player's WARPs were causing the local screen to blink using the pixel effect
  • Fixed a bug where multiplier changes were not synchronized correctly in multiplayer sessions
  • Fixed a bug where pixel blinks in level selection were not synchronized correctly during multiplayer sessions
  • Fixed a bug where using fast-forward in Training mode would cause a subsequent multiplier change to be ignored

Patches:

  • (v1.7.1) Fixed a bug in the importer which caused a few songs (with redundant #WARPS and #BPMS:...=1000000) to warp twice
  • (v1.7.1) Fixed a glitch where the life bar could blink at max level when returning from negative to positive value
  • (v1.7.1) Fixed a glitch where the Controls screen was animating one of the center buttons at double speed
  • (v1.7.1) Adjusted the orientation of the R button sprite, which previously had its corner pointing to the left
  • (v1.7.1) Adjusted the contrast of the center idle sprite, which appeared too bright on some consoles compared to other sprites

v1.6.*

Graphical improvements:

  • Added black outline to sprites
  • Added bounce animation on note hit
  • Added a SLOW background blink mode

Bugfixes:

  • Decolorize mod now also mutates life bars
  • Fixed arrow holders blinking one frame late

Patches:

  • (v1.6.1) Fixed small glitch where fake taps were displaying the wrong tile

v1.5.*

New features:

Bugfixes:

  • Fixed gba-link-connection's packet loss: now, multiplayer scores will always be in sync after a game
  • Fixed errors where individual difficulty levels could get out of sync in multiplayer sessions
  • Fixed glitch when confirming a song selection while crossing a page
  • Fixed admin menu key combo handling

Patches:

  • (v1.5.1) Fixed random crash in wireless multiplayer sessions due to audio DMA conflicts with serial IRQs
  • (v1.5.1) Fixed wireless multiplayer slowdowns by moving time-critical code to IWRAM
  • (v1.5.2) Fixed graphical glitch when the initial multiplier is set to 6x
  • (v1.5.3) Fixed invalid memory read that affects SRAM LED Blink, but might cause other crashes
  • (v1.5.3) Fixed vsync method (changed in v1.5.0) for better battery life

v1.4.0

New features:

Impossible mode changes:

  • Removed Decolorize
  • Added Reduce = MICRO

Engine improvements:

  • Added fake notes support through the {1|v|1|0} SSC syntax

Graphical improvements:

  • Improved screen transitions
  • Cleaner Selection screen background (less dithering below the lights)

Bugfixes:

  • Fixed random crash due to invalid read after winning a song
  • Fixed random crash due to a memory leak during screen transitions
  • Fixed metronome. It was sometimes blinking on weak beats
  • Random steps is now more humanly usable, since it tries to avoid repeated notes
  • Now the random is more random

v1.3.0

New features:

  • Multiplayer modes via Link Cable
    • VS battles
      • Same chart (judgement by score)
      • Different charts (judgement by %)
    • Coop with double, 10-panel charts
  • Arcade mode improvements
    • Progress record (best grades now appear on each chart)
    • Death report (when 'Stage Break' is off, you can now see when you died)
    • Now, the last available song you have in Campaign is also unlocked. This is useful if you got stuck and need to use the Training mod
  • Training mod
    • Change songs' playback speed
    • Fast-forward to the most difficult part
  • Decolorize mod (invert, gray, red, green, blue)
    • Alters screen colors

Impossible mode changes:

  • Added Rate = +1
  • Added Decolorize = GRAY
  • Disabled Reduce mod

Engine improvements:

  • Added fake taps (F events) support
  • Big SSC simfile support. PIUS files are now parsed partially, so the game doesn't crash on songs with a lot of charts
  • Faster chart reading routines
  • If a song lags, now it just slows down the game, without any weird audio glitches

Misc. changes:

  • New default background type: FULL DARK
  • The Controls screen now shows alternative layouts. L is promoted as the upper-left arrow
  • Added a 'back' button to the Calibration screen

Build process updates:

  • Arcade-only builds
  • Added offsets file support to automatically patch songs
  • Pre-built ROMs are now provided in the Releases section, for an easier import process

Removed mods:

  • Extra judgement

v1.2.0

  • Added 6x multiplier
  • New mods: LINEAR Jump & Reduce. The Impossible mode now uses them
  • Improved library's automatic scrolling
  • Decreased max life bar mosaic in the Pixelate mod
  • Added ROM name support
  • Added debug menu to correct offsets
  • Added songs' path parameter to importer script
  • Fixes:
    • Precision bug in BPM changes
    • Rhythm events not taking into account the audio lag
    • Initial rhythm events not firing on time
    • Blinking on weak beats
    • Boss channel icons appearing in the Arcade mode
    • Song title escaping
    • Random dots glitch when using dark background types

v1.1.0

  • Individual song sorting (by difficulty level) using a complexity index:
    • Now NORMAL, HARD and CRAZY have different song lists
  • Added SUDDEN_DEATH Stage Break mod
  • Added new Pixelate variant: LIFE_MAX
  • Added hint message on second song with key shortcuts
  • Improved difficulty level detector

v1.0.0

First public release.