Skip to content

Commit c2ff07a

Browse files
authored
Merge branch 'develop' into conductor-fixed
2 parents b18e5a0 + e83b88d commit c2ff07a

File tree

8 files changed

+479
-267
lines changed

8 files changed

+479
-267
lines changed

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ body:
66
- type: markdown
77
attributes:
88
value: "# PLEASE READ THE [CONTRIBUTING GUIDE](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md) BEFORE OPENING ISSUES!"
9-
9+
1010
- type: checkboxes
1111
attributes:
1212
label: Issue Checklist
@@ -45,11 +45,11 @@ body:
4545
- type: input
4646
attributes:
4747
label: Version
48-
description: Which version are you playing on? The game version is in the bottom left corner of the main menu.
48+
description: Which version are you playing on? The game version is in the bottom left corner of the main menu.
4949
placeholder: ex. 0.5.3
5050
validations:
5151
required: true
52-
52+
5353
- type: markdown
5454
attributes:
5555
value: "## Describe your bug."
@@ -61,11 +61,11 @@ body:
6161
- type: textarea
6262
attributes:
6363
label: Description (include any images, videos, errors, or crash logs)
64-
description: Provide as much detail as you can. The better others understand your issue, the more they can help you!
64+
description: Provide as much detail as you can. The better others understand your issue, the more they can help you!
6565
placeholder: Describe your issue here...
6666
validations:
6767
required: true
68-
68+
6969
- type: textarea
7070
attributes:
7171
label: Steps to Reproduce

.github/workflows/label-issue.yml

Lines changed: 0 additions & 22 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 374 additions & 234 deletions
Large diffs are not rendered by default.

docs/COMPILING.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@
1313
- NOTE: By performing this operation, you are downloading Content which is proprietary and protected by national and international copyright and trademark laws. See [the LICENSE.md file for the Funkin.assets](https://github.com/FunkinCrew/funkin.assets/blob/main/LICENSE.md) repo for more information.
1414
5. Run `haxelib --global install hmm` and then `haxelib --global run hmm setup` to install hmm.json
1515
6. Run `hmm install` to install all haxelibs of the current branch
16-
7. Run `haxelib run lime setup` to set up lime
16+
7. Run `haxelib run lime setup` to set up Lime
1717
8. Perform additional platform setup
1818
- For Windows, download the [Visual Studio Build Tools](https://aka.ms/vs/17/release/vs_BuildTools.exe)
1919
- When prompted, select "Individual Components" and make sure to download the following:
2020
- MSVC v143 VS 2022 C++ x64/x86 build tools
2121
- Windows 10/11 SDK
2222
- Mac: [`lime setup mac` Documentation](https://lime.openfl.org/docs/advanced-setup/macos/)
2323
- Linux: [`lime setup linux` Documentation](https://lime.openfl.org/docs/advanced-setup/linux/)
24+
- Note: Funkin's fork currently doesn't come with the necessary binaries so you'll have to rebuild Lime. See [Troubleshooting](TROUBLESHOOTING.md#lime-related-issues).
25+
- One of Funkin's dependencies uses libVLC, which requires you to install some packages to be able to compile: `sudo apt install libvlc-dev libvlccore-dev libvlccore9`
2426
- HTML5: Compiles without any extra setup
2527
9. If you are targeting for native, you may need to run `lime rebuild <PLATFORM>` and `lime rebuild <PLATFORM> -debug`
2628
10. `lime test <PLATFORM>` to build and launch the game for your platform (for example, `lime test windows`)

docs/CONTRIBUTING.md

Lines changed: 62 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,50 @@
11
# Contributing
22
Welcome to the Contributing Guide!
3-
You can contribute to the Funkin' repository by opening issues or pull requests. This guide will cover best practices for each type of contribution.
3+
You can contribute to the Funkin' repository by opening issues or pull requests.
4+
5+
This guide will cover best practices for each type of contribution.
6+
7+
# Table of Contents
8+
<details open>
9+
<summary><b>Contents</b></summary>
10+
11+
[Part 1: Etiquette](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md#part-1-etiquette)
12+
13+
<details>
14+
<summary><a href="https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md#part-2-issues">Part 2: Issues</a></summary>
15+
16+
* [Requirements](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md#requirements)
17+
18+
* [Rejected Features](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md#rejected-features)
19+
20+
* [Issue Types](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md#issue-types)
21+
22+
* [Before You Submit...](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md#before-you-submit)
23+
24+
</details>
25+
26+
<details>
27+
28+
<summary><a href="https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md#part-3-pull-requests">Part 3: Pull Requests</a></summary>
29+
30+
* [Choosing a base branch](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md#choosing-a-base-branch)
31+
32+
* [Merge conflicts and rebasing](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md#merge-conflicts-and-rebasing)
33+
34+
* [Code PRs](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md#code-prs)
35+
36+
* [Documentation PRs](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md#documentation-prs)
37+
38+
* [GitHub PRs](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md#github-prs)
39+
40+
* [funkin.assets PRs](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md#funkinassets-prs)
41+
42+
</details>
43+
44+
[Closing](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md#closing)
45+
46+
</details>
47+
448

549
# Part 1: Etiquette
650
- Be respectful to one another. We're here to help each other out!
@@ -27,13 +71,21 @@ Here's a list of commonly suggested features and the reasons why they won't be a
2771
| Combo Break + Accuracy Displays | https://github.com/FunkinCrew/Funkin/pull/2681#issuecomment-2156308982 |
2872
| Toggleable Ghost Tapping | https://github.com/FunkinCrew/Funkin/pull/2564#issuecomment-2119701802 |
2973
| Perfectly Centered Strumlines | _same as above^_ |
74+
| MultiKey, 9k, More than 4 keys, etc. | https://github.com/FunkinCrew/Funkin/issues/4243#issuecomment-2692371969 |
3075
| Losing Icons for DD and Parents | https://github.com/FunkinCrew/Funkin/issues/3048#issuecomment-2243491536 |
3176
| Playable GF / Speaker BF / Speaker Pico | https://github.com/FunkinCrew/Funkin/issues/2953#issuecomment-2216985230 |
77+
| Fresh (Chill Mix) as Title Screen Music | https://github.com/FunkinCrew/Funkin/pull/4282#issuecomment-2709334718 |
3278
| Adjusted Difficulty Ratings | https://github.com/FunkinCrew/Funkin/issues/2781#issuecomment-2172053144 |
33-
| Countdown after Unpausing | https://github.com/FunkinCrew/Funkin/issues/2721#issuecomment-2159330106 |
79+
| Difficulty Ratings above 20 | https://github.com/FunkinCrew/Funkin/issues/3075#issuecomment-2368984497 |
80+
| Ability to Reset a Song's Score | https://github.com/FunkinCrew/Funkin/issues/3916#issuecomment-2525408261 |
81+
| Quick Restart Keybind (not R) | https://github.com/FunkinCrew/Funkin/issues/3268#issuecomment-2351095232 |
82+
| Countdown after Unpausing Song | https://github.com/FunkinCrew/Funkin/issues/2721#issuecomment-2159330106 |
83+
| 4:3 Aspect Ratio for Week 6 | https://github.com/FunkinCrew/Funkin/issues/3840#issuecomment-2689158438 |
84+
| "Philly Glow" Effect from Psych Engine | https://github.com/FunkinCrew/Funkin/issues/3788#issuecomment-2688966982 |
3485
| Importing Charts from Psych Engine (and other mod content) | https://github.com/FunkinCrew/Funkin/issues/2586#issuecomment-2125733327 |
3586
| Backwards Compatibility for Modding | https://github.com/FunkinCrew/Funkin/issues/3949#issuecomment-2608391329 |
36-
| Lua Support | https://github.com/FunkinCrew/Funkin/issues/2643#issuecomment-2143718093 |
87+
| Lua Support | https://github.com/FunkinCrew/Funkin/issues/2643#issuecomment-2143718093 |
88+
3789

3890
## Issue Types
3991
Choose the issue template that best suits your needs!
@@ -192,7 +244,9 @@ Here are some guidelines for writing comments in your code:
192244

193245
## Documentation PRs
194246
Documentation-based PRs make changes such as **fixing typos** or **adding new information** in documentation files.
247+
195248
This involves modifying one or several of the repository’s `.md` files, found throughout the repository.
249+
196250
Make sure your changes are easy to understand and formatted consistently to maximize clarity and readability.
197251

198252
> [!CAUTION]
@@ -229,16 +283,21 @@ Make sure your changes are easy to understand and formatted consistently to maxi
229283

230284
## GitHub PRs
231285
GitHub-related PRs make changes such as **tweaking Issue Templates** or **updating the repository’s workflows**.
286+
232287
This involves modifying one or several of the repository’s `.yml` files, or any other file in the `.github` folder.
288+
233289
Please test these changes on your fork’s main branch to avoid breaking anything in this repository (e.g. GitHub Actions, issue templates, etc.)!
234290

235291
## funkin.assets PRs
236292
The `assets` submodule has its own repository called [funkin.assets](https://github.com/FunkinCrew/funkin.assets).
293+
237294
If you only modify files in the `assets` folder, open a PR in the `funkin.assets` repository instead of the main repository.
295+
238296
If you simultaneously modify files from both repositories, then open two separate PRs and explain the connection in your PR descriptions.
239297

240298
Be sure to choose `main` as the base branch for `funkin.assets` PRs, as no `develop` branch exists for that repository.
241299

242300
# Closing
243301
Thank you for reading the Contributing Guide.
302+
244303
We look forward to seeing your contributions to the game!

docs/Funkin' Debug Hotkeys.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ Most of this functionality is only available on debug builds of the game!
77
- `F3`: ***SCREENSHOT***: Takes a screenshot of the game and saves it to the local `screenshots` directory. Works outside of debug builds too!
88
- `F4`: ***EJECT***: Forcibly switch state to the Main Menu (with no extra transition). Useful if you're stuck in a level and you need to get out!
99
- `F5`: ***HOT RELOAD***: Forcibly reload the game's scripts and data files, then restart the current state. If any files in the `assets` folder have been modified, the game should process the changes for you! NOTE: Known bug, this does not reset song charts or song scripts, but it should reset everything else (such as stage layout data and character animation data).
10+
- `CTRL-ALT-SHIFT-L`: ***FORCE CRASH***: Immediately crash the game with a detailed crash log and a stack trace. (Only works in the Main Menu on debug builds).
11+
1012
- `CTRL-SHIFT-L`: ***FORCE CRASH***: Immediately crash the game with a detailed crash log and a stack trace.
1113

1214
## **Play State**
@@ -29,3 +31,8 @@ Most of this functionality is only available on debug builds of the game!
2931
## **Main Menu**
3032
- `~`: ***DEBUG***: Opens a menu to access the Chart Editor and other work-in-progress editors. Rebindable in the options menu.
3133
- `CTRL-ALT-SHIFT-W`: ***ALL ACCESS***: Unlocks all songs in Freeplay. Only available on debug builds.
34+
- `CTRL-ALT-SHIFT-M`: ***NO MORE ACCESS***: Re-locks all songs in Freeplay except those unlocked by default. Only available on debug builds.
35+
- `CTRL-ALT-SHIFT-R`: ***GREAT SCORE?***: Give the user a hypothetical overridden score, and see if we can maintain that golden P rank. Only available on debug builds.
36+
- `CTRL-ALT-SHIFT-P`: ***CHARACTER UNLOCK SCREEN***: Forces the Character Select screen to play Pico's unlocking animation. Only available on debug builds.
37+
- `CTRL-ALT-SHIFT-N`: ***CHARACTER NOT SEEN***: Marks all characters as not seen and enables BF's new character unlocked animation in Freeplay. Only available on debug builds.
38+
- `CTRL-ALT-SHIFT-E`: ***DUMP SAVE DATA***: Prompts the user to save their save data as a JSON file, so its contents can be viewed. Only available on debug builds.

docs/TROUBLESHOOTING.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,22 @@
2929
- You did not clone the repository correctly! Copy the path to your `funkin` folder and run `cd the\path\you\copied`. Then follow the compilation guide starting from **Step 4**.
3030

3131
- Other compilation issues may be caused by installing bad library versions. Try deleting the `.haxelib` folder and following the guide starting from **Step 5**.
32+
33+
## Lime Related Issues
34+
- Segmentation fault and/or crash after `Done mapping time changes: [SongTimeChange(0ms,102bpm)]`
35+
- Caused by using official Lime instead of Funkin's fork. Reinstalling Lime should fix it.
36+
(NOTE: Make sure you do this via `hmm` (e.g `hmm reinstall -f lime`) to guarantee you get Funkin's version of Lime.)
37+
38+
- `Uncaught exception - Could not find lime.ndll.` ... `Advanced users may run "lime rebuild cpp" instead.`
39+
- Usually specific to Linux. Running the commands below should fix it.
40+
```
41+
cd .haxelib/lime/git
42+
git submodule init
43+
git submodule sync
44+
git submodule update
45+
cd ../../..
46+
# Note: The command and packages here might be different depending on your distro.
47+
sudo apt install libgl1-mesa-dev libglu1-mesa-dev g++ g++-multilib gcc-multilib libasound2-dev libx11-dev libxext-dev libxi-dev libxrandr-dev libxinerama-dev libpulse-dev
48+
lime rebuild cpp -64 -release -clean
49+
```
50+
For Windows or MacOS you can download pre-built binaries from [Funkin's Lime](https://github.com/FunkinCrew/lime/tree/dev-funkin/ndll).

source/funkin/play/PlayState.hx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -924,6 +924,13 @@ class PlayState extends MusicBeatSubState
924924
if (focus) Conductor.instance.update((FlxG.sound.music.pitch != 1) ? FlxG.sound.music.time + elapsed * 1000 : (Conductor.instance.songPosition
925925
+ elapsed * 1000),
926926
false); // Normal conductor update.
927+
928+
// If, after updating the conductor, the instrumental has finished, end the song immediately.
929+
// This helps prevent a major bug where the level suddenly loops back to the start or middle.
930+
if (Conductor.instance.songPosition >= (FlxG.sound.music.endTime ?? FlxG.sound.music.length))
931+
{
932+
if (mayPauseGame) endSong(skipEndingTransition);
933+
}
927934
}
928935

929936
var androidPause:Bool = false;
@@ -1450,7 +1457,7 @@ class PlayState extends MusicBeatSubState
14501457
var playerVoicesError:Float = 0;
14511458
var opponentVoicesError:Float = 0;
14521459

1453-
if (vocals != null)
1460+
if (vocals != null && vocals.playing)
14541461
{
14551462
@:privateAccess // todo: maybe make the groups public :thinking:
14561463
{
@@ -2069,7 +2076,7 @@ class PlayState extends MusicBeatSubState
20692076
}
20702077

20712078
FlxG.sound.music.onComplete = function() {
2072-
endSong(skipEndingTransition);
2079+
if (mayPauseGame) endSong(skipEndingTransition);
20732080
};
20742081
// A negative instrumental offset means the song skips the first few milliseconds of the track.
20752082
// This just gets added into the startTimestamp behavior so we don't need to do anything extra.

0 commit comments

Comments
 (0)