unnamed/

import json import time import os import random import requests import keyboard import threading GAME_NAME = "BONGO_KATZE" EVENT_NAME = "SPIEL_BONGO" lock = threading.Lock() frame_index = 0 bongo_frames = [     [0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,225,192,0,0,0,0,0,0,0,0,0,0,0,0,0,3,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,31,192,248,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,127,128,0,0,0,0,0,0,0,0,0,0,0,1,240,0,7,240,0,0,0,0,0,0,0,0,0,0,0,3,192,0,0,124,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,15,128,0,0,0,0,0,0,0,0,0,15,14,0,0,0,3,192,12,0,0,0,0,0,0,0,0,63,156,0,0,0,0,240,126,0,0,0,0,0,0,0,0,113,216,0,0,0,0,61,254,0,0,0,0,0,0,0,0,96,240,0,0,0,0,15,198,0,0,0,0,0,0,0,0,205,112,0,0,0,0,3,6,0,0,0,0,0,0,0,0,205,184,0,0,0,0,1,6,0,0,0,0,0,0,0,0,240,24,0,0,0,0,0,6,0,0,0,0,0,0,0,0,214,0,12,0,0,0,0,6,0,0,0,0,0,0,0,0,207,0,28,0,0,0,0,6,0,0,0,0,0,0,0,0,196,0,28,136,0,0,0,6,0,0,0,0,0,0,0,0,192,0,0,120,0,0,0,14,0,0,0,0,0,0,0,0,96,0,0,12,128,0,0,12,0,0,0,0,0,0,0,0,124,0,0,7,0,0,0,12,0,0,0,0,0,0,0,0,63,192,0,0,0,192,0,28,0,0,0,0,0,0,0,0,3,252,0,0,1,192,0,24,0,0,0,0,0,0,0,0,0,63,128,0,1,192,0,28,0,0,0,0,0,0,0,0,0,7,248,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,127,128,0,0,0,12,0,0,0,0,0,0,0,0,0,0,7,240,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,255,0,96,0,6,0,0,0,0,0,0,0,0,0,0,0,15,240,224,0,7,0,0,0,0,0,0,0,0,0,0,0,0,255,192,0,3,0,0,0,0,0,0,0,0,0,0,0,0,15,128,0,3,128,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,128,0,0,0,0,0,0,0,0,0,0,0,3,0,15,129,128,0,0,0,0,0,0,0,0,0,0,0,3,0,127,225,128,0,0,0,0,0,0,0,0,0,0,0,3,255,248,253,128,0,0,0,0,0,0,0,0,0,0,0,1,255,192,31,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0],     [0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,115,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,225,192,0,0,0,0,0,0,0,0,0,0,0,0,0,3,192,192,0,0,0,0,0,0,0,0,0,0,0,0,0,31,192,248,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,127,128,0,0,0,0,0,0,0,0,0,0,0,1,240,0,7,240,0,0,0,0,0,0,0,0,0,0,0,3,192,0,0,124,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,15,128,0,0,0,0,0,0,0,0,0,0,14,0,0,0,3,192,12,0,0,0,0,0,0,0,0,0,28,0,0,0,0,240,126,0,0,0,0,0,0,0,0,0,120,0,0,0,0,61,254,0,0,0,0,0,0,0,0,0,240,0,0,0,0,15,198,0,0,0,0,0,0,0,0,1,192,0,0,0,0,3,6,0,0,0,0,0,0,0,0,3,128,0,0,0,0,1,6,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,14,0,12,0,0,0,0,6,0,0,0,0,0,0,0,0,28,0,28,0,0,0,0,6,0,0,0,0,0,0,0,0,56,0,28,136,0,0,0,6,0,0,0,0,0,0,0,0,48,0,0,120,0,3,192,14,0,0,0,0,0,0,0,0,96,0,0,12,128,7,240,12,0,0,0,0,0,0,0,0,224,0,0,7,0,14,56,12,0,0,0,0,0,0,0,0,192,0,0,0,0,205,28,28,0,0,0,0,0,0,0,0,192,0,0,0,1,217,172,24,0,0,0,0,0,0,0,0,192,7,128,0,1,216,118,28,0,0,0,0,0,0,0,0,192,127,248,0,0,26,6,12,0,0,0,0,0,0,0,0,231,248,127,128,0,26,224,12,0,0,0,0,0,0,0,0,127,192,7,240,0,24,224,6,0,0,0,0,0,0,0,0,24,0,0,255,0,24,192,6,0,0,0,0,0,0,0,0,0,0,0,15,240,24,0,7,0,0,0,0,0,0,0,0,0,0,0,0,255,204,0,3,0,0,0,0,0,0,0,0,0,0,0,0,15,252,0,3,128,0,0,0,0,0,0,0,0,0,0,0,0,63,240,1,128,0,0,0,0,0,0,0,0,0,0,0,0,1,255,129,128,0,0,0,0,0,0,0,0,0,0,0,0,0,15,225,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,253,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0] ] reference_128x36 = [      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,12,0,0,      0,0,28,0,0,28,0,0,0,112,0,0,0,12,0,0,0,4,28,0,0,28,0,0,0,112,0,0,0,0,0,0,0,14,28,0,0,28,0,0,0,112,0,0,0,0,      0,0,0,4,127,0,120,28,7,0,112,112,224,14,0,0,28,1,128,1,255,193,254,127,31,193,252,115,248,63,140,236,127,      15,224,1,193,195,207,127,63,227,254,119,28,113,207,236,227,156,112,3,128,227,135,28,112,119,6,118,12,96,      207,12,193,152,48,3,28,99,192,28,112,119,7,119,0,192,108,13,128,216,0,31,54,113,248,28,112,119,7,115,192,      192,108,13,128,223,0,63,34,112,254,28,127,247,255,113,248,255,236,13,255,199,224,31,54,112,31,28,127,247,      255,112,28,192,12,13,128,0,112,3,28,96,7,28,112,7,0,112,14,192,12,13,128,0,56,3,128,227,131,28,112,119,7,      118,6,224,108,13,192,216,24,3,193,227,199,31,63,227,254,119,14,112,204,12,225,156,48,1,247,193,254,31,31,      193,252,115,252,63,140,12,127,15,240,0,255,128,124,31,7,0,112,112,240,14,12,12,28,3,128,0,28,0,0,0,0,0,0,0,      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0  ] def gsdk_init():     COREPROPS_PATH = os.path.expandvars(         r"%PROGRAMDATA%\SteelSeries\SteelSeries Engine 3\coreProps.json"     )     print(f"[DEBUG] Opening file at '{COREPROPS_PATH}'.")     with open(COREPROPS_PATH, "r") as f:         config = json.loads(f.read())         address = "http://" + config["address"]         print(f"[DEBUG] SteelSeries Engine running at '{address}'.")         return { "address": address }     return None def gsdk_raw_post(gsdk, endpoint, data):     url = f"{gsdk['address']}{endpoint}"     response = requests.post(url, json=data)     return response.ok def gsdk_register(gsdk):     game_registration = gsdk_raw_post(gsdk, "/game_metadata", {         "game": GAME_NAME,         "game_display_name": "Bongo Katze",         "developer": "Leo und Chris"     })     event_registration1 = gsdk_raw_post(gsdk, "/bind_game_event", {         "game": GAME_NAME,         "event": EVENT_NAME + "0",         "value_optional": True,         "handlers": [{             "device-type": "screened",             "zone": "one",             "mode": "screen",             "datas": [                 {                     "image-data": bongo_frames[0]                 }             ]         }]     })     event_registration2 = gsdk_raw_post(gsdk, "/bind_game_event", {         "game": GAME_NAME,         "event": EVENT_NAME + "1",         "value_optional": True,         "handlers": [{             "device-type": "screened",             "zone": "one",             "mode": "screen",             "datas": [                 {                     "image-data": bongo_frames[1]                 }             ]         }]     })     return (game_registration and event_registration1 and event_registration2) def gsdk_heartbeat(gsdk):     return gsdk_raw_post(gsdk, "/game_heartbeat", { "game": GAME_NAME }) def gsdk_show_image(gsdk, event):     return gsdk_raw_post(gsdk, "/game_event", {         "game": GAME_NAME,         "event": event,         "data": {             "value": 0         }     }) def main():     sdk = gsdk_init()     print(f"Registering with {sdk}...")     gsdk_register(sdk)     def on_key(event):         global frame_index         if event.event_type == "down":             with lock:                 frame_index = (frame_index + 1) % len(bongo_frames)                 gsdk_show_image(sdk, EVENT_NAME + str(frame_index))     keyboard.hook(on_key)          while True:         time.sleep(5.0)         gsdk_heartbeat(sdk)          if __name__ == "__main__":     main()

published:  2025-07-31T17:23:44Z