add basic CiRCLE support

This commit is contained in:
SoulGateKey 2025-09-19 23:23:28 +08:00
parent d16ebe27d9
commit e970ba3c5b
6 changed files with 40 additions and 7 deletions

View File

@ -230,6 +230,7 @@ Presents are items given to the user when they login, with a little animation (f
| SDEZ | 22 | maimai DX BUDDiES PLUS |
| SDEZ | 23 | maimai DX PRiSM |
| SDEZ | 24 | maimai DX PRiSM PLUS |
| SDEZ | 25 | maimai DX CiRCLE |
### Importer

View File

@ -83,6 +83,7 @@ Games listed below have been tested and confirmed working. Only game versions ol
+ BUDDiES PLUS
+ PRiSM
+ PRiSM PLUS
+ CiRCLE
+ O.N.G.E.K.I.
+ SUMMER

View File

@ -209,7 +209,8 @@ class CardMakerReader(BaseReader):
"1.40": Mai2Constants.VER_MAIMAI_DX_BUDDIES,
"1.45": Mai2Constants.VER_MAIMAI_DX_BUDDIES_PLUS,
"1.50": Mai2Constants.VER_MAIMAI_DX_PRISM,
"1.55": Mai2Constants.VER_MAIMAI_DX_PRISM_PLUS
"1.55": Mai2Constants.VER_MAIMAI_DX_PRISM_PLUS,
"1.60": Mai2Constants.VER_MAIMAI_DX_CIRCLE
}
for root, dirs, files in os.walk(base_dir):

20
titles/mai2/circle.py Normal file
View File

@ -0,0 +1,20 @@
from typing import Dict
from core.config import CoreConfig
from titles.mai2.prismplus import Mai2PrismPlus
from titles.mai2.const import Mai2Constants
from titles.mai2.config import Mai2Config
class Mai2Circle(Mai2PrismPlus):
def __init__(self, cfg: CoreConfig, game_cfg: Mai2Config) -> None:
super().__init__(cfg, game_cfg)
self.version = Mai2Constants.VER_MAIMAI_DX_CIRCLE
async def handle_cm_get_user_preview_api_request(self, data: Dict) -> Dict:
user_data = await super().handle_cm_get_user_preview_api_request(data)
# hardcode lastDataVersion for CardMaker
user_data["lastDataVersion"] = "1.60.00"
return user_data

View File

@ -62,6 +62,7 @@ class Mai2Constants:
VER_MAIMAI_DX_BUDDIES_PLUS = 22
VER_MAIMAI_DX_PRISM = 23
VER_MAIMAI_DX_PRISM_PLUS = 24
VER_MAIMAI_DX_CIRCLE = 25
VERSION_STRING = (
"maimai",
@ -88,7 +89,8 @@ class Mai2Constants:
"maimai DX BUDDiES",
"maimai DX BUDDiES PLUS",
"maimai DX PRiSM",
"maimai DX PRiSM PLUS"
"maimai DX PRiSM PLUS",
"maimai DX CiRCLE"
)
KALEIDXSCOPE_KEY_CONDITION={
1: [11009, 11008, 11100, 11097, 11098, 11099, 11163, 11162, 11161, 11228, 11229, 11231, 11463, 11464, 11465, 11538, 11539, 11541, 11620, 11622, 11623, 11737, 11738, 11164, 11230, 11466, 11540, 11621, 11739],
@ -139,7 +141,9 @@ class Mai2Constants:
"135": VER_MAIMAI_DX_FESTIVAL_PLUS,
"140": VER_MAIMAI_DX_BUDDIES,
"145": VER_MAIMAI_DX_BUDDIES_PLUS,
"150": VER_MAIMAI_DX_PRISM
"150": VER_MAIMAI_DX_PRISM,
"155": VER_MAIMAI_DX_PRISM_PLUS,
"160": VER_MAIMAI_DX_CIRCLE
}
@classmethod

View File

@ -33,6 +33,7 @@ from .buddies import Mai2Buddies
from .buddiesplus import Mai2BuddiesPlus
from .prism import Mai2Prism
from .prismplus import Mai2PrismPlus
from .circle import Mai2Circle
class Mai2Servlet(BaseServlet):
@ -70,7 +71,8 @@ class Mai2Servlet(BaseServlet):
Mai2Buddies,
Mai2BuddiesPlus,
Mai2Prism,
Mai2PrismPlus
Mai2PrismPlus,
Mai2Circle
]
self.logger = logging.getLogger("mai2")
@ -349,8 +351,10 @@ class Mai2Servlet(BaseServlet):
internal_ver = Mai2Constants.VER_MAIMAI_DX_BUDDIES_PLUS
elif version >= 150 and version < 155:
internal_ver = Mai2Constants.VER_MAIMAI_DX_PRISM
elif version >= 155:
elif version >= 155 and version < 160:
internal_ver = Mai2Constants.VER_MAIMAI_DX_PRISM_PLUS
elif version >= 160:
internal_ver = Mai2Constants.VER_MAIMAI_DX_CIRCLE
elif game_code == "SDGA": # Int
if version < 105: # 1.0
@ -375,9 +379,11 @@ class Mai2Servlet(BaseServlet):
internal_ver = Mai2Constants.VER_MAIMAI_DX_BUDDIES_PLUS
elif version >= 150 and version < 155:
internal_ver = Mai2Constants.VER_MAIMAI_DX_PRISM
elif version >= 155:
elif version >= 155 and version < 160:
internal_ver = Mai2Constants.VER_MAIMAI_DX_PRISM_PLUS
elif version >= 160:
internal_ver = Mai2Constants.VER_MAIMAI_DX_CIRCLE
elif game_code == "SDGB": # Chn
if version < 110: # Muji
internal_ver = Mai2Constants.VER_MAIMAI_DX