Project OutFox Wiki
Toggle Dark/Light/Auto modeToggle Dark/Light/Auto modeToggle Dark/Light/Auto mode

BMS/BME/PMS Support

Project OutFox contains parsers for the BMS and PMS chart formats, which are the standard formats used in conjunction with mostly the beat and popn game types. The following page contains details on the BMS/PMS channels that Project OutFox currently supports. This is a living document, and will be updated as progress is made to expand the work to support as much of these as possible.


Introduction


The BMS file standard was devised by Urao Yane in 1998. It was originally created to be a format to simulate the game Beatmania by Konami. There have been several dozen interations over the years, and we will talk about some of them here in one easy to contain and read page. Do not be afraid of this format, it is incredibly versatile and have been used to simulate a variety of games.

Project OutFox uses mostly BM98 (1998 to 2003) era definitions for this file standard, though it is improving all the time. The format is used to simulate most of the ‘Down Scroll Rhythm Game Systems’ and is known by several other derivatives which we are also slowly building support for.

BMS charts are mostly composed by artists from Asia, so reading them in non-asian locales can be difficult. OutFox will be overcoming this limitation in a future update, so do not delete all your charts which just show ?????????? just yet!

The other two file types on this page, PMS and BME were born from this format and are used for other types of games. PMS was originally designed to simulate Keyboardmania and had a very different channel layout than BMS, but it’s use moved towards po-mu / feeling po-mu (po-mu is short for Pop’n Music). This had a unique layout for 9 key/button charts.

BME is an Extension of BMS and offers newer features that were not offered in raw simulators of BM98. This was also used in the actual arcade and console games for a few years in the early 2000s. Project OutFox recently fixed a lot of support for this parser, along with adding several of the missing modes often charted by simfile authors. This extension allowed for channel numbers beyond 00-99 (99 values), then extended to base16 for 00-FF (255 values), which was then finally extended to 00-ZZ (1295 values), being based on base36.

The other system we support is BML files, which PMS incorporated by default in 2002. BML adds Long Note (known as holds in StepMania), which again extends the BMS specification. We will support both BME and BML fully in an upcoming release and update these documents in the future.

Again, if you feel any particular command or object should be included, do let us know. There are quite a few bits of the specification that just simply have not been considered or added at this time, I’m documenting what we do have, and you are more than welcome to give suggestions for future additions. - Squirrel


Basic Format


The BMS file format describes how notes are arranged and how the game is meant to behave if/when a player takes a specific action. It is usually a simple plain text file with the command lines starting with the # character.

The file consists of a HEADER FIELD section and a MAIN DATA FIELD section. We will be going through in detail on the most commonly used commands and channels so you have the information here. A lot of the available commands ever offered to BMS/PMS over the years have faded into deprecation/not being used, but the ones we have seen in actual files include what we will be supporting.

If you find a file that is not showing up in OutFox you may need to switch the encoding options of the chart, or just wait until the new string system is added in the future.

Commands are in the header formatted as the following:

#[Command] [Value]

For these commands, a space between the command and value is required or you will have offset issues in most simulators. A Simple Example of some common commands used in the header field are:

*---------------------- HEADER FIELD
#PLAYER 3
#GENRE Dance
#TITLE My Dance Classics
#ARTIST DJ Superstar
#BPM 128
#PLAYLEVEL 5
#TOTAL 100
#RANK 2

#bmp00 miss.bmp
#bmp01 01.bmp
#wav01 01.wav

*---------------------- MAIN DATA FIELD
#00111:01010101
#00211:0101010001010100

Common HEADER FIELD commands


#PLAYER n [1 - 4]

Status: ✅ Supported

Usage Example:

#PLAYER 3 

This command defines the play style that the chart is set for. In the earlier versions of BMS they also specified the number of players.

  • 1 = 1 Player or Single Play, with 1 life gauge.
  • 2 = 1 + 2 Player or Couples Play, with 2 life gauges. Mostly deprecated and not used. OutFox mostly supports these and can parse them under the old iidx-* styles from SM3.x
  • 3 = 1 Player on 2 sides, or Double play. Modern sims use this value the most, or just ignore the PLAYER setting completely. Often a lot of PMS files have value of 3, though I have not been able to find out why. OutFox supports the odd use of this command but again most simulators post 2015 ignore this value.
  • 4 = 1 vs 2 Player, or Battle Play, with two life gauges, which was removed in iidx19, has fallen out of favour in use. I have actually only found PMS battle mode files with 3 key vs 3 key chart styles from portable 2. OutFox currently can parse these files, but has no battle mode support.

Project OutFox also supports ‘duet’ or normal 2 player mode without needing to be set in the file itself, by joining a second player on the select music screen. As of Alpha 4.9.8 this was extended to PMS offering new modes with a 2 player option of po-mu for the first time. All popn styles (3k, 4k, 5k, 7k, 9k) have 2 player support now, with battle mode planned in the future.


#GENRE genre [string]

Status: ✅ Supported

Usage Example:

#GENRE Blues 

This command sets the genre or type of music that the chart is going to play. It could be used by the simulator for sorting or grouping charts, or to allow for just more information to be displayed on the song select screen. The genre is usually written in SHIFT-JIS on older charts, but UTF8/UTF16 are becoming a lot more common, so do check.


#TITLE title [string]

Status: ✅ Supported

Usage Example:

#TITLE Take (Bamboo) 

The title command sets the SongTitle and this will be displayed on the song wheel to be selected, as well on the screen gameplay and evaluation screen. It will also be recorded in high scores and on your profile etc. Older charts used SHIFT-JIS.


#ARTIST artist [string]

Status: ✅ Supported

Usage Example:

#ARTIST 立秋 feat.ちょこ

The artist command sets the SongArtist and this is usually displayed on the song wheel when selected and on the evaluation screen. The artist information is usually recorded in high scores and on your profile. Older charts used SHIFT-JIS.


#BPM n [0.0-1400.00]/[0-255]

Status: ✅ Supported

Usage Example:

#BPM 140.35

This setting allows the chart to specify the beginning (or starting) BPM of a song. This value will also be shown in the music wheel, and will be setting the speed that will be used as part of the modifiers / scrolling of the notes. This value used to require a whole number. Project OutFox allows for floats here - you are limited to 6 decimal places - so 143.000290 as an example.

Older simulators do not support decimal point BPM values, and you cannot enter a value above 255 as it can crash the simulator in question. If you are wishing to make your chart portable to other programs, bear this in mind; not every simulator supports this!

This value also can (and will!) be overwritten by channel commands/settings later on in the chart.


#PLAYLEVEL n [0-6]/[0-9]/[1-49]

Status: ✅ Supported

Usage Example:

#PLAYLEVEL 5

The playlevel sets the number of ‘stars’ (from the old games) or the difficulty specified. In BMS files this difficulty ranges normally from 0 to 6 - 6 being the hardest. The older scale from 0 to 9 was from the BM98 spec, which was never really used much or supported.

In some BME and most PMS files, the playlevel can be from 1 to 49. This reflects the style from other games with the wider difficulty ranges, and po-mu has had a wider difficulty rating for some years.

In older versions of StepMania, this difficulty used to be squished into a 5 tier difficulty system and sometimes didn’t really work that well. It needed to use a hint from the file name to ensure it didn’t make everything an EDIT. This also meant that a lot of charts disappeared/were not parsed correctly and was generally not that suitable for use. OutFox has remedied this by fixing how the parser sees difficulties, and also widens the difficulty arc to out of 10 fields.


#RANK n [0-4]

Status: ❌ Unsupported

Usage Example:

#RANK 2

The rank entry used in the old BMS specification used to allow the chart artist to select a difficulty on how the ‘timing window’ would be set when playing the chart. It was designed for those simulators that didn’t have ways of difficulty or setting different timing windows.

There were 5 different ranks, the last being added by nanasi which was a more relaxed timing window compared to the other simulators. Almost all of the simulators that are active today set 2 as the default. The old ranking timing windows are listed below for historical purposes. They are ignored on OutFox as we have a custom timing window solution, but if you would like us to add this to set a timing system in the future, do let us know!

Value Label COOL Time window
0 VERY HARD +/- 8ms
1 HARD +/- 15ms
2 NORMAL +/- 18ms
3 EASY +/- 21ms
4 VERY EASY +/- 33ms

Most of these timing windows are not really tied to any specific game or methodology of timing, so it is why we made the decision to not support any of the RANK commands: we also do not support the timing system used by Angolmois which uses 6 ranks. We do not support #DEFEXRANK / #EXRANK as they were additions by nanasi and it seems they did not carry over to be commonly used in other simulators. Changing timing mid song is something we could support, but we do not really see a need to add that to the engine at this time.

The ‘timing’ windows used in Project OutFox are closer to RANK 2 to follow the standard others use.


#TOTAL n [0-999]

Status: ❌ Unsupported

Usage Example:

#TOTAL 430

The TOTAL command is to set the value of what could be considered an extension of the ‘gauge’ in older simulators, before life gauges existed. The value of TOTAL is added to a normal gauge to increase it’s length. if the value was 300, then the gauge would go from 0 to 100% in size, to the intial value (normally around 25% + 300% for a total gauge size of 325%).

This only occurs when the notes are hit and combo is kept, otherwise things would return to the old gauge size. It was more of a consideration on gauge/groove/clear amounts (what you needed to reach to be considered a pass in that song). This did lead to some confusion on how TOTAL should affect the gameplay/level of the chart.

The gauge never changed size; it was an off screen calculation on how you could ‘score’ your chart. Several simulators over the years have changed this value if TOTAL was omitted, we at the moment do not honour the value, mainly because we do not follow the iidx scoring system since 2005.


#MAKER maker [string] or

#CREDIT credit [string] or

#SUBARTIST subartist [string]

Status: ✅ Supported

Usage Example:

#MAKER Ima StepChart

or

#CREDIT Ima StepChart

or

#SUBARTIST Ima StepChart

The MAKER or CREDIT command simply allows the author or maker of the chart to add their credit so it will be displayed in the simulator. The main support for MAKER comes from around 2002 onwards. It is common in most 5 Key styles to be used, as well as being used on 10 Key (double play) styles. CREDIT is more recent, being seen from around 2013 in charts. I know not it’s origin, we support both as to not ignore honouring those that take the time to make charts for us to enjoy.

Since around 2017, another command, SUBARTIST began to be used more commonly in BME/PMS files, which was inherited from DTX. The sub artist is not normally displayed until the evaluation screen on earlier simulators, but in OutFox we treat all three of these in the same manner. If you are creating a new BMS chart, then #MAKER is usually safer to use for other simulator support.


#STAGEFILE stagefile [string]

Status: ✅ Supported

Usage Example:

#STAGEFILE loadingscreen.png

The stagefile command is used to set an image to the ‘loading screen’ of the simulator - when the song and options/modifiers have been set, this file is then placed as part of the loading process on the ‘loading screen’.

On older simulators, this loading process could take a long time, so it was wise to incorporate a loading screen system into the simulator. This has also been recently done in Project OutFox so we do not need to freeze the game while loading these files any more. This file is read in and parsed, just no theme at the moment takes advantage of the loading screen as of yet.


Main DATA FIELD commands


#SCROLLxx n.n [-999.0 - 999.0]

Status: ✅ Supported

Definition Usage Example:

#SCROLL01 0.5
#SCROLL02 1.0
#SCROLL03 -2.75

Channel Usage Example:

#003SC:02010001
#005SC:03000002

The scroll command works similar to how it does in native SM5, but if you are unfamiliar with the system, the value is a multiplier of the speed of the movement of any note on the screen.

If your notes were moving at 130BPM, but you did not wish to edit the BPM directly, you could use scroll to change that speed. The game also supports negative values (this has the affect of moving things in the opposite direction), which can provide some very interesting affects.

The channel command to action #SCROLL values are a Base36 value which are #xxxSC. There are several benefits to using this system as legacy BMS use items you need to name on each measure, whereas #xxxSC can last beyond this restriction. You need to be aware, not many clients support this system, so it is not backwards compatible if you are making your chart available to other simulators.


Key:

  • ✅ Fully supported and used in Mode
  • ✓ Fully supported and not used in Mode
  • 📝? No Documentation on this channel’s support
  • ❌ Not Supported / Not Available
  • ~ Not Used

Channel Support Table

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
01 Background Music Background Music Background Music Supported
02 Measure Length Measure Length Measure length Supported
03 Set Initial BPM Set Initial BPM Set Initial BPM Supported
04 BGA Base BGA Base BG Base Supported - needs enabling
05 eXtended Object eXtended Object eXtended Object Supported
06 BGA Layer Miss BGA Layer Miss BGA Poor Supported - needs enabling
07 BGA Layer BGA Layer BG Layer Supported - needs enabling sits above channel 4
08 Extended BPM Extended BPM Set BPM Supported - Changes bpm to value
09 Stop Stop Stop Supported
0A Not Used ~ BGA Layer 2 BGA Layer 2 Supported
0B Not Used ~ BGA Base Opacity BGA Base Opacity Not Supported
0C Not Used ~ BGA Layer Opacity Not Used ~ Not Supported
0D Not Used ~ BGA Layer 2 Opacity Not Used ~ Not Supported
0E Not Used ~ BGA Poor Opacity BGA Poor Opacity Not Supported
0F Not Used ~ Not Used ~ Not Used ~ Not Used

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
10 Not Used ~ Not Used ~ Not Used ~ Not Used
11 P1 Key 1 P1 Key 1 P1 Left White Supported
12 P1 Key 2 P1 Key 2 P1 Left Yellow Supported
13 P1 Key 3 P1 Key 3 P1 Left Green Supported
14 P1 Key 4 P1 Key 4 P1 Left Blue Supported
15 P1 Key 5 P1 Key 5 P1 Red Supported
16 P1 Turn/Scratch P1 Turn/Scratch Not Used ~ Supported
17 P1 FootPedal P1 FootPedal Not Used ~ Not Supported
18 P1 Key 6 P1 Key 6 Not Used ~ Supported
19 P1 Key 7 P1 Key 7 Not Used ~ Supported
1A Not Used ~ Not Used ~ Not Used ~ Not Used
1B Not Used ~ Not Used ~ Not Used ~ Not Used
1C Not Used ~ Not Used ~ Not Used ~ Not Used
1D Not Used ~ Not Used ~ Not Used ~ Not Used
1E Not Used ~ Not Used ~ Not Used ~ Not Used
1F Not Used ~ Not Used ~ Not Used ~ Not Used

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
20 Not Used ~ Not Used ~ Not Used ~ Not Used
21 P2 Key 1 P2 Key 1 Not Used Supported
22 P2 Key 2 P2 Key 2 P1 Right Blue Supported
23 P2 Key 3 P2 Key 3 P1 Right Green Supported
24 P2 Key 4 P2 Key 4 P1 Right Yellow Supported
25 P2 Key 5 P2 Key 5 P1 Right White Supported
26 P2 Turn/Scratch P2 Turn/Scratch Not Used ~ Supported
27 P2 FootPedal P2 FootPedal Not Used ~ Not Supported yet
28 P2 Key 6 P2 Key 6 Not Used ~ Supported
29 P2 Key 7 P2 Key 7 Not Used ~ Supported
2A Not Used ~ Not Used ~ Not Used ~ Not Used
2B Not Used ~ Not Used ~ Not Used ~ Not Used
2C Not Used ~ Not Used ~ Not Used ~ Not Used
2D Not Used ~ Not Used ~ Not Used ~ Not Used
2E Not Used ~ Not Used ~ Not Used ~ Not Used
2F Not Used ~ Not Used ~ Not Used ~ Not Used

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
30 Not Used ~ Not Used ~ Not Used ~ Not Used
31 P1 Key 1 Hidden P1 Key 1 Hidden P1 Left White Hidden Supported in 4.10.0
32 P1 Key 2 Hidden P1 Key 2 Hidden P1 Left Yellow Hidden Supported in 4.10.0
33 P1 Key 3 Hidden P1 Key 3 Hidden P1 Left Green Hidden Supported in 4.10.0
34 P1 Key 4 Hidden P1 Key 4 Hidden P1 Left Blue Hidden Supported in 4.10.0
35 P1 Key 5 Hidden P1 Key 5 Hidden P1 Left Red Hidden Supported in 4.10.0
36 P1 Turn/Scratch Hidden P1 Turn/Scratch Hidden Not Used ~ Supported in 4.10.0
37 P1 FootPedal Hidden P1 FootPedal Hidden Not Used ~ Supported in 4.10.0
38 P1 Key 6 Hidden P1 Key 6 Hidden Not Used ~ Supported in 4.10.0
39 P1 Key 7 Hidden P1 Key 7 Hidden Not Used ~ Supported in 4.10.0
3A Not Used ~ Not Used ~ Not Used ~ Not Used
3B Not Used ~ Not Used ~ Not Used ~ Not Used
3C Not Used ~ Not Used ~ Not Used ~ Not Used
3D Not Used ~ Not Used ~ Not Used ~ Not Used
3E Not Used ~ Not Used ~ Not Used ~ Not Used
3F Not Used ~ Not Used ~ Not Used ~ Not Used

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
40 Not Used ~ Not Used ~ Not Used ~ Not Used
41 P2 Key 1 Hidden P2 Key 1 Hidden Not Used ~ Supported in 4.10.0
42 P2 Key 2 Hidden P2 Key 2 Hidden P1 Right Blue Hidden Supported in 4.10.0
43 P2 Key 3 Hidden P2 Key 3 Hidden P1 Right Green Hidden Supported in 4.10.0
44 P2 Key 4 Hidden P2 Key 4 Hidden P1 Right Yellow Hidden Supported in 4.10.0
45 P2 Key 5 Hidden P2 Key 5 Hidden P1 Right White Hidden Supported in 4.10.0
46 P2 Turn/Scratch Hidden P2 Turn/Scratch Hidden Not Used ~ Supported in 4.10.0
47 P2 FootPedal Hidden P2 FootPedal Hidden Not Used ~ Supported in 4.10.0
48 P2 Key 6 Hidden P2 Key 6 Hidden Not Used ~ Supported in 4.10.0
49 P2 Key 7 Hidden P2 Key 7 Hidden Not Used ~ Supported in 4.10.0
4A Not Used ~ Not Used ~ Not Used ~ Not Used
4B Not Used ~ Not Used ~ Not Used ~ Not Used
4C Not Used ~ Not Used ~ Not Used ~ Not Used
4D Not Used ~ Not Used ~ Not Used ~ Not Used
4E Not Used ~ Not Used ~ Not Used ~ Not Used
4F Not Used ~ Not Used ~ Not Used ~ Not Used

Long Note Sections #xxx51-69 - #LNTYPE1, #LNTYPE2 (BML/PMS)

The original Long Note Implementation is now supported in OutFox, and we do parse #LNTYPE. We have tested these with a lot of different charts from the mid 2000s and we are now reproduce these perfectly.

BME and PMS support for these channels is to the LR2 specification, where Player 1 channels are used. The Player 2 Channel options are not included in this specification.

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
50 Not Used ~ Not Used ~ Not Used ~ Not Supported
51 P1 Key 1 LongNote P1 Key 1 LongNote P1 Left While LongNote Supported in 4.10.0
52 P1 Key 2 LongNote P1 Key 2 LongNote P1 Left Yellow LongNote Supported in 4.10.0
53 P1 Key 3 LongNote P1 Key 3 LongNote P1 Left Green LongNote Supported in 4.10.0
54 P1 Key 4 LongNote P1 Key 4 LongNote P1 Left Blue LongNote Supported in 4.10.0
55 P1 Key 5 LongNote P1 Key 5 LongNote P1 Red LongNote Supported in 4.10.0
56 P1 Turn/Scratch LongNote P1 Turn/Scratch LongNote Not Used ~ Supported in 4.10.0
57 P1 FootPedal LongNote P1 FootPedal LongNote Not Used ~ Supported in 4.10.0
58 P1 Key 6 LongNote P1 Key 6 LongNote Not Used ~ Supported in 4.10.0
59 P1 Key 7 LongNote P1 Key 7 LongNote Not Used ~ Supported in 4.10.0
5A Not Used ~ Not Used ~ Not Used ~ Not Used
5B Not Used ~ Not Used ~ Not Used ~ Not Used
5C Not Used ~ Not Used ~ Not Used ~ Not Used
5D Not Used ~ Not Used ~ Not Used ~ Not Used
5E Not Used ~ Not Used ~ Not Used ~ Not Used
5F Not Used ~ Not Used ~ Not Used ~ Not Used

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
60 Not Used ~ Not Used ~ Not Used ~ Not Used
61 P2 Key 1 LongNote P2 Key 1 LongNote Not Used ~ Supported in 4.10.0
62 P2 Key 2 LongNote P2 Key 2 LongNote P1 Right Blue LongNote Supported in 4.10.0
63 P2 Key 3 LongNote P2 Key 3 LongNote P1 Right Green LongNote Supported in 4.10.0
64 P2 Key 4 LongNote P2 Key 4 LongNote P1 Right Yellow LongNote Supported in 4.10.0
65 P2 Key 5 LongNote P2 Key 5 LongNote P1 Right White LongNote Supported in 4.10.0
66 P2 Turn/Scratch LongNote P2 Turn/Scratch LongNote Not Used ~ Supported in 4.10.0
67 P2 FootPedal LongNote P2 FootPedal LongNote Not Used ~ Supported in 4.10.0
68 P2 Key 6 LongNote P2 Key 6 LongNote Not Used ~ Supported in 4.10.0
69 P2 Key 7 LongNote P2 Key 7 LongNote Not Used ~ Supported in 4.10.0
6A Not Used ~ Not Used ~ Not Used ~ Not Used
6B Not Used ~ Not Used ~ Not Used ~ Not Used
6C Not Used ~ Not Used ~ Not Used ~ Not Used
6D Not Used ~ Not Used ~ Not Used ~ Not Used
6E Not Used ~ Not Used ~ Not Used ~ Not Used
6F Not Used ~ Not Used ~ Not Used ~ Not Used

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
70 Not Used ~ Not Used ~ Not Used ~ Not Used
71 Not Used ~ Not Used ~ Not Used ~ Not Used
72 Not Used ~ Not Used ~ Not Used ~ Not Used
73 Not Used ~ Not Used ~ Not Used ~ Not Used
74 Not Used ~ Not Used ~ Not Used ~ Not Used
75 Not Used ~ Not Used ~ Not Used ~ Not Used
76 Not Used ~ Not Used ~ Not Used ~ Not Used
77 Not Used ~ Not Used ~ Not Used ~ Not Used
78 Not Used ~ Not Used ~ Not Used ~ Not Used
79 Not Used ~ Not Used ~ Not Used ~ Not Used
7A Not Used ~ Not Used ~ Not Used ~ Not Used
7B Not Used ~ Not Used ~ Not Used ~ Not Used
7C Not Used ~ Not Used ~ Not Used ~ Not Used
7D Not Used ~ Not Used ~ Not Used ~ Not Used
7E Not Used ~ Not Used ~ Not Used ~ Not Used
7F Not Used ~ Not Used ~ Not Used ~ Not Used

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
80 Not Used ~ Not Used ~ Not Used ~ Not Used
81 Not Used ~ Not Used ~ Not Used ~ Not Used
82 Not Used ~ Not Used ~ Not Used ~ Not Used
83 Not Used ~ Not Used ~ Not Used ~ Not Used
84 Not Used ~ Not Used ~ Not Used ~ Not Used
85 Not Used ~ Not Used ~ Not Used ~ Not Used
86 Not Used ~ Not Used ~ Not Used ~ Not Used
87 Not Used ~ Not Used ~ Not Used ~ Not Used
88 Not Used ~ Not Used ~ Not Used ~ Not Used
89 Not Used ~ Not Used ~ Not Used ~ Not Used
8A Not Used ~ Not Used ~ Not Used ~ Not Used
8B Not Used ~ Not Used ~ Not Used ~ Not Used
8C Not Used ~ Not Used ~ Not Used ~ Not Used
8D Not Used ~ Not Used ~ Not Used ~ Not Used
8E Not Used ~ Not Used ~ Not Used ~ Not Used
8F Not Used ~ Not Used ~ Not Used ~ Not Used

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
90 Not Used ~ Not Used ~ Not Used ~ Not Used
91 Not Used ~ Not Used ~ Not Used ~ Not Used
92 Not Used ~ Not Used ~ Not Used ~ Not Used
93 Not Used ~ Not Used ~ Not Used ~ Not Used
94 Not Used ~ Not Used ~ Not Used ~ Not Used
95 Not Used ~ Not Used ~ Not Used ~ Not Used
96 Not Used ~ Not Used ~ Not Used ~ Not Used
97 Not Used ~ Not Used ~ BGM Volume Not Supported
98 Not Used ~ Not Used ~ KeySound Volume Not Supported
99 Not Used ~ Not Used ~ TEXT String Not Supported
9A Not Used ~ Not Used ~ Not Used ~ Not Used
9B Not Used ~ Not Used ~ Not Used ~ Not Used
9C Not Used ~ Not Used ~ Not Used ~ Not Used
9D Not Used ~ Not Used ~ Not Used ~ Not Used
9E Not Used ~ Not Used ~ Not Used ~ Not Used
9F Not Used ~ Not Used ~ Not Used ~ Not Used

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
A0 Not Used ~ Not Used ~ Not Used ~ Not Used
A1 Not Used ~ Not Used ~ Not Used ~ Not Used
A2 Not Used ~ Not Used ~ Not Used ~ Not Used
A3 Not Used ~ Not Used ~ Not Used ~ Not Used
A4 Not Used ~ Not Used ~ Not Used ~ Not Used
A5 Not Used ~ Not Used ~ Not Used ~ Not Used
A6 Not Used ~ Change Option Change Option This was the deprecated mod system for BMS and PMS.
A7 Not Used ~ Not Used ~ Not Used ~ Not Used
A8 Not Used ~ Not Used ~ Not Used ~ Not Used
A9 Not Used ~ Not Used ~ Not Used ~ Not Used
AA Not Used ~ Not Used ~ Not Used ~ Not Used
AB Not Used ~ Not Used ~ Not Used ~ Not Used
AC Not Used ~ Not Used ~ Not Used ~ Not Used
AD Not Used ~ Not Used ~ Not Used ~ Not Used
AE Not Used ~ Not Used ~ Not Used ~ Not Used
AF Not Used ~ Not Used ~ Not Used ~ Not Used

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
B0 Not Used ~ Not Used ~ Not Used ~ Not Used
B1 Not Used ~ Not Used ~ Not Used ~ Not Used
B2 Not Used ~ Not Used ~ Not Used ~ Not Used
B3 Not Used ~ Not Used ~ Not Used ~ Not Used
B4 Not Used ~ Not Used ~ Not Used ~ Not Used
B5 Not Used ~ Not Used ~ Not Used ~ Not Used
B6 Not Used ~ Not Used ~ Not Used ~ Not Used
B7 Not Used ~ Not Used ~ Not Used ~ Not Used
B8 Not Used ~ Not Used ~ Not Used ~ Not Used
B9 Not Used ~ Not Used ~ Not Used ~ Not Used
BA Not Used ~ Not Used ~ Not Used ~ Not Used
BB Not Used ~ Not Used ~ Not Used ~ Not Used
BC Not Used ~ Not Used ~ Not Used ~ Not Used
BD Not Used ~ Not Used ~ Not Used ~ Not Used
BE Not Used ~ Not Used ~ Not Used ~ Not Used
BF Not Used ~ Not Used ~ Not Used ~ Not Used

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
C0 Not Used ~ Not Used ~ Not Used ~ Not Used
C1 Not Used ~ Not Used ~ Not Used ~ Not Used
C2 Not Used ~ Not Used ~ Not Used ~ Not Used
C3 Not Used ~ Not Used ~ Not Used ~ Not Used
C4 Not Used ~ Not Used ~ Not Used ~ Not Used
C5 Not Used ~ Not Used ~ Not Used ~ Not Used
C6 Not Used ~ Not Used ~ Not Used ~ Not Used
C7 Not Used ~ Not Used ~ Not Used ~ Not Used
C8 Not Used ~ Not Used ~ Not Used ~ Not Used
C9 Not Used ~ Not Used ~ Not Used ~ Not Used
CA Not Used ~ Not Used ~ Not Used ~ Not Used
CB Not Used ~ Not Used ~ Not Used ~ Not Used
CC Not Used ~ Not Used ~ Not Used ~ Not Used
CD Not Used ~ Not Used ~ Not Used ~ Not Used
CE Not Used ~ Not Used ~ Not Used ~ Not Used
CF Not Used ~ Not Used ~ Not Used ~ Not Used

LandMine Sections #xxxD1-E9 - (BMS/PMS)

The original Land Mine Implementation is now supported in OutFox after some serious rewriting of the code to ensure these extended (greater than 9) channels were supported. We have tested these with a lot of different charts from the mid 2000s and we are now reproduce these perfectly with mines behaving as expected on BMS/BME and PMS files. Thanks to Bobini for the suggestion on ensuring that these channels were supported.

BME and PMS support for the landmines (mines) is now 100% complete, and work as planned.

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
D0 Not Used ~ Not Used ~ Not Used ~ Not Used
D1 Not Used ~ P1 Key 1 LandMine P1 Left White LandMine Supported in 4.10.0
D2 Not Used ~ P1 Key 2 LandMine P1 Left Yellow LandMine Supported in 4.10.0
D3 Not Used ~ P1 Key 3 LandMine P1 Left Green LandMine Supported in 4.10.0
D4 Not Used ~ P1 Key 4 LandMine P1 Left Blue LandMine Supported in 4.10.0
D5 Not Used ~ P1 Key 5 LandMine P1 Red LandMine Supported in 4.10.0
D6 Not Used ~ P1 Turn/Scratch LandMine Not Used ~ Supported in 4.10.0
D7 Not Used ~ P1 FootPedal LandMine Not Used ~ Supported in 4.10.0
D8 Not Used ~ P1 Key 6 LandMine Not Used ~ Supported in 4.10.0
D9 Not Used ~ P1 Key 7 LandMine Not Used ~ Supported in 4.10.0
DA Not Used ~ Not Used ~ Not Used ~ Not Used
DB Not Used ~ Not Used ~ Not Used ~ Not Used
DC Not Used ~ Not Used ~ Not Used ~ Not Used
DD Not Used ~ Not Used ~ Not Used ~ Not Used
DE Not Used ~ Not Used ~ Not Used ~ Not Used
DF Not Used ~ Not Used ~ Not Used ~ Not Used

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
E0 Not Used ~ Not Used ~ Not Used ~ Not Used
E1 Not Used ~ P2 Key 1 LandMine Not Used ~ Supported in 4.10.0
E2 Not Used ~ P2 Key 2 LandMine P1 Right Blue LandMine Supported in 4.10.0
E3 Not Used ~ P2 Key 3 LandMine P1 Right Green LandMine Supported in 4.10.0
E4 Not Used ~ P2 Key 4 LandMine P1 Right Yellow LandMine Supported in 4.10.0
E5 Not Used ~ P2 Key 5 LandMine P1 Right White LandMine Supported in 4.10.0
E6 Not Used ~ P2 Turn/Scratch LandMine Not Used ~ Supported in 4.10.0
E7 Not Used ~ P2 FootPedal LandMine Not Used ~ Supported in 4.10.0
E8 Not Used ~ P2 Key 6 LandMine Not Used ~ Supported in 4.10.0
E9 Not Used ~ P2 Key 7 LandMine Not Used ~ Supported in 4.10.0
EA Not Used ~ Not Used ~ Not Used ~ Not Used
EB Not Used ~ Not Used ~ Not Used ~ Not Used
EC Not Used ~ Not Used ~ Not Used ~ Not Used
ED Not Used ~ Not Used ~ Not Used ~ Not Used
EE Not Used ~ Not Used ~ Not Used ~ Not Used
EF Not Used ~ Not Used ~ Not Used ~ Not Used

BMS / BME / PMS Channel BMS Name OutFox BMS Support BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
F0 Not Used ~ Not Used ~ Not Used ~ Not Used
F1 Not Used ~ Not Used ~ Not Used ~ Not Used
F2 Not Used ~ Not Used ~ Not Used ~ Not Used
F3 Not Used ~ Not Used ~ Not Used ~ Not Used
F4 Not Used ~ Not Used ~ Not Used ~ Not Used
F5 Not Used ~ Not Used ~ Not Used ~ Not Used
F6 Not Used ~ Not Used ~ Not Used ~ Not Used
F7 Not Used ~ Not Used ~ Not Used ~ Not Used
F8 Not Used ~ Not Used ~ Not Used ~ Not Used
F9 Not Used ~ Not Used ~ Not Used ~ Not Used
FA Not Used ~ Not Used ~ Not Used ~ Not Used
FB Not Used ~ Not Used ~ Not Used ~ Not Used
FC Not Used ~ Not Used ~ Not Used ~ Not Used
FD Not Used ~ Not Used ~ Not Used ~ Not Used
FE Not Used ~ Not Used ~ Not Used ~ Not Used
FF Not Used ~ Not Used ~ Not Used ~ Not Used

Scroll #xxxSC / Speed #xxxSP Sections - (BMS/PMS)

These two channels were recent additions to the specification used in the beatoraja and bemuse clients, and are done slightly differently to the specification. Rather than using one of the 30 spare channels in the lower ranges, these two options require full base 36 (00-ZZ) support to work as they use SC/SP instead of a Hex (00-FF) value. OutFox’s BMS-like parsers were updated in 4.9.9 to support base 36 channel values even though not required by specification, so these channels were a trivial addition to our support.

Speed and Scroll segments replicate behaviour done with Channel 02/08/09, without relying on these channels changing. They were introduced in the SSC updates to StepMania and are natively supported in the engine in OutFox. These add a new layer of effects to be actioned without using #BPMxx or #STOPxx.

BMS / BME / PMS Channel BME Name OutFox BME Support PMS Name OutFox PMS Support OutFox BMS/PMS Status Comments
SC Scroll Adjustment Not Used ~ Added in 4.11.0
SP Speed Adjustment Not Used ~ Added in 4.11.0

Written and Maintained with ♡ by Squirrel, with thanks to the feeling-po-mu, BMS command memo, BMS Discord, and Japanese BMS/PMS community