bemaniutils
bemaniutils copied to clipboard
Jubeat update
This was originally going to be a general housekeeping update. I realised about halfway through that a lot of this work is just about inseparable from my work on jubeat festo. This is by no means mergable but will serve as a sign of what I have so far. There's a lot of stuff that I'm unsure of how to proceed with.
- I have a better way of deriving the version a song came from than the method that just looks at the first digit of the songid, but I'm not sure how to migrate in such a way that the webui doesn't break entirely if the user doesn't reimport all the music_info.xml files for jubeat.
- Similarly, I want to display the
detail_level
for 9s and 10s, but I don't know how to do so in a graceful manner that makes migrating from ints to floats for that item simple. Currently I just have it try and get the float and if that fails it gets the int instead but that seems like not a great idea. - Finally, I have a bit of a hacky way of getting the emblems imported into the webui assets but it's a nightmare that requires first importing the emblems to the correct location in the repository, and then installing the repository.
To be completely frank, this is an amount of work to get cleaned up that I'm not sure I have the will to do so. But it would be a shame for all of this work to only benefit my personal instance so I'm submitting this in good faith regardless.
Sorry for putting so much stuff to review in here. If I never get around to completing this, I hope some of this work can at least be helpful for your own efforts rather than starting from nothing.
Don't mind me, going to post questions about this on the relevant code.
I don't see any update to the song TSV. Did you not have an update for that? That's usually my least favorite part of Jubeat. A few things in this looks like it can be cherrypicked directly into the trunk branch TBH. Not sure how you want to proceed if at all.
I don't see any update to the song TSV. Did you not have an update for that? That's usually my least favorite part of Jubeat. A few things in this looks like it can be cherrypicked directly into the trunk branch TBH. Not sure how you want to proceed if at all.
I simply forgot to include it. You may notice a bunch of stuff not technically related to festo. The list has been amended a good amount for my own purposes because I used omnimix as well.
Appreciate it, definitely gives me a good starting point for festo stuff, do you want me to cherry-pick stuff and get it into master and deal with the merge issues yourself, or get smaller versions of this merged, or what? Basically, how do we get some of this rolled in?
Probably the best thing to do is cherry pick whatever you find useful for now. The webui work is super incomplete (it doesn't look at the imported version for a given song yet for example because the addition to read.py was a proof of concept). For stuff that can't be taken right now, we can work together on getting it cleaned up.
Speaking of jubeat, I'm looking at actually hooking up the recommend list by driving it off the most popular 12 songs for that version. Technically it should be able to look at who plays what in what groups and recommend based on what you did play other songs to play as well. However, that's a bit complicated for what I want to implement so I figure server best played is not a bad approximation.
Hmmm, it still needs to take into account the chart, so I guess it would have to be more clever than that.
Okay, got the version extraction rolled in, and I fixed the webui to use that instead of the division hack. Seems fine on my end for saucer-clan. Haven't gotten around to importing festo yet.
Got the inherit fix rolled in as well.
Rolled in part of the backend stuff (the stuff that doesn't have to do with your pagination changes), and rolled in the bemapi stuff. Also note that my update for the frontend also made bemapi expose the version as a 'category' much like other catalog objects when available.
Looked at the TSV stuff, the omnimix stuff looks fine to keep in mainline, so I rolled that in as well.
Okay, pushed the updated code for read.py as well, including the small tweaks suggested.
I was able to pull a bunch of the stuff out of the frontend diff and finish up the rating changes as well as gray out charts that aren't supported, and also make the decimal rating system not activate when a song doesn't exist in festo or above. The hack for trying to grab a float and falling back to int seems to work fine by the way. What is software other than a collection of hacks?
Note that the frontend code and such hasn't been merged in since I am still working on a local fork. I can push the partial update branch though if you want to work off of it or merge stuff back.
Its here if you want to compare. I haven't merged in your changes yet aside from fixing up the frontend based on your code plus some cleanup/fixes. https://github.com/DragonMinded/bemaniutils/tree/jubeat_festo
I see you included Omnimix changes but not the change to using self.music_version. Is this intentional? Since importing omnimix will import at that game's version + 10000, I imagine without all the music_version stuff, it won't work...
No, I missed that :(
I am exhausted, sorry.
Okay, I rolled the omni stuff in, as well as one missed spot in common.py. I think outside of the unfinished web stuff (and import script) and your changes to mdata_ver that its all integrated into trunk. I haven't gotten the chance to really dig into the festo stuff yet so I haven't pulled your changes from that either, but the frontend stuff is pulled into the festo branch and I'm gonna keep pounding away at it.
As much as I can has been merged from the festo support here into the jubeat_festo branch. I still need to browse bemaniwiki and figure out what courses are missing and include those, and also go through and test a bunch of stuff and write traffic tests.
Very slow progress, but I got all the courses supported. I hit a snag supporting the random 10s course: Enabling it means it is actually the 61st course and the game has a hard limit of 60 courses. I guess they never hit this in production because they didn't keep a lot of the time limited courses around. So I "fixed" it by making the frontend have a KAC phase so you can choose which KAC courses are available (none, 8th, 9th, 10th). Would have rather just had all courses available but that's not possible.
I have to go back and verify a few other odds and ends and then I'll make traffic tests for festo and promote it to fully working. Did I miss anything else from this PR? If not, I think its safe to close soon.
Also, after I'm done with this I think I'm going to go back and try to add lobby support for Jubeat series. Feels like its about time.
Seems a lot of webui updates are still missing... Other than that I don't see a ton of issues? I changed the base to your jubeat_festo branch to see the difference.
Oh good call, let me see what all I'm missing still.
I'll have to figure out what's up, because several of the web changes I thought I did...
Okay, on spot check, a LOT of the files that it is showing different on top of the jubeat_festo branch have the changes upon checking. I don't know why the diff tool is showing so much that is already there. Is it screwing up and using the old base because of merge conflicts?
I'll rebase the branch later then. my first glance shows the jubility table isn't displayed yet though
Yeah, the jubility frontend definitely didn't make it. I noticed that the game never gets sent back the jubility stuff that gets saved, so I assume you were doing that just for the frontend. I was trying to keep to core implementation for base festo support because otherwise I was getting overwhelmed :<
I think, if I can get the basics tested (including traffic tests) and it doesn't make any major mistakes, and you rebase this on top of that work, then this can turn into a much simpler and more tractable PR for adding the extra features.
Okay this is rebased on top of the festo branch, and outside of changing the fill in category round tripping it looks to be functionally identical in terms of the core, so I'm going to merge the jubeat_festo branch and then we can get the emblem and stats updates in properly!
WTF I did not close this?! I think github closed it automatically when I deleted the base branch.