AileenLumina und DavidBuchanan314 haben ihren Python-Port für die Switch aktualisiert.
UPDATE: v0.3.1-alpha fixt einen Fehler, bei dem PyNX abstürzte, wenn auf den aktuellen User per "nx.users.active_user" zugegriffen wurde.
In dieser Version wurde das CPython-Modul "_nx" integriert, welches einen Wrapper um native libnx-Funktionen darstellt. Mit dabei ist auch eine frühe Version des nx-Moduls, welches eben dieses CPython-Modul leicht zugänglich macht. Momentan kann damit auf Speicherdaten und Controller-Inputs zugegriffen werden.
Beispiel:
import nx
while True:
if nx.p1.a_button.is_pressed:
print("a", end="")
Dieser Code gibt "a" aus, wenn der A-Button von Spieler 1 gedrückt wird.
Zweites Beispiel für Speicherdaten:
import nx
BOTW_TITLE_ID = 0x01007ef00011e000 # title IDs are just hexadecimal numbers
botw = nx.titles[BOTW_TITLE_ID]
with botw.savedata.open('0/save_game.sav') as savegame_file:
# do something with savegame_file, it's just a regular file object
Dies öffnet die Speicherdatei von Zelda: Breath of the Wild. Damit lassen sich bspw. Savegame-Editoren in Python schreiben!
Achja: "Pynx" schreibt sich jetzt außerdem "PyNX".
Changelog
v0.3.1-alpha: Hotfix: Accessing the currently active user via nx.users.active_user shouldn't crash PyNX anymore. v0.3.0-alpha: This release adds the _nx CPython extension module and the nx package. This allows developers to access Switch-specific functionalities. For now, only savedata access and basic controller input are implemented.
7 Kommentare
Das Update kam schneller als ich es erwartet habe! Gute Leitung!
Freue mich auf die finale Version vom nx-Moduls.
Ganz genau! Du kannst jetzt einen BotW Savedata Editor in Python schreiben :D
Wow, hab gar nicht mit einem weiteren Artikel gerechnet, vielen Dank! Ich steh' wie immer für Fragen zur Verfügung. :)
Zu jedem Update gibts nen Artikel :D
Na dann, gleich kommt ein Bugfix-Release xD
Jetzt fehlt nur noch ein Programm, womit man sein Script und die PyNX-Binary in eine NRO mit eigenen Infos packen kann.
Wurde schon fürs Homebrew Menu angefragt: https://github.com/switchbrew/nx-hbmenu/issues/25 wäre die deutlich bessere Methode, als PyNX mit JEDER Homebrew mitzupacken, würde alles unnötig aufblähen.