PiuGBA: Difference between revisions

From GameBrew
m (Text replacement - "Category:Other homebrew emulators on GBA" to "")
 
(4 intermediate revisions by 2 users not shown)
Line 4: Line 4:
|description=PIU (Pump It Up) emulator for the GBA.
|description=PIU (Pump It Up) emulator for the GBA.
|author=[r]labs
|author=[r]labs
|lastupdated=2024/03/14
|lastupdated=2024/05/09
|type=Music
|type=Music
|version=1.9.1
|version=1.10.0
|license=MIT
|license=MIT
|download=https://github.com/afska/piugba/releases
|download=https://github.com/afska/piugba/releases
Line 18: Line 18:
|image_alt=piuGBA
|image_alt=piuGBA
}}
}}
<!--piugba2.7z-->
piuGBA is a Pump It Up (PIU) emulator specifically designed for the Game Boy Advance (GBA). Created by [r]labs, this emulator allows you to experience the rhythm and excitement ([https://github.com/stepmania/stepmania StepMania] SSC charts) of PIU on your GBA handheld device.  
piuGBA is a Pump It Up (PIU) emulator specifically designed for the Game Boy Advance (GBA). Created by [r]labs, this emulator allows you to experience the rhythm and excitement ([https://github.com/stepmania/stepmania StepMania] SSC charts) of PIU on your GBA handheld device.  


==Features==
==Features==
*Full .ssc files support, including:
* Full .ssc files support, including:
**Normal, hold and fake notes.
** Normal, hold and fake notes.
**BPM changes.
** BPM changes.
**Scroll speed changes.
** Scroll speed changes.
**Stops/Delays and async-stops.
** Stops/Delays and async-stops.
**Warps and fast-BPM warps.
** Warps and fast-BPM warps.
*Multiple game modes:
* Multiple game modes:.
**Campaign - Play, unlock songs and defeat bosses.
** Campaign: Play, unlock songs and defeat bosses.
**Arcade - Play songs in any numerical difficulty level.
** Arcade: Play songs in any numerical difficulty level.
***Single - 1 player, either Single (5-panel) or Double (10-panel) charts.
*** Single: 1 player, either Single (5-panel) or Double (10-panel) charts.
***Multi VS - VS battles via Link Cable.
*** Multi VS: VS battles via Link Cable or Wireless Adapter.
***Multi Coop - Double (10-panel) charts via Link Cable.
*** Multi COOP: Double (10-panel) charts via Link Cable or Wireless Adapter.
**Impossible - Hardcore charts with insane mods.
** Impossible: Faster songs with insane mods.
*Speed multipliers can be changed in-game.
* Speed multipliers can be changed in-game.
*Mods support:
* Mods support:.
**Stage break.
** Stage break: On, Off or SuddenDeath.
**Pixelate - Mosaic effect.
** Pixelate: Mosaic effect.
**Jump/Reduce - Moves game area.
** Jump/Reduce: Moves game area.
**Decolorize - Inverts/removes colors.
** Bounce: Makes the arrows bounce.
**Random speed.
** Color filter: Alters colors.
**Mirror and random steps.
** Speed hack: AutoVelocity, FixedVelocity or RandomSpeed.
**Training mode - Rate and checkpoints.
** Mirror and random steps.
*Hardware integrations:
** Training mode: Rate, Fast-forward, Rewind.
**Rumble.
** AutoMod: Swaps mods randomly.
**I/O LED Sync.
* Background videos "(uncompressed 240x160)" can be displayed using a flash cart.
**SRAM LED Sync.
* HQ audio "(uncompressed s8 PCM)" can be played using a flash cart.
*BGA DARK background with blink effect.
* Two themes: "Classic" and "Modern".
*Song selector with names, backgrounds and sound previews.
* BGA DARK background with blink effect.
*Optimized to support ~70 songs per ROM file.
* Song selector with names, backgrounds and sound previews.
* Hardware integrations:.
** Rumble.
** I/O LED Sync.
** SRAM LED Sync.
** PS/2 input.
* Optimized to support ~70 songs per ROM file.


==User guide==
==User guide==
Line 86: Line 93:


==Changelog==
==Changelog==
'''v1.10.*'''
* New features:
** The game can now play [https://github.com/afska/piugba/wiki/Admin#hq-audio--video 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 [https://github.com/afska/piugba/wiki/Admin#rumble-options Rumble options].
** Added [https://github.com/afska/piugba/wiki/Admin#configuring-song-offsets-in-arcade-modes 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.*'''
'''v1.9.*'''
*New features:
*New features:
**The game can now display Background videos by reading them from the flash cart's SD card! (EverDrive exclusive feature)
**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 PS/2 keyboard support via Link Port.
**Added Rumble support via Link Port, for cartridges without Rumble
**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 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
**Added more post-game content after completing challenges.
*Optimizations:
*Optimizations:
**Rearranged game loop for better usage of VDraw time
**Rearranged game loop for better usage of VDraw time.
**Moved lots of functions to IWRAM
**Moved lots of functions to IWRAM.
**Added optional EWRAM overclock
**Added optional EWRAM overclock.
**Removed unused features from gba-sprite-engine
**Removed unused features from gba-sprite-engine.
*Graphical improvements:
*Graphical improvements.
**You can now move the instructor's body when pressing keys in the Controls screen
**You can now move the instructor's body when pressing keys in the Controls screen.
**Manually improved Home screen and Selection screen color conversion
**Manually improved Home screen and Selection screen color conversion.
*Misc. changes:
*Misc. changes:
**Challenge mode now uses FixedVelocity.
**Challenge mode now uses FixedVelocity.
**Rumble is now enabled by default
**Rumble is now enabled by default.
**The Settings screen now shows the trigger buttons and teaches users how to enter the Admin menu
**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
**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
**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 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
**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:
*Build process updates:
**Added a --fast option to the importer to use async I/O (~2x faster)
**Added a --fast option to the importer to use async I/O (~2x faster).
**Adding global offset support
**Adding global offset support.
**Added configuration options to the portable song importer
**Added configuration options to the portable song importer.
**The importer now forces the expected node version
**The importer now forces the expected node version.
**Improved build error messages
**Improved build error messages.
*Bugfixes:
*Bugfixes:
**Reduced life bar's blink speed to once every 2 frames to make it more visible on some GBA displays
**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 clicks during multiplayer sessions by enabling nested interrupts for VBlank.
**Fixed occasional audio glitches during screen transitions
**Fixed occasional audio glitches during screen transitions.
**(v1.9.1) Improved SD card reading error messages
**(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.9.1) Fixed a glitch where Rumble would remain enabled after failing a song on a new beat.
 
'''v1.8.*'''
'''v1.8.*'''
*New features:
*New features:
**Added a new challenge mode when completing the campaign mode
**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)
**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:
*Misc. changes:
**Stage Break = DEATH will now display the life bar at minimum level and ignore BADs in the judgement phase
**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
**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
**Bubbles in the Home Screen will 'regenerate' when leaving a submenu.
**Removed pixel blinking effect from the Home Screen
**Removed pixel blinking effect from the Home Screen.
*Optimizations:
*Optimizations.
**Now charts use static EWRAM to prevent crashes due to allocation failures
**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)
**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:
*Bugfixes:
**Fixed a small memory leak after playing a song
**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 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
**Fixed a glitch where the user could enter the "Audio lag" option and navigate to the previous/next option during the transition.
**(v1.8.1) Added small fixes and adjustments to the new challenge mode
**(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.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) 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 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) Fixed 'mark as defective' combo being enabled during challenge mode.
**(v1.8.3) The challenge mode now displays the current song
**(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) 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.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) 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 sprite limit was increased from 50 to 90.
**(v1.8.4) The Bounce mod now uses a slightly less aggressive curve
**(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.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.*'''
'''v1.7.*'''
*New features:
*New features:
**Menu controls
**Menu controls.
**Menus can now be navigated using two key layouts: GBA style (new), and PIU style
**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)
**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
**The default layout was changed to GBA style, but it can be changed using the Admin menu.
**Single-player Arcade mode
**Single-player Arcade mode.
**Double charts can now be selected directly using the level change buttons
**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 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 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 Bounce mod, which makes the arrows (and/or its receptors) bounce.
**Added AutoMod mod, which randomly combines all mods every 1~4 beats
**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
**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
**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
**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
**Added a warning to let users know when the current mods won't let them save their Dance Grades.
**Multiplayer Arcade mode
**Multiplayer Arcade mode.
**VS mode now makes the winner's life bar bounce during gameplay to enhance competitiveness
**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
**Now players don't have to set the difficulty level after each song; the game remembers.
**Impossible mode
**Impossible mode.
**It now uses the AutoMod/INSANE, +1 rate, and mirror steps mods
**It now uses the AutoMod/INSANE, +1 rate, and mirror steps mods.
**Admin menu
**Admin menu.
**offsets
**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.
**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:
*Engine fixes.
**This build fixes ~32768 corner cases related to chart reading, increasing overall compatibility (specially with gimmick charts)
**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
**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
**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
**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
**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
**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
**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.
**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
**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
**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
**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
**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
**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
**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)
**The default scroll BPM change speed was adjusted (100 => 150) and a lower arrow speed limit was set (1px/frame).
*Engine improvements:
*Engine improvements:
**Added co-op chart support: pump-couple and pump-routine
**Added co-op chart support: pump-couple and pump-routine.
**SSC parsing is now more robust, ignoring comments and finding charts using #NOTEDATA:; tags
**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 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
**Unsupported negative #SPEEDS are now individually ignored instead of ignoring the whole chart.
*Optimizations:
*Optimizations:
**Optimized IWRAM code, making everything faster and preventing slowdowns in complex charts
**Optimized IWRAM code, making everything faster and preventing slowdowns in complex charts.
**Reduced memory access and CPU usage during gameplay
**Reduced memory access and CPU usage during gameplay.
**Updated gba-link-connection to v6
**Updated gba-link-connection to v6.
**Significantly reduced latency in multiplayer sessions (both wired and wireless)
**Significantly reduced latency in multiplayer sessions (both wired and wireless).
**Significantly reduced CPU consumption in multiplayer sessions
**Significantly reduced CPU consumption in multiplayer sessions.
**Reduced base ROM size by removing dead gba-sprite-engine code
**Reduced base ROM size by removing dead gba-sprite-engine code.
**Reduced final ROM size by optimizing space in the PIUS format
**Reduced final ROM size by optimizing space in the PIUS format.
*Misc. changes:
*Misc. changes:
**Pressing L and R in menus now lets the player change the option in any direction
**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
**You can now exit any menu using either START or SELECT.
**Finishing the game now takes user to the updated Home screen
**Finishing the game now takes user to the updated Home screen.
**Rumble is now disabled during fast-forward (Training Mode)
**Rumble is now disabled during fast-forward (Training Mode).
**SUDDEN_DEATH was renamed to DEATH
**SUDDEN_DEATH was renamed to DEATH.
**The FAST Background blink mode was removed
**The FAST Background blink mode was removed.
**The keys tutorial was moved from song 1 to song 0
**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
**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
**Wireless multiplayer will now use a slightly higher timeout value.
**Library autoscroll can now be used in multiplayer
**Library autoscroll can now be used in multiplayer.
**Added save file validation code
**Added save file validation code.
*Build process updates:
*Build process updates:
**Support for double/multiplayer chart offsets, subindex, and delete keyword in offset.pofs files
**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
**The importer can now automatically add BOSS levels when creating Campaign builds.
**Fixed some errors with the parsing of chart vs global properties
**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
**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)
**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
**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
**Fixed make package silently failing when the output ROM file was in use.
**All errors thrown by the importer now have more details
**All errors thrown by the importer now have more details.
*Graphical improvements:
*Graphical improvements.
**Song screen
**Song screen.
***Fake HOLD_FILL notes now look fake (dedicated sprite)
***Fake HOLD_FILL notes now look fake (dedicated sprite).
**Home screen
**Home screen.
***Increased demo chart complexity when some of the campaign modes are completed
***Increased demo chart complexity when some of the campaign modes are completed.
**Multiplayer/Connecting screen
**Multiplayer/Connecting screen.
***Added a 'transmitting' animated icon
***Added a 'transmitting' animated icon.
**Selection screen
**Selection screen.
***DOUBLE mode now has its own color palette, to easily identify what type of charts we're seeing
***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
***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
**Dance Grade screen.
***Updated winner message in VS multiplayer mode for clarity
***Updated winner message in VS multiplayer mode for clarity.
*Bugfixes:
*Bugfixes:
**Fixed a random DMA lockup on hardware
**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 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 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 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 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 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 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 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 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 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
**Fixed a bug where using fast-forward in training mode would cause a subsequent multiplier change to be ignored.
**(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 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 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) 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 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.7.1) Adjusted the contrast of the center idle sprite, which appeared too bright on some consoles compared to other sprites.
 
'''v1.6.*'''
'''v1.6.*'''
* Graphical improvements:
* Graphical improvements:
** Added black outline to sprites
** Added black outline to sprites.
** Added bounce animation on note hit
** Added bounce animation on note hit.
** Added a SLOW background blink mode
** Added a SLOW background blink mode.
* Bugfixes:
* Bugfixes:
** Decolorize mod now also mutates life bars
** Decolorize mod now also mutates life bars.
** Fixed arrow holders blinking one frame late
** Fixed arrow holders blinking one frame late.
** (v1.6.1) Fixed small glitch where fake taps were displaying the wrong tile
** (v1.6.1) Fixed small glitch where fake taps were displaying the wrong tile.
 
'''v1.5.*'''
'''v1.5.*'''
* (v1.5.1) Fixed random crash in wireless multiplayer sessions due to audio DMA conflicts with serial IRQs
* New features:
* (v1.5.1) Fixed wireless multiplayer slowdowns by moving time-critical code to IWRAM
** [https://github.com/rodri042/piugba/wiki/Multiplayer Wireless Adapter support].
* (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.5'''<br>
* New features:  
** [https://github.com/rodri042/piugba/wiki/Multiplayer Wireless Adapter support]
** Wireless adapter support.
** Wireless adapter support.
* Bugfixes:  
* Bugfixes:
** Now multiplayer scores will always be in sync after a game (fixed Link Connection's packet loss).
** Now multiplayer scores will always be in sync after a game (fixed Link Connection's packet loss).
** Fixed errors where individual difficulty levels could get out of sync in multiplayer sessions.
** 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 glitch when confirming a song selection while crossing a page.
** Fixed admin menu key combo handling
** Fixed admin menu key combo handling.
* (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'''


'''v1.4'''<br>
New features:
New features:
*Hardware integrations
*Hardware integrations.
**[https://github.com/rodri042/piugba/wiki/Admin#rumble Rumble].
**[https://github.com/rodri042/piugba/wiki/Admin#rumble Rumble].
**[https://github.com/rodri042/piugba/wiki/Admin#io-sd-blink I/O SD Blink].
**[https://github.com/rodri042/piugba/wiki/Admin#io-sd-blink I/O SD Blink].
[https://github.com/rodri042/piugba/wiki/Admin#sram-led-blink SRAM LED Blink].
**[https://github.com/rodri042/piugba/wiki/Admin#sram-led-blink SRAM LED Blink].
 
*Arcade improvements.
*Arcade improvements:
**Added [https://github.com/rodri042/piugba/wiki/Admin#arcade-charts Double charts] support inside Single player mode.
**Added [https://github.com/rodri042/piugba/wiki/Admin#arcade-charts Double charts] support inside Single player mode.
**Added [https://github.com/rodri042/piugba/wiki/Admin#mark-a-song-as-defective-in-arcade-modes mark as deffective] option for broken charts.
**Added [https://github.com/rodri042/piugba/wiki/Admin#mark-a-song-as-defective-in-arcade-modes mark as deffective] option for broken charts.
Line 300: Line 333:
Graphical improvements:
Graphical improvements:
*Improved screen transitions.
*Improved screen transitions.
*Now the selection screen background looks cleaner (less dithering below the lights)
*Now the selection screen background looks cleaner (less dithering below the lights).


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


[https://github.com/rodri042/piugba/wiki/Changelog Release notes.]
[https://github.com/rodri042/piugba/wiki/Changelog Release notes.]
Line 313: Line 346:
==Credits==
==Credits==
Open-source projects involved:
Open-source projects involved:
*[https://github.com/wgroeneveld/gba-sprite-engine wgroeneveld/gba-sprite-engine] Dec 18, 2019.
* [https://github.com/wgroeneveld/gba-sprite-engine wgroeneveld/gba-sprite-engine]: Dec 18, 2019
**Forked at: [https://github.com/rodri042/gba-sprite-engine rodri042/gba-sprite-engine].
** Forked at: [https://github.com/afska/gba-sprite-engine afska/gba-sprite-engine]
*[https://github.com/pinobatch/gsmplayer-gba pinobatch/gsmplayer-gba] Feb 9, 2020.
* [https://github.com/pinobatch/gsmplayer-gba pinobatch/gsmplayer-gba]: Feb 9, 2020
*[https://github.com/wgroeneveld/gba-sprite-engine rodri042/gba-link-connection].
* [https://github.com/AntonioND/libugba AntonioND/libugba]: May 20, 2022
* [https://github.com/afska/gba-link-connection afska/gba-link-connection]: v6.0.3
* [https://github.com/afska/gba-flashcartio afska/gba-flashcartio]: v1.0.5
* [http://elm-chan.org/fsw/ff/ FatFS]: R0.15


==External links==
==External links==
* GitHub -  https://github.com/rodri042/piugba
* GitHub -  https://github.com/rodri042/piugba
* DIscord - https://discord.com/invite/JE33cc2
* Discord - https://discord.com/invite/JE33cc2
 
 
[[Category:Homebrew music games on GBA]]

Latest revision as of 06:30, 12 May 2024

piuGBA
Piugba2.png
General
Author[r]labs
TypeMusic
Version1.10.0
LicenseMIT License
Last Updated2024/05/09
Links
Download
Website
Source

piuGBA is a Pump It Up (PIU) emulator specifically designed for the Game Boy Advance (GBA). Created by [r]labs, this emulator allows you to experience the rhythm and excitement (StepMania SSC charts) of PIU on your GBA handheld device.

Features

  • Full .ssc files support, including:
    • Normal, hold and fake notes.
    • BPM changes.
    • Scroll speed changes.
    • Stops/Delays and async-stops.
    • Warps and fast-BPM warps.
  • Multiple game modes:.
    • Campaign: Play, unlock songs and defeat bosses.
    • Arcade: Play songs in any numerical difficulty level.
      • Single: 1 player, either Single (5-panel) or Double (10-panel) charts.
      • Multi VS: VS battles via Link Cable or Wireless Adapter.
      • Multi COOP: Double (10-panel) charts via Link Cable or Wireless Adapter.
    • Impossible: Faster songs with insane mods.
  • Speed multipliers can be changed in-game.
  • Mods support:.
    • Stage break: On, Off or SuddenDeath.
    • Pixelate: Mosaic effect.
    • Jump/Reduce: Moves game area.
    • Bounce: Makes the arrows bounce.
    • Color filter: Alters colors.
    • Speed hack: AutoVelocity, FixedVelocity or RandomSpeed.
    • Mirror and random steps.
    • Training mode: Rate, Fast-forward, Rewind.
    • AutoMod: Swaps mods randomly.
  • Background videos "(uncompressed 240x160)" can be displayed using a flash cart.
  • HQ audio "(uncompressed s8 PCM)" can be played using a flash cart.
  • Two themes: "Classic" and "Modern".
  • BGA DARK background with blink effect.
  • Song selector with names, backgrounds and sound previews.
  • Hardware integrations:.
    • Rumble.
    • I/O LED Sync.
    • SRAM LED Sync.
    • PS/2 input.
  • Optimized to support ~70 songs per ROM file.

User guide

How does it work

A node.js script (the importer) converts a list of SSC/MP3/PNG files into binary files which the GBA can understand. For audio, it uses GSM audio files which are very small in size.

Charts are converted into a format created for this project called PIUS. Then everything is bundled in a GBFS file (a filesystem created by the GBA scene) and appended to the final ROM.

Read the wiki for more details and guide of how to build a ROM.

You can also join the official Discord server to find pre-built ROMs and user-created content.

Screenshots

piugba3.gifpiugba4.gifpiugba5.gif

piugba6.gifpiugba7.gifpiugba8.gif

piugba9.gifpiugba10.gifpiugba11.gif

piugba12.gifpiugba13.gifpiugba14.gif

Media

piuGBA - Impossible Mode w/ Rumble (Rodrigo Alfonso)

Compatibility

Tested and works on mGBA, VBA-M, and NO$GBA.

Changelog

v1.10.*

  • 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.
    • (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.
    • (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.
    • 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.
    • 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.
    • (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.
    • (v1.6.1) Fixed small glitch where fake taps were displaying the wrong tile.

v1.5.*

  • New features:
  • Bugfixes:
    • Now multiplayer scores will always be in sync after a game (fixed Link Connection's packet loss).
    • 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.
  • (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

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.
  • Now the selection screen background looks cleaner (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.
  • Now the random is more random.
  • Now "random steps" is more humanly usable, since it tries to avoid repeated notes.

Release notes.

Credits

Open-source projects involved:

External links

Advertising: