Git Product home page Git Product logo

lunaticvibes's Introduction

Project is basically dead because codebase is somehow in a mess and having no time ;;
Maybe I will come back with a new other project. Stay tuned

go play lr2oraja

Lunatic Vibes

Lunatic Vibes is a rhythm game that plays community-made charts in BMS format.

The project is basically a rewritten version of the Lunatic Rave 2 (beta3 100201).

The project is still in development stage. Please do not expect a bug-free experience. Feel free to open issues.

Features

  • Multi-threaded update procedure
  • Async input handling
  • Full Unicode support
  • Built-in difficulty table support
  • Mixed skin resolution support (SD, HD, FHD)
  • ARENA Mode over LAN / VLAN

For LR2 feature compatibility list, check out the wiki.

Requirements

  • Do NOT use this application to load unauthorized copyrighted contents (e.g. charts, skins).
  • Supported OS: Windows 7+

Quick Start

Build

Windows (CMake + Visual Studio 2022)

  1. Clone repository

    git clone https://github.com/yaasdf/lunaticvibes.git
    cd lunaticvibes
    git submodule update --init --recursive
    
  2. Configure / Build FFmpeg (Optional)

    The configured header files are included now (see #1), though it's recommended to configure FFmpeg yourself.

    If you are going to configure FFmpeg, check out ext/FFmpeg/build_lib.md for instructions. Default configuration emits chunkload around 100MB

  3. Install dependencies via vcpkg (skip any you have already installed)

    vcpkg install openssl:x64-windows
    vcpkg install boost:x64-windows
    vcpkg install curl:x64-windows
    
  4. Choose a generator to build

    a. VS2022 (via console)

     ```
     mkdir build
     cd build
     cmake .. -G "Visual Studio 17 2022" -A x64
     cmake --build . --config Release -j -t LunaticVibes
     ```
    

    b. Ninja (via IDE)

     - Open project folder with Visual Studio
     - Open CMake configuration, fill CMake toolchain file to the one from vcpkg like "D:/vcpkg/scripts/buildsystems/vcpkg.cmake"
     - Build LunaticVibes.exe
    

License

  • MIT License

lunaticvibes's People

Contributors

jbscj avatar lxdlam avatar m8nscape avatar staticssleever668 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lunaticvibes's Issues

增加不同原生分辨率皮肤混搭功能

比如skin select和keyconfig用480p,其他界面720p这样的
这个功能倒是不着急,完善皮肤相关内容再加也不晚...
顺带一提,filter可以把切图以后多余的部分去掉(比如说数字是紧挨着的话有的数字会出现多余的像素)

AV1 video playback fails

detach from #13

Logs:

using video file from https://www.flatpanelshd.com/flatforums/viewtopic.php?t=9969
2022-12-21 18:44:24.789 DEBUG [49000] [ScenePlay::updatePrepare@2170] [Play] State changed to LOADING
2022-12-21 18:44:24.816 DEBUG [56772] [ScenePlay::loadChart::<lambda_2ffab436344b25cde73aa05d82df8675>::operator ()@1134] [Play] Load files from G:\BMS\test2\Act Beloved\
[av1 @ 00000217b42fe600] Your platform doesn't suppport hardware accelerated AV1 decoding.
[av1 @ 00000217b42fe600] Failed to get pixel format.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Your platform doesn't suppport hardware accelerated AV1 decoding.
[av1 @ 00000217b42fe600] Failed to get pixel format.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[av1 @ 00000217b42fe600] Missing Sequence Header.
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002179ef33300] decoding for stream 0 failed
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002179ef33300] Could not find codec parameters for stream 0 (Video: av1 (Main) (av01 / 0x31307661), none(tv), 960x540 [SAR 1:1 DAR 16:9], 1728 kb/s): unspecified pixel format
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
2022-12-21 18:44:27.939 DEBUG [56772] [TextureBmsBga::addBmp@183] [TextureBmsBga] added video: G:\BMS\test2\Act Beloved\av1.mp4
2022-12-21 18:44:27.940 DEBUG [49000] [ScenePlay::updateLoading@2220] [Play] State changed to READY
2022-12-21 18:44:29.440 DEBUG [49000] [ScenePlay::updateLoadEnd@2245] [Play] State changed to PLAY_START
[av1 @ 00000217b45a2dc0] Your platform doesn't suppport hardware accelerated AV1 decoding.
[av1 @ 00000217b45a2dc0] Failed to get pixel format.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Your platform doesn't suppport hardware accelerated AV1 decoding.
[av1 @ 00000217b45a2dc0] Failed to get pixel format.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
[av1 @ 00000217b45a2dc0] Missing Sequence Header.
2022-12-21 18:44:30.377 ERROR [56772] [sVideo::decodeLoop@216] [Video] playback error: Invalid data found when processing input
using video file encoded with: ffmpeg -i .\movie.mpg -c:v libaom-av1 -cpu-used 8 movie.mp4
2022-12-21 18:49:36.909 DEBUG [56224] [ScenePlay::updatePrepare@2170] [Play] State changed to LOADING
2022-12-21 18:49:36.910 DEBUG [55360] [ScenePlay::loadChart::<lambda_2ffab436344b25cde73aa05d82df8675>::operator ()@1134] [Play] Load files from G:\BMS\test2\Act Beloved\
[av1 @ 0000020e53fad280] Your platform doesn't suppport hardware accelerated AV1 decoding.
[av1 @ 0000020e53fad280] Failed to get pixel format.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[av1 @ 0000020e53fad280] Missing Sequence Header.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0000020e53f9c880] Could not find codec parameters for stream 0 (Video: av1 (Main) (av01 / 0x31307661), none(tv, progressive), 256x256 [SAR 1:1 DAR 1:1], 579 kb/s): unspecified pixel format
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
2022-12-21 18:49:40.080 DEBUG [52456] [TextureBmsBga::addBmp@183] [TextureBmsBga] added video: G:\BMS\test2\Act Beloved\movie.mp4
2022-12-21 18:49:40.081 DEBUG [56224] [ScenePlay::updateLoading@2220] [Play] State changed to READY
2022-12-21 18:49:41.581 DEBUG [56224] [ScenePlay::updateLoadEnd@2245] [Play] State changed to PLAY_START
[av1 @ 0000020e540b7ec0] Your platform doesn't suppport hardware accelerated AV1 decoding.
[av1 @ 0000020e540b7ec0] Failed to get pixel format.
[av1 @ 0000020e540b7ec0] Missing Sequence Header.
[av1 @ 0000020e540b7ec0] Missing Sequence Header.
2022-12-21 18:49:42.498 ERROR [32252] [sVideo::decodeLoop@216] [Video] playback error: Invalid data found when processing input

功能请求

增加更多分辨率支持
例如 1360X768 3440×1440

HI-SPEED 能否自定义?像beatoraja那样
image

BGA 像lr2那样改size
image

兼容更多格式的bga 像beatoraja那样
看了下,现在应该是支持的,就是更加智能一点,比如同目录下有更高画质的bga文件,优先使用那个文件

兼容更多编码
image

any place for discussing development?

yeah Interested in seeing this project.
however i havent see any place for improving functions or others.
is there any places like discord or other community for discussing development.
maybe i can give some help. etc: iidx gacha ticket or gauge shift in beatoraja etc
thanks!

Generic IR support

As there is no LR2IR support planned, it would be nice to include some ability to connect to an external Internet Ranking.

As of posting the most suitable IR for this would be Bokutachi, as it accepts scores from both LR2 (by manual import) and LR2oraja (by using an IR addon).

Garbage text shown in options

LV 2023-04-01 03-47-03

Version: e6663f6 (0.10.3.3)

This is because ImGui::Text uses printf-like formatting, and lunaticvibes uses data from translation files directly as the format string in some calls to it. This translated string has a % in it. (hence it was reading memory further than it's supposed to, basically UB). Fixing is simple: use "%s" as the format string (or use a %% in the translated string, which I think is worse).
EDIT: or better, we can use TextUnformatted.

Example of what should be done and how to fix this:

diff --git a/src/game/scene/scene_select_imgui.cpp b/src/game/scene/scene_select_imgui.cpp
index 76feebb..0925c22 100644
--- a/src/game/scene/scene_select_imgui.cpp
+++ b/src/game/scene/scene_select_imgui.cpp
@@ -815,7 +815,7 @@ void SceneSelect::imguiPageOptionsPlay()
         HelpMarker(i18n::c(INPUT_POLLING_RATE_WARNING_WINDOWS));
 #endif
 
-        ImGui::Text(i18n::c(DEFAULT_TARGET));
+        ImGui::Text("%s", i18n::c(DEFAULT_TARGET));
         ImGui::SameLine(infoRowWidth);
         imgui_play_defaultTarget = State::get(IndexNumber::DEFAULT_TARGET_RATE);
         if (ImGui::SliderInt("##defaulttarget", &imgui_play_defaultTarget, 0, 100, "%d %%", ImGuiSliderFlags_None))

I will be making a PR for this shortly.
By the way, clang has a warning for this (format-nonliteral): Format string is not a string literal (potentially insecure).

[Feature Request] Add new screen resolutions

Some resolutions was unsupported will be played only windowed (not borderless/full screen)
There screen resolution contains

  • 640x480
  • 720x480
  • 720x576
  • 800x600
  • 1024x768
  • 1152x864
  • 1280x720
  • 1280x800
  • 1280x960
  • 1280x1024
  • 1360x768
  • 1366x768
  • 1600x900
  • 1600x1024
  • 1600x1200
  • 1680x1050
    PS. My 144Hz FHD monitor [Acer GN246HL] got broken due unknown reasons. I have another monitor ViewSonic VX2235wm (1680x1050@60Hz)

[Feature request] open/test bms feature

Tested LR2 to preview and play from files or trough editor. Usage:

'lunaticvibes [filename]' - open bms to play mode (manual)
'lunaticvibes -A [filename]' - open bms to autoplay mode

Current behavior: opening bms from file it crashed.

@m8nscape thanks for modern bms player project!

Negative STOP behaviour does not match LR2

Hello! First of all I'd like to thank you for your tremendous work on this project!

It looks like some specific charts do not currently play properly in Lunatic Vibes due to a difference in behaviour when it comes to negative STOP values, e.g. this chart. I don't know if the goal of your project is to replicate LR2's quirks too but LR2 skips a 1/192th in that situation (see https://hitkey.nekokan.dyndns.info/exstop.htm), which doesn't seem to be the case here.

Implement missing search commands

https://github.com/m8nscape/lunaticvibes/wiki/LR2-Features-Compatibility#select

Opening an issue for this just to say that I'm working on it, to avoid potential duplicate work (I could open a draft PR for that, but I have to work in a temporary branch with #32 merged until it gets into master, and taking commits out of it takes a bit of time).

I'm only implementing the officially documented commands:/hash, /path, /deletescore. The only undocumented command I had use for is /irupdateall, but there is no IR support in Lunatic Vibes right now.

Gauge Auto Shift/ARS

From beatoraja and Sound Voltex.

The selected gauge type is the gauge you start on, and you can work your way down the gauge types (Death > ExHard > Hard > Normal <> Easy <> Assist Easy)

CLEAR: FULLCOMBO is shown regardless of gauge

Version: e6663f6 (0.10.3.3).
LV 2023-04-03 13-41-25
Looks like a regressions since ebdab89.

std::pair<bool, Option::e_lamp_type> getSaveScoreType()
{
if (gInCustomize) return { false, Option::LAMP_NOPLAY };
if (gSelectContext.pitchSpeed < 1.0)
return { false, Option::LAMP_NOPLAY };
int battleType = State::get(IndexOption::PLAY_BATTLE_TYPE);
if (battleType == Option::BATTLE_LOCAL || battleType == Option::BATTLE_DB)
return { false, Option::LAMP_NOPLAY };
if (State::get(IndexOption::PLAY_HSFIX_TYPE) == Option::e_speed_type::SPEED_FIX_CONSTANT)
return { false, Option::LAMP_NOPLAY };
Option::e_random_type randomType = (Option::e_random_type)State::get(IndexOption::PLAY_RANDOM_TYPE_1P);
bool isPlaymodeDP = (State::get(IndexOption::PLAY_MODE) == Option::PLAY_MODE_DOUBLE ||
State::get(IndexOption::PLAY_MODE) == Option::PLAY_MODE_DP_GHOST_BATTLE);
if (randomType == Option::e_random_type::RAN_HRAN)
return { false, Option::LAMP_ASSIST };
else if (randomType == Option::e_random_type::RAN_ALLSCR)
return { false, Option::LAMP_NOPLAY };
if (isPlaymodeDP)
{
Option::e_random_type randomType2P = (Option::e_random_type)State::get(IndexOption::PLAY_RANDOM_TYPE_2P);
if (randomType2P == Option::e_random_type::RAN_HRAN)
return { false, Option::LAMP_ASSIST };
else if (randomType2P == Option::e_random_type::RAN_ALLSCR)
return { false, Option::LAMP_NOPLAY };
}
if (State::get(IndexSwitch::PLAY_OPTION_AUTOSCR_1P))
return { true, Option::LAMP_ASSIST };
if (isPlaymodeDP)
{
if (State::get(IndexSwitch::PLAY_OPTION_AUTOSCR_2P))
return { true, Option::LAMP_ASSIST };
}
Option::e_gauge_type gaugeType = (Option::e_gauge_type)State::get(IndexOption::PLAY_GAUGE_TYPE_1P);
Option::e_lamp_type lampType = Option::e_lamp_type::LAMP_FULLCOMBO; // FIXME change to PERFECT / MAX
return { true, lampType };
}

This function returns the maximum allowed clear type for a given gauge, which is then set into IndexOption::CHART_SAVE_LAMP_TYPE, which is then used by the renderer to determine which clear type to show.
I think there should be another IndexOption along the lines of GAUGE_CLEAR_TYPE, which would be set to std::min(getSaveScoreType(), theLastSnippetOfOldGetSaveScoreType()), which in turn would be used for setting the DST options.

Resolve file paths inside skins, soundsets and chart files with convertLR2Path

Right now it's done for some but not all paths. This is needed on Linux as with #32 convertLR2Path() also resolves case-insensitive file paths.

An example of where this is an issue: https://manbow.nothing.sh/event/event.cgi?action=More_def&num=291&event=140.
The BMS files specify ad_hd.jpg, but the file in chart folder is named AD_hd.jpg.
2023-04-03 16:47:18.861 WARN [17227] [common_SDL2.cpp@150] [Image] Load image file error! Couldn't open /path/to/ABSOLUTE DARK/ad_hd.jpg

[BUG] 7K charts detected as 14K charts

From what I understand about BMS clients (at least LR2 and beatoraja), the way a chart is recognized as 7KEYS or 14KEYS is not actually based on what is specified in the #PLAYER field, but on whether there are notes in the 2P lanes or not. Because Lunatic Vibes solely rely on what is specified in the #PLAYER field, this creates situations where a chart that is recognized as 7KEYS by the previously mentioned BMS clients is actually recognized as 14KEYS by Lunatic Vibes.

Example:
http://www.dream-pro.info/~lavalse/LR2IR/search.cgi?mode=ranking&bmsid=297540
This chart specifies "#PLAYER 3" but because there are no notes in the 2P lanes LR2 recognizes it as a 7K chart.
However, because of this "#PLAYER 3" Lunatic Vibes "wrongfully" considers the chart to be 14KEYS even though there are no notes at all in the 2P lanes.

Feature request: Add lamps for extended skin

From beatoraja used new lamps (ASSIST EASY, EX-HARD, PERFECT and MAX)
usage #SRC_BAR_LAMP, #SRC_BAR_MY_LAMP and #SRC_BAR_RIVAL_LAMP
Index:

0 - NO PLAY
1 - FAILED
2 - EASY (if not defined ASSIST EASY [9] to define as ASSIST EASY/EASY)
3 - NORMAL
4 - HARD (if not defined EX-HARD [5] to define as HARD/EX-HARD)
5 - EX-HARD
6 - FULL COMBO (if not defined PERFECT [7] or MAX [8] to define as FULLCOMBO/PERFECT(if not defined)/MAX(if not defined)
7 - PERFECT
8 - MAX
9 - ASSIST EASY

问题:右alt不能用于设置键位(还有一些建议)

1、右alt不能用于设置键位,已排除输入法原因
2、扫盘速度和LR2一样慢,并且扫盘的时候cpu和硬盘都没跑满,可以考虑一下用一条线程读取bms文件,读取文件后把文件内容和解析任务交给别的线程
3、DP铺面解析没做好,只有白键
4、选歌界面的上下切换速度可以做得快一点

[BUG] Auto scratch long note

image
When enable auto scratch note and testing song "Cat's rule"[SPB] 1st LN auto scratch note worked but 2nd not working

Keep aspect ratio for BGA

Nowadays BGA files are shipped in many aspect ratios, and while 1:1 and 4:3 wouldn't look too different when resized, 16:9 BGAs will look weird.

There should be an option to add letterboxing to BGAs which aspect ratio does not match the aspect ratio of #DST_BGA

Subdirectories without charts show up in the songwheel

My BMS folder has some directories without valid charts (no bms/bml/bme/pms files).

Expected behaviour
Folders are ignored by the music select screen

Actual behaviour
Folders appear in-game, can be entered and are empty inside.
obraz
obraz

Arena rival's lamp always returned as Easy Clear

Tonight I was testing ARENA MODE with a friend.
We were both playing with RANDOM and the same gauge.

Expected behaviour
We would see each other's clear lamps properly on the Result screen

Actual behaviour
Rival's lamp was always returned as E-CLEAR

Host Rival
obraz obraz
obraz obraz
obraz obraz

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.