Advanced rhythm game for Windows, Linux and OS X. Designed for both home and arcade use.
Bot releases are hidden (Show)
A decision was made to delay some of the more signifigant changes originally intended for 5.1 to a future release, which will be known as StepMania 5.2 (see here for more details), and is in continued development on the master branch. At the same time, a new iteration of 5.1 was forked from the branch of 5.0, which features enhancements and other internal improvements, whilst aiming to be "almost entirely compatible" with content designed for 5.0.x, such as themes.
In other words, the previous preview release made under the version number 5.1, "5.1 -3", is actually an alpha build of what is now known as StepMania 5.2 on the Master branch. This is the first preview release based on the 5.1-new branch, created as a result of the aforementioned fork.
The user data directory has been changed to reflect the new version number;
The Alternate folder preferences can be used to share content such as songs between multiple versions of StepMania.
Published by ListenerJubatus over 6 years ago
A decision was made to delay some of the more signifigant changes originally intended for 5.1 to a future release, which will be known as StepMania 5.2 (see here for more details), and is in continued development on the master branch. At the same time, a new iteration of 5.1 was forked from the branch of 5.0, which features enhancements and other internal improvements, whilst aiming to be "almost entirely compatible" with content designed for 5.0.x, such as themes.
In other words, the previous preview release made under the version number 5.1, "5.1 -3", is actually an alpha build of what is now known as StepMania 5.2 on the Master branch. This is the first preview release based on the 5.1-new branch, created as a result of the aforementioned fork.
The user data directory has been changed to reflect the new version number;
The Alternate folder preferences can be used to share content such as songs between multiple versions of StepMania.
A new high-resolution default theme known as Lambda has been introduced. It features a cleaner visual design with a bold color scheme, a more streamlined layout, and is optimized for high definition resolutions. A new noteskin of the same name is also bundled, which is inspired by the visual design of the theme.
While most themes (including the previous default theme) render at an internal resolution of 480p for positioning actors, Lambda uses 720p. Some content, particularly songs utilizing internal BGAnimations and other scripting, may require adaptations in order to render correctly when using high-resolution themes; although this issue is not exclusive to 5.1, it has greater prominence because of its use of a high-resolution theme by default.
The previous default theme is still included as part of the base StepMania package under the name "Legacy", but it will be removed on a future release. As mentioned earlier, 5.1 remains compatible with themes and noteskins that are compatible with 5.0.12.
The DirectInput handler for Windows now supports XInput. (#1443)
"The XBox360 controller driver for windows has a flaw where the DirectInput backwards-compatible driver registers dance pad arrows as a hat and will not allow opposite arrows to be pressed at the same time. This is not a problem in the XInput interface since the arrows are registered as a DPad and each arrow is a button."
Songs can be loaded from profiles on USB drives. Preferences are avaliable to specify caps on song file size, the number of songs that can be loaded, and loading timeout length. On Linux, StepMania must run as root to save USB profile scores. (#1470)
A large number of new ArrowEffects have been added, primarily originating from the OpenITG fork "NotITG". They include new modifiers that can be applied to individual notefield columns, versions of selected modifiers that act upon different axes, offset and speed controls for selected modifiers, versions of selected modifiers that utilize tangent waves, as well as other new effects.
ProgressAlternate
; notes on a frame boundary (for example, if there are 4 frames, notes at 0, 0.25, 0.5, and 0.75 beats) use the previous frame instead. A modification of the midi-solo noteskin called midi-rainbow is included to demonstrate this behavior. (#1621)Published by kyzentun about 8 years ago
StepMania 5.1.-3; release notes compiled and Markdown formatted by @kyzentun:
NoteSkins for 5.1 go in the NoteSkins folder now. NoteSkins made for 5.1.-2
will need trivial fixes before they work on 5.1.-3.
NoteSkins for 5.1.-3 and 5.0.x should be able to peacefully coexist.
Remember that NoteSkins for 5.1 go directly in the folder. They are not
separated by game type. If you put a NoteSkin for 5.1 inside
"NoteSkins/dance/", it won't show up.
The screen for picking a for edit mode has been completely reworked.
Screenshot key can be remapped.
Docs/Themerdocs/5.1_incompatibilities/ThemePrefs_removed.md
The lua config system explained in Docs/Themerdocs/lua_config_system.md
replaces ThemePrefs, UserPrefs, and GamePrefs. Having a single system for
handling custom preferences is easier for developers to maintain.
CustomSpeedMods was replaced by ArbitrarySpeedMods two years ago.
ArbitrarySpeedMods is an inferior version of the speed mod menu that is built
into the nesty menu system.
Various metrics and functions removed while removing all traces of the old notefield and noteskin system. See Docs/Themerdocs/5.1_incompatibilities/oldfield_removal_notes.md for details.
Added item_params arg to item_scroller:create_actors. item_params is passed
to each item when it is created.
OptionRows is based around picking from a list of choices, not changing a
number. So when a number needs to be changed, it's a mile long list of
choices, or a list that is too short to give everyone the needed precision.
Look at the mess speed mod choices went through.
The nesty menu system has an actor specifically for showing the current value
of the number being changed. Each item on the menu changes the value by
some amount.
The OptionRows menu system does not have the adaptability to handle dynamic
menus. The Noteskin Params menu is one example of a dynamic menu. It allows
the player to set options in the noteskin. Those options are created by the
noteskin, and can be different for every noteskin. So the menu must be
dynamically generated based on the noteskin the player has chosen. When there
are two players, they can choose different noteskins. Each player must have
their own noteskin params menu.
Dynamically generated menus is part of the core of the nesty menu system.
It is possible to set flags in an OptionRow to only allow one player to use
it, but this does not hide the row. The other player's cursor skips over the row.
This feels strange and confusing.
Each player has their own menu, on their own side of the screen in the nesty
menu system.
Just a random idea I had one day. "Alpha" or "beta" releases get a negative
patch version number to indicate that some things are incompatible with the
previous release, and some things might not be compatible with the next
release. Eventually there will be 5.1.0, and 5.1.1 after that won't break
anything more.
Published by quietly-turning about 8 years ago
StepMania 5.0.12; release notes compiled and Markdown formatted by @kyzentun:
Read Docs/Themerdocs/pause_menu.md for some explanation of handling pausing.
Published by kyzentun over 8 years ago
StepMania 5.0.12; release notes compiled and Markdown formatted by @kyzentun:
Read Docs/Themerdocs/pause_menu.md for some explanation of handling pausing.
Published by kyzentun over 8 years ago
StepMania 5.0.11; release notes compiled and Markdown formatted by @kyzentun:
Items are roughly grouped into the general part of StepMania they fit into.
Minimaid driver added for Linux. This is practically identical to the
Windows minimaid driver that pkgingo wrote.
Added DisableUploadDir preference to skip saving a score entry to Save/Upload
every time a song is played. Generating the unique filename can take several
seconds when there are years of scores accumulated. This preference defaults
to false.
Published by kyzentun over 8 years ago
StepMania 5.1.0 Alpha 2; release notes compiled and Markdown formatted by @kyzentun:
Check the section on Compiling in the release notes for the previous 5.1.0 alpha release. Those instructions still apply.
The backend for fullscreen mode on linux has been rewritten to allow control
over which display is used and whether stepmania uses exclusive mode.
All themes use the NewField in gameplay now. The old NoteField actor does
not exist on gameplay anymore.
NewField has a special mode to make it use the old PlayerOptions mods instead
of the mods that are built into it. Anything that touches the old
PlayerOptions mods will trigger the auto detection to put the field into
defective mode for that player.
If the beat bars are misaligned and the receptors are shaking when htting play in edit mode, something is triggering the defective mode detection in the NewField. Look for things that touch PlayerOptions and remove them if you're a themer.
This is a system for allowing a noteskin to provide choices to the player
that change the behavior of the noteskin. The noteskin creates some
variables and decides what to do with them, the theme provides a menu, and
the engine saves the parameters in the player's profile.
Lifts are rendered with a hold body preceding them to give the player some
warning time. The length of the hold body defaults to .25 seconds or .25
beats, whichever puts it further away from the note. The hold body is purely
visual, it is not judged with a hold judgment.
The default theme has a new Player Options screen designed to allow setting
all the NewField related options.
The CustomSpeedMods system that reads SpeedMods.txt from the profile is
deprecated and its load function is no longer called. Using CustomSpeedMods
or ArbitrarySpeedMods will trigger the defective mode auto detection.
The ApplyGameCommand function has been removed. Everything that it did has
been possible through other functions for a year, so it's obsolete.
A lua based alternative to ActorScroller. Docs/Themerdocs/item_scroller.md.
The JudgmentUnderField and ComboUnderField metrics are no longer used. The
judgment and combo must set their draw order to control whether they are
under notes or not. The draw order for the judgment and combo works the same
as for a layer in the NewField. This allows players to choose different
settings for judge and combo placement.
A lua based system for per-profile settings. Designed to save arbitrary lua
tables. Read Docs/Themerdocs/lua_config_system.md.
Graphics/Notefield board is not loaded by NewField. Create
Graphics/Notefield layers instead, which returns a table of actors that are
rendered by draw order.
Graphics/NoteColumn layers is loaded by each column in the NewField and also
drawn in order of draw order.
Published by kyzentun almost 9 years ago
StepMania 5.1.0 Alpha; release notes compiled and Markdown formatted by @kyzentun:
This alpha release is primarily for noteskin authors and theme authors who
are interested in creating noteskins or using the new features.
If you are not a noteskin author or theme author, you probably do not want to
use this 5.1.0 Alpha release.
The 5_1_0 branch uses submodules for some external dependencies like ffmpeg,
so they are not bundled. As a side effect, if you click the "Download ZIP"
button on github to get a source zip, you will not be able to build that zip.
If you are not compiling from source, you can ignore this section. The linux tar.gz attached to this release was built for amd64 debian.
To get around this problem, these are the steps for fetching the 5_1_0 branch source:
git clone --depth=1 -b 5_1_0 https://github.com/stepmania/stepmania.git
cd stepmania
git submodule init
git submodule update
(if someone wants to submit instructions for doing the same with a gui,
gui instructions can be added.)
The --recursive
flag is not used in the clone command given above
because some submodules like cppformat have their own submodules that are not
needed for building or running stepmania.
After the submodules have been updated, compiling can be done in the same way
as on the master branch of stepmania.
The new systems in this alpha release are not in their final form. They will
be extended and modified based on feedback from noteskin and theme authors
who create new content. Keeping the systems simple and allowing new people
to learn them gradually is one of the goals.
This is the simplest one, so it is explained first. The changes to
RollingNumbers were more of an attempt to improve it than a serious rewrite
like the other new systems. Changes to RollingNumbers are fully documented
in Docs/Themerdocs/5.1_incompatibilities/RollingNumbers.md.
A new noteskin system has been created. The goals of the new system are to
provide a solid base for future development, clear out cruft, remove metrics
from noteskins, and provide more advanced features.
The new noteskin system is fully documented in NewSkins/default, which is an
example noteskin explaining all the features and demonstrating some of them.
NewField is a completely new notefield system. It gives the theme more
control over every aspect, and is self contained.
Initial documentation is in
Docs/Themerdocs/5.1_incompatibilities/NewField.md.
The new notefield system also has a completely new modifier system. This is
extensible, predictable, and documented. Figuring out exactly what a
modifier does no longer requires digging through ArrowEffects.cpp. Detailed
control over exactly what the arrows do is possible.
Full docs in Docs/Themerdocs/5.1_incompatibilities/NewField_mod_system.md.
Because the modifier system does not use PlayerOptions, large parts of the
options screen do nothing. Mods that change the steps in a chart like
Shuffle work the same, but mods that change the appearance of notes like
Dizzy do nothing. This is because the system was not designed with OptionRow
in mind (I hate OptionRow, it can't do anything I want to do, I don't use
it).
Instead, the NewField relies on the theme to set mods through lua
function calls when ScreenGameplay starts. To assist themers, _fallback
provides functions for setting speed, tilt (distant), mini, and reverse by
reading them from PlayerOptions. There are also functions for setting hidden
and sudden mods (with control over exactly where the line is, and only
affecting note alpha. So no white flash), but they do not read from
PlayerOptions and must be called directly.
A future version will probably use lua option rows and a global lua variable
to store the mod choices from the options screen before applying them on
gameplay.
NoteField, NoteDisplay, ArrowEffects, NoteSkinManager, and (most of)
PlayerOptions will probably be removed in the next release.
It would be nice if both players were not forced to the same style.
Everybody tries to skip past style select quickly, so it seems obstructive.
If player's aren't forced to the same style, and the noteskin controls column
widths, what point does the style have? Changing between styles on music
select is already possible in more advanced themes. This will cement that,
and allow more freedom when picking what to play next.
Published by kyzentun almost 9 years ago
StepMania 5.0.10; release notes compiled and Markdown formatted by @kyzentun:
Items are roughly grouped into the general part of StepMania they fit into.
Windows users are required to have the Visual Studio 2015 Redistributable installed. All Windows users must have the x86 version of the runtime installed. All Windows users who are on a 64-bit operating system are also advised to install the x64 version as well.
Cmake is now required for compiling Stepmania. Read Build/README.md
for instructions.
Lots of people came asking for help, so this bears repeating.
The thread in the release forum has been updated with instructions for compiling on Linux.
The linux tar.gz attached to this release was built for amd64 debian.
Additional compilation notes are found at the bottom of this document.
Published by kyzentun over 9 years ago
StepMania 5.0.9; release notes compiled and Markdown formatted by @kyzentun:
Items are roughly grouped into the general part of StepMania they fit into.
Cmake is now required for compiling Stepmania. Read Build/README.md for instructions.
The thread in the release forum has been updated with instructions for compiling on Linux.
There is a new screen for interactively adjusting the variables that already
existed in the preferences for dealing with overscan problems. This allows
editing the CenterImage* preferences without restarting StepMania to set them
so that the whole image appears on screen.
This currently handles the aspect ratio wrong, so it's not a perfect overscan
solution.
The OptionsListQuickChange, OptionsListLeft, and OptionsListRight messages
now have a Selection parameter that has the id of the selection the player
moved to.
If you see this screen come up, you need to fix the InitialScreen metric in
your theme.
Published by kyzentun over 9 years ago
StepMania 5.0.8; release notes compiled and Markdown formatted by @kyzentun:
Items are roughly grouped into the general part of StepMania they fit into.
Cmake is now the only method supported for compiling Stepmania. Read Build/README.md for instructions.
Some Linux users may need to pass -DWITH_LIBVA=ON
and/or -DWITH_CRYSTALHD_DISABLED=ON
to cmake when compiling.
There is a binary package for Linux which was built on amd64 debian. If it doesn't work, compile from the source instead.
Entries in service menu rearranged to hopefully organize them better.
Test Input
, Input Options
, and Calibrate Machine Sync
are now under Input Options
.
Appearance Options
, Set BG Fit Mode
, and UI Options
are now under Display Options
.
Allow Multiple Toasties
preference controls whether it is playedScreenOptionsInputSub and ScreenOptionsDisplaySub added. Updating a theme
to show the options for the new screens should be a simple matter of
changing the LineNames entry for ScreenOptionsService to include
"InputOptions" and "SoundGraphics".
Added handling for diffuse to make rainbow and related effects work.
Stream, Voltage, Air, Freeze, and Chaos are no longer capped at 1. Stream
and Voltage no longer count hold heads twice. RadarCategory_Notes added,
which counts all notes.
The NoteField board is now underneath everything except the backgound. This
means underneath any custom actors on the underlay or overlay or decoration
layers, and also underneath the combo/judgment even when the ComboUnderField
metric is true.
The parameter table broadcast with this message has changed it is now as follows:
{
PlayerNumber= pn, -- the player number of the player that earned the
toasty
ToastyCombo= number, -- the current number of W2/W1 in a row the player has
Level= number, -- the number of toasties earned in a row
}
Adding the Level parameter allows the themer to easily set off a different
effect based on how long the player has gone without breaking their toasty
combo.
See Docs/Themerdocs/Examples/Example_Actors/Toasty.lua
for an example of
BGAnimations/ScreenGameplay toasty.lua
that uses these parameters.
The Gameplay::ToastyTriggersAt metric can be a function now, or a number.
If the metric is a function, the function is passed the player number, and the player's current
toasty level, and the number it returns is the number of additional steps to
earn the next toasty.
If the metric is a number, it is the number of additional steps to
earn the next toasty.
This means that ToastyTriggersAt=250
and
ToastyTriggersAt=function(pn, level) return 250 end
have the same
effect: Toasties will be awared at 250, 500, 750, and so on.
The Gameplay::ToastyMinTNS metric has been added for controlling the minimum
TapNoteScore needed to maintain toasty combo.
A converter has been added that takes care of the simple grunt work of converting an xml bg/fg file to lua for
SM5. Read Docs/Themerdocs/XmlToLua.txt
for details.
A toasty is a special award for achieving a certain number of W2 or W1 steps
in a row. In the default theme, this is 250 steps in a row, and W2 is known
as Perfect, and W1 is called Flawless. The number of toasties earned is
stored in the profile. Some themes show a special animation and play a
sound when a toasty is earned.
The current toasty combo is the progress towards this goal. Each note on a
row counts as one point in the toasty combo, thus jumps are two, and hands
are 3 or more.
Hitting a step with a judgment worse than W2 breaks the toasty combo,
resetting it to 0.
For many years, achieving 250 W2/W1 in a row, then 1 W3, then 250 more W2/W1
in a row would increment the toasty counter in the profile by 2, but only show the animation once. Earning 500 W2/W1 in a row was still only 1 toasty.
This behavior has been changed so that 500 W2/W1 in a row will increment the
toasty counter twice, and show the animation twice.
Published by kyzentun over 9 years ago
StepMania 5.0.7; release notes compiled and Markdown formatted by @kyzentun:
Items are roughly grouped into the general part of StepMania they fit into.
Simfile loading and caching has been changed internally to speed up loading
time. If you're using an SSD, or only have a few hundred songs, you probably
won't see any difference. People with large song collections who don't have
SSDs should be able to measure the difference.
Most of the changes are aimed at making StepMania read song data from the
cache and not look in the song folder until gameplay if the cache file
exists. To take full advantage of this, you should have the Fast Load
preferences set to true.
There are new things to help simfile authors deal with cases where the cache
file is out of date.
Because this release bumps the cache version, the first time you start up it will
rebuild the cache, which takes some time.
Pressing Ctrl+Shift+R on Select Music will reload the currently selected song
from its song folder, updating any cached information.
The NeverCacheList preference has been added to Preferences.ini. You can use
it to set song group folders that should never be cached. The preference is
set to a comma separated list of group names. Because it disables the cache
for the songs in the groups listed, it should only be used sparingly, the
cache is important for loading quickly.
Example: NeverCacheList=work_in_progress,abandoned_in_progress
This will cause the songs in the work_in_progress
and abandoned_in_progress
groups to never be cached.
Pressing Ctrl+Backspace on the Select Music screen will prompt you to
permanently delete the currently selected song.
The Allow Song Deletion preference must be turned on in the Advanced Options section of the service menu for this to be enabled.
The song is automatically saved every 5 minutes if there are any changes.
When clearing an area with the Alter menu, if the area contains at least
EditClearPromptThreshold
notes, you will be prompted. It's a preference
that is settable in the Advanced Options section or in the Options in Edit
Mode. Setting it to -1
means it will always prompt, setting it to 1000000
will make it never prompt.
Each chart in a simfile can have its own MUSIC
tag, pointing to a music file
to use instead of the normal song music. This does not change the logic for
when the song ends in gameplay. The time of the last step of any chart is
still used as the time to end the song in gameplay, so if you use per-chart
music, make sure your music is the same length.
Simfiles can have a PREVIEW
tag which tells StepMania to use a specific file
for the preview instead of the song music file. When you set the preview tag, the length of the named file will be used to set the sample length. After that, the sample length can be adjusted as normal. The sample start is forced to 0 when the preview tag is used.
HarshHotLifePenalty
is false, then the penalty is used insteadDX9 support improved, giving a large speed boost and fixing the problem that
made people get stuck with 16bit color. [xwidghet]
Pause/Break key now toggles "action" sounds off or on. There is also a
button in the F3 debug menu for people that don't have a Pause/Break key
(press A, there are so many that it is off the bottom).
This only affects people building from source. StepMania has moved to using
CMake as the primary system for generating project files. This saves us the
trouble of keeping several different project files updated. Read
Build/README.md for instructions on using CMake to build.
To make life slightly easier for translators, a language changelog has been
added in Docs/Changelog_language.txt.
RemoveChild
and RemoveAllChildren
Lua functions to delete theforeach_ordered
lua function now works on tables that have both numberGetPath
nil
.GetPreviewMusicPath
ReloadFromSongDir
Published by kyzentun over 9 years ago
There have been some changes to file loading to speed up startup time, and autosave has been added to edit mode. With those two additions affecting critical features, it is possible that some detail was missed (maybe a particular rare tag in simfiles doesn't work anymore, or maybe files aren't saved or loaded correctly)
Thus, this release candidate build is so that people can test things on non-critical systems to make sure simfiles that worked fine in 5.0.6 also work fine with the changed loader. (non-critical systems just means don't go stick it on an arcade machine where someone might get pissed if a song doesn't load or there's a crash)
If you encounter any problems related to song loading or saving with this build post on the forum or submit an issue with as much info as you have. If it's a particular song that doesn't load right, that simfile will probably be needed to solve the problem.
If there are no serious bugs in this build, the next release will be in 3 weeks (April 1st), along with any changes that occur between now and then. Work on improving startup time is still ongoing.
Because this release includes a cache version bump, the first time you load will take much longer than normal because it has to rebuild the song cache. After that, it should be measurably faster. People using SSDs or on modern hardware or with small song collections might not be able to see any difference in loading time.
Now for the notes on the other changes from the last few weeks:
Items are roughly grouped into the general part of StepMania they fit into.
The song is automatically saved every 5 minutes if there are any changes.
When clearing an area with the Alter menu, if the area contains at least
EditClearPromptThreshold
notes, you will be prompted. It's a preference
that is settable in the Advanced Options section or in the Options in Edit
Mode. Setting it to -1
means it will always prompt, setting it to 1000000
will make it never prompt.
Each chart in a simfile can have its own MUSIC
tag, pointing to a music file
to use instead of the normal song music. This does not change the logic for
when the song ends in gameplay. The time of the last step of any chart is
still used as the time to end the song in gameplay, so if you use per-chart
music, make sure your music is the same length.
Simfiles can have a PREVIEW
tag which tells Stepmania to use a specific file
for the preview instead of the song music file. The preview length should
be read from the preview music file, so cut it right.
HarshHotLifePenalty
is false, then the penalty is used insteadDX9 support improved, giving a large speed boost and fixing the problem that
made people get stuck with 16bit color. [xwidghet]
Pause/Break key now toggles "action" sounds off or on. There is also a
button in the F3 debug menu for people that don't have a Pause/Break key
(press A, there are so many that it is off the bottom).
RemoveChild
and RemoveAllChildren
Lua functions to delete theforeach_ordered
lua function now works on tables that have both numbernil
.GetPreviewMusicPath
Published by kyzentun over 9 years ago
@kyzentun made a mistake when fixing a crash bug the night before release that broke bpm editing.
This fixes that mistake.
Also, if you didn't see 5.0.5, you should read the release notes for it.
https://github.com/stepmania/stepmania/releases/tag/v5.0.5
Published by shakesoda over 9 years ago
StepMania 5.0.5; release notes compiled and Markdown formatted by @kyzentun:
Items are roughly grouped into the general part of Stepmania they fit into.
Ends when the song ends, or when the notes end, whichever is later.
See Docs/Mapping_keys_for_edit_mode.txt
When recording steps in Record Mode, a button that is held more than 0.3
seconds is recorded as a hold. This amount of time can now be adjusted up
or down with Q/W or set to 120 seconds with R or reset to 0.3 with E.
Preference for setting the number of seconds before the selected section
comes up in record mode. Should be settable on the options screen in edit
mode in default theme.
Internal mechanism changed again, set the preference to what you want again
and report if it doesn't stick. (side note: It's stored in the
DefaultModifiers preference, which is different for every game mode, so
you'll have to set it for every game mode you play)
This preference controls the tap note score you must get on a note for it
to disappear. Normally, any note that you score great or better on
disappears, and the rest stay visible. Change this preference to miss, and
even notes you miss will disappear. Change it to checkpoint, and not even
fantastic will make a note disappear.
There is also a modifier for this, to allow players to have different
settings if the theme provides a way to set the modifier.
A bunch of useful preferences weren't settable through the service menu.
InputDebounceTime was added to the Input Options section. The rest in the
list were added to the Arcade Options section. They might not show up in
custom themes that change the service menu. They all have help text
explaining them, so visit them on the options screen.
Profiles can be merged together now, to import scores from an old profile
into a new one. Merging does not delete the old profile, you must do that
step separately.
When merging a local profile into the machine profile, you
can choose to skip merging the totals (step count, songs played, and
similar)
Guest and Test profile types added. All existing and new profiles are
Normal.
If a profile is changed to Guest through the profile management screen, it
will always show at the top of the list. A profile set to Test will always
be at the bottom of the list.
Profiles can be moved around in the list.
Start, MenuLeft, MenuRight, and Operator keys must be mapped.
The debug menu now has a menu option for resetting the key mapping to the
default. Hold F3 and press P and your current keymap will be wiped away.
This is for recovering from an unusuble keymap without needing to find and
delete KeyMaps.ini.
The Select Style screen changed a bit internally to simplify adding new
choices and make sure all game modes had the correct style choices
available. This is only visible in default theme because the _fallback
theme still uses the old system for backwards compatibility.
Player nameplates added with bpm info.
Dutch translation updated by Kevin O. (Thumbsy).
Spanish translation updated by Alejandro G. de la Muñoza.
Polish translation updated by Jarosław Pietras.
Japanese installer translation by hanubeki.
Partial French translation by Grégory Doche.
webm and wmv added to list of supported video formats.
Functions for new actor classes are not listed here, it is assumed that you will look at Lua.xml to see what is in them.
If a function is explained sufficiently by its entry in Docs/Luadoc/Lua.xml, it won't have a detailed entry.
All lua functions that didn't return something before now return the object they were called on.
Example: (yes I saw function chaining used in a certain gimmick noteskin)
-- old style:
self:zoom(.5)
self:xy(_screen.cx, _screen.h-60)
self:diffuse(color("#dc322f"))
-- new style:
self:zoom(.5):xy(_screen.cx, _screen.h-60):diffuse(color("#dc322f"))
CubicSplineN, NoteColumnRenderer, NoteField, and NCSplineHandler list their functions with underscore style names. Camelcase style aliases exist for all their functions, use whichever naming style you prefer.
Each column in the NoteField is an actor that can be fetched and
manipulated.
The NoteField was just a normal(ish) ActorFrame before. Now it has all
these functions and it's starting to get uppity. What is a callback
anyway? It thinks we want it to call us back later when something happens?
Each property of the note column has its own spline handler, which allows
the splines to behave differently and be controlled independently.
Position, rotation, and zoom are the three things that can be controlled
by splines.
(not actually an actor, but there aren't any other new non-actors to put
it with)
This class provides an implementation of cubic splines. It's used by
ActorMultiVertex and NoteColumnRenderer to control shape and note movement,
but is also available in a standalone form for the rare case where you need
a spline for something else.
strokecolor is in the tween state now, so it can be tweened.
ChoiceNames="lua,ScreenSelectStyleChoices()"
The lua command can then return a table of GameCommands which are used to create the choices.
{x, y, z}
, where x, y, and z are numbers and any that is not a numberIconChoiceCactusOnCommand
IconChoiceOnCommand
IconChoiceOnCommand
# in metrics.ini
IconChoicePosFunction=choice_positions
-- In a file in Scripts/
function choice_positions(count)
local ret= {}
for i= 1, ret do ret[i]= {i*24, i*48} end
return ret
end
Pass true as the last arg if you want the data in tables instead of strings.
This occurs with some simfiles that have a malformed BGCHANGES line. Either
the file doesn't exist in Stepmania/BGAnimations or the song folder, or the
person who created the simfile put the wrong thing in the BGCHANGES line.
There are three possible solutions:
Published by freem about 10 years ago
"Apple forced our hand with OS X 10.10" Edition (unofficial tagline)
StepMania 5 beta 4a is now available, primarily for those who have upgraded to Mac OS X 10.10,
though there are bug fixes as well. Update notes copy/pasted from changelog and Markdown formatted by @freem.
Published by freem about 10 years ago
StepMania 5 beta 4; release notes compiled by @kyzentun and Markdown formatted by @freem:
This is divided into three sections:
New Preferences:
In the default theme, speed mods are set in a new way.
The first element on the speed mod row tells you what your speed mod is currently set to. Call this the status element. It's underlined by the player's color the same way any other option that is set is underlined.
Next are elements for adjusting it up or down, in large or small increments.
Last are elements for changing the mode of the speed mod.
Hit start on an element to interact with it and change your speed mod by that increment or change the mode. The status element will update to tell you the new setting.
If there are two players joined, there are two status elements.
To change the sizes of the increments, go to the Advanced Options section of the Options in the default theme. "Speed Increment" adjusts the smaller increment that is used. "Speed Increment Large" adjusts the larger increment. 10 on this scale is equivalent to 0.1x on the XMod scale.
This replaces the old system where a speed mod was selected from a small set to allow you to set any speed modifier you might want without needing to worry about whether it's in the theme's small list.
SpeedMods.txt is no longer used by the default theme, though other themes can choose to support it.
This change was made because editing SpeedMods.txt often resulted in people making mistakes or editing the wrong one, or not knowing it existed, or having to add too many options and ending up with an absurd number of choices to scroll through.
A profile customization screen now exists. This is for setting things like weight, birth year, and other calorie tracking stuff. If you're not using a theme that supports it, it's not relevant. Theme author instructions for adding support are in the Themer section.
To reach it, go to the Options screen from the main menu. Then go to Profiles. Pick the profile you want to customize. A menu will appear. Pick Edit. You'll see a menu of choices. Hit Start on a choice to change its value. The numpad should be self-explanatory.
This screen was added to allow setting the profile settings related to calculating how many calories were burned. Simply put, calculating calories purely off the number of steps hit and weight is inaccurate, so a new method for calculating off of heart rate, weight, age, gender and song duration was added. (shapesense's formula is the one that was used.)
VO2Max is optional, the internal code has a (less accurate) variant of the formula that is used if VO2Max is set to 0.
If you set the calorie calculation choice to use heart rate, then calories will not be added to the profile for every step. If the theme supports it, a screen for entering your heart rate will come up after gameplay and before evaluation. It will have a timer so you can measure your pulse and a numpad for entering the BPM of your heart. After you enter your heart rate, it'll be combined with the time to calculate the number of calories to add to the profile.
This is really more of a themer feature, but so many themes have errors in them that it's going to be widely seen.
Errors in themes are now reported in dialog boxes and on screen much more than they previously were. (this is in addition to the Logs/log.txt reporting that has existed much longer)
This means that if you use a theme with errors in it, you'll be interrupted by dialog boxes and text on the screen reporting the errors.
There isn't a way to turn error reporting off, and there are no plans to add a way to turn it off. The solution is to use a theme that doesn't have errors, or fix them if a theme you made has errors. If you're a themer and you encounter an error you don't know how to fix, ask for help on the stepmania forums.
CMods adjust for song rate. Previously, if you used a rate mod, you'd have to pick a different CMod from normal to account for the rate. The CMod code now checks the song rate mod and adjusts appropriately. The same is true of MMods. Haste is not adjusted for because the sudden changes that can occur from haste would cause the arrows to jump disorientingly.
Lowercase and longer ranking names. The internal functions for storing ranking names were modified to allow mixed case and longer length. This only matters if the theme allows mixed case and/or longer length input.
New options have been added to the Alter menu.
Swap Up/Down swaps the Up/Down columns in the selected region. In double, this swaps Up and Down on both pads. In Pump, this swaps the front and back panels (UL is swapped with DL, UR is swapped with DR).
Arbitrary Remap provides a way to swap columns around arbitrarily. You will be prompted to enter a comma separated string of column numbers. After the remapping, each column will have a copy of the notes from the column number you entered. So entering "2, 1, 4, 3" will move down to left, left to down, right to up, and up to right. "1, 1, 1, 1" will copy the notes from left to every column.
Default theme's speed mod changed to 2x.
Background stretching has been a problem for a while, so now there's a preference for setting it. In the default theme, select "Set BG Fit Mode" from the Options menu to go to the screen for setting it. The screen will show the various choices, and how a background of each of the three common aspect ratios will be cut off by the screen edges.
Some themes are known to override the internal lua functions that provide this feature, and it will not work in those themes.
A minor preference for having ITG's feature of accumulating a large combo across multiple songs. You'll have to find Save/Preferences.ini and set it to 1 in that file to enable it.
A minor preference to cover the rare case where an arcade machine needs a different debounce time for coin input. This must be set by editing Save/Preferences.ini. Specifically, this was added to cover a case where someone had a bill acceptor added to their machine that worked by sending multiple coin insert inputs very quickly.
Kind of an internal thing, but you'll have to re-set your Default Fail Type preference.
A minor preference for making note rendering faster. If you notice that your frame rate is low during very dense streams, you'll want to turn this on. It can be set in the Graphics/Sound section of the Options. The downside is that 3D notes will clip into each other instead of later notes being drawn on top of earlier notes.
A minor option for cabinets that only have Left, Right, and Start buttons. This can be set in the Input Options section. This forces the player options screen to have a down element for each row, so the cursor can no longer get stuck on rows that have multiple selections possible.
New stuff added to Docs/Themerdocs.
Metrics are marked with [M].
Functions are marked with [F].
Attributes (things you set inside the lua file when creating the actor with Def.whatever) are marked with [A].
Bug fixes are marked with [B].
If a function is explained sufficiently by its entry in Docs/Luadoc/Lua.xml, it won't have a detailed entry.
A few examples of basic things and some advanced things now exist. Any questions for clarifying examples are welcome.
A new actor class for arbitrarily shaped actors.
Detailed documentation is Docs/Themerdocs/ScreenAMVTest overlay.lua
A new actor class for displaying a log of messages. This is what Error Reporting uses internally for displaying the errors on screen, so if you want to have a log of something on screen in your theme, it's provided for general use. _fallback/Scripts/04 LogDisplay.lua discusses its customizable features in detail.
A new actor class for displaying an interactive numpad for entering a number. This is used by ScreenHeartEntry and ScreenOptionsCustomizeProfile for entering numbers, so you'll want to read up on it when working on those screens for your theme. _fallback/Scripts/04 NumPadEntry.lua discusses it in detail, and default/BGAnimations/ScreenHeartEntry overlay.lua has an example of it in use. (NumPadEntry.lua mentions an example that doesn't actually exist yet. It seemed superfluous to create an example after having such detail in the file already)
[F] GetChild, GetChildren improved
Some themers may have known this already, some may not. If multiple actors inside an ActorFrame have the same name, GetChild would only return the first one, and GetChildren would only have one Actor by that name in the table it returns. This was particularly a problem when dealing with actors from the engine, where you can't control the name. GetChild and GetChildren were modified to return a table of all the actors by that name instead of just the single actor. The table does some fancy work to make old code that treats it as a single actor still work, but you probably want to update your code to take advantage of being able to access the individual actors anyway.
[A] Font (LoadFont obsoleted)
BitmapText will now automatically apply THEME:GetPathF to the Font attribute if it's not already the path to a valid font, so LoadFont is obsolete.
Example: Def.BitmapText{ Font= "Common Normal", Text= "Example" }
A namespace full of functions for advanced themers that want to reimplement the entire notefield in Lua. See Lua.xml for function list.
A class of functions for getting and setting the options (also called modifiers) for a player. This is a replacement for using GetPlayerOptionString/Array for fetching the player's options and a replacement for using ApplyGameCommand to set the player's options. It's intended to be used by scripted simfiles that want to use numbers instead of strings, and advanced themes that want to offer more powerful options screens. Lua.xml lists the functions and their usage. Themerdocs/modslevel.txt discusses which ModsLevel should be passed to PlayerState:GetPlayerOptions for the different uses.
Same as PlayerOptions, but for the song modifiers, like the music rate. Fetch with GAMESTATE:GetSongOptionsObject.
Minor class for storing the data passed in new JudgmentMessage parameters. Functions are listed in Lua.xml. Note that the TapNotes only exist for the duration of the song, so an data in them that is needed should be copied by calling their functions and storing what the functions return. This is for use by advanced themes that have some reason for tracking more judgment data than the engine tracks.
[M] AfterThemeChangeScreen, AfterGameChangeScreen, AfterGameAndThemeChangeScreen:
Theme and game changing logic was changed a bit internally. These metrics are optional. When the theme or game changes, Stepmania will check the appropriate metric and load that screen after the change. If the metric is not set, the InitialScreen metric is used instead.
[F] GetCurrentStage: You probably have some kludgy way of detecting whether the current stage is Stage_Final somewhere in your theme because GetCurrentStage wasn't returning the right thing when on gameplay. That's been fixed, so you can use GetCurrentStage without worrying now.
[F] GetLastGameplayDuration: This is useful for implementing heart rate based calorie calculation support in your theme. Call this function on your ScreenHeartEntry to get the length of time to pass to Profile:CalculateCaloriesFromHeartRate.
Notes and Holds parameters: When a note is hit and the "Judgment" message is broadcast, it has two new parameters. Notes is a table of all the TapNotes on that row. Holds is a table of all the TapNotes that are holds on that row. This can be used to check more detailed judging data when handling the Judgment message.
HoldNoteScore_MissedHold: HoldNoteScore_MissedHold is a new HoldNoteScore for when a hold is missed entirely because the player didn't hit the note at the start of the hold.
LifeType, DrainType, and BatteryLives used to be modifiers applied to the song, and both players were forced to use the same values. They have been moved to player options, so now they can be set to different values for each player.
The LifeMeterChanged message had a bug that causes LifeMeterChangedP1 to be broadcast for both players. This has been fixed so LifeMeterChangedP1 is broadcast for Player 1, and LifeMeterChangedP2 is broadcast for Player 2. The params table for LifeMeterChanged contains two values: Life for the value the life meter was changed to, and StepsSecond, for the time the change occurred.
[M] CourseSongRewardLives: Metric used to reward the player with battery lives after every song in a course. This metric must be set to a function. The function is passed the LifeMeterBattery for the player, and the PlayerNumber. It must return a number, which can be any amount, but the lives left will be capped by the player's BatteryLives option. _fallback/metrics.ini has a simple example.
[F] GetSelectedSection: A replacement for whatever crude kludge you're using to get the text of the current music wheel item.
Themerdocs/calories.txt lists the new functions for setting the parts of the profile related to calorie calculation.
The credits screen has been modified a bit internally to make it easier to add sections with custom theme credits without removing the main Stepmania credits.
With a new way of calculating the number of calories burned, comes a new way for entering the information it needs.
This screen appears after gameplay and before evaluation, but only if at least one of the players has it enabled and the theme supports it.
See Themerdocs/Examples/Example_Screens/ScreenHeartEntry.lua for an in-depth example.
(todo)
At a minimum, you want to set the LinesVisible metric to the correct value for your theme so that ScreenMapControllers knows when to stop scrolling the rows so the player's cursor can't go off the screen.
Themerdocs/Examples/Example_Screens/ScreenMapControllers.lua discusses the themable parts of ScreenMapControllers.
This is the screen for presenting the BackgroundFitMode preference so the player knows exactly how their choice will affect backgrounds by looking at the effect each choice has on an image of each of the common aspect ratios. _fallback/BGAnimations/ScreenSetBGFit overlay.lua is a detailed example.
Themable haste system: Themerdocs/haste.txt discusses changing the way the haste system behaves if you want your theme to have different haste behavior from the default.
SelectMenuInput message: Previously, if the SelectMenuChangesDifficulty metric was true, the SelectMenuInput message would not be broadcast for button presses with select held down. Now the message is always broadcast for button presses while select is held down.
[M] GetReturnsNumbers: TimingData contains all the timing data for a Steps, and has functions for fetching it so the theme can see what the timing data was. Previously, these functions would all return strings and the theme would have to parse the strings to turn them into numbers befor it could do anything useful. Now, if the TimingData::GetReturnsNumbers metric is set to true, the TimingData functions will return numbers instead of strings.
Published by shakesoda over 10 years ago
StepMania 5 beta 3
Published by freem over 10 years ago
StepMania 5 Alpha 3
Published by freem over 10 years ago
StepMania 5 Alpha 2