Commit Graph
1 Commits
Author SHA1 Message Date
barbarburrito 2b21c3d8b5 jubeat: add Qubell (L44 2016-2017) support
The existing handlers produce festo-format responses, which Qubell rejects
(gametop.regist / get_pdata fail with r=7 in the game log and the card login
falls back to guest). This adds a Qubell handler set and routes requests by
the model date: builds older than 2018090000 (prop / Qubell / clan) use the
new handlers, festo is untouched.

Qubell layout follows bemaniutils' bemani/backend/jubeat/qubell.py:
- shopinfo.regist / gametop.get_info: shared info block wrapped in data/info
- gametop.get_pdata / regist: full profile (info, last, item lists, jbox,
  digdig, unlock stage list, born, ...). get_pdata creates the profile when
  the card is already bound on the CORE side, since Qubell then never calls
  gametop.regist and treats status 109 as a login failure.
- gametop.get_mdata: musicdata list with play/clear/fc/ex counts, score,
  clear flags and ghost bars; all scores returned on partition 1.
- gameend.regist: parses info counters, last settings, item lists, jbox,
  events, digdig/unlock state and result tunes into qubell_profile /
  qubell_score collections.
- gameend.final, lobby.check, demodata.get_news / get_hitchart,
  recommend.get_recommend: minimal valid responses.

Tested with jubeat Qubell L44:J:B:A:2017062001 on bemanitools: boot, card
registration, login, three-song credit, save and re-login all work.
2026-09-14 18:48:09 +00:00