Rewritten source code of BMS player Lunatic Rave 2. Project started in January 2021. Original code accessible at LR2Beta3-v100201
After the closure of LR2IR, the project has been made public.
-
Download unmodified Lunatic Rave 2 beta3 100201 archive.org Download
-
Place the OpenLR2 executable in the root folder of your freshly downloaded LR2. You can also optionally replace the original LR2body.exe.
Caution
OpenLR2 uses the same score DB as the original LR2.
To avoid data corruption, it's generally recommended to have a fresh LR2 directory, or use the "-ns" flag.
Backing up your "LR2files\Database\Score" folder is highly recommended.
Note
Existing song.db will be refreshed on first OpenLR2 launch. That is normal. This is needed because LR2 didn't account for leap year days in database timestamps.
- Proper fullscreen support – The game doesn't crash on Alt+Tab or when toggling window mode with F4 in-game.
- Gauge Auto Shift (GAS) – Changes the gauge to the easier one automatically if you failed on the selected one. You can access GAS options in MANIAC OPTIONS by pressing F2 in-game and going to the 3rd page using the arrow keys.
- Native fast/slow support
- Quick restart – Lets you restart the chart without going to result screen. Press both Start and Select, then quickly release and press either Start for a new random, or Select for the same random you had before.
- MainBPM Hi-Speed Fix – Hi-Speed anchor is set at the most prevalent BPM in the chart.
- UTF-8 support – Essentially means you don't need to change the locale in Windows settings to play.
- Frame Limiter - Replace vSync, which has a problem with tickrate.
- Unrandomizer - Input '/random 1357246' or any number you want into search bar. Input '/random 0' to reset the unrandomizer.
- Mordern BMS command support (Document)
- Base62 support – support more keysounds on some newer charts that require them.
- New skin command support (Document)
-
Add the corresponding #RESOLUTION under #INFORMATION in your .lr2skin files for each of the game scenes (music select, decide, play, result, course result...) Refer to the image above as an example.
-
You can also set default resolution in "LR2files/Config/openlr2-config.xml" (0:SD 1:HD 2:FHD)
-
Launcher (partial support OpenLR2)
-
Score importer
-
Skin Editor
LR2SkinEditor (AI slop)
- score save issue on NONSTOP MIX
- readme left click scroll is faster than original (not important)
Open the project folder in Visual Studio. It will automatically pick up the CMake project.
Alternatively, use the .sln build. Open the OpenLR2.sln file in Visual Studio. (you need vcpkg installed)
Only provided for development purposes, not for use in production.
make -C ./dep/dxlib-for-linux/DxLib clean
CXXFLAGS=$(pkg-config --cflags opusfile) make -C ./dep/dxlib-for-linux/DxLib -j$(nproc)
rm -rf build
cmake -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=1
cmake --build build -j$(nproc)- DxLib 3.01a => 3.24f (custom old dxa) – currently using custom dxlib to read dxa files.
- FMODex 4.13.4(080401) => FMOD 2.3.10
- SQLite 3.6.7
- tinyxml
- md5.c, md5.h from https://github.com/Zunawe/md5-c. not in original LR2 but to save time I used this.
https://drive.google.com/file/d/1yruE-PLypH40WMsl-zNi2l6uWkoe360u/view?usp=sharing
- .red who wrote lr2skin specification
- All contributors