-
Notifications
You must be signed in to change notification settings - Fork 6
Changelog
- New versions are compatible with old save files. Always backup before updating!
- Some settings might be reset.
- Don't mix versions in multiplayer sessions.
- Don't mix *.pius files or *.gbfs libraries from different versions.
New features:
- Rumble now works on mGBA. The new default rumble options give more consistent results with different cartridges
- Added a Progress screen that displays some stats and game completion %
- Added a Shuffle mode to Arcade builds
- Added 4-digit support for combo and score numbers
- Grades obtained in Campaign mode are now saved into the Arcade mode as well
- When scrolling through Arcade mode, chart levels are now selected in a more intuitive way: the game will remember the last selected level (e.g. s19) and try to select the closest chart for each song, until the level is changed again
- The numeric level won't be reset anymore when switching from Campaign to Arcade
- The selected song won't be reset anymore when switching from Arcade to Campaign, if they use the same library
- In Multiplayer VS battles:
- The screen now displays both players' selected levels
- The host and guest levels are now completely independent of each other
- Added the song, artist, and level to Dance Grade screen for score posting
Engine improvements:
- Now the engine doesn't have to measure how many frames each beat takes, it receives that information via the importing process. This makes rumble work immediately after any BPM change, instead of having to wait 1 beat to start
- Improved PS/2 input key handling by making each keypress event last at least one frame
- Adjusted audio lag corrections when using the rate mod (better measure)
Graphical improvements:
- Updated text font by adding borders
- Added fire animation to Boss channel
- Added alternative Dance Break sprites for Modern theme
- Improved original Dance Break sprites in Classic theme
Misc. changes:
- The numbers below the Selection screen now indicate the selected song instead of the total game progress
- In Training mode, using rewind when no point is saved now saves a first rewind point
- Renamed "Link Cable" to "Link Adapter" in the co-op message to also include Wireless Adapter support
- Renamed "Connecting..." with more clear instructions for multiplayer
- Holding L when entering a multiplayer mode will now force cabled mode
- Holding R when entering a multiplayer mode will now force wireless host mode
- EWRAM overclock is now independent from HQ mode, as it can crash on some GBA SP units
- In-game actions like changing the multiplier or using the Training mode hotkeys now display a more obvious hint
- The screen now turns black during soft reset
- Updated foreground palette colors for Double
- Improved random seeding process
Optimizations:
- Now the importer LZ77 compresses all backgrounds, saving ~1.5 MB for extra songs
- The engine now uses 26 KB less of static EWRAM
- Reducing life bar rendering CPU usage
- Updated gba-link-connection to v7.0.1
- Updated libugba to v0.3.0
Build process updates:
- The portable song importer now supports spaces in paths and dragging from any location
- Added containerized builds with Docker, which simplifies a lot the building process
- Partial builds are now working again
- The importer now shows the right total value when importing bonus songs
- Added mGBA logs support in development
- Added profiling functions in development
- Switched to a more portable Makefile for Linux builds
- Empty builds now display their build variant
- The
MODE=manual
importer option was removed
Bugfixes:
- Fixed false negative in EverDrive detection (HQ mode)
- Fixed a graphical glitch where the game would show sprites and text in inconsistent state when using HQ audio and a slow microSD card
- Removed VBlank wait on Selection scene if Double charts are selected (fixes audio glitches)
- The multiplayer screen now ensures the Wireless Adapter is gracefully deactivated (put in low consumption mode), disallowing the soft reset combo
- Multiplayer code now behaves correctly if the send buffer is full, which is very unlikely, but just in case
- Fixed a bug related to soft reset behaving weirdly after losing a challenge
- Fixed a rare bug in the
patch_ezfo_hqmode
version where the game wouldn't store the custom offsets for Double charts after saving
Patches:
- (v1.11.1) Moved Stage passes on top of Stage breaks
- (v1.11.1) Stats are not saved anymore in Multiplayer VS mode
- (v1.11.1) Stats are not saved anymore when Grade saving is OFF
- (v1.11.1) Dance grades are not saved in Multiplayer VS mode anymore if the player didn't stage-pass
- (v1.11.1) The Random steps mod now disables Grade saving
- (v1.11.2) Disabled background compression in the Selection screen to avoid visual glitch
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)
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
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)
New features:
- Menu controls
- 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
- 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
- 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
- It now uses the AutoMod/INSANE, +1 rate, and mirror steps mods
- Admin menu
- 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
to0
) 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
andpump-routine
- SSC parsing is now more robust, ignoring comments and finding charts using
#NOTEDATA:;
tags - Unsupported
S
,V
andH
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
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
New features:
- Wireless Adapter support
- WIRELESS ADAPTER SUPPORT!!!
- Wireless
- Adapter
- Support
- Adapter
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
New features:
- Hardware integrations
- Arcade mode improvements
- Added Double charts support inside Single player mode
- Added a mark as defective option for broken charts
- Added Reduce mod variant: MICRO
- Added save file reset options
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
New features:
- Multiplayer modes via Link Cable
- VS battles
- Same chart (judgement by score)
- Different charts (judgement by %)
- Coop with double, 10-panel charts
- VS battles
- 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
- 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
- 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
First public release.