The Bug Reporting Repository for OutFox LTS 0.4, Alpha V and Steam Early Access Builds
Release Date: 25th December 2023
New Alpha V build! will update with news when we've had a nap.
This will generate a new cache, and if you're moving from alpha 4 LTS to this build, do not use the same preferences.ini - let the game generate a new one and then match up your settings.
ChangeLog in raw form is here: https://outfox.wiki/releases/A0.5.0-042/ <-- Warning: It is huge!
32 bit builds / RPi builds will come in time, but we wanted to get these out for today so you can play an updated build.
Happy holidays from all of us at Project OutFox!!
This build continues to stabilise and work on fixes we had begun to work on in 040, which was our last update. Sorry the release took over 2 months! We were working hard all that time!
Thank you for all the reports, and the playing time guys, it is really appreciated, it's allowed us to push on with newer parts of the project that would have been delayed a bit longer if we didn't have you kind folks playing this work-in-progress game.
The ChangeLog is a bit vast for this month, I hope you take a moment to sift through it, but if you have questions, either ping us in discord or leave us a message!
We have fixed the OS issues on Linux and MacOS 12.6.x and 13.x, sorry this update took a while!
We didn't want to patch up all the tiny bits on Steam so we felt it better to just get a big update done - but we won't do that again, it's a bit too hairy for us!
Thank you to all the Mac and Linux users that reported the issues for us to fix, and to you guys for continuing to support our little project, as well as the players signing up to the playtest - we will be opening this up for you all very very soon!
This change list is pretty long, as we have several mini updates in it! I hope you enjoy reading through these, do let us know if there are things we can do to improve this experience for you guys!
This build utilises a new back end and completely does away with the old SM5 drivers. It was super heavily requested by the community that we have something configurable that could be used to lower latency in the game for key-sounded and hit sounded modes, so we delayed this build to squeeze it in. There are still a couple of bugs which will be ironed out, but for 99% of users, this build will work fine.
LOW LATENCY AUDIO GET!
With lower latency, comes some compromises. It is super clear and sharp, you have better clarity, it obviously uses new drivers, which include some new preferences, see below.
We have discovered Discord does NOT like low latency based drivers... AT ALL. please bear this in mind if you decide to play with ASIO/set your CoreAudio below 1024, and ensure you have a secondary sound card Discord can use, so you aren't greeted with silence.
WINDOWS: ASIO supports down to a blocksize of 32 in the internal driver, now while you can set this in the new preferences (see below) if you hear crackling or garbled audio, just raise this a bit. You can use anything from 32 to 4096 as your block size, higher values being higher latency.
WASAPI supports from 64 to 4096, and replaces waveout as the default driver. It has the benefit of not being legacy or using an old back end to output, and can have it's buffer lowered to suit the system.
Lastly we have DirectSound, mainly due to the fact it has been requested for older windows builds, but users should always try to see if WASAPI (which is Vista ->) is available. DirectSound is 512 ->
The new driver has had to be sample rate locked and hardcoded to 44.1kHz right now due to limitations in the back end, but we will be removing all the old legacy code in the coming months, so you will be able to enjoy 48kHz clarity really soon.
LINUX: ALSA now uses a new back end, as well as no longer using a 15 year out of date code pathway, we no longer have to patch it for OutFox. It fully supports shared mode, so no more silence on calls when you're using it, and it also behaves better on the Raspberry Pi/SoC board for arm, fixing the 10+ year old bugs. If your kernel is pre 4.12, you may get a crash on the first run due to the old kernel code, but the game should find your system devices properly on the second run. We're looking into this atm.
PulseAudio now runs without the ALSA hook, and again isn't exclusive or forces weirdness. It can run with low latency as well, as well as sharing properly. At this release, it will likely use the ALSA device, but we will be adding the option to choose the device the specific APIs can use, so watch this space for that. There is also a quirk with Pulse where it reports the output and input devices back to front, so we have put in a workaround for this too.
JACK - Jack now is built in without the need for extra hooks or compiler options, and simply just... works. If you do not use this driver, do not add it to your preferences, as this can cause a crash right now, it will be fixed in the final version of 041. JACK is also available on MacOS, a bonus feature there.
BSD/CONSOLE: OSS 4+ is available for BSD builds
MACOS: CoreAudio now runs newer code as well, which also fixes the odd quirk in Ventura with the audio thread sometimes dropping out. We will also add code for audio device handover, as this new driver supports it, so no more crashing when your bluetooth headphones die and disconnect. Be warned, however, Bluetooth audio can not take a too low block setting, so experiment.
SextetStreamInputFilename= Used for the new Sextet input handler I forgot to code in >.>
SoundrtAudioAPIName= This selects the audio back end for your system. It will be self populated on first run with a safe default, but you can override it with a comma'ed list of inputs.
You have a choice of the following:
MacOS core - Use for CoreAudio jack - Use for JACK
Linux alsa - Use for ALSA jack - Use for Jack pulse - Use for PulseAudio oss - Use for the Linux OpenSoundSystem
Windows asio - Use for ASIO wasapi - Use for WASAPI ds - Use for DirectSound
They can be used as a list with commas, so "wasapi,ds,asio"
SoundrtAudioLastUsedCard= This is a pref to highlight the last used card, it's purely for the internal driver, like 'lastseenvideocard'
SoundrtAudioNumberofChannels= This pref is for number of output channels/speakers your system supports. It will be up to 8 when the code is written, but for now, leave it at 2, due to the legacy code. It will be ignored if you add anything else!
SoundrtAudioPreferredSampleRate= This pref is for the samplerate of your device, and will be settable in time. It will return the preferred rate your card wants, but will sadly be set to 44.1 due to the restrictions of the legacy code. Will be unlocked when we remove the rest of RageSound
SoundrtAudioSetBufferSize= This pref is where you set your latency block size. It supports 32 frame to 4096 frames as per the ASIO/latency standards. If your audio crackles or glitches, remember to adjust this, it is not a bug in the game! With lower latency comes a bit more instability, so bear this in mind when you adjust this value.
Linux users will need a lowlatency compiled kernel and preferrably a kernel newer than 4.12 to take advantage of this. MacOS users need Big Sur to use < 256, and Windows 7+ for < 128
This driver is not enabled on windows yet due to some quirks with windows 10/11 which we are looking into.
The new preferences are as follows:
Allows a player to specify if they are using arcade or custom controller hardware. m_bInputSetArcade
Allows SDL to toggle the mapping method for joysticks via XInput. m_bInputSetXInput
Allows SDL to toggle the mapping method for joysticks via DInput. (Windows Only) m_bInputSetDInput
Allows SDL to toggle the mapping method for joysticks via HIDAPI. m_bInputSetHIDAPI
Allows SDL to toggle the mapping method for joysticks via RAWINPUT. m_bInputSetRAWAPI
Allows the user to set a DeadZone value. Useful for Axis Fixing and Configuring m_iInputSetJSDeadzoneValue
Allows the user to set the desired input system on Linux, either /jsX or /eventX. m_bInputSetLinuxJSEndpoint
This build addresses issues related with the parser modules not loading on other Macs due to the linker process.
This addresses bugs related with crashes on macOS introduced on Ventura.
This is purely testing at the moment for linux users, but please let me know if there are any issues - Squirrel
Sounds can be assigned to either Attract/Effect/Sound, and can be controlled in the menu. The old 'Effect Menu' is gone, and allows you to set the type of audio you wish to edit. Attract volume works on the Jukebox/Attract screen, and can now also be set ABOVE 100%, to a maxium of 200%, for situations where audio lines are quiet and you need a boost for a cabinet.
PLEASE NOTE: This can cause the audio to clip/distort at high volumes, and we are not responsible for your use of this. It has been a very highly requested community feature and we are happy to be able to bring it to you in this build.
Use R to change the Sound Type, and T and Y to set the volume Down and Up respectively.
THEME: (From Jose)
❕✅ Rewritten Judgement loading procedure. This basically now lets the game record each judgment graphic per timing window instead of a singular option to rule them all. This would've become messy if we've kept it like that. NOTE: This will run locally on the theme for now, to test if the new functionality is stable to transfer to fallback.
❕✅ Music wheel is now dimmable when entering options
❕✅ Touch controls are now a toggle Now looking back, I can see that this whole thing can become a mess if we let everything be shown at once, so now the Touch controls are part of a toggle located on the Options menu, which is off by default.
❕✅ Speed is now the main option on Player Options
❕✅ Fixed PrevScreen on KnownBugs (Reported by Moneko)
❕✅ Apply PlayMode upon entering the music wheel
❕✅ Hide menu timer from ScreenEvaluation for now.
❕✅ Fix last difficulty selection when returning the wheel
❕✅ Tweaked Song Info box to include a banner.
❕✅ Fixed video banners not respecting fading.
❕✅ Tweaked player information pane on select music
❕✅ Noteskin now applies when changing noteskins.
❕✅ Fix update for Measure Count display
❕✅ Cleanup debug messages
BMS/PMS/DTX/GDA
Def.AudioVisualizer Info:
It can be added to any existing actorframe, in themes, modfiles and noteskins!
To use it just use the following commands
return Def.ActorFrame{
Def.AudioVisualzer{
Amount=128, -- The amount of colums, its from min of 16 to a max of 128.
LinearPeaks=true, -- define if we want lenear peaks, as in a slow animation when it goes back to 0.
PeakHeight=40, -- the hight of the columns,
UpdateRate=0.01, -- the update rate of the columns, the lower the faster, between 10 and 0.01.
OnCommand=function(self)
self:SetSound(--[[ A RageSound to set--]])
-- if SetSound is not set, it will fallback to the cur playing music, this does not work for screen gameplay, in screengameplay do
self:SetSound(SCREENMAN:GetTopScreen():GetSound())
end
}
}
The rest of the history will be posted on our wiki at https://outfox.wiki as it's too long for GitHub
Not much to report in this build, many bug fixes, and some patches as reported by users, this is likely the last big patch to the Alpha 4 branch, as the team has moved over to full time development on Alpha V.
We will be pushing the next build of Alpha V (041) to the GitHub, so this space will still be where you can get builds, and do still report bugs if you find any!
Over the next few months you will see some of the Alpha 4 reported bugs either being closed or moved and checked in Alpha V, as a lot of the pump bugs cannot be resolved on 0.4.x so it will be easier to maintain one active branch for the team.
We did this with Alpha 3, 2 and 1, and it's just a natural progression as we build on the work we've done over the past 4 years.
Mode Specific
As part of our continued supporting of older hardware to prevent e-waste we have taken the time to support older versions of Linux, (primarily ubuntu 14.04 era). It is MUCH easier to install Linux on older hardware, than to try to keep it with windows. This is due to the way Microsoft handled their drivers in the late 2000s, and although we support back to Windows Vista (and XP somewhat), the best way to play on older hardware is to use Linux.
The extreme minimum requirement for OutFox is a Linux distro with a glibc version of 2.19-2.21 (Ubuntu 14.04 era)
To confirm your CXXABI and GLIBCXX versions you can do the following example on an ARM board:
open a terminal and type:
strings /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 | grep GLIBCXX
strings /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 | grep CXXABI
This will give you a list of numbers.
The important factor here - If your list does not show GLIBCXX_3.4.22
and CXXABI_1.3.11
you will need to update your system to GCC 7.0 (which is still supported even on this old distros!)
For ubuntu you can simply do the following in a terminal, add sudo/su where appropriate:
apt-get update -y
apt-get install software-properties-common -y
add-apt-repository ppa:ubuntu-toolchain-r/test -y
apt-get update -y
apt-get install gcc-7 g++-7 -y
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 --slave /usr/bin/g++ g++ /usr/bin/g++-7
update-alternatives --config gcc
This will update your system to support the newer libc and g++ libraries you need for OutFox, and will keep the board alive.
The new 'arm32 legacy' build is for 32bit boards manufactured around the 2010s (2010-2016) often with a Tegra chip, with the Arm Cortex based processors of the time.
We have confirmed this with one of our players Chriswak who had an Nvidia Development Board, the Jetson Nvidia TK1
If you do use our legacy builds, we are always interested in what you are running us on! Tweet us your setups/cabs/weird ARM boards etc!
PLEASE, IF YOU FIND ANY BUG IN OUR GAME REPORT IT EITHER BY MAKING A ISSUE ON OUR BUG TRACKER REPOSITORY OR IN OUR DISCORD SERVER, WE WON'T BE ABLE TO FIX BUGS THAT ARE NOT REPORTED TO US!
0.4.17 passed initial testing from our valiant testing volunteers, however it failed the testing on cabinets and for those who use dance
and pump
modes for skill/technical based play. As the whole point of this LTS programme is to ensure stability and remove opportunity for the game to crash or have problems in general play this was unacceptable, and we went back to deep bug fixing which is why this release is later than planned, but provides a much more stable environment for play.
As with development we cannot guarantee you'll never crash, but we have reduced bugs and situations where that could happen while you're playing the game.
We hope you enjoy the fruits of our work, with this proper stable build, and appreciate your continued support!
bongo
!Based on a game for home consoles released in the early 2000s, this mode brings in a highly requested fan favourite to OutFox!
Played using the left drum, right drum, and clapping, this fun mode at the moment uses the games TJA and OTO loaders to support fan created TJA content, and Mode 1 from osu files, though bear in mind, many of the osu files are not designed with fun in mind, so it may become painful using your hands to play these files!
You do NOT need to enable auto-gen for this mode! It uses any TJA or OSU files in your folders already to generate tracks! Remember our taiko
support is ongoing, so some holds and effects do break sync, but we will be fixing these in time. We do not have a theme yet for this mode, so game-play is with the basic 'default' for now, so you can have a play and feel for it!
This is our 18th Working Game Mode that this engine supports, and we are truly humbled by the awesome support you, the players, provide us to continue to improve and expand on what this museum contains within it's wall of code!
We have designed this mode alongside the project OpenTaiko so that charts made using the new TJA letter types in the charting format will be cross-compatible between the two simulators moving forward.
As part of our commitment to getting the game out of the eventual development hell, we have had a discussion and all agreed to keep the alpha 4.xx branch active for the next year while we work on finalising the alpha V branch.
What this means to you, the end user, is that if you do not want to have to change builds all the time and deal with 'new feature' bugs, then this branch will be maintained (for bug fixes only) in a 1 month bug fixing schedule until December 2022, then will move to a quarterly release schedule (so 4 more updates) until it is retired at the end of December 2023 with the final release being 4.24.
This branch is stable enough for the removal of the 'alpha' prefix, and if you get any bugs or issues do report it. Things deemed important will be back-ported to the 0.4.x branch, but the team will be focussing more on 0.5.x in 2023 and beyond.
This month we also added a new logging system which will greatly help with any debugging needs that you have. We have changed the system, so that there is a main, a theme, and a crash-log now, and these have varying levels of detail, depending on need. If you happen to have a crash or need to debug a theme, or lua mod, this is now much easier to do.
On the log level preference, 0 shows full detail, where 5 will give you a reduced log-file, usually when you have everything set up and working well.
This release also sees some changes to the FFMPEG builds used in OutFox. We had discovered there is a memory leaking bug in upstream which doesn't really affect many of the video players out there generally, the code we use to acquire and display video data is based on the functions that are bugged in newer versions, so folks using banners or video backgrounds would end up with crashing and freezes due to this.
We have reverted back to a much older 'bug free' build of 4.x for the time being until it is fixed by upstream. If you get any quirks or errors on videos, do let us know; we tried a lot of different formats and videos commonly used, but we didn't cover everything!
This build adds a support option for those folks on some builds which have had evdev issues with the newer kernels (5.1+) making pads not show up.
By default OutFox uses the event system as this is recommended by distros like Ubuntu and Debian but with recent updates these can miss seeing pads and controllers.
The new pref UseLinuxJS
(Use Linux JoyStick) sets /js* by default, so folks can access the controllers correctly. If you want the older behaviour, take a moment to set this to 0 in your preference.ini file in the /save folder. We will keep an eye on this for now, and if you get any errors about 'access denied' ensure your user is in the 'input' group using a terminal and:
sudo usermod -a -G input USERNAME
where USERNAME is your current user (type whoami
) to see what this is in a terminal.
Let us know if you have any issues, and pop into the Discord server if you need any help!
pump
fixes!This month we have been working with the players and developers of the Infinitesimal theme for pump
with fixing the hold situation in the simulation of this mode. With a lot of revisions and testing, we can happily report that the holds are operating properly now, and we are grateful to those that gave their time helping us perfect it!
Always on Top
Preference!This preference was requested by a lot of our streamer players, as they said it can cause issues with the streaming and capture methods they use.
This preference which is simply entitled AlwaysOnTop
is set to 0 (false) by default, which is the normal behaviour of the game. To enable it while you stream you can set this to 1 and the game will always be on the top of the screen even if you click off or have a window behind it.
Thanks to Zui and Shrmp0 in the Discord for making the suggestion known to us and for our streamer friends for enjoying the game on different platforms.
AllowRotation
Preference!This preference was back-ported from Alpha V as some of our users have requested support for rotational options. This pref is off by default, and allows rotation for vertical based screens where the resolution/display is rotated, mainly for vertical options.
For songs which have a multiple chart in the folder, like pump
, be-mu
, po-mu
, kbx
via osu etc, there is a slight bug in the way the game sends the 'length' data to the theme/engine that counts stages at the moment. This is a long upstream bug and we are working on a fix in Alpha V, and will backport it when it is ready.
The issue is, if some charts are different lengths, they will show correctly in screen game-play, but only display the LONGEST length in the music wheel, or 'ScreenSelectMusic' as it's known to themers. Fixing this bug will also benefit other modes so it is something we want to work on.
This release has an updated installer that better reflects the feel of OutFox, and gives us a better platform to use moving forward. We hope you like it!
be-mu
/po-mu
songs on Endless Mode may have a crash on song loading. Please be aware that course mode for these modes are a bit temperamental at the moment!gh
mode: Some charts may cause a crash when loaded into the gamegddm
/gdgf
mode: We do not support the XA codec at this time, it'll play those keysounds silently.Mode Specific
bongo
: NEW! Added new bongo
modebongo
: Added support for tja file chart auto-generationbongo
: Added support for osu file chart auto-generationbongo
: Added new note-skin supportbongo
: Added editor supportbe-mu
: Fixed bug with MusicThread endlessly looping on BMS/PMS filespump
: Fixed mini-holds (128ths/192nds) from auto-hitting themselvespump
: Added new code path for hold checkpoints and mini holds so they work and are not incorrectly scored / hit according to SM5 dancepump
: Fixed hold display issuepump
: Fixed timing on holds for missespump
: Fixed pump hold issue with hit timingpump
: Adjust pump micro-holds to be closer to what players expectdance
/smx
/techno
: Fixed bug with life on non-pump
holds killing the playerbe-mu
/po-mu
/gddm
/gdgf
: Auto switch to HQ mp4 movie BGA if availablebe-mu
/po-mu
/gddm
/gdgf
: Fixed title being overwritten resulting in the directory name being usedbe-mu
/po-mu
/gddm
/gdgf
: Fixed regex causing #TITLE to be emptybe-mu
/po-mu
/gddm
/gdgf
: Removed SM3.9 era cruft from the parsersbe-mu
/po-mu
/gddm
/gdgf
: Removed defunct Unicode conversion as we do it properly nowbe-mu
/po-mu
/gddm
/gdgf
: Fixed CommonSubstring overflows resulting in bad #TITLE/#SUBTITLE titlebe-mu
/po-mu
/gddm
/gdgf
: Fixed bad SM4 code breaking some #SUBTITLE entriesbe-mu
/po-mu
/gddm
/gdgf
: Fixed multi-layer backgrounds not being initialised correctlybe-mu
/po-mu
/gddm
/gdgf
: Removed bad converting code for #ARTIST and #GENREbe-mu
/po-mu
/gddm
/gdgf
: Fixed bug causing cache generation lagging on initial parsing on first bootbe-mu
& po-mu
: Fixed bug with MusicThread endlessly looping on BM*/PMS filesbe-mu
& po-mu
: Fixed bugs with keysounds returning empty, which fixes extended BMS/PMSkbx
: Fixed bug with early ending holds in osu filestaitai
: Fixed bug with songs ending 2 notes earlytaitai
: Fixed note placement on editorEngine
AllowRotation=1
in the preference.ini if you use a vertical orientated monitorAlwaysOnTop=1
in the preference.ini to enable this. Good for streaming!Windows 7+ (Win32 and x64):
Linux:
UsingLinuxJS
to 0 to set to use /dev/input/event and use evdev.MacOS (Universal):
ARM32/ARM64: (Raspberry Pi etc)
Mode Specific
be-mu
& po-mu
: Fixed bug with 2 old BMS channel layouts left in by accidentbe-mu
& po-mu
: Fixed bug with endless loops on long chartsdance
: Fixed bug with hang on lights on menus in some weird casesdance
: Fixed bug with some older charts causing a 'loading' hangpump
: New! Added AVMod scrolling modepump
: New! Added fourV2lane colour noteskinskbx
: New! Added NoMines to PlayerOptionsSimple()kbx
: Fixed bug with pump auto-gen charts not working correctlykickbox
: Fixed bug with missing items and layoutskbx
: Fixed crash on loading .qp and .osz packed chartsEngine
Windows 7+ (Win32 and x64):
Linux:
MacOS (Universal):
ARM32/ARM64: (Raspberry Pi etc)
PLEASE, IF YOU FIND ANY BUG IN OUR GAME REPORT IT EITHER BY MAKING A ISSUE ON OUR BUG TRACKER REPOSITORY OR IN OUR DISCORD SERVER, WE WON'T BE ABLE TO FIX BUGS THAT ARE NOT REPORTED TO US!
0.4.17 passed initial testing from our valiant testing volunteers, however it failed the testing on cabinets and for those who use dance
and pump
modes for skill/technical based play. As the whole point of this LTS programme is to ensure stability and remove opportunity for the game to crash or have problems in general play this was unacceptable, and we went back to deep bug fixing which is why this release is later than planned, but provides a much more stable environment for play.
As with development we cannot guarantee you'll never crash, but we have reduced bugs and situations where that could happen while you're playing the game.
We hope you enjoy the fruits of our work, with this proper stable build, and appreciate your continued support!
bongo
!Based on a game for home consoles released in the early 2000s, this mode brings in a highly requested fan favourite to OutFox!
Played using the left drum, right drum, and clapping, this fun mode at the moment uses the games TJA and OTO loaders to support fan created TJA content, and Mode 1 from osu files, though bear in mind, many of the osu files are not designed with fun in mind, so it may become painful using your hands to play these files!
You do NOT need to enable auto-gen for this mode! It uses any TJA or OSU files in your folders already to generate tracks! Remember our taiko
support is ongoing, so some holds and effects do break sync, but we will be fixing these in time. We do not have a theme yet for this mode, so game-play is with the basic 'default' for now, so you can have a play and feel for it!
This is our 18th Working Game Mode that this engine supports, and we are truly humbled by the awesome support you, the players, provide us to continue to improve and expand on what this museum contains within it's wall of code!
We have designed this mode alongside the project OpenTaiko so that charts made using the new TJA letter types in the charting format will be cross-compatible between the two simulators moving forward.
As part of our commitment to getting the game out of the eventual development hell, we have had a discussion and all agreed to keep the alpha 4.xx branch active for the next year while we work on finalising the alpha V branch.
What this means to you, the end user, is that if you do not want to have to change builds all the time and deal with 'new feature' bugs, then this branch will be maintained (for bug fixes only) in a 1 month bug fixing schedule until December 2022, then will move to a quarterly release schedule (so 4 more updates) until it is retired at the end of December 2023 with the final release being 4.24.
This branch is stable enough for the removal of the 'alpha' prefix, and if you get any bugs or issues do report it. Things deemed important will be back-ported to the 0.4.x branch, but the team will be focussing more on 0.5.x in 2023 and beyond.
This month we also added a new logging system which will greatly help with any debugging needs that you have. We have changed the system, so that there is a main, a theme, and a crash-log now, and these have varying levels of detail, depending on need. If you happen to have a crash or need to debug a theme, or lua mod, this is now much easier to do.
On the log level preference, 0 shows full detail, where 5 will give you a reduced log-file, usually when you have everything set up and working well.
This release also sees some changes to the FFMPEG builds used in OutFox. We had discovered there is a memory leaking bug in upstream which doesn't really affect many of the video players out there generally, the code we use to acquire and display video data is based on the functions that are bugged in newer versions, so folks using banners or video backgrounds would end up with crashing and freezes due to this.
We have reverted back to a much older 'bug free' build of 4.x for the time being until it is fixed by upstream. If you get any quirks or errors on videos, do let us know; we tried a lot of different formats and videos commonly used, but we didn't cover everything!
This build adds a support option for those folks on some builds which have had evdev issues with the newer kernels (5.1+) making pads not show up.
By default OutFox uses the event system as this is recommended by distros like Ubuntu and Debian but with recent updates these can miss seeing pads and controllers.
The new pref UseLinuxJS
(Use Linux JoyStick) sets /js* by default, so folks can access the controllers correctly. If you want the older behaviour, take a moment to set this to 0 in your preference.ini file in the /save folder. We will keep an eye on this for now, and if you get any errors about 'access denied' ensure your user is in the 'input' group using a terminal and:
sudo usermod -a -G input USERNAME
where USERNAME is your current user (type whoami
) to see what this is in a terminal.
Let us know if you have any issues, and pop into the Discord server if you need any help!
pump
fixes!This month we have been working with the players and developers of the Infinitesimal theme for pump
with fixing the hold situation in the simulation of this mode. With a lot of revisions and testing, we can happily report that the holds are operating properly now, and we are grateful to those that gave their time helping us perfect it!
Always on Top
Preference!This preference was requested by a lot of our streamer players, as they said it can cause issues with the streaming and capture methods they use.
This preference which is simply entitled AlwaysOnTop
is set to 0 (false) by default, which is the normal behaviour of the game. To enable it while you stream you can set this to 1 and the game will always be on the top of the screen even if you click off or have a window behind it.
Thanks to Zui and Shrmp0 in the Discord for making the suggestion known to us and for our streamer friends for enjoying the game on different platforms.
AllowRotation
Preference!This preference was back-ported from Alpha V as some of our users have requested support for rotational options. This pref is off by default, and allows rotation for vertical based screens where the resolution/display is rotated, mainly for vertical options.
For songs which have a multiple chart in the folder, like pump
, be-mu
, po-mu
, kbx
via osu etc, there is a slight bug in the way the game sends the 'length' data to the theme/engine that counts stages at the moment. This is a long upstream bug and we are working on a fix in Alpha V, and will backport it when it is ready.
The issue is, if some charts are different lengths, they will show correctly in screen game-play, but only display the LONGEST length in the music wheel, or 'ScreenSelectMusic' as it's known to themers. Fixing this bug will also benefit other modes so it is something we want to work on.
This release has an updated installer that better reflects the feel of OutFox, and gives us a better platform to use moving forward. We hope you like it!
be-mu
/po-mu
songs on Endless Mode may have a crash on song loading. Please be aware that course mode for these modes are a bit temperamental at the moment!gh
mode: Some charts may cause a crash when loaded into the gamegddm
/gdgf
mode: We do not support the XA codec at this time, it'll play those keysounds silently.Mode Specific
bongo
: NEW! Added new bongo
modebongo
: Added support for tja file chart auto-generationbongo
: Added support for osu file chart auto-generationbongo
: Added new note-skin supportbongo
: Added editor supportbe-mu
: Fixed bug with MusicThread endlessly looping on BMS/PMS filespump
: Fixed mini-holds (128ths/192nds) from auto-hitting themselvespump
: Added new code path for hold checkpoints and mini holds so they work and are not incorrectly scored / hit according to SM5 dancepump
: Fixed hold display issuepump
: Fixed timing on holds for missespump
: Fixed pump hold issue with hit timingpump
: Adjust pump micro-holds to be closer to what players expectdance
/smx
/techno
: Fixed bug with life on non-pump
holds killing the playerbe-mu
/po-mu
/gddm
/gdgf
: Auto switch to HQ mp4 movie BGA if availablebe-mu
/po-mu
/gddm
/gdgf
: Fixed title being overwritten resulting in the directory name being usedbe-mu
/po-mu
/gddm
/gdgf
: Fixed regex causing #TITLE to be emptybe-mu
/po-mu
/gddm
/gdgf
: Removed SM3.9 era cruft from the parsersbe-mu
/po-mu
/gddm
/gdgf
: Removed defunct Unicode conversion as we do it properly nowbe-mu
/po-mu
/gddm
/gdgf
: Fixed CommonSubstring overflows resulting in bad #TITLE/#SUBTITLE titlebe-mu
/po-mu
/gddm
/gdgf
: Fixed bad SM4 code breaking some #SUBTITLE entriesbe-mu
/po-mu
/gddm
/gdgf
: Fixed multi-layer backgrounds not being initialised correctlybe-mu
/po-mu
/gddm
/gdgf
: Removed bad converting code for #ARTIST and #GENREbe-mu
/po-mu
/gddm
/gdgf
: Fixed bug causing cache generation lagging on initial parsing on first bootbe-mu
& po-mu
: Fixed bug with MusicThread endlessly looping on BM*/PMS filesbe-mu
& po-mu
: Fixed bugs with keysounds returning empty, which fixes extended BMS/PMSkbx
: Fixed bug with early ending holds in osu filestaitai
: Fixed bug with songs ending 2 notes earlytaitai
: Fixed note placement on editorEngine
AllowRotation=1
in the preference.ini if you use a vertical orientated monitorAlwaysOnTop=1
in the preference.ini to enable this. Good for streaming!Windows 7+ (Win32 and x64):
Linux:
UsingLinuxJS
to 0 to set to use /dev/input/event and use evdev.MacOS (Universal):
ARM32/ARM64: (Raspberry Pi etc)
Mode Specific
be-mu
& po-mu
: Fixed bug with 2 old BMS channel layouts left in by accidentbe-mu
& po-mu
: Fixed bug with endless loops on long chartsdance
: Fixed bug with hang on lights on menus in some weird casesdance
: Fixed bug with some older charts causing a 'loading' hangpump
: New! Added AVMod scrolling modepump
: New! Added fourV2lane colour noteskinskbx
: New! Added NoMines to PlayerOptionsSimple()kbx
: Fixed bug with pump auto-gen charts not working correctlykickbox
: Fixed bug with missing items and layoutskbx
: Fixed crash on loading .qp and .osz packed chartsEngine
Windows 7+ (Win32 and x64):
Linux:
MacOS (Universal):
ARM32/ARM64: (Raspberry Pi etc)
As part of our commitment to getting the game out of eventual development spaghetti we have had a discussion and all agreed to keep the alpha 4.xx branch active for the next year while we work on the alpha V branch.
What this means to you, the end user, is that if you want to not have to change builds all the time and deal with 'new feature' bugs, then this branch will be maintained (for bug fixes only) in a monthly schedule until december, then will move to a quarterly release schedule until it is retired, likely next summer, but that date is very likely to change.
This branch is stable enough to be considered for the removal of the 'alpha' prefix, and if you get anything awry do report it.
This month we also added a new logging system which will greatly help with any debugging needs that you have. We have changed the system, so that there is a main, a theme, and a crash-log now, and these have varying levels of detail, depending on need. If you happen to have a crash or need to debug a theme, or lua mod, this is now much easier to do.
On the log level preference, 0 shows full detail, where 5 will give you a reduced log-file, usually when you have everything set up and working well.
This month again has been mostly bug fixes. Some small updates and back-ports from Alpha V will always happen, as we cannot have things too unstable of course.
be-mu
/po-mu
songs on Endless Mode may have a crash on song loading. Please be aware that course mode for these modes are a bit temperamental at the moment!gh
mode: Some charts may cause a crash when loaded into the gamegddm
/gdgf
mode: We do not support the XA codec at this time, it'll play those keysounds silently.Mode Specific
be-mu
& po-mu
: Fixed bug with 2 old BMS channel layouts left in by accidentbe-mu
& po-mu
: Fixed bug with endless loops on long chartsdance
: Fixed bug with hang on lights on menus in some weird casesdance
: Fixed bug with some older charts causing a 'loading' hangpump
: New! Added AVMod scrolling modepump
: New! Added fourV2lane colour noteskinskbx
: New! Added NoMines to PlayerOptionsSimple()kbx
: Fixed bug with pump auto-gen charts not working correctlykickbox
: Refactored kickbox default noteskin with updated code.kbx
: Fixed crash on loading .qp and .osz packed chartssmx
: Fixed bug with mine holds on default noteskin.Engine
Windows 7+ (Win32 and x64):
Linux:
MacOS (Universal):
ARM32/ARM64: (Raspberry Pi etc)
Fixed in HotFix 2: Engine
be-mu
Fixed in HotFix 1:
Mode Specific
be-mu
& po-mu
: Fixed bug with channel layoutspo-mu
: Fixed bug with parsing channels with 1 or more empty on BME filespo-mu
: Fixed channel layout with po-mu
in BME to match nanasi/BMS command layout standardpo-mu
: Fixed parsing of po-mu
in BME detectionpo-mu
: Reordered extended po-mu
player hit objectsEngine
We have had a few reports about 'drift' on the Steam Deck, and we have done some testing as part of our development program for Alpha V and can confirm the game runs flawlessly in whichever mode you choose. We've had several users as well as our own deck in testing, and as we are well under way for our Steam launch this would be something that we and our testers would have noticed.
We will however make sure we have a set mapping done for our new Steam Release, but until we get the Early Access Builds out, you can wishlist us here and to check out the trailer!
We are excited for the upcoming Steam builds, and remember you can join the discord to help us shape these builds!
be-mu
updatesThis month we have been polishing the modes ready for their Alpha V debut with proper themes. We have stabilised the way keysounds are loaded, and in this release we have also fixed hidden 'lanes' that the mode supported that were not played.
The parsing system has also seen another update, moving away from the legacy SM5 method and utilising the new OF style of properly defining and enabling all the lanes. In the past, StepMania could only mainly play a number of sounds related to the number of columns (lanes) and as the BMS reader was created for the historic DDR in BMS style charts, we had a lot of work to do to ensure proper expansion. In this release, the mode has seen some spring cleaning, enabling full keysound range, and properly displays and parses charts as it should.
We have added a new sub-mode for be-mu
which adds the legacy 'foot' or 'pedal' lane, which was popular in older simulators like nanasi. This mode adds one new column to 5 key making it 5 key, scratch, and foot. It heavily utilises channel 17, which some simulators double up as 'free scratch', but for ez2 fans, we wanted to keep it as close to what nanasi and others did back in the day.
We will not be supporting the much rarer '7k foot' as this was a non-standard extension to the BME specification, and would break po-mu
charts in BME files, which we do support now properly, as it is still used today for charts.
po-mu
standardisation updatespo-mu
mode now also supports Player 1 11-19 channel modes, featured in nanasi and some other simulators from the early 2010s. This is sometimes known as 'extended pomu'. po-mu
now can also play back the correct keysounds, including the player hidden, and any effect channels that can be used.
Charts which did not use all the lanes for their mode, (7k o2j inspired lanes without scratch are an example) would often also not show up correctly, or be shifted by an entire column, or just parsed incorrectly. This has been fixed in this release, so 5K / 7K / 10K / 14K (no scratch) charts now read correctly. Thanks to Daniel and our friends at the BMS international community for reporting this to us.
po-mu
in BME files have also been given a proper update, and we have fixed the lane errors that were reported to us, thanks to those of you that took the time to point out our extended channels were wrong!
We are happy now that the po-mu
parser and the extender parser support matches what we aimed for in this mode, so we will finalise the notesloader with #RANK and #TOTAL support in Alpha V, which has the new lifebar and gauge code. Keep an eye out for the update!
pump
Tweaks and CorrectionsThanks to all of our pump
mode players that have been so patient while we work on getting the mode fixed up and right for you, I can appreciate you have been waiting for a long time for some of these issues to be resolved. We have fixed a few of the remaining timing issues and we hope these solve the weird gimmick issues we had before.
Thanks to shrmp0 and SheepyChris for helping us with the layout adjustments and column placement changes that are present in the engine this build; we should not expect themers to fix issues the engine really should have in built. A healthy engine makes a lightweight and fast theme.
We will continue working on this mode into the end of the year, so we hope you'll enjoy the fixes as they come!
We have been testing the 64 bit windows builds for some time, but have yet to publicly release a build alongside our normal release programme, so this month changes that! The community have heavily requested the need for a 64bit build, especially with our multi-modal support system in place, which needs more songs/packs installed. Moving forward to our Steam integration, we needed to have a 64bit build for the users available on that platform.
Moving forward, as a lot of you will have questions;
No, we will not be discontinuing Win32.
Yes, we will continue to provide Win32 builds as many of you with cabs will need them
Steam will default to the 64bit build unless your system is 32bit.
This month we have done several parity pulls from our upstream dependencies, as progress has been made on a lot of the bugs we had in the past. Vorbis and our other sound readers have enjoyed several bugfixes, as well as a big jump in bugs fixed in SDL has meant performance in this build has increased, especially for those on pre-2016 hardware, although everyone should see an improvement.
We have begun to add a few back-ports from the Alpha V Panda collection, designed to build stability as we look to sunset Alpha 4 next Spring. Alpha 4 Officially goes into LTS this month, being limited to only stability and bug fixes only. The main development push from August will be into Alpha V.
We will continue to support Alpha 4.xx until March 2023, but maintaining two separate branches would be too much to deal with for such a small volunteer team, and as a result, it'll be retired properly when Alpha V has matured and stabilised enough to be considered a suitable replacement.
be-mu
/po-mu
songs on Endless Mode may have a crash on song loading. Please be aware that course mode for these modes are a bit temperamental at the moment!gh
mode: Some charts may cause a crash when loaded into the gamegddm
/gdgf
mode: We do not support the XA codec at this time, it'll play those keysounds silently.Mode Specific
be-mu
: Fixed bug with be-mu BGAs sometimes not showingbe-mu
: Fixed crash with older BOF packs due to legacy bitmap usebe-mu
: Fixed draw order with extended modesbe-mu
: New Added foot support to 5K+Scratchbe-mu
: Fixed noteskin graphics - PLEASE UPDATE YOUR BMS NOTESKINS IF YOU HAVE ANY TO ADD A FOOTbe-mu
& po-mu
: Fixed Shift-JIS bracket detection on some chartsbe-mu
& po-mu
: Fixed bug with wry columns being selected by mistake on initial parsingbe-mu
& po-mu
: Fixed bug with charts that skipped a column or player channel not loadingbe-mu
& po-mu
: Fixed bug with charts that used 2 less than the chart style being parsed wrongbe-mu
& po-mu
: Fixed bug where wrong style would be selected for 'no-scratch/no button' charts (02jam/ez2/etc)be-mu
& po-mu
: Fixed bug with missing hidden keysounds not playing on charts with no player 'chips' in that channelbe-mu
& po-mu
: Fixed bug with sound effects missing on player columns > 8be-mu
& po-mu
: Fixed bug with keysounds missing on dance
4 panel / 8 panel chartsbe-mu
& po-mu
: Fixed bug with parser discarding keysounds for player lanes without a hittable notebe-mu
& po-mu
: Fixed bug in game manager which set some 5k charts to dance
onespo-mu
: Fixed bug with some pomu9
charts parsing as pomu4
due to 'beginner' chartspo-mu
: Fixed bug with some pomu9
charts not being parsed at allpo-mu
: New Added the 'extended pomu' pomu9
support from nanasi and other simulationspo-mu
: New Added Pomu9 BME support from Feeling Po-mudance
: Fixed bug with some .sm files having a different length than what the chart showsdance
: Fixed bug with some charts never endingdance
: Fixed bug with some charts ending 10 seconds too earlydance
: Fixed bug with some really old charts (pre2003) from not displaying their background due to null texture generationdance
& pump
: Fixed bug with LastSecond sometimes overflowing on pump
/dance
chartspump
: Fixed bug with lane layouts, these are correctly set in the engine nowpump
: Fixed bug some gimmicks setting LastSecond to a ridiculously high valuepump
: Fixed broken ancient layout for goodall
: Changed LaneLocation in noteskins to new LaneXOffset, noteskins will need to be edited if you used this!all
: New Added theme support to allow setting of LaneXOffsetall
: Fixed bug with mismatched rotation in player/notefieldall
: Fixed bug with miscalculated reverse on backplatesall
: Fixed bug with zoom on backplatesall
: Fixed bug with surface generation causing grey textures on non dance contentEngine
*Windows 7+ (Win32 and x64):
Linux:
MacOS (Universal):
ARM32/ARM64: (Raspberry Pi etc)
This is a hotfix release to address a few bugs that escaped testing, and we thank our players for taking the time to report and help us debug them. The news for the release last week is also updated in this build.
If you see a message that says The board texture has not been set. Good job.
it means that the metric ShowBoard=true has been set. You can undo this to set it to false in modes that are not gh. It may show a message at the top of the screen if you have errors enabled, this will be here just as a temporary measure to see how often that metric was being set.
PLEASE, IF YOU FIND ANY BUG IN OUR GAME REPORT IT EITHER BY MAKING A ISSUE ON OUR BUG TRACKER REPOSITORY OR IN OUR DISCORD SERVER, WE WON'T BE ABLE TO FIX BUGS THAT ARE NOT REPORTED TO US!
pump
mode updates.This month has has a plethora of updates and fixes added to the pump
mode; we have been working a lot in the background for this mode, but it required a lot of other things to be implemented beforehand, so it has taken a bit longer than planned to get these stuff off the ground.
This release has fixed a lot of the music length issues, charts ending early, charts not ending at all, charts having missing notes due to the song finishing at the incorrect time, and charts ending after 2 seconds (single) / 7 seconds (double). The reason for a lot of all these quirks was due to the charting methods used in stepf2 and stepp1 being based off an older version of StepMania which then had some custom code added by xMAx for those versions targeting pump
only. We would like to thank xMAx for the insight and assistance with implementing some of those features into Project OutFox, but due to the fact we are a multi-modal simulator we had to heavily rewrite and redesign a lot of the functions and systems behind the original ideas they had.
We have written a custom parser for the stepf2 charts which internally is called NotesLoaderPIU. This focuses on only parsing charts using the old editor and targets pump
mode, including the custom note types, and the effects and systems the mode needs. The parser uses the SSC header #VERSION: 0.81
to initialise this pathway for those charts.
This can lead to a few issues if you have any dance
charts using version 0.81, if you get any quirks, you can just change this version number to 0.83 and it'll use the normal SSC parser.
New for this alpha, we have also added the feature for charts not set to 0.81, where you can create a blank file with the title ForcePIU
in the group folder, and the game will use the PIU loader automatically. This is case sensitive, so use it as written here for it to work.
This alpha also begins to add support for notes within braces { 0 | h | 1 | v }
. At the moment only h
notes are implemented, with s
and v
planned for the next main alpha.
pumpholds have also had a major rewrite this release as well, with the stepping and judgement logic being more appropriate to the game system, with ticks and head logic being fixed as well. There are still likely to be a few quirks with it, as it's new code, and do let us know if there are things you notice that are incorrect.
Warps and how they are hit were also reworked, along with some notes and rows overflowing which caused a lot of the issues on how the game calcuated some of the file/song lengths in the musicwheel and evaluation screens. The values sometimes recorded in the #LASTSECONDHINT
and #MUSICLENGTH
in the cache file may not actually marry up - the game has several options internally for ensuring that songs do not go crazy on time. Again, this logic is new, so there may be edge cases that need to be ironed out. If you find a chart that is not behaving, let the team know so we can see what is happening.
There was also a lot of older code removed from the ScreenGamePlay branches of code that we inherited from older builds (3.x era) that we have removed as it was not really doing anything, and in some cases actually caused the new pump code to not function correctly. A few tweaks were also done for older .sm and .ksf charts and we fixed a lot of the math overflows due to the way the charts were implemented into the older SM build.
You can have a better experience than the 'default theme' by downloading the new pump
theme that is being developed called Infinitesimal from here; it will be incorporated into Project OutFox as a default theme for pump
coming in Alpha V. The theme is created to give you a faithful experience, using original assets and textures.
We hope you guys have fun with the fixes, and we have more planned in time!
be-mu
(and po-mu
) fixesWe had reports of the game being very unhappy with a lot of the earlier community charts from the BMS of Fighters series, and charts mainly created before 2009, so we have fixed a few of these not being parsed correctly.
We also have restored the 4k "DDR in BMS" chart support that Squirrel accidentally broke when adjusting the channel support. This has now been fixed and those simfile are recognised as dance charts once again.
There were also several crashes with the vs modes of po-mu
and be-mu
as well and these have been fixed as well, so 2 player works as intended.
We have had a few requests to reimagine the midi drivers for those with DJ controllers or systems which use channels but send the same notes. The MIDI standard states a controller should be able to do this with the client application supporting the note/channel sent data, so we have changed the way this is done to ensure we are compliant. Crossfaders and rotary controls, as well as some pitch bend triggers do have some weird quirks at the moment, but as we don't have any modes that support these at the moment do not try to map them as a control.
We added up/down jog wheel support for those who play be-mu on MIDI, so this works as designed now for everyone using midi for their jogs.
be-mu
/po-mu
songs on Endless Mode may have a crash on song loading. Please be aware that course mode for these modes are a bit temperamental at the moment!gh
mode: Some charts may cause a crash when loaded into the gamegddm
/gdgf
mode: We do not support the XA codec at this time, it'll play those keysounds silently.Mode Specific
be-mu
: Fixed doubles column locationbe-mu
: Fixed crash with 5k versusbe-mu
: Fixed crash with legacy BMS and some BML filesdance
: Fixed left arrow for doublesdance
: Fixed multi-row holds not being hit correctly on new hold mechanicsdance
: Fixed old .sm charts ending earlydance
: Added SetRequireStepOnHoldHeads() back for modding supportdance
: Fixed bug with missing 4k Dance support in BMS filesds3ddx
: New Added 5 panel support!ds3ddx
: New Added pump
chart to ds3ddx
smart autogends3ddx
: Fixed bug with ds3ddx 5 panel not working due to invalid metricsds3ddx
: Fixed noteskin column locations and 5 panel ds3ddx layoutgh
: Fixed typo in last strum logicgh
: Tweak fever in GH modegh
: New Added support for all sound layers in .chart and .midi filesgh
: Fixed crash with chart loadinggh
: Fixed bug with BGAs on .chart and .midi filesgh
: Fixed bug with missing loaded features on .chart and .midi filesgh
: Fixed bug with end of song evaluation crashes on .chart loadergh
: Fixed 'out of range' ghost crashes when loading .chart fileskbx
: Fixed hold mechanicskbx
: New Added arrow noteskins via global noteskinskbx
: Fixed kbx tick-hold damage valueskbx
: Fixed kbx column layout for 16K / 18K - thanks hanubekikbx
: Fixed kbx noteskin crash - thanks hanubekipo-mu
: Fixed crash with 3/5/7/9 versuspo-mu
: Fixed icon for po-mu18
button stylepara
: Fixed old .sm charts ending earlypara
: New Added proper second hintingpump
: Fixed bug with row overflow causing some charts to be 2.57 years in lengthpump
: Fixed bug with notes at end of warp being unhittablepump
: New Added classical3d+ noteskin for pumppump
: Fixed bug with fake notespump
: Fixed clamp and overflow on beat locations on warpspump
: Restored {} note support for pumppump
: Fixed bug with mis-parsed hidden notes for pumppump
: New Added support for 'h' notespump
: New Added skeleton for 's' and 'v' notes (coming in 0.4.16)pump
: Fixed bug with checkpoint tickspump
: Fixed overflow on bpmMaxpump
: Fixed warps to behave properly once againpump
: Fixed Musiclength overflowingpump
: Fixed bug with pump #LASTSECONDpump
: Fixed issue with #LASTSECONDHINT not respecting chart length correctlypump
: New Added support for group file "ForcePIU" to force use the PIUloaderpump
: Fixed bug with hold end fixespump
: Fixed pump hold mechanicspump
: Fixed bug with 2 second restart on older charts (pre 2010)pump
: Fixed bug with 7 second restart on older .ksf charts (pre 2007)pump
: Fixed bug with some charts ending early with extremely long 'ending' holdspump
: Fixed pump holds stepping logic to be more accuratepump
: Removed pointless 3.x era code breaking several featurespump
: Fixed hold notes judge for pumppump
: Fixed pump doubles layoutpump
: Fixed pump life damage on tick-holdspump
: Removed legacy 'time' methods for calculating pump length which have been broken since 2007pump
: Fixed dead code with 'First' and 'Last' second not being used except to overwrite with wrong informationpump
: Fixed bug with math in #LastSecondHintpump
: Fixed 'centre' overlapping for noteskinspump
: Fixed missing notes on receptorspump
: Fixed bug with Pump Holds punishing life on checkpoint missestaiko
: Added #BALLOON .tja note parsing, count logic needs to be addedtaiko
: Fixed bug with missing A & B notes on .tja parsertaiko
: Added Note Type A B D E to .tja parsertaiko
: Fixed Missing #NOTESDESIGNER tags in .TJA filesall
: Fixed bug with hold ticks after a warp transition forgetting there was a holdall
: Fixed tween overflow on holdsall
: Fixed bug with clamped BPM being weird on warps and bpm calculationall
: New Only load keysounds on chart load, to speed up caching for BMS/PMS/DTX/GDA/BGFall
: Fixed bug in cache being overwrittenall
: Fixed bug in cache values being written to in wrong orderall
: Fixed bug in the way cache is written for charts with slightly different lengths in .SSC and .SM filesall
: Rewrote SSC/SM/PIU loaders to respect proper chart lengths, removing the old SM 3.x methodsall
: Fixed #LASTSECOND overriding the hint and breaking musiclength valuesall
: Fixed order for caching last secondall
: Fixed #LASTSECONDHINT not returning a valueEngine
ds3ddx5
and po-mu18
*Windows 7+:
Linux:
MacOS (Universal):
ARM32/ARM64: (Raspberry Pi etc)
be-mu
/po-mu
songs on Endless Mode may have a crash on song loading. Please be aware that course mode for these modes are a bit temperamental at the moment!gh
mode: Some charts may cause a crash when loaded into the gamegddm
/gdgf
mode: We do not support the XA codec at this time, it'll play those keysounds silently.Mode Specific
be-mu
: Fixed doubles column locationbe-mu
: Fixed crash with 5k versusbe-mu
: Fixed crash with legacy BMS and some BML filesdance
: Fixed left arrow for doublesdance
: Fixed multi-row holds not being hit correctly on new hold mechanicsdance
: Fixed old .sm charts ending earlydance
: Added SetRequireStepOnHoldHeads() back for modding supportdance
: Fixed bug with missing 4k Dance support in BMS filesds3ddx
: New Added 5 panel support!ds3ddx
: New Added pump
chart to ds3ddx
smart autogends3ddx
: Fixed bug with ds3ddx 5 panel not working due to invalid metricsds3ddx
: Fixed noteskin column locations and 5 panel ds3ddx layoutgh
: Fixed typo in last strum logicgh
: Tweak fever in GH modegh
: New Added support for all sound layers in .chart and .midi filesgh
: Fixed crash with chart loadinggh
: Fixed bug with BGAs on .chart and .midi filesgh
: Fixed bug with missing loaded features on .chart and .midi filesgh
: Fixed bug with end of song evaluation crashes on .chart loadergh
: Fixed 'out of range' ghost crashes when loading .chart fileskbx
: Fixed hold mechanicskbx
: New Added arrow noteskins via global noteskinskbx
: Fixed kbx tick-hold damage valueskbx
: Fixed kbx column layout for 16K / 18K - thanks hanubekikbx
: Fixed kbx noteskin crash - thanks hanubekipo-mu
: Fixed crash with 3/5/7/9 versuspo-mu
: Fixed icon for po-mu18
button stylepara
: Fixed old .sm charts ending earlypara
: New Added proper second hintingpump
: Fixed bug with row overflow causing some charts to be 2.57 years in lengthpump
: Fixed bug with notes at end of warp being unhittablepump
: New Added classical3d+ noteskin for pumppump
: Fixed bug with fake notespump
: Fixed clamp and overflow on beat locations on warpspump
: Restored {} note support for pumppump
: Fixed bug with mis-parsed hidden notes for pumppump
: New Added support for 'h' notespump
: New Added skeleton for 's' and 'v' notes (coming in 0.4.16)pump
: Fixed bug with checkpoint tickspump
: Fixed overflow on bpmMaxpump
: Fixed warps to behave properly once againpump
: Fixed Musiclength overflowingpump
: Fixed bug with pump #LASTSECONDpump
: Fixed issue with #LASTSECONDHINT not respecting chart length correctlypump
: New Added support for group file "ForcePIU" to force use the PIUloaderpump
: Fixed bug with hold end fixespump
: Fixed pump hold mechanicspump
: Fixed bug with 2 second restart on older charts (pre 2010)pump
: Fixed bug with 7 second restart on older .ksf charts (pre 2007)pump
: Fixed bug with some charts ending early with extremely long 'ending' holdspump
: Fixed pump holds stepping logic to be more accuratepump
: Removed pointless 3.x era code breaking several featurespump
: Fixed hold notes judge for pumppump
: Fixed pump doubles layoutpump
: Fixed pump life damage on tick-holdspump
: Removed legacy 'time' methods for calculating pump length which have been broken since 2007pump
: Fixed dead code with 'First' and 'Last' second not being used except to overwrite with wrong informationpump
: Fixed bug with math in #LastSecondHintpump
: Fixed 'centre' overlapping for noteskinspump
: Fixed missing notes on receptorspump
: Fixed bug with Pump Holds punishing life on checkpoint missestaiko
: Added #BALLOON .tja note parsing, count logic needs to be addedtaiko
: Fixed bug with missing A & B notes on .tja parsertaiko
: Added Note Type A B D E to .tja parsertaiko
: Fixed Missing #NOTESDESIGNER tags in .TJA filesall
: Fixed bug with hold ticks after a warp transition forgetting there was a holdall
: Fixed tween overflow on holdsall
: Fixed bug with clamped BPM being weird on warps and bpm calculationall
: New Only load keysounds on chart load, to speed up caching for BMS/PMS/DTX/GDA/BGFall
: Fixed bug in cache being overwrittenall
: Fixed bug in cache values being written to in wrong orderall
: Fixed bug in the way cache is written for charts with slightly different lengths in .SSC and .SM filesall
: Rewrote SSC/SM/PIU loaders to respect proper chart lengths, removing the old SM 3.x methodsall
: Fixed #LASTSECOND overriding the hint and breaking musiclength valuesall
: Fixed order for caching last secondall
: Fixed #LASTSECONDHINT not returning a valueEngine
ds3ddx5
and po-mu18
*Windows 7+:
Linux:
MacOS (Universal):
ARM32/ARM64: (Raspberry Pi etc)
Following this release OutFox will be officially dropping the 5.3
prefix from our versioning to lessen confusion from our user base. We used to be 5.3.0.4.xx.xx as we were working on the game, but many of our users preferred to use the Alpha 4.xx versioning, leaving the 5.3 alone. Following consultation with ensuring we are compliant with our binary signing requirements, we have decided to drop this long version number and just use the 0.x.y.z which is a lot easier to read.
Internally we were using the alpha builds like this to simplify our own understanding, and it seemed the easiest way to move forward. This build is formally known as 0.4.14
, and we will be dropping versioning from folders and suchlike moving onward. We have removed the final parts that we needed for validation, so we are pleased to announce signed binaries for Windows will be available in the summer.
Given this change, the location of the save folders has changed. Following here are the new save locations: (If you're in an existing installation, you can just rename your existing save folder to the new name that belongs to your OS)
Windows: %AppData%\Roaming\Project OutFox
(If in non-portable mode)
MacOS: ~/Library/Preferences/Project OutFox
Linux: ~/.project-outfox/
Themes or systems which check for 'StepMania' in the product family may fail to find OutFox until updated, we have reached out to the developers of Simply Love and let them know about our updates and they have let us know it will be updated in due course.
With the change of the Product Family and ID to OutFox and dropping the 5.3 suffix, there will be instances where Simply Love will break again due to its checks for "stepmania", so changes will need to be made.
(The files mentioned on this guide are included on the binaries section)
Upon starting the game, I get a message saying this build is unsupported.
That's the inital check coming from SL-SupportHelpers.lua
, in a function called StepManiaVersionIsSupported()
, which checks which versions of the game are supported. Only a single new line needs to be added to support OutFox on the list.
(Located in Simply Love/Scripts/SL-SupportHelpers.lua
)
StepManiaVersionIsSupported = function()
-- Add this line!
if type(ProductID) == "function" and ProductID():find("OutFox") then return true end
if type(ProductFamily) ~= "function" or ProductFamily():lower() ~= "stepmania" then return false end
if type(ProductVersion) ~= "function" then return false end
if type(ProductVersion()) ~= "string" then return false end
-- SM5.0.12 is supported (latest stable release)
-- SM5.1.x is supported
-- SM5.2 is not supported because it saw significant
-- backwards-incompatible API changes and is now abandoned
-- SM5.3.x is supported (beta status because it's not open source yet)
return IsSMVersion(5, 0, 12) or IsSMVersion(5, 1) or IsSMVersion(5, 3)
end
When I finish a song, the theme keeps failing me, what is that?
That comes from a check from a file called FailOnHoldStart.lua
. Given the changes to how OutFox now calculates the end of the song, this can break the theme's method to calculate its own end point.
(Located in Simply Love/BGAnimations/ScreenGameplay overlay/FailOnHoldStart.lua
)
-- We need a way to check if the player gave up before the song properly ended.
-- It doesn't look like the engine broadcasts any messages that would be helpful here,
-- so we do the best we can by checking the song position.
local af = Def.ActorFrame{
OffCommand=function(self)
-- Replace this line!
local fail = STATSMAN:GetCurStageStats():GaveUp()
-- local fail = (GAMESTATE:GetCurMusicSeconds() < GAMESTATE:GetCurrentSong():GetLastSecond())
-- In course mode always fail if we're not already on the last
-- song. If we are on the last song, then we fall back to the
-- condition above.
if GAMESTATE:IsCourseMode() then
local course = GAMESTATE:GetCurrentCourse()
if GAMESTATE:GetCourseSongIndex() + 1 < course:GetNumCourseEntries() then
fail = true
end
end
-- We have to fail both players as we stopped the song early.
if fail then
-- Let's fail the bots as well.
for player in ivalues( GAMESTATE:GetEnabledPlayers() ) do
local pss = STATSMAN:GetCurStageStats():GetPlayerStageStats(player)
pss:FailPlayer()
end
end
end,
}
return af
Following an overwhelming demand from the community, we have rewritten the old legacy PPP controller driver from the PS2 to work on all devices OutFox supports.
To use this new driver on your Mac or linux machine, go to your preferences.ini and use one of the following to get your controller to work:
Please Note: You will need to add one of these so your controller will work!
Windows
(para only):
InputDrivers=para,legacy,minisdl
(para and rtmidi):
InputDrivers=para,rtmidi,legacy,minisdl
Mac OS (M1 and Intel)
(para only):
InputDrivers=para,SDL
(para and rtmidi):
InputDrivers=para,rtmidi,SDL
Linux (x86_64/ARM/Raspberry Pi)
(para only):
InputDrivers=para,SDL
(para and rtmidi):
InputDrivers=para,rtmidi,SDL
The controller must be plugged in before you start OutFox, and it is recommended for M1 based Macs you have a USB C hub that has built in USB2 ports. This will give you the greatest compatibility with older hardware. Do send us your ParaPara setups, we'd love to see them!
be-mu
/po-mu
songs on Endless Mode may have a crash on song loading. Please be aware that course mode for these modes are a bit temperamental at the moment!gh
mode: Some charts may cause a crash when loaded into the gamegddm
/gdgf
mode: We do not support the XA codec at this time, it'll play those keysounds silently.Mode Specific
taiko
: New Added TJA parser support!taiko
: New Added TJA note type supporttaiko
: New Added TJA #BPM adjustment supporttaiko
: New Added math and base 4 measure support to TJA parsertaiko
: New Added multi-chart support in TJA parsertaiko
: New Added OTO taiko SV (scroll gimmick) supporttaiko
: New Added OTO taiko multi-chart in one folder supporttaiko
: Fixed crash in TJA parser on some linux distrostaiko
: Fixed ratio overflow on OTO taiko modetaiko
: Fixed crash with older community TJA files (pre 2014 era)taiko
: Adjusted drum hitsounds on taitai noteskins to be more accuratetaiko
: Adjusted the drum hitsounds to be less laggy when rapid hittingtaiko
: Finished OTO Taiko Note Parsing (we now can read everything, though holds/balloon are single notes at the moment)pump
: Fixed PIU loader crashpump
: Fixed bug with some .SM and .SSC breaking the cachepump
: Fixed bug with pump (.sm/.ssc/.ksh) files snapping to completed on startpump
: Fixed bug with pump charts showing a negative song lengthpump
: Fixed bug with pump charts being set a 2 second chart lengthpump
: Fixed bug with 'extended' pump charts (longer than 9:59) not being parsedpump
: Fixed bug with pump charts with no set song length from crashing the gamepump
: Fixed bug with pump charts being set an invalid steps seconds valuepump
: New Added new skeleton for AV mod, math to be added, (not finished yet)pump
: Fixed hashing being called with autogensteps causing lag on pump and dance wheelspump
: Fixed legacy bug with the KSF loader causing songs to end earlykbx
: New Added OTO mania SV (scroll gimmick) support, Warps to comekbx
: Fixed bug with bad osu charts crashing the game (Thanks Yuki)kbx
: Fixed initial scroll flags for o!mania chartskbx
: Fixed inverse math algorithm on gimmicks so they aren't back to frontkbx
: Fixed 'correction' and 'chapter' timing points on o!mania charts (Thanks Matthew - The Lagger)kbx
: Fixed lane math overflow in the QUA parserkbx
: Fixed some 7K holds being skipped in the QUA parserkbx
: New Added SV support to QUA parserkbx
: Fixed songs with different steps lengths from ending at odd timeskbx
: Fixed math overflow on some o!mania gimmickskbx
: Fixed math for OTO parser, scroll gimmicks and such now workkbx
: New Added scroll factor support to QUA parserkbx
: Fixed crash on OTO/QUA parsing of osu/osz and qua/qp files when loading a mix of archives and non-archiveskbx
: Fixed punishment with hold mashingkbx
: Made lift holds less harshkbx
: New Added KBX 16/17/18/19 lane support!kbx
: Fixed noteskin support for new KBX 16-19 laneskbx
: Fixed kbx noteskin crash - thanks hanubekikbx
: Fixed kbx column layout for 16K / 18K - thanks hanubekipara
: New cross platform Para Para Paradise Controller Driver!stepstage
: Make stepstage available on editordance
: Fixed bug with Hashsplit and SSC hashingdance
: Fixed quirk with some SSC cache files for old SM5 era modfilesdance
: New Rewrote and optimised the SSC loaderdance
: Fixed Memory leak with writing SSC files for the cachedance
: Fixed potential infinite loop on some dance songs causing crashdance
: Fixed crash with dance charts when selecting different stylesdance
: Fixed scoring and correct ITG windows in timing.luadance
: Fixed DDR Ace timing in timing.luadance
: Fixed bug with missing split-timing checksdance/smx
: Fixed 'REQUIRE_STEP_ON_MINES' logic, thanks to dintechno
: Fixed crash when using 4k 5k 8k 9k interchangeablyall
: Fixed Notedata memory leak on SSC files when initial loadingall
: Fixed crash on parsing when loading more than 9000 SSC filesall
: Fixed crash on parsing when loading more than 3000 non-SSC filesall
: Fixed crash on music wheel when going through SSC/SM filesall
: Fixed bug with some crashes on non-SSC files having no or missing preview songs/soundsall
: Fixed bug with some po-mu
/be-mu
/gddm
/pump
/ charts ending after < 2 seconds of startingall
: Fixed bug with songlength math overflow on some pump/osu chartsgh
: Allowed gh
charts to be genned for stylespo-mu
: Fixed crash when trying to play with different key values. Keysounds will be weird, as there needs to be new logic for this as it is new groundpo-mu
: Fixed playback on 3 lane charts being shifted to channel 12po-mu
: Fixed parsing of 3 lane chartspo-mu
: New pomu-nine-double
supportpo-mu
: New pomu-nine-double
native parsing from BME/PMS filespo-mu
: New pomu-nine-double
Mines and Long Note support (extended PMS spec)be-mu
: Fixed crash when playing 5k and 7k at the same timeEngine
Def.NoteField()
*Editor:
IsStepTiming
, SetSnapMode
, ChangeToStepTiming
, SetHighlightSelection
, SetBPM
, SetStop
, SetDelay
, SetWarp
, SetLabel
, SetTickCount
, SetScroll
, GetEditorPosition
Note: These Lua hooks can be subject to change.*Windows 7+:
Linux:
MacOS (Universal):
ARM32/ARM64: (Raspberry Pi etc)