bemaniutils icon indicating copy to clipboard operation
bemaniutils copied to clipboard

Jubeat update

Open Subject38 opened this issue 2 years ago • 18 comments

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.

Subject38 avatar Aug 16 '22 23:08 Subject38

Don't mind me, going to post questions about this on the relevant code.

DragonMinded avatar Aug 16 '22 23:08 DragonMinded

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.

DragonMinded avatar Aug 17 '22 00:08 DragonMinded

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.

Subject38 avatar Aug 17 '22 00:08 Subject38

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?

DragonMinded avatar Aug 17 '22 00:08 DragonMinded

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.

Subject38 avatar Aug 17 '22 00:08 Subject38

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.

DragonMinded avatar Aug 17 '22 00:08 DragonMinded

Hmmm, it still needs to take into account the chart, so I guess it would have to be more clever than that.

DragonMinded avatar Aug 17 '22 00:08 DragonMinded

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.

DragonMinded avatar Aug 17 '22 01:08 DragonMinded

Got the inherit fix rolled in as well.

DragonMinded avatar Aug 17 '22 01:08 DragonMinded

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.

DragonMinded avatar Aug 17 '22 02:08 DragonMinded

Looked at the TSV stuff, the omnimix stuff looks fine to keep in mainline, so I rolled that in as well.

DragonMinded avatar Aug 17 '22 02:08 DragonMinded

Okay, pushed the updated code for read.py as well, including the small tweaks suggested.

DragonMinded avatar Aug 17 '22 02:08 DragonMinded

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?

DragonMinded avatar Aug 17 '22 04:08 DragonMinded

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.

DragonMinded avatar Aug 17 '22 04:08 DragonMinded

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

DragonMinded avatar Aug 17 '22 04:08 DragonMinded

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

Subject38 avatar Aug 17 '22 04:08 Subject38

No, I missed that :(

I am exhausted, sorry.

DragonMinded avatar Aug 17 '22 05:08 DragonMinded

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.

DragonMinded avatar Aug 17 '22 22:08 DragonMinded

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.

DragonMinded avatar Sep 23 '22 02:09 DragonMinded

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.

DragonMinded avatar Oct 01 '22 22:10 DragonMinded

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.

DragonMinded avatar Oct 01 '22 22:10 DragonMinded

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.

Subject38 avatar Oct 02 '22 01:10 Subject38

Oh good call, let me see what all I'm missing still.

DragonMinded avatar Oct 02 '22 01:10 DragonMinded

I'll have to figure out what's up, because several of the web changes I thought I did...

DragonMinded avatar Oct 02 '22 01:10 DragonMinded

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?

DragonMinded avatar Oct 02 '22 01:10 DragonMinded

I'll rebase the branch later then. my first glance shows the jubility table isn't displayed yet though

Subject38 avatar Oct 02 '22 01:10 Subject38

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

DragonMinded avatar Oct 02 '22 02:10 DragonMinded

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.

DragonMinded avatar Oct 02 '22 02:10 DragonMinded

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!

DragonMinded avatar Oct 06 '22 00:10 DragonMinded

WTF I did not close this?! I think github closed it automatically when I deleted the base branch.

DragonMinded avatar Oct 06 '22 00:10 DragonMinded