Skip to content

Releases: stepmania/stepmania

StepMania 5.1 beta 2

24 Jul 04:26
Compare
Choose a tag to compare
StepMania 5.1 beta 2 Pre-release
Pre-release

stepmania_2018-07-23_21-08-39

Roadmap notes

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.

Compiling:

Wiki page

Notes when upgrading

The user data directory has been changed to reflect the new version number;

  • Windows: %APPDATA%/StepMania 5.1/
  • Linux: ~/.stepmania-5.1/
  • macOS: ~/Library/Application Support/StepMania 5.1/

The Alternate folder preferences can be used to share content such as songs between multiple versions of StepMania.

Changes since Beta 1

Player-visible changes

  • The new default theme has undergone visual changes, including a revised color scheme and flatter appearance. Other minor adjustments have also been made.
  • Make announcers repeat their lines less (#1624 )
  • Add connection timeout to StepMania Online sockets (#1651)
  • Turn lights off on exit (#1646)

Creator-visible changes

  • Fixed handling of ThemePrefs on themes that are children (#1628)
  • Make getenv() and setenv() actually get and set the current env (52dbc11)
  • The ScreenFilter env will be nil sometimes, catch that (6452449)
  • Improve DrawQuads batching in the font render. (#1654)

Bug fixes

  • Moved display zbuffer clear to after notefields are drawn (#1679)
  • Initialise variables to ensure input thread is started (#1696)
  • Preserve event timestamps in X11 input driver (#1702)
  • Corrected Lua documentation for SONGMAN:GetCoursesInGroup() (#1712)
  • Correct implementation of grade tiers in Lambda (#1717)

Compilation

  • Fix compiling on Linux by updating the libmmmagic binaries. (#1352)

StepMania 5.1 beta 1

25 Jan 06:17
Compare
Choose a tag to compare
StepMania 5.1 beta 1 Pre-release
Pre-release

Roadmap notes

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.

Compiling:

Wiki page

Notes when upgrading

The user data directory has been changed to reflect the new version number;

  • Windows: %APPDATA%/StepMania 5.1/
  • Linux: ~/.stepmania-5.1/
  • macOS: ~/Library/Application Support/StepMania 5.1/

The Alternate folder preferences can be used to share content such as songs between multiple versions of StepMania.

Player-visible changes:

New default theme

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.

Controller support

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."

Custom songs

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)

Other

  • The ScreenEdit notefield now scales on themes with internal resolutions higher than 480p. (#1357)
  • Bug fixed where player difficulty meter and/or color inside MusicWheelItem don't update when switching between difficulties (#1361)
  • Exclusive and borderless fullscreen modes avaliable on X11 (#1485), and issues with fullscreen fixed on macOS (#1523)
  • Coin count is now saved to a file in the /Save folder. (#1405)
  • Unselectable trails are pruned from course selection when AutoSetStyle is active. (#1619)
  • Installer build script fixes. (#1625)

Creator-visible changes:

New modifiers

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.

  • Column specific modifiers; right now, this supports the maximum number of columns, 16. Note that unlike NotITG, numbering for column specific modifiers starts at 1 instead of 0.
    • Bumpy
    • Dark
    • ConfusionOffset
    • ConfusionXOffset
    • ConfusionYOffset
    • Move note columns (Usage: 100% MoveX1 moves the first column left by ARROW_SIZE.)
      • MoveX (moves a column in the x direction)
      • MoveY (moves a column in the y direction)
      • MoveZ (moves a column in the z direction)
    • Reverse
    • Tiny
  • Tangent-based modifiers
    • tanBumpy
    • tanBumpyX
    • tanDigital
    • tanDigitalZ
    • tanDrunk
    • tanDrunkZ
    • tanExpand
    • tanTipsy
    • tanTornado
    • tanTornadoZ
  • Cosecant (When set to true, all tan mods use a cosecant wave instead of a tangent wave. This is to recreate the tangent modifier behavior from nITG V1)
  • Attenuate
    • AttenuateX - attenuates on the x position.
    • AttenuateY - attenuates on the y position.
    • AttenuateZ - attenuates on the z position.
  • Beat
    • BeatOffset (50% = beat effect happens on 8th notes)
    • BeatPeriod (waveform length of the beat mod at peak wave amplitude)
    • BeatMult (multiplies the bpm of the beat effect)
    • BeatY (Beat's effect applied to the y position)
    • BeatYOffset
    • BeatYPeriod
    • BeatYMult
    • BeatZ (Beat's effect applied to the z position)
    • BeatZOffset
    • BeatZPeriod
    • BeatZMult
  • Bounce
    • Bounce - uses absolute value of a sine function
    • BouncePeriod
    • BounceOffset
    • BounceZ - Bounce's effect on the z position
    • BounceZPeriod
    • BounceZOffset
  • Bumpy
    • BumpyOffset
    • BumpyPeriod
    • BumpyX (Bumpy's effect applied to the x position)
    • BumpyXPeriod
    • BumpyXOffset
  • Confusion
    • ConfusionOffset (Rotates both notes and receptors by a given amount on the z axis, and keeps them there)
    • ConfusionX (Acts like Confusion, but on the x axis instead of the z axis)
    • ConfusionXOffset (ConfusionOffset on the x axis instead of the z axis)
    • ConfusionY (Uses the y axis instead of the z axis)
    • ConfusionYOffset: (Uses the y axis instead of the z axis.)
  • Digital (Arrow path takes the form of a digital sine wave)
    • DigitalSteps (more steps means a smoother wave)
    • DigitalPeriod
    • DigitalOffset
    • DigitalZ (Digital's effect applied to the z position)
    • DigitalZSteps
    • DigitalZPeriod
    • DigitalZOffset
  • DizzyHolds (When set to true, hold heads become affected by dizzy. Replaces the DizzyHoldHeads metric)
  • DrawSize (affects how far down the notefield renders the notes; 100% = double, -50% = half)
  • DrawSizeBack (affects how far the notefield renders notes after the receptors; 100% = double, -50% = half)
  • Drunk
    • DrunkSpeed
    • DrunkOffset
    • DrunkPeriod (change the period of the oscillations of drunk)
    • DrunkZ (Drunk's effect applied to the z position)
    • DrunkZSpeed
    • DrunkZOffset
    • DrunkZPeriod
  • Expand
    • ExpandPeriod
  • Parabola
    • ParabolaX (Arrow path takes the form of a parabola in the x position)
    • ParabolaY (Arrow path takes the form of a parabola in the y position)
    • ParabolaX (Arrow path takes the form of a parabola in the z position)
  • PulseInner
  • PulseOuter
  • PulsePeriod
  • PulseOffset
  • Sawtooth (Arrow path takes the form of a sawtooth wave)
    • SawtoothPeriod
    • SawtoothZ (Sawtooth's effect applied to the z position)
    • SawtoothZPeriod
  • ShrinkLinear
  • ShrinkMult
  • Square (Arrow path takes the form of a square wave)
    • SquarePeriod
    • SquareOffset
    • SquareZ (Square's effect applied to the z position)
    • SquareZPeriod
    • SquareZOffset
  • StealthPastReceptors (When set to true, Stealth and similar effects persist for notes that go past the receptors. Replaces the DrawHiddenNotesAfterReceptor metric)
  • StealthType (When set to true, Stealth and similar effects are based off of YOffset instead of YPosWithoutReverse. Mainly affects modifiers like BeatY and other similar mods that work on the y position)
  • Tipsy
    • TipsySpeed
    • TipsyOffset
  • Tornado
    • TornadoPeriod (control the helix length)
    • TornadoOffset (control how far into the tornado the receptors are) (100% = +1)
    • TornadoY
    • TornadoZ
    • TornadoZ (Tornado's effect applied to the z position)
    • TornadoZPeriod
    • TornadoZOffset
  • WavePeriod (Control the wave length)
  • Zigzag (Arrow path takes the form of a triangle wave)
    • ZigzagPeriod
    • ZigzagOffset
    • ZigzagZ (Zigzag's effect applied to the z position)
    • ZigzagZPeriod
    • ZigzagZOffset
  • ZBuffer (When set to true, turns on the zbuffer. Useful for when zbuffer is wanted without needing to turn on effects like 0.5% bumpy.)

Theming changes

  • A new system known as ImageCache is avaliable for caching the various types of images bundled with a simfile, such as jackets and CDTitle images among others. This expands upon the previous system used for only banners and backgrounds. (#1532)
  • StepMania now supports distance field effects and fonts. (#1546, #1547)
  • Sprite:Load function can set additional texture hints by setting a second argument (#1426)

Noteskin changes

  • New bundled noteskin, Lambda, which is designed to compliment the new default theme.
  • New NoteColorType 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)

Other

  • Additional functio...
Read more

StepMania 5.1.-3

05 Sep 13:39
Compare
Choose a tag to compare
StepMania 5.1.-3 Pre-release
Pre-release

StepMania 5.1.-3; release notes compiled and Markdown formatted by @kyzentun:

Compiling:

Wiki page

Player visible changes:

NoteSkins

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.

Edit mode

ScreenEditMenu

The screen for picking a for edit mode has been completely reworked.

  • Groups/songs displayed in a list.
  • Page up/down keys can page through the list.
  • Copying a chart from a different game type is possible.
  • History of recently edited charts to skip navigating the menu. (no cap,
    probably have to add a way to clear old entries and add a cap later)

NoteField options

  • Choose noteskin from menu.
  • Tilting if you want to edit in Distant.
  • Zoom options for adjusting size.
  • Other notefield options.

Other stuff

Player Options

  • Added life and background options back in.
  • Added menu for hiding noteskins.

Debug Menu

  • Removed Debug Lights preference so it does not persist after the game is
    restarted.
  • Removed Monkey Input from menu.
  • Moved Mute Actions to where Monkey Input was so the keys for everything
    else stay the same.

Key mapping

Screenshot key can be remapped.

NoteField

  • Changed note render order to render notes closer to the receptors on top.

Themer visible changes:

Obsolete things removed

  • ThemePrefs
  • UserPrefs
  • GamePrefs
  • CustomSpeedMods
  • ArbitrarySpeedMods

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.

NoteSkins

  • Changed various "NewSkin" and "NewField" names to "NoteSkin" and "NoteField".
  • Added hold_gray_percent.
  • Added use_hold_heads_for_taps_on_row.
  • Added custom_x.

Old notefield and noteskin systems removed

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.

Other stuff

Modifiers

  • Added modifiers that use random numbers.
  • Rewrote mod system internals to give control over how random modifiers are seeded.
  • Updated NewField_mod_system.md

Item Scroller

Added item_params arg to item_scroller:create_actors. item_params is passed
to each item when it is created.

Nesty Menus

  • Doc/Themerdocs/nesty_menus.md

Defective mode

  • Fixed bug in beat mod.
  • GetPlayerOptionsArray and GetPlayerOptionsString added to the list of lua
    functions that activate defective mode.

Profile

  • LoadProfileCustom function is now passed the player number the profile is
    being loaded for.

OptionRows Deprecated

Bad for setting numbers

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.

Cannot handle dynamic menus

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.

Per-player menus handled poorly

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.

Negative version numbers

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.

StepMania 5.0.12

14 Aug 02:00
Compare
Choose a tag to compare

StepMania 5.0.12; release notes compiled and Markdown formatted by @kyzentun:

Player visible changes:

Gameplay

  • Fixed bug that allowed pausing by pressing Select then Back. Pausing
    requires pressing the same button twice.
  • Default theme ignores holding Select, or Start during gameplay. The
    pause menu must be used to back out of a song.

Select Music

  • Added AllowHoldForOptions preference. When this is set to 0 (off), going
    to the player options screen requires pressing Start a second time, instead
    of holding it.

Other

  • Fixed bug that deleted a warp on the same beat as a stop when saving.
  • Ready and Go announcer sounds no longer play simultaneously.
  • Fixed cmake settings so that player profiles can be loaded from USB drives once again.
  • Fixed crash in loading profiles from USB drives.

Themer visible changes:

  • Bug fixes are marked with [B].
  • Functions are marked with [F].
  • Metrics added are marked with [M].

ScreenSyncOverlay

  • Actors are loaded from BGAnimations/ScreenSyncOverlay overlay instead of
    being hardcoded.

Pausing gameplay

Read Docs/Themerdocs/pause_menu.md for some explanation of handling pausing.

StepMania 5.0.12 RC

02 Jul 07:24
Compare
Choose a tag to compare
StepMania 5.0.12 RC Pre-release
Pre-release

StepMania 5.0.12; release notes compiled and Markdown formatted by @kyzentun:

Player visible changes:

Gameplay

  • Fixed bug that allowed pausing by pressing Select then Back. Pausing
    requires pressing the same button twice.
  • Default theme ignores holding Back, Select, or Start during gameplay. The
    pause menu must be used to back out of a song.

Select Music

  • Added AllowHoldForOptions preference. When this is set to 0 (off), going
    to the player options screen requires pressing Start a second time, instead
    of holding it.

Other

  • Fixed bug that deleted a warp on the same beat as a stop when saving.
  • Ready and Go announcer sounds no longer play simultaneously.
  • Fixed crash in loading profiles from usb drives.

Themer visible changes:

  • Bug fixes are marked with [B].
  • Functions are marked with [F].
  • Metrics added are marked with [M].

ScreenGameplay

  • [M] UsePauseMenuInsteadOfGiveUp

ScreenSyncOverlay

  • Actors are loaded from BGAnimations/ScreenSyncOverlay overlay instead of
    being hardcoded.

Pausing gameplay

Read Docs/Themerdocs/pause_menu.md for some explanation of handling pausing.

StepMania 5.1.0 Alpha 2

01 Apr 05:29
Compare
Choose a tag to compare
Pre-release

StepMania 5.1.0 Alpha 2; release notes compiled and Markdown formatted by @kyzentun:

Compiling:

Check the section on Compiling in the release notes for the previous 5.1.0 alpha release. Those instructions still apply.

Linux Fullscreen:

The backend for fullscreen mode on linux has been rewritten to allow control
over which display is used and whether stepmania uses exclusive mode.

NewField changes:

All themes use the NewField in gameplay now. The old NoteField actor does
not exist on gameplay anymore.

Compatibility mode:

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.

Edit Mode:

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.

NewSkin changes:

Noteskin parameters

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.

Other changes

  • Added support for 3D noteskins.
  • Added anim_time and anim_uses_beats for controlling how fast taps are
    animated.
  • Added quantum_time for controlling how many beats the quantizations are
    spread over. This should make is possible to make a noteskin where half
    notes look different from 4th notes.
  • Added edgy, EasyV2 and ExactV2 noteskins, which support dance, pump, and
    solo.
  • Removed rotations table from the column data. Set the rotation of the taps
    with InitCommand instead.
  • layers_above_notes and layers_below_notes fields merged into a single
    layers field. Each layer must set its draw order so the NewField knows
    when to render it. Each layer should also set its fade type and transform
    type so that the NewField knows which mods to apply to it.

Lifts:

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.

Other NewField changes:

  • reverse_percent changed to reverse_scale to simplify reverse code.
  • Themers should reread Docs/Themerdocs/5.1_incompatibilities/NewField.md.

Player Options:

The default theme has a new Player Options screen designed to allow setting
all the NewField related options.

Other bug fixes:

  • Fixed bug that broke charts that had scroll segments but not other timing
    segments.

Themer visible changes:

CustomSpeedMods:

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.

GameState:

The ApplyGameCommand function has been removed. Everything that it did has
been possible through other functions for a year, so it's obsolete.

Item Scroller:

A lua based alternative to ActorScroller. Docs/Themerdocs/item_scroller.md.

Judgment/Combo:

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.

Lua config system:

A lua based system for per-profile settings. Designed to save arbitrary lua
tables. Read Docs/Themerdocs/lua_config_system.md.

Notefield board:

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.

PlayerState:

  • [F] get_read_bpm added.

StepMania 5.0.11

01 Apr 05:30
Compare
Choose a tag to compare

StepMania 5.0.11; release notes compiled and Markdown formatted by @kyzentun:

This is divided into two sections:

  • Player visible changes: Bug fixes and a couple new preferences.
  • Themer visible changes: Bug fixes, new lua functions, new metrics.

Items are roughly grouped into the general part of StepMania they fit into.

Player visible changes:

Edit Mode:

  • Beat bars are drawn properly when M-mods are used.
  • Added "Clear timing in region" to timing menu.
  • Fixed crash that occurs when "Paste timing data" is used after copying a
    region of timing data that only contains stops.

Gameplay:

  • Added a pause menu to the default theme. This menu can be brought up by
    pressing Select or Back twice, or by pressing MenuLeft and MenuRight at the
    same time. The pause menu allows exiting from the middle of the song or
    restarting the song or continuing.
  • In an Endless course, songs will only be repeated after all songs
    in the group have been played.

Language:

  • Bahasa Indonesian translation added to default theme.

Minimaid:

Minimaid driver added for Linux. This is practically identical to the
Windows minimaid driver that pkgingo wrote.

Preferences:

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.

Bug Fixes:

  • Fixed No Fakes mod to remove fakes inside warps.
  • Colon key should be mappable.
  • BG Brightness is no longer forced to 100% on songs that only have a
    beginner chart.
  • Graphics/Sound options screen should not crash or hang on load anymore.
    The list of resolutions was being fetched in an inefficient and buggy way.
  • Linux event devices now start at JOY10 instead of JOY1. Without this
    change, if one dance pad is a joystick device, and the other is an event
    device, they will both be JOY1, and stepmania will think they are the same
    dance pad. If you use Linux, assume that you have to remap your dance pad.
  • Stepmania will force disconnection from the SMO server when entering the
    jukebox or sync calibration screens to avoid crash.

Themer visible changes:

Bug fixes and new functions:

  • Bug fixes are marked with [B].
  • Functions are marked with [F].
  • Metrics added are marked with [M].

Actor:

  • [F] get_tween_uses_effect_delta and set_tween_uses_effect_delta added.

Global:

  • [F] get_sound_driver_list added.

RageFileManager:

  • [B] OS X special files should be ignored in general.
  • [B] Lua functions for RageFile should now emit an error when the file was
    not opened correctly instead of crashing.

Player:

  • [F] ChangeLife and SetLife added.

Popn:

  • [B] Judgment levels in popn game mode now use W1 to W5.

ScreenManager:

  • [F] get_input_redirected and set_input_redirected added.

SelectMusic:

  • Using lua music files for the section music and similar things works now.
  • [F] Added CanOpenOptionsList. OpenOptionsList will do nothing if
    CanOpenOptionsList returns false.

StepMania 5.1.0 Alpha

31 Oct 06:04
Compare
Choose a tag to compare
StepMania 5.1.0 Alpha Pre-release
Pre-release

StepMania 5.1.0 Alpha; release notes compiled and Markdown formatted by @kyzentun:

Keep scrolling down for 5.0.10 stable release

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.

Compiling:

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.

New systems:

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.

RollingNumbers:

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.

Feature Overview:

  • More lua control: Various things that could only be set through metrics
    can now be set by calling lua functions.
  • Attributes: The attribute system from BitmapText is used, giving more
    freedom than the multiply color metric.
  • Configurable leading glyph: Any glyph can be used as the leading character
    for the number. This is for people that don't want zeroes in front.

NewSkins:

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.

Feature Overview:

  • Pure lua: The metrics system is outdated and tends to obstruct advanced
    authors trying to handle varied cases. The NewSkin system does not use
    metrics at all. Everything is done in lua.
  • Not tied to game types: A NewSkin can be used in any game type, as long as
    it supports the buttons used by the current chart.
  • Adjustable column width: The NewSkin controls how wide each column is and
    the padding on the sides of each column. The hardcoded values from the
    Style are ignored, and will be removed in a future version.
  • Quantizable holds: Hold bodies can be quantized the same way taps are, if
    the noteskin author uses the feature.
  • Superior quantization: Quantizations are not forced to fit the traditional
    categories of 4th, 8th, 12th, 16th, 24th, 32nd, 48th, 64th. Instead, notes
    are quantized using a system based on how many times a quantization occurs
    each beat. The simfile format and internal note data structures are still
    limited, but the noteskin system is not.
  • Receptor warnings: The receptors are told when the next arrow is coming,
    even if it's off the bottom of the screen, so the receptor can warn of
    upcoming notes by changing color or something.
  • Superior multiplayer support: The NewSkin system does not force a hard
    limit of 2 players, and noteskin authors are encouraged to support as many
    players as feasible. Edit mode and gameplay will need upgrades before
    more than 2 players is really possible, but the NewSkin system is prepared.

NewField:

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.

Feature Overview:

  • Columns are actors: Each column is its own actor, with extra features.
  • More info for Notefield board: The Notefield board file in Graphics should
    be a lua file now. It is passed more info to make using it for a screen
    filter easier. Using the notefield board for a screen filter makes
    positioning logic much simpler because the themer doesn't have to worry
    about the current style or how many players there are.
  • Better multiplayer support: The NewField does not pull anything from a
    global player state. Instead, all behavior is set by whatever creates the
    NewField, or by the theme. It will not be an obstacle to having more than
    2 players. Many other parts of the engine still stand in the way of
    multiplayer, but the NewField is prepared.

ModValue:

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.

Feature Overview:

  • Field mods separate from Column mods: The field and the columns have
    different mods, for doing different things.
  • Per-column mods: Each column can have its own mods.
  • Mods for more things: FOV, vanish point, field transform, column
    transform, note transform, note/explosion/receptor glow/alpha, time offset,
    quantization, reverse offset, reverse, center.
  • Separate glow and alpha: Glow and alpha are controlled by different mods
    because the white flash that hidden/sudden force in the old system bothers
    some people.
  • No hidden quirk interactions: In the old mod system, C600 + Boost plays
    differently from M600 + Boost. That's just weird and wrong, so the new
    system does not do that.
  • Splines are mods: The spline mod system added last Christmas was not well
    integrated with the old mod system because the old mod system didn't have
    a place for it. So there were weird interactions between the two that made
    splines awkward to use. Splines are part of the design of the new system,
    so they are much easier to use now.
  • Mods are equations: At its simplest, a mod is an equation that takes one
    aspect of a note as input (say, y offset) and sets an attribute based on
    that aspect (say, x position). Possible equations range from simple
    numbers to wave functions and splines.
  • Detailed control: Building on the idea of using equations for mods, there
    are many minor variables that can be set when creating a mod to customize
    exactly how it affects the notes.
  • Built in timed mods: The columns and field have managers built in that can
    be told when a mod should start and end. The manager efficiently handles
    turning mods on and off at the right times.
  • Rate adjusted mods: Mods are tied to the current time of the field, so
    when the music rate changes, mods play out at exactly the same beat. This
    relieves the burden of writing lua code to find the current music rate and
    try to adjust tween times, or forcing people to only play on 1x rate.

Options screen:

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.

Todo:

  • Adapt the new mod system so that it can be used on any actor, not just on
    the notefield and notes.
  • Create lua option rows to assist themers putting newfield mods on the
    options screen.
  • Address the problem that prevents using the spin effect on mine notes. The
    notes need some efficient way for the effect clock to be tied to the time
    passing in the notefield, instead of being tied to PLAYER_1 or PLAYER_2.
  • Add stuff that edit mode needs, like drawing beat bars and timing segment
    info.
  • Write proper entries in Lua.xml for all the new functions. The
    documentation in Docs/Themerdocs should be a supplement to Lua.xml.

Things on the way out:

Old NoteField related stuff:

NoteField, NoteDisplay, ArrowEffects, NoteSkinManager, and (most of)
PlayerOptions will probably be removed in the next release.

Styles

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 advanc...

Read more

StepMania 5.0.10

31 Oct 06:04
Compare
Choose a tag to compare

StepMania 5.0.10; release notes compiled and Markdown formatted by @kyzentun:

This is divided into three sections:

  • Build visible changes: Items related to compiling or running StepMania.
  • Player visible changes: Bug fixes and a couple new preferences.
  • Themer visible changes: Bug fixes, new lua functions, new metrics.

Items are roughly grouped into the general part of StepMania they fit into.

Build visible changes:

Running (Windows):

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.

Compiling:

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.

Player visible changes:

BMS:

  • Fixed crash when an unknown type chart was in a bms.
  • Fixed bug that would load iidx bms files as kb7.
  • Added myo2 channel layout and kb7 charts. Added preview point and
    fixed offset support and linear solo bms layout.

Course Mode:

  • Fixed loading of courses that use WORST entries.

Edit Mode:

  • Current Second display no longer has the global offset added in. Good people were
    using the Current Second when syncing charts, and having the global offset added in
    made syncing more difficult.
  • Fixed crash on missing ScreenMiniMenuTimingDataChangeInformation metrics.
  • .sm files will no longer be saved when split timing is used because
    per-chart timing cannot be done in the .sm format.
    There was some consideration of trying to change the bpm of charts when
    saving to .sm, changing the bpm of the chart to match the song and moving
    notes to occur near the same time, but that would cause most notes to be
    several milliseconds off sync. So the idea of trying to create a similar
    .sm for compatibility was discarded.
    This only matters to people using split timing, which means different
    bpm and stop data for each chart.
  • Fixed crash on entering edit mode caused by entering edit mode as Player 2.
    Edit Mode only works as Player 1.

Gameplay:

  • Fixed problems with disqualification and charts with attacks. If a chart
    has attacks, and the attack modifier is used to turn them "Off", then the
    score is disqualified.
    Turning on "Random Attacks" also disqualifies the score, even on charts that
    do not have attacks.
  • Fixed timing to apply the current music rate to the global
    offset so that playing at different music rates doesn't make a chart off
    sync.
  • Fixed bug that caused missed holds to be recorded as held in some themes.
  • Fixed bug that skipped notes on beat 0 in score.

Noteskins:

  • If the fallback for a noteskin is not found, that noteskin is not loaded,
    to prevent picking it and crashing.
  • Fixed bug where the hold body doesn't scroll if it goes off the top of the
    screen.
  • Fixed bottomcap when NoteDisplay is zoomed out.

Preferences:

  • MaxRegenComboAfterMiss preference brought in.
    When a step is missed in gameplay, the combo has to get back up to
    RegenComboAfterMiss before the player starts regaining life. If
    MaxRegenComboAfterMiss is greater than RegenComboAfterMiss, then each
    successive miss increases RegenComboAfterMiss until it reaches
    MaxRegenComboAfterMiss.
    MaxRegenComboAfterMiss defaults to 5, the same as RegenComboAfterMiss, so
    there should be no behavior change unless the preference is manually
    changed.
  • Fixed crash on Advanced Input Options on OS X caused by the Axis Fix
    preference not existing on OS X. The preference does nothing on OS X, but
    the game no longer crashes on that screen.
  • Added TimingWindowSecondsCheckpoint for the timing window that
    checkpoint holds allow you to release for.

Songs:

  • Changed song loading to allow a song to have a blank MusicFile field
    if the song has any keysounds. A blank MusicFile entry can result from
    having '#' in the music file name, or be intended for bms files. If the
    music file name comes up blank, and there are no keysounds, the engine
    looks in the song folder to find the music file, which makes loading the
    song slower.

Themer visible changes:

Bug fixes and new functions:

  • Bug fixes are marked with [B].
  • Functions are marked with [F].
  • Metrics added are marked with [M].

General:

  • Texture Font Generator included again. It was left out by accident.

Actor:

  • [B] Changed PlayCommandNoRecurse so that setting a theme metric to a
    function that doesn't exist doesn't emit an error.

ActorFrame:

  • [B] ActorFrame:SetDrawByZPosition now returns self. Missed a spot when
    implementing function chaining.

ActorMultiVertex:

  • [B] Fixed bug that sometimes caused diffuse to be applied to verts wrong.

ActorUtil:

  • [B] ActorUtil.ResolvePath and ResolveRelativePath now take a boolean flag
    to tell if the thing is optional.

BitmapText:

  • [F] set_mult_attrs_with_diffuse

CryptMan:

  • [B] Fixed bug that clipped hash strings with zeros.

Fonts:

  • Respliced large kanji sprite sheets from 32x106 and 32x61 to 63x54 and
    48x41 to bring them under 4096 pixels tall, which was causing a forced
    resize and slowing down loading time. If your theme spends extra time in
    the black screen phase before the splash screen, check your font image
    sizes. Aim for the smallest power of 2 size in each dimension, and try to
    keep both dimensions under 4096.

Gameplay:

  • [B] Fixed song position updating logic so that the ScreenGameplay:PauseGame
    lua function actually pauses the game. Start, Select, and Back are all used
    for different ways of giving up, so the feature remains unused in the
    default theme.
  • [B] Fixed Player logic that spammed TNS_AvoidMine repeatedly.
  • [M] Random background video behavior is now controlled by these
    three metrics in the Background section:
    RandomBGStartBeat sets the beat of the music the first random bg occurs on.
    RandomBGChangeMeasures sets the number of measures between changes.
    RandomBGChangesWhenBPMChangesAtMeasureStart toggles the behavior in its name.
    RandomBGEndsAtLastBeat toggles the behavior in its name. Defaults to true.

MusicWheel:

  • [B] Fixed SetItemPosition so that it actually passes the item index and the
    number of items to the transform function.

ScreenEvaluation:

  • [B] Changed assert that occurs when leaving ScreenGameplay with
    SM_GoToNextScreen to give more info. (this only matters to certain
    misbehaving lua scripts that don't let ScreenGameplay finish the normal
    way.)
  • [B] Fixed bug that caused missed holds to be recorded as held in the
    value returned by PlayerStageStats:GetRadarActual().

ScreenMapControllers:

  • [M] If the AutoDismissWarningSecs metric is less than .25 seconds, the
    warning will not be shown (the TweenOn command for it will not be played).
    Instead, the NeverShow command will be played. If the NeverShow command
    does not exist for the warning actor, the warning actor will be set to
    hibernate forever.

Sprite:

  • [F] set_use_effect_clock_for_texcoords

Song:

  • [F] GetMainTitle

SextetStream

  • Now compiled in for all platforms.

Compiling (part 2)

  • Number of jobs used when building ffmpeg can be customized by
    WITH_FFMPEG_JOBS.
  • Fixed cmake error when compiling with -DWITH_SSE2=off.
  • Link with /MT on windows instead of /MD.
  • Compiling stepmania on Windows with the locale set to Japanese should work now.
  • Fixed compiling on 32bit linux.
  • FFmpeg upgraded to 2.1.3 on Windows and Mac OS X.
  • Fixed cmake WITH_SYSTEM_FFMPEG option.
  • Symbolic links will be followed to find the actual executable dir.
  • Minimaid support built in by default instead of off by default.

StepMania 5.0.9

20 Jun 20:44
Compare
Choose a tag to compare

StepMania 5.0.9; release notes compiled and Markdown formatted by @kyzentun:

This is divided into two sections:

  • Player visible changes: New configuration options players should try out,
  • Themer visible changes: New (optional) screens that themes can support, new metrics or lua functions, or fixes for existing functions.

Items are roughly grouped into the general part of StepMania they fit into.

Compiling:

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.

Player visible changes:

BMS:

  • .lua files defined in the #BMP tags now work as BG animations.
  • The #difficulty tag is now supported. The difficulty numbers 1-6 map to
    StepMania's difficulties from Novice to Edit.

Bug fixes:

  • Autokeysounds are no longer twice as loud when playing keysounded charts
    with two players.
  • 1 pixel seam in hold cap rendering fixed.
  • Noteskin animation fixed.

ScreenOverscanConfig:

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.

Themer visible changes:

Bug fixes and new functions:

  • Attributes added are marked with [A].
  • Bug fixes are marked with [B].
  • Functions are marked with [F].

Actor:

  • [B] bounce and bob effects no longer round pixel coords.
    When an actor had a slow tween moving it in a direction and a slow bounce
    effect, the bounce would round the resulting position and cause jitter. That
    jitter is gone now.
  • [B] BlendMode_Subtract no longer crashes on the d3d renderer. It does not
    do proper subtraction blending, this is just a bandaid to prevent crashing.

Global:

  • [F] get_music_file_length
  • [F] multiapproach function now takes an optional 4th argument to multiply
    the speeds by.
  • [F] update_centering

OptionsList:

The OptionsListQuickChange, OptionsListLeft, and OptionsListRight messages
now have a Selection parameter that has the id of the selection the player
moved to.

RageFile:

  • [F] Flush

ScreenInitialScreenIsInvalid:

If you see this screen come up, you need to fix the InitialScreen metric in
your theme.