diff --git a/core/frontend.py b/core/frontend.py index 2e2fc2d..8226759 100644 --- a/core/frontend.py +++ b/core/frontend.py @@ -21,6 +21,10 @@ from os import path, environ, mkdir, W_OK, access from core import CoreConfig, Utils from core.data import Data +# A-HJ-NP-Z +SERIAL_LETTERS = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] +ARTEMIS_SERIAL_PREFIX = "A69A" + class PermissionOffset(Enum): USER = 0 # Regular user USERMOD = 1 # Can moderate other users @@ -892,8 +896,13 @@ class FE_System(FE_Base): generated = await self.data.arcade.get_num_generated_keychips() if not generated: generated = 0 - serial = self.data.arcade.format_serial("A69A", 1, "A", generated + 1, int(append)) - serial_dash = self.data.arcade.format_serial("A69A", 1, "A", generated + 1, int(append), True) + + rollover = generated // 9999 + serial_num = (generated % 9999) + 1 + serial_letter = SERIAL_LETTERS[rollover] + + serial_dash = self.data.arcade.format_serial(ARTEMIS_SERIAL_PREFIX, 1, serial_letter, serial_num, int(append), True) + serial = serial_dash.replace("-", "") cab_id = await self.data.arcade.create_machine(int(shopid), serial, None, game_code if game_code else None)