Giter VIP home page Giter VIP logo

osu-droid's People

Contributors

acivev avatar ammarasyad avatar beyley avatar deltaflyerw avatar edrowsluo avatar imagineblaze avatar kairusds avatar none1637 avatar o-dasher avatar oijdfdg avatar reco1i avatar rian8337 avatar widecss 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  avatar  avatar  avatar  avatar

Watchers

 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

osu-droid's Issues

Maps with 2B sliders or spinners are impossible to FC

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

Music | BUG

When` you lost and quickly press the Back button, then the music continues to play

Beatmap proccesing

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.

Follow point rendering not matching stable

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++;
                    }
                }
            }
        }

Red lines break slider velocity

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.

Experimental sliders

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.

Strange SS bug before finishing

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

Crash on custom skin load

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...

(RX/AP) + (SD/PF) and (RX/AP) + NF mod combinations should not be allowed

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.

Multi Touch bug on osu!droid

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

Question

Is there an public api to get the an player stats on the game?

Make precise mod ranked

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

Beatmap skins not applying to sliders

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.

bug1
bug2

Dithering not functioning correctly since version 1.6.7

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:
552AADC5D58745B50936D353A1C1E3E3
Old droid version:
9FFBA6E8EC5904E9693F8CCB28FAB2B3

Screenshot from HAG - Colorful Background by Sotarks
New droid version:
A34B34878996F288D1024AAD80ED1175
Old droid version:
F68DB8EE906DC365F3B4F3D0589C7B6C

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*")

Difficulty calculation breaks down at very high CS

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.

sorry

Before you create a issue, you should know:

  • Main team members can only understand English and Chinese, so please use these 2 languages.
  • Do not ask questions about some general topics without any suggestions, otherwise we can't get any extra information because we already know the things you talk about.
  • Bug report should be repeatable, and if you get a bug, you should ask for help in discord or qq first, please only issue a new bug.
  • An issue with your actual work (such as a pull request that solves your issue) will be helpful, that's most valuable.
  • DELETE these lines before you create a issue.

Feature Requests

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.

button size

I would like to ask you to change the size of the buttons because they are too big

Skinning

Could u add more skinnable elements?

Beatmap unzipping fails when beatmap directory is in external storage

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 Circles code...

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 :)

Maybe add beatmap editor

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.

.osu parser fails to parse beatmap correctly if whitespace between sections don't exist

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.

Remove Ali usertrack SDK

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. :/

SpinnerLock Issue/Bug

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

Better GitHub Description

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.

After importing songs they dont show up in the library

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

Crash when back from mod menu if no song is selceted

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)

when i press the slider circle too early it doesnt give penalty like osu

Before you create a issue, you should know

  • Main team members can only understand English and Chinese, so please use these 2 language.
  • Do not ask questions about some general topices without any suggestions, otherwise we can't get any extra information because we already know the things you talk about.
  • Bug report should be repeatable, and if you get a bug, you should ask for help in discord or qq first, please only issue new bug.
  • A issue with your actual work (such as a pull request that solves your issue) will be helpful, that's most valuable.
  • DELETE these lines befor you create a issue.

A multi-game and pp showing

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).

Multitouch

Multitouch don’t support
Multitouch doesn't work only in Osu Droid, when you start osu droid writes that multitouch is not supported and it doesn't work, but in other games it works great
Screenshot_20210404_171227_ru nsu ccfit zuev osuplus
Screenshot_20210404_171241_com huawei android launcher
Device : HONOR 9S

Beatmap sorting option ignores chosen folder

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.

Statusbar icon is upside down

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)

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.