osudroid / osu-droid Goto Github PK
View Code? Open in Web Editor NEWHome Page: http://osudroid.moe
License: Apache License 2.0
Home Page: http://osudroid.moe
License: Apache License 2.0
Precise mod is ready to be ranked, there are still some thing to do:
determine score multiplier (I think x1.05 is fine)
client side coding
server side coding
My phone can support 10 simultaneously touch without problem but here at osu!droid it can only register 1 touch and im playing bangdream so multi touch is supported.
Android OS: EMUI 10.1(ANDROID 10)
PHONE: Huawei Y6P 2020 4Gb Ram
Could u add more skinnable elements?
osu droid should have experimental sliders because circles in the game are too big especially if you're using a small phone and it's hard to see and read the notes even if i use a skin, sliders and circle size should be adjustable.
Will open osudroid and it will detect the song in my downloads then import it. I click the play button and then it says "Caching complete. Found 0 beatmaps" and the screen says later "there are no songs in library"
I checked the song directory and the songs i imported are there. They just don't show up in the app
Edit: also the discord link is expired
Now tap during break will flicker
Is it intentional that force AR and speed modify modifiers are not stored in replays? Apparently they are only stored in score database file.
Originally posted by @Rian8337 in #29 (comment)
Any time a map has a slider or spinner, any circles (and maybe sliders) that are meant to be tapped during that slider/spinner's duration don't respond to being tapped at all, resulting in the note being forcibly missed.
Source: any 2B map in the game
Show Cursor on Std Auto Mod.
Auto Cursor Dance Mod.
Collection of external storage (SD card compatibilty) problems
read some thing from asset folder, but works like 'values-en/values-zh' in res folder
I have a problem when failing a beatmap.
When I press the Back button on my phone, the fail sound doesn't stop. Please fix this!
Here is the video of it!
in some case those elements disappear, but haven't found why,
When osu!droid is playing music in the backgroud the statusbar icon is upside down and says "inso"
My device: Xiaomi POCO X3 NFC, LineageOS 18.1 (Android 11)
This formula will break down in CS≥85/7, which is approximately 12.14. The situation can be achieved using SC (small circle) mod in combination with HR in high CS maps such as this. When such cases happen, the hitobject radius will be negative.
The original osu! implementation caps the CS at 10 both in gameplay and difficulty calculation.
I like to play osu with some skins (some older than another) but in all of them have one problem and do "abnormal problem" to osu... but i have some skins what are since 2010, other are like 2018 or 2019 and he have a issue with them...
When playing with activated beatmap skins the hitcircle overlays from a beatmap skin do not apply to sliders (neither start or end) and use the global skin instead (happens with default skin and player selected skins). Hitcircles consistently use the hitcircle overlay from the beatmap.
Example maps:
https://osu.ppy.sh/beatmapsets/7205#osu/31412
https://osu.ppy.sh/beatmapsets/355065#osu/781872
This issue should apply to all maps using a custom hitcircle overlay.
Now for some reason when i process too many beatmaps it crahes without forgetting the fact that it takes so long to process them each time two times .optimizating it or finding an alternate for the beamap proccesing would be good so that it goes faster and be optimized.
So like, theres nothing in the GitHub description.
This should be changed in order to give contributors and users a better idea of what this is at first glance, such as saying its an osu! client with extra features and such.
When` you lost and quickly press the Back button, then the music continues to play
In the map paraparaMAX I, there are some red lines, which should change the slider velocity since they change the BPM, but the slider velocity remains the same as it is at the beginning. This results in the map being completely broken, as other objects are occurring during slider bodies due to the sliders not completing quickly enough. This demonstrates another issue which will be made in a separate post.
Can you make a option for play with keyboard please? I need it
The createHitEffect
method in GameScene
class never processes any kind of animated hit results (normal, katu, geki), however these textures are loaded when the game is loading skins.
Is there an public api to get the an player stats on the game?
I would like to ask you to change the size of the buttons because they are too big
I have many friends what play osu and we was thinking if the osu!droid have a multiplayer and the pp (perfomance point), the multi was a good idea for play with everbody together and the pp just for show the points what one people have (that don't have a impact in ur rank).
You can put RX + SD/PF and AP + SD/PF as well as (RX/AP) + NF (I guess this is an old bug) in the latest prerelease.
PF works as intended, however SD completely bugs out. On the other hand, RX and AP already have a "built-in NF", therefore putting NF on both mods is useless.
Perhaps fixing SD behavior on RX and AP and/or making all 5 mods exclusive to each other (like in official osu!) should be considered.
Side note: NF, SD, and PF are already exclusive to each other.
Hello, there! Since Rian told me to open an issue about the bug, I started writing this. Now for the bug. The bug happens usually when you get out of a map right before finishing. When you try to replay the difficulty it automatically makes an SS score without any clicks, combo and score. Some said that the bug is quite well known, but I still wanted to share it here. Link for the video (it occurs in the end): https://youtu.be/P_qjmOFGJgU
This has been an issue for awhile and has only been slightly fixed by capping the amount to 30 and distributing it (previously it would render hundreds if the follow point image was too small)
For those who arent up to spec on how follow points are rendered in stable and droid
droid: calculate the amount to fill the distance (cap to 30) then distribute evenly
stable: place a follow point every 32 pixels(?) until you reach the end
In the following code block it shows how stable renders its follow points
internal void AddFollowPoints(int startIndex = 0, int endIndex = -1) {
if (endIndex == -1) endIndex = this.hitObjectsCount - 1;
pTexture[] fptextures = TextureManager.LoadAll(@"followpoint");
int followPointIndex = 0;
for (int i = startIndex + 1; i <= endIndex; i++) {
HitObject currHitObject = this.hitObjects[i];
//Draw connection lines
if (!currHitObject.NewCombo && !this.hitObjects[i - 1].IsType(HitObjectType.Spinner) && !this.hitObjects[i].IsType(HitObjectType.Spinner)) {
Vector2 pos1 = this.hitObjects[i - 1].EndPosition;
int time1 = this.hitObjects[i - 1].EndTime;
Vector2 pos2 = currHitObject.Position;
int time2 = currHitObject.StartTime;
int distance = (int)Vector2.Distance(pos1, pos2);
Vector2 distanceVector = pos2 - pos1;
int length = time2 - time1;
float angle = (float)Math.Atan2(pos2.Y - pos1.Y, pos2.X - pos1.X);
for (int j = (int)(FollowLineDistance * 1.5); j < distance - FollowLineDistance; j += FollowLineDistance) {
float fraction = (float)j / distance;
Vector2 posStart = pos1 + (fraction - 0.1f) * distanceVector;
Vector2 pos = pos1 + fraction * distanceVector;
int fadein = (int)(time1 + fraction * length) - FollowLinePreEmpt;
int fadeout = (int)(time1 + fraction * length);
pAnimation dot;
if (followPointIndex < this.followPoints.Count) {
dot = this.followPoints[followPointIndex];
dot.Position = pos;
foreach (Transformation t in dot.Transformations) {
if (t.Type == TransformationType.Fade && t.EndFloat == 0) {
t.Time1 = fadeout;
t.Time2 = fadeout + FadeIn;
}
else {
t.Time1 = fadein;
t.Time2 = fadein + FadeIn;
}
if (t.Type == TransformationType.Movement) {
t.StartVector = posStart;
t.EndVector = pos;
}
}
dot.ResetAnimation();
}
else {
dot = new pAnimation(fptextures, Fields.Gamefield, Origins.Centre, Clocks.Audio, pos, 0, false, Color.White, null);
dot.SetFramerateFromSkin();
dot.Transformations.Add(new Transformation(TransformationType.Fade, 0, 1, fadein, fadein + FadeIn));
if (SkinManager.IsDefault && GameBase.NewGraphicsAvailable) {
dot.Transformations.Add(new Transformation(TransformationType.Scale, 1.5f, 1, fadein, fadein + FadeIn, EasingTypes.Out));
dot.Transformations.Add(new Transformation(TransformationType.Movement, posStart, pos, fadein, fadein + FadeIn, EasingTypes.Out));
}
dot.Transformations.Add(new Transformation(TransformationType.Fade, 1, 0, fadeout, fadeout + FadeIn));
if (GameBase.Mode == OsuModes.Edit) this.followPoints.Add(dot);
}
dot.Rotation = angle;
this.spriteManager.Add(dot);
followPointIndex++;
}
}
}
}
#26 : make sure this pull request works well.
Importing beatmaps using scan download option or moving osz file manually to beatmap directory fails if it's in external storage. I've made sure that the directory is correct (I put Debug.i(entryFile.getPath())
in OSZParser.java:70):
01-03 12:25:46.072 19254 19395 I AndEngine: /storage/8B20-0C1A/osu!droid/Asu/783213 UNDEAD CORPORATION - Embraced by the Flame/UNDEAD CORPORATION - Embraced by the Flame (PoNo) [Crimson Shard].osu
However, beatmap .osu file creation inside beatmap directory ended up throwing an IOException
as shown in log below:
01-03 12:25:46.075 19254 19395 E AndEngine: java.io.IOException: No such file or directory
01-03 12:25:46.075 19254 19395 E AndEngine: at java.io.UnixFileSystem.createFileExclusively0(Native Method)
01-03 12:25:46.075 19254 19395 E AndEngine: at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java:281)
01-03 12:25:46.075 19254 19395 E AndEngine: at java.io.File.createNewFile(File.java:1000)
01-03 12:25:46.075 19254 19395 E AndEngine: at ru.nsu.ccfit.zuev.osu.OSZParser.parseOSZ(OSZParser.java:71)
01-03 12:25:46.075 19254 19395 E AndEngine: at ru.nsu.ccfit.zuev.osu.MainActivity.checkNewBeatmaps(MainActivity.java:443)
01-03 12:25:46.075 19254 19395 E AndEngine: at ru.nsu.ccfit.zuev.osu.MainScene$2$1.run(MainScene.java:215)
01-03 12:25:46.075 19254 19395 E AndEngine: at ru.nsu.ccfit.zuev.osu.async.AsyncTaskLoader.doInBackground(AsyncTaskLoader.java:16)
01-03 12:25:46.075 19254 19395 E AndEngine: at ru.nsu.ccfit.zuev.osu.async.AsyncTaskLoader.doInBackground(AsyncTaskLoader.java:5)
01-03 12:25:46.075 19254 19395 E AndEngine: at android.os.AsyncTask$2.call(AsyncTask.java:333)
01-03 12:25:46.075 19254 19395 E AndEngine: at java.util.concurrent.FutureTask.run(FutureTask.java:266)
01-03 12:25:46.075 19254 19395 E AndEngine: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
01-03 12:25:46.075 19254 19395 E AndEngine: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
01-03 12:25:46.075 19254 19395 E AndEngine: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
01-03 12:25:46.075 19254 19395 E AndEngine: at java.lang.Thread.run(Thread.java:764)
Tested in Android 8.0, however multiple users with various Android versions have reported similar issue.
The game needs a option what if i miss a note i can continue without try to just click on the missed note and get a 50 or a miss
Because i like to play maps what have many streams (rubik's cube for example) and when i was doing the streams i lost for literally 1 note what i've jumped... and if be possible hmm fix a problem what it's i can't hit some circles in big jumps idk...so is it :)
If you are good at java or Kotlin, a pull request is much better than a feature request
We only have a few developers, and most of them are busy. We don't have enough time to implement your feature request. So, if your are good at coding, you can try to implement your feature request youself.
As the title, unsightly artifacts will be produced on backgrounds when set to Low brightness, such as during gameplay with high background dim.
This is probably due to the "Use Hardware Dither" function in the game's options not working as intended.
It might be also related to the implementation of the "Set Background Quality" option, regarding color spaces.
osu!droid might have been using 6 or 7-bit color spaces since 1.6.7 which if true, will cause these artifacts.
Fixing the "High" quality background setting to display 8-bit colors might solve this issue?
The differences can be seen below. (All examples are in 25% brightness)
Screenshot from Halozy - Genryuu Kaiko Background by Hollow Wings
New droid version:
Old droid version:
Screenshot from HAG - Colorful Background by Sotarks
New droid version:
Old droid version:
Additional suggestion: Have an option to support 10-bit color spaces since there are phones which support it. (Have an option in Set Background Quality being "Very High*")
Ugly and disgusting.
It's spaming creating holyshit
.DataStorage
and
.UTSystemConfig
under users' /sdcard/ directory.
Any privacy-carings shall uninstall this app as soon as possible seeing such fxxxing dogshit. :/
Example case:
[Metadata]
Title:HONESTY
TitleUnicode:HONESTY
Artist:GYZE
ArtistUnicode:GYZE
Creator:Bibbity Bill
Version:StunterLetsPlay's Originality
Source:
Tags:
BeatmapID:1711767
BeatmapSetID:814850
[Difficulty]
HPDrainRate:4
CircleSize:4.2
OverallDifficulty:10
ApproachRate:9.8
SliderMultiplier:2
SliderTickRate:1
From https://osu.ppy.sh/beatmapsets/814850#osu/1711767
Difficulty
section would be skipped due to BufferedReader
's behavior.
If there are not songs selected when back from mod menu, DifficultyReCalculator throws a NullPointerException and crash.
Found by: Badplayer101
Video: https://youtu.be/s8MiAw5Kwyc
StackTrace as below:
2020-12-27 22:40:28.929 32133-6029/ru.nsu.ccfit.zuev.osuplus.debug E/AndroidRuntime: FATAL EXCEPTION: Thread-19
Process: ru.nsu.ccfit.zuev.osuplus.debug, PID: 32133
java.lang.NullPointerException: Attempt to invoke virtual method 'float ru.nsu.ccfit.zuev.osu.TrackInfo.getCircleSize()' on a null object reference
at ru.nsu.ccfit.zuev.osu.helper.DifficultyReCalculator.getCS(DifficultyReCalculator.java:388)
at ru.nsu.ccfit.zuev.osu.helper.DifficultyReCalculator.getCS(DifficultyReCalculator.java:407)
at ru.nsu.ccfit.zuev.osu.menu.ModMenu$2$1.run(ModMenu.java:174)
Some elements are rendered after info text
Choosing a folder from options in song menu and then sorting beatmaps using sorting options will show all of your beatmaps instead of just those in selected folder.
EDIT: I only tested this with stars sorting option, however another user reported that length sorting option also has this bug.
I mean, i want to make my own beatmap but theres no editor in the app and i cant see other apps to create beatmaps.
Hello Osudroid devs.
I just want to say that there is a bug where Sliders & Circles won't respond when a Spinner is in the gameplay. Even if the SliderLock Option exists in settings, it still doesn't work.
I recorded my gameplay of a 2B map as an example for a bug, I wrote everything in the description to explain the bug I've been experiencing.
Same as implementing a SpinnerLock option or merging that request to SliderLock options to the settings.
Link here: https://youtu.be/6mTtHZH5LPM
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.