forum

opsu! - an open-source osu! client (UNOFFICIAL)

posted
Total Posts
343
show more
- Marco -
How about an opsu! updater? :D
dkun
Kudos on your hard work so far! I'd love to see where this goes.
Nekiluz
how can i run it on a blackberry?
Topic Starter
euphyy_old
Hey everyone! I apologize for the necro, but just letting you all know this project hasn't completely died yet. I pushed a lot of updates over the past few weeks, with significant memory and stability improvements, graphical polishing, many new features, and code enhancements.

Release: v0.4.0

The full changelogs are on GitHub, but these are some of the highlights since I last posted:
  1. Memory reductions: With ~1000 beatmaps, opsu! uses about 50% less memory than in the previous version (so it's now comparable to osu!).
  2. Error handling: Along with better error checking, there's now a dialogue box that should appear whenever an error occurs with the exception and a prompt to report it.
  3. Visuals: Lots of tweaks. Most noticeably, there are hover effects on almost all menu elements now, so everything feels a lot more interactive.
  4. Beatmap loading: For those who had trouble with the (still relatively slow) beatmap parser, you can now press 'Esc' to interrupt the parser and run the game with the currently loaded maps. You can also press 'F5' in the song menu to reload maps (including new ones). It's also possible to restart the program from the options menu by pressing 'Ctrl+Shift+F5', without needing to reload any beatmaps.
  5. Development-related: opsu! is now distributed as a Maven project (thanks to Tillerino), and I rewrote parts of JarSplice to allow automatically building the standalone JARs; it only takes a single command to compile, run, or package the source code now (if you're interested, instructions are listed on the readme page). I also cleaned and rewrote a lot of the code, so it's far better organized.
Again, I can't really guarantee that I'll be able to keep working on this -- I'm just doing it for fun now, and I'm pretty busy at school -- but feel free to leave any comments!
Itachi17
New version of your app doesnt work for me. The older one(I think it was 0.3.2 or so) was functional but only in home directory.(The Songs and Skins folders must be in home directory. I dont remember if the app itselft must be in home directory.)

This is the output:
Exception in thread "main" java.lang.UnsupportedClassVersionError: itdelatrisu/opsu/Opsu : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
Could not find the main class: itdelatrisu.opsu.Opsu. Program will exit.

Im using GNU/Linux Ubuntu 14.04.
Wiek

Itachi17 wrote:

New version of your app doesnt work for me. The older one(I think it was 0.3.2 or so) was functional but only in home directory.(The Songs and Skins folders must be in home directory. I dont remember if the app itselft must be in home directory.)

This is the output:
Exception in thread "main" java.lang.UnsupportedClassVersionError: itdelatrisu/opsu/Opsu : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
Could not find the main class: itdelatrisu.opsu.Opsu. Program will exit.

Im using GNU/Linux Ubuntu 14.04.
Use newer Java
To Author: Have you done the circular curve alghorithm?
Itachi17

LudziE12 wrote:

Use newer Java
To Author: Have you done the circular curve alghorithm?
Thanks now it works.
Topic Starter
euphyy_old

LudziE12 wrote:

To Author: Have you done the circular curve alghorithm?
No, I haven't. I haven't really been focusing on the sliders since I really don't have any idea how osu! implements them. x.x
Wiek
When i started working with my clone here: https://github.com/LudziE12/josu i first tried to make that alghorithm. You can found it there (not ended). Maybe tomorrow i will push working one.
Asuka-_old_1
Good work! Is there any way to change the resolution? :oops:
Topic Starter
euphyy_old

Asuka- wrote:

Good work! Is there any way to change the resolution? :oops:
In the song menu, there's a little wrench icon next to the search bar. That'll take you to the options menu, and the first one is screen resolution.
chong601
I have played opsu since the 1st version till the latest version and i just can say that this game is (almost) flawless in performance and stability apart from Bezier sliders which screws the play and the non-default skin which distracts a lot xD

However, since my workplace is mostly Linux based OS, i found that opsu! never runs above 61FPS even if the limiter is set above of 60 FPS (vsync)
On Windows, it works fine on high fps (can reach up to 240 FPS).

The Ubuntu I am using is Ubuntu 14.10 and using JDK (not JRE) 8u25 (kind of lazy to install JRE because my workplace is mostly developing software using Java and JDK usually includes the Java runtime as well)

Also, I found that if I try to use my skin, the comboburst sometimes pops up an extremely stretched slider ball which is weird (also happens occasionally with no custom skin) but i can't properly reproduce it (too random)
Topic Starter
euphyy_old

chong601 wrote:

I actually noticed the comboburst problem too shortly after I posted the release, and quickly made a re-release after this fix. You probably have the original version of 0.4.0, so just re-download it to fix the problem. Sorry about that!

I don't really know what I can do about the FPS issue, since I'm pretty inexperienced with the low-level graphics stuff. x_x
FieryLight
Hey, do you think you can turn this into a better-than-osu practising client? It'd be great if we could have additional settings in the "Mods" section to change:
- Final overall AR (even if using HT, DT, EZ or HR, this overrides it)
- Final overall Circle Size (even if using EZ or HR, this overrides it)
- Speed (more selections than DT (3/2 speed) and HT (2/3 speed)

I realize that it's probably a lot of work but I think that the ability to change those on the fly for any song would make this a better place to practise than osu itself
Topic Starter
euphyy_old

FieryLight wrote:

Fixed difficulty settings (CS, AR, OD, HP) are already implemented. You can go into the options menu and change them in the "Custom" section. The mechanics are still off from osu!, though, so don't expect too much. :P

I tried playing around with the Beads Project for MP3 decoding (which LudziE12 used for josu!), since it can decode in real-time and is generally a very versatile music player (ex. it can handle speed changes, etc.), but I just couldn't get it to work at all -- it won't even run inside of a JAR (#1 reason why I dropped the approach), doesn't give accurate track positions, and can't play OGGs as far as I can tell (I just hear a lot of static). Here's what I did so far, in a separate branch (sorry, no binaries since apparently they don't work): https://github.com/itdelatrisu/opsu/com ... 92329a29c9

So unless I have more luck with MP3 decoding in Java, it doesn't look like speed changes (Easy/Double/Nightcore, etc.) are going to happen.
FieryLight

euphyy wrote:

FieryLight wrote:

Fixed difficulty settings (CS, AR, OD, HP) are already implemented. You can go into the options menu and change them in the "Custom" section. The mechanics are still off from osu!, though, so don't expect too much. :P

I tried playing around with the Beads Project for MP3 decoding (which LudziE12 used for josu!), since it can decode in real-time and is generally a very versatile music player (ex. it can handle speed changes, etc.), but I just couldn't get it to work at all -- it won't even run inside of a JAR (#1 reason why I dropped the approach), doesn't give accurate track positions, and can't play OGGs as far as I can tell (I just hear a lot of static). Here's what I did so far, in a separate branch (sorry, no binaries since apparently they don't work): https://github.com/itdelatrisu/opsu/com ... 92329a29c9

So unless I have more luck with MP3 decoding in Java, it doesn't look like speed changes (Easy/Double/Nightcore, etc.) are going to happen.
Oh, I see.... Well, hopefully you come across something perfect that leads you to it. I wouldn't expect it anytime soon but, still, hopeful :) And wow, didn't know those options were already in there, I haven't downloaded this since it's release, I can't wait to try it out :D

EDIT: Hmm, just downloaded and it doesn't seem to work for me, I tried twice (and waited quite a while) and noticed there was a text file and it said:

Mon Jan 26 21:50:41 PST 2015 ERROR:Unable to determine Slick build number
Mon Jan 26 21:55:57 PST 2015 ERROR:Unable to determine Slick build number
chong601

euphyy wrote:

I tried playing around with the Beads Project for MP3 decoding (which LudziE12 used for josu!), since it can decode in real-time and is generally a very versatile music player (ex. it can handle speed changes, etc.), but I just couldn't get it to work at all -- it won't even run inside of a JAR (#1 reason why I dropped the approach), doesn't give accurate track positions, and can't play OGGs as far as I can tell (I just hear a lot of static). Here's what I did so far, in a separate branch (sorry, no binaries since apparently they don't work): https://github.com/itdelatrisu/opsu/com ... 92329a29c9

So unless I have more luck with MP3 decoding in Java, it doesn't look like speed changes (Easy/Double/Nightcore, etc.) are going to happen.
Have you tried looking up other open-source Java-based MP3 player? Probably you have more luck on that (but you might need to do something with other things like speedup and timing to your preferred accuracy)

I am looking through the opsu! source code while working to probably find fix for the 61 FPS issue on 240 fps

(and is there any ETA on the other types of sliders? Bezier is definitely unplayable on some old maps xD)
Topic Starter
euphyy_old

FieryLight wrote:

EDIT: Hmm, just downloaded and it doesn't seem to work for me
I don't know what the problem would be, sorry. That log message is normal (a bug in the game library), and I don't have any other information to go off of. x.x

chong601 wrote:

I've searched long and hard for an MP3 library with very basic functionality (streaming, seeking, accurate track position), but still haven't found anything that works. x.x The FPS issue is probably a bug in the Slick2D library (or maybe LWJGL), since I didn't touch any of the internals for that, but maybe you'll find something. xD And like I said before, I don't have much information about the sliders and am usually very busy at school (I'm on break now), so I can't guarantee any work on the sliders unless someone decides to help.
Wiek

euphyy wrote:

FieryLight wrote:

EDIT: Hmm, just downloaded and it doesn't seem to work for me
I don't know what the problem would be, sorry. That log message is normal (a bug in the game library), and I don't have any other information to go off of. x.x

chong601 wrote:

I've searched long and hard for an MP3 library with very basic functionality (streaming, seeking, accurate track position), but still haven't found anything that works. x.x The FPS issue is probably a bug in the Slick2D library (or maybe LWJGL), since I didn't touch any of the internals for that, but maybe you'll find something. xD And like I said before, I don't have much information about the sliders and am usually very busy at school (I'm on break now), so I can't guarantee any work on the sliders unless someone decides to help.
I'm working now on my major game with my team, but when i find time (starting 2 weeks winter holidays this weekend) i will help with the sliders and i will try to fix beads library.

When i started making josu! I searched for good audio library and only beads has separate pitch and speed settings (in others setting pitch changed speed).

I have a question: Is problem with sound and music in linux is fixed? I haven't looked to the repo for some time :)
chong601

LudziE12 wrote:

I have a question: Is problem with sound and music in linux is fixed? I haven't looked to the repo for some time :)
Afaik, it does work at my workplace Linux Ubuntu (14.10 32-bit, PulseAudio sound system)
Topic Starter
euphyy_old
Lots of major updates in the past two weeks, so here's another release!

Release: v0.5.0
A brief overview:
  1. Sliders: Thanks to fluddokt, sliders are now fixed! The old buggy sliders were replaced with two new types: circumscribed circles and linear beziers.
  2. Score Database: Scores are now saved to an SQLite database, so you can view past scores in the song menu much like in osu!.
  3. Beatmap Downloader: There's now a downloads menu that allows you to search for beatmaps, download them, and import them directly through opsu!. The downloader fetches files and data from Bloodcat, so you can only download 4 files at a time (even though there's no actual limitation code-wise).
Some screenshots:
SPOILER
(ignore the scores, they're clearly fake :P)
I'm starting classes again in a few hours, so updates will probably be much slower again (unless anyone wants to help, as usual!). In any case, let me know what you think!
peppy
Hey, I'd rather you didn't use the bundled osu! (audio) tracks here. Some of them aren't licenced for use outside of osu! and I'd like to respect the artist's rights where possible (considering this project is somewhat related to osu!).

Also I noticed there's some artwork that you likely don't have permission to use, so you may want to double-check on that.
peppy
If I don't get a reply acknowledging my last message within the next 24 hours I will be removing this forum thread.
Topic Starter
euphyy_old
Which audio tracks are you referring to? If it's the theme song, I can remove that, but I wasn't aware that osu! had a license on it (I didn't find an indication of that anywhere). The rest of the sounds are from user skins, which are all credited.

I also credited all the skin authors, and I'd be happy to remove any images if the authors want them removed.
peppy
The bundled beatmaps and theme song.
Topic Starter
euphyy_old
Done: https://github.com/itdelatrisu/opsu/com ... 26a0cf8db0 (there aren't any bundled beatmaps)
Sorry for the trouble.
peppy
Thank you.
PizzaLovers007
This is working really great! I did notice the spinners were a little bit hard to finish. I think they are supposed to have some sort "weight" so they keep spinning for a little bit if you stop spinning the cursor.

Could I assist in the project? I'll try to help as much as I can.
Topic Starter
euphyy_old

PizzaLovers007 wrote:

This is working really great! I did notice the spinners were a little bit hard to finish. I think they are supposed to have some sort "weight" so they keep spinning for a little bit if you stop spinning the cursor.

Could I assist in the project? I'll try to help as much as I can.
Of course -- thanks for your interest! Please submit a pull request whenever you're ready, and feel free to discuss any changes you'd like to make beforehand (either here or by opening a GitHub issue).

I have no idea how the spinners are supposed to be done, so any help would be greatly appreciated.
Doqtor Kirby
Aye, development has started again? Might try and run this again on my RPi

But I did get an error running on my main system:
Error while creating game container.
org.newdawn.slick.SlickException: Failed to initialise the LWJGL display
at org.newdawn.slick.AppGameContainer.setup(AppGameContainer.java:378)
at itdelatrisu.opsu.Container.start(Container.java:62)
at itdelatrisu.opsu.Opsu.main(Opsu.java:160)

What did I break?

e~ I broke nothing, it's just my graphics are unsupported?
Topic Starter
euphyy_old

Doqtor Kirby wrote:

Might try and run this again on my RPi
It's not (currently?) supported by LWJGL. After doing some quick searches, it seems like people have managed to hack together something that works (see here), but I wouldn't count on the rest of the program running smoothly (or at all) on a Raspberry Pi.
chong601
Probably will work somehow on the latest Raspberry Pi 2? Those hardware upgrades *drools* :roll:
But yeah, making LWJGL working on Raspberry Pi gonna need to do a lot of hacking... especially when you want to have hardware acceleration
One side note, I am looking at the source code on the part of the layout of opsu!, it just doesn't feel right (some misaligned arrows, unusually giant score bars...) and see whether I can fix it using % rather than using some hacky offsetting or things that complicate things instead...
Doqtor Kirby

euphyy wrote:

Doqtor Kirby wrote:

Might try and run this again on my RPi
It's not (currently?) supported by LWJGL. After doing some quick searches, it seems like people have managed to hack together something that works (see here), but I wouldn't count on the rest of the program running smoothly (or at all) on a Raspberry Pi.
K. RPi. Not gonna happen as of now. But what about the problem running it on a Windows box?

Doqtor Kirby wrote:

Error while creating game container.
org.newdawn.slick.SlickException: Failed to initialise the LWJGL display
at org.newdawn.slick.AppGameContainer.setup(AppGameContainer.java:378)
at itdelatrisu.opsu.Container.start(Container.java:62)
at itdelatrisu.opsu.Opsu.main(Opsu.java:160)
Is this fixable, like, at all? Or will I need to go flesh out hundreds for a new graphics card?
Topic Starter
euphyy_old

chong601 wrote:

some misaligned arrows, unusually giant score bars...
The arrows should be working (mostly) as of the latest release, but I haven't figured out the scorebars -- there's a TODO note about it probably involving cropping the transparent parts off of the images and centering from there, though I haven't had the chance to try it out yet.

Doqtor Kirby wrote:

Is this fixable, like, at all? Or will I need to go flesh out hundreds for a new graphics card?
It's not about a graphics card. LWJGL (the wrapper for OpenGL/OpenAL) doesn't compile for ARM processors (i.e. Raspberry Pi) without a good deal of hacking, which some people have attempted with varying success (and you can find these projects online). I wouldn't count on it working, though -- there are too many other areas where it could fail, even if you manage to get LWJGL working, and performance will probably be horrible.
Doqtor Kirby

euphyy wrote:

chong601 wrote:

some misaligned arrows, unusually giant score bars...
The arrows should be working (mostly) as of the latest release, but I haven't figured out the scorebars -- there's a TODO note about it probably involving cropping the transparent parts off of the images and centering from there, though I haven't had the chance to try it out yet.

Doqtor Kirby wrote:

Is this fixable, like, at all? Or will I need to go flesh out hundreds for a new graphics card?
It's not about a graphics card. LWJGL (the wrapper for OpenGL/OpenAL) doesn't compile for ARM processors (i.e. Raspberry Pi) without a good deal of hacking, which some people have attempted with varying success (and you can find these projects online). I wouldn't count on it working, though -- there are too many other areas where it could fail, even if you manage to get LWJGL working, and performance will probably be horrible.
The question was not regarding my RPi, it was regarding my x86-based Windows tablet.

Sorry for the confusion,
chong601
OK, just looked around on the 0.5.0 release and I think enforcing block-style numbering (like in osu! where numbers adhere to the default skin width will actually make opsu! much more like osu! (max width of the number is 34 pixels)
Example
opsu! score appearance:

osu! score appearance:
Notice that the "1" in osu! is in the same width rather than following the actual image width
I would look into the source code thoroughly probably by the end of March and I probably can help with image offsets (and probably make opsu! adheres to skin.ini?)

EDIT:
uh....


EDIT2:
Probably the offset can be set back to 0 and then manually set -150 ms in the code? -150ms sounds like just like 0
Ignore that
FieryLight
Hey, I tried opsu! again recently and I'm still getting the same error:

Mon Feb 02 21:24:03 PST 2015 ERROR:Unable to determine Slick build number
Wed Feb 11 00:40:29 PST 2015 ERROR:Unable to determine Slick build number

^That was in the .opsu.log file.

BUT I noticed that I can actually use opsu!, I just can't see it. I can scroll to change the volume, I can click to go somewhere (not sure where but it worked), I could use the "back" button after I entered whatever I entered and I even managed to guess where the Exit button was to close opsu! (I had to guess because my cursor disappeared when hovering over it).

Anyway, here's screen shot of how it looks (or rather, doesn't look):


I'll try other .jars tomorrow to see if it's just my own thing

EDIT: Oh yeah, and I can hear the music too
chong601

FieryLight wrote:

Hey, I tried opsu! again recently and I'm still getting the same error:

Mon Feb 02 21:24:03 PST 2015 ERROR:Unable to determine Slick build number
Wed Feb 11 00:40:29 PST 2015 ERROR:Unable to determine Slick build number

^That was in the .opsu.log file.

BUT I noticed that I can actually use opsu!, I just can't see it. I can scroll to change the volume, I can click to go somewhere (not sure where but it worked), I could use the "back" button after I entered whatever I entered and I even managed to guess where the Exit button was to close opsu! (I had to guess because my cursor disappeared when hovering over it).

Anyway, here's screen shot of how it looks (or rather, doesn't look):


I'll try other .jars tomorrow to see if it's just my own thing

EDIT: Oh yeah, and I can hear the music too
My best bet is try updating your JREs...
I think that may be the issue...

EDIT:
Just found out that maps with ogg songs not playable on 32-bit JREs for Windows...
(probably due to the 32-bit JRE issue? They do have some memory limits set on 32-bit afaik)
I did get the stack trace printed:
Wed Feb 11 21:16:52 SGT 2015 ERROR:** Uncaught Exception! **
Wed Feb 11 21:16:52 SGT 2015 ERROR:Java heap space
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.io.ByteArrayOutputStream.grow(Unknown Source)
at java.io.ByteArrayOutputStream.ensureCapacity(Unknown Source)
at java.io.ByteArrayOutputStream.write(Unknown Source)
at org.newdawn.slick.openal.OggDecoder.getData(OggDecoder.java:315)
at org.newdawn.slick.openal.SoundStore.getOgg(SoundStore.java:835)
at org.newdawn.slick.openal.SoundStore.getOgg(SoundStore.java:793)
at org.newdawn.slick.Music.<init>(Music.java:163)
at org.newdawn.slick.Music.<init>(Music.java:75)
at itdelatrisu.opsu.audio.MusicController.loadTrack(MusicController.java:113)
at itdelatrisu.opsu.audio.MusicController.access$000(MusicController.java:44)
at itdelatrisu.opsu.audio.MusicController$1.run(MusicController.java:85)
The map will not play when this happens
Maps with MP3 songs is not affected on this
Maps affected (currently):
Oratorio The World God Only Knows - God only knows
Not playable on latest JRE 32-bit for Windows but playable on JRE 64-bit for Windows (not tested at Linux)
chong601
Sorry for double posting...

After a few plays on opsu!, I found that the hitsounds are some sort of silenced on certain maps (happens on random, some maps have none of this problem but it appears that fast maps have this problem) as well as those hitsounds sounded like delayed on fast maps.

By the way, I am looking at parsing the skin.ini so that opsu! will able to use skins as in like osu!... (still on progress... no idea when i can finish this since i am quite busy with work and rl stuff).

Other than that, everything is going well in opsu! :D
AstralPhnx
Interersting. An open source version of the game... Pretty cool really because it allows for this version to go down a completely different route to the official version. I may take a peek at the source code at some point. What language is it written in again?
show more
Please sign in to reply.

New reply