Posts by Raufang

    ok, keine Ahnung was passiert ist aber:
    Ich habe AMS upgedatet (gerade nochmal mit dem 2.0er vom nxovll..). Dann auch gleich die FW von 21.0.0 auf 21.0.1.
    Ich denk’ mir so: "Ok, auch wenns vermutlich nicht geht, ich teste nochmal das Tesla Menü mit Cheats inkl. Zelda - ToTk Mods".
    Gesagt, getan, über den Mod Manager die Mods wieder reingeballert, wie sie vorher auch waren. Dann noch über den Cheats Updater neu heruntergeladen und entpacken lassen. Spiel gestartet und siehe da: Wiedererwartens funktioniert es. Auch wenn ich erst an einen Zufall dachte, gepaart mit etwas Glück, ich hab das Ganze nun schon mehrmals neu gestartet, länger gespielt etc. Es bleibt stabil.

    Was man nur nicht machen sollte: "Mit laufendem gemoddeden Spiel im BG etwas im Appletmode noch zusätzlich anstellen. :D

    Geile Sache, mal schauen ob es so bleibt.

    Hallo liebe Community.

    Ich beschäftige mich aktuell ein wenig mit der Erstellung von Homebrew für die Nintendo Switch und beim Einrichten der Entwicklungsumgebung habe ich nichts Aktuelles gefunden, das sofort funktioniert.
    Daher dachte ich, es ist hilfreich, meine Minimal-Umgebung und ein funktionierendes Hello-World-Beispiel (C++), inklusive VS Code Setup, Build Tasks und devkitPro/LibNX Konfiguration, hier zu teilen.
    So hat jeder, der einsteigen möchte, eine funktionierende Basis, ohne alles von Grund auf selbst zusammenzusuchen. :slightly_smiling_face:
    Die vollständige Konfiguration findet ihr auch in meinem Github. Alle Links, wie z.B. für Downloads, findet Ihr im Spoiler "Linksammlung"


    Getestet habe ich das Ganze erfolgreich unter folgenden Bedingungen:

    • OS: Windows 11

    • devkitPro: installiert via devkitProUpdater v3.0.3

    • Visual Studio Code: v1.106.

    Auf die Installation von VS Code gehe ich hier nicht näher ein. Ich denke, dass sollte jeder hinbekommen :slightly_smiling_face:

    Vorwort

    Dieses Tutorial zeigt dir nur, wie du eine Minimal-Entwicklungsumgebung für Nintendo Switch Homebrew aufsetzt und ein kleines „Hello World“-Beispielprojekt mit VS Code und devkitPro / libnx zum Laufen bringst.

    Es lehrt keine Programmierung und erklärt nicht, wie man Homebrew-Apps selbst schreibt.

    Ebenso gibt es keine Einführung in Visual Studio Code oder Makefile-Projekte.

    Der Sinn ist einfach: eine funktionierende Ausgangsbasis bereitstellen, damit du direkt loslegen und eigene Experimente ausprobieren kannst, ohne stundenlang an der Einrichtung zu fummeln. :winking_face:

    1. Voraussetzungen:
    • installiertes Visual Studio Code
    • Grundkenntnisse im Umgang mit VS Code
    • Programmierkenntnisse (C/C++)
    • Kenntnisse im Umgang mit Makefile-Projekten
    2. Installation des devkitPro

    Lade dir den devkitProUpdater herunter und starte die Installation!

    Dem Installer sagst du nun, dass du die Files downloaden und installieren willst.

    Die heruntergeladenen Installer-Files können nach der Installation direkt gelöscht werden.

    Im nächsten Schritt ist mindestens die Komponente "Switch Developement" auszuwählen. Schließlich ist das ja unser Ziel, oder? :winking_face_with_tongue:

    Den Installationspfad habe ich auf der Vorgabe belassen. Solltest du hier einen Anderen wählen, musst du das zukünftig in der Konfiguration des VS Code berücksichtigen!

    Hier ist dann immer "c:\devkitPro" durch den gewählten Pfad zu ersetzen!

    Nach Bestätigung im Folgefenster geht es dann auch schon mit der Installation los. Das dauert jetzt einen kleinen Moment. Gern hier kurz einen Kaffee holen :slightly_smiling_face:


    Nach Abschluss der Installation, bitte das System neu starten, bzw. einmal komplett ab- und wieder anmelden. Anderenfalls werden die Umgebungsvariablen ggf. nicht geladen und es kann zu Fehlern kommen.

    Nach dem Neustart kannst du dann VS Code starten und mit der Einrichtung fortfahren.

    3. Projektstruktur erstellen

    Erstelle folgenden Ordner und Dateien auf deiner Festplatte:



    Diese Struktur kannst du auch als Basis für deine weiteren Homebrew Projekte nutzen.
    Dateien im Ordner .vscode beeinflussen die Einstellungen des Visual Studio Code, im Kontext des Projektes.
    Wofür jede File verantwortlich ist, findest du nachfolgend im jeweiligen Abschnitt.
    Wenn du deine Projektstruktur erstellt hast, kannst du den Projektordner (hier Hello_World) im Visual Studio Code öffnen und mit der Konfiguration fortfahren.
    4. Konfiguration Visual Studio Code

    Nachdem du das Projekt nun im VS Code geöffnet hast, sollte das so im Projekt-Explorer aussehen:


    Als Erstes öffnest und bearbeitest du nun die File .vscode/c_cpp_properties.json.

    Funktion der c_cpp_properties.json

    Die c_cpp_properties.json in VS Code konfiguriert IntelliSense, also die Autovervollständigung, Syntaxprüfung und Fehlerunterstreichungen für C/C++-Code.

    Sie enthält u. a.:

    • includePath – Pfade zu Header-Dateien, damit der Code die richtigen Bibliotheken findet.

    • defines – Präprozessor-Makros für die Codeanalyse.

    • compilerPath – Angabe des Compilers, damit IntelliSense weiß, welche Spracheigenschaften und Flags verwendet werden.

    • cStandard / cppStandard – Sprachstandard (z. B. C17, C++17) für die Analyse.

    • intelliSenseMode – Angabe des Compilermodus (z. B. gcc-arm64), damit IntelliSense korrekt arbeitet.

    TL;DR: Sie sorgt dafür, dass VS Code deinen Code richtig versteht, auch wenn er speziell für eine Plattform wie die Switch geschrieben ist.

    In dieser fügst du folgenden Inhalt ein:

    Als Nächstes öffnest und bearbeitest du die tasks.json

    Funktion der tasks,json

    Die tasks.json in VS Code definiert benutzerdefinierte Aufgaben, die du direkt aus dem Editor heraus ausführen kannst – z. B. „make“, „make clean“ oder komplette Build-Skripte.

    Sie steuert unter anderem:

    • command – Was ausgeführt wird (z. B. make).

    • type – Wie VS Code den Task behandelt (meist shell).

    • args – Zusätzliche Argumente für den Befehl.

    • label – Der Name, unter dem der Task im VS Code Menü erscheint.

    • group – Ob der Task als Build-Task markiert wird.

    • presentation – Wie der Terminal-Output aussehen soll (sichtbar, klar, einzeilig, persistent usw.).

    Kurz gesagt:

    TL;DR: Die tasks.json automatisiert deine Build-Befehle in VS Code, sodass du nicht jedes Mal manuell im Terminal alles eingeben musst.

    Folgenden Inhalt parkst du dann in der tasks.json:

    Das war es auch schon mit der Grundkonfiguration. Starte VS Code sicherheitshalber noch einmal neu, damit alles ordentlich initialisiert wird. Nun kannst du dazu übergehen, deine App zu programmieren und zu kompilieren. Für eine kurze Hello_World - Anwendung zum Testen deiner Umgebung, kannst du noch nachfolgenden Punkt folgen.

    Short Hint:

    Vergiss nicht, die Files zu speichern! :winking_face:

    5. Hello_World Anwendung erstellen und kompilieren

    unter source/main.cpp fügst du folgenden code ein, um eine Hello_World.nro erstellen zu können:

    In dieser File sollte jetzt nichts rot unterstrichen sein. Falls doch, gibt es einen Fehler in Konfiguration deiner c_cpp_properties.json oder deiner devkit installation. Diese solltest du dann nochmals prüfen und die Fehler beheben.

    Für weitere Beispiele (geschrieben in C) kannst du auch das devkitPro-Repo besuchen. Alternativ findest du diese aber auch in deinem Installationsordner ("C:\devkitPro\examples\switch").

    Als Letztes musst du noch die Makefile befüllen. Den Inhalt hierfür kannst du z.B. 1:1 aus der devkit Example file kopieren. Diese liegt unter "C:\devkitPro\examples\switch\graphics\printing\hello-world\Makefile".

    Ich habe in meiner Makefile im Kopfbereich noch folgende Variablen ergänzt, diese kannst du dir nach Belieben anpassen:

    Code
    APP_TITLE    :=  HELLO_WORLD
    APP_AUTHOR   :=  change Author Name in Makefile
    APP_VERSION  :=  1.0

    Zum Kompilieren deines Codes in eine Hello_World.nro hast du jetzt 2 Möglichkeiten. Entweder öffnest du ein Terminal im VS Code und führst dafür immer den entsprechenden Befehl (hier "make") aus, oder du machst es dir zu Nutze, dass wir die tasks.json angelegt haben

    Für letzteres einfach einmal "strg + shift + B" auf deiner Tastatur drücken. Hier öffnet sich nun am oberen Rand ein Menü. Dort hast du 3 Befehle zur auswahl. Wähle hier für deinen ersten Build einfach: "Build Switch Homebrew" aus.

    Solltest du bis hierhin alles richtig gemacht haben, befinden sich in deinem Projekt-Root nun 3 neue Files. Die Hello_World.nro kannst du zum testen nun auf deine Switch in den switch-ordner kopieren und über das HBMenü / Sphaira starten.

    VS Code Tasks

    folgende make-Befehle stecken hinter den Tasks:

    Build Switch Homebrew: make

    Clean Switch Homebrew: make clean

    Rebuild Switch Homebrew: make clean all

    Linksammlung

    Disclaimer:
    Die Nutzung dieses Tutorials erfolgt auf eigene Verantwortung.

    Ich übernehme keine Haftung für eventuelle Schäden an Hard- oder Software.

    Bevor ihr irgendetwas ausführt oder installiert, stellt bitte selbst sicher, dass ihr wisst, was ihr tut und dass alle Schritte zu eurer Umgebung passen.

    meine ofw ist noch auf 20.x. Naja ich hatte ein Problem mit der SD. Hab sie sicherheitshalber zum prüfen komplett leer geräumt für H2TestW. Zum Glück aber fehlerfrei. Da aber ein Restore des vorher angelegten NAND-Backup + alle Files der SD nicht so richtig funktioniert hab, hab ich mich für eine neu install entschlossen. Ka warum der Restore nicht wollte, aber es haben alle Titel iwie auch gefehlt. Bin mehrmals sicher gegangen, dass es auch wirklich nach Anleitung alles ist :D

    Hab aber grad nen Workaround für Switch + Cheats gefunden. Breeze installiert und darüber im Appletmodus das benötigte aktiviert.


    Wie denn? Zuvor standen noch 14 MB zur Verfügung, früher sogar 40 MB – und jetzt sind es weniger als 4 MB, also rund 90 % weniger als unter Version 18.1.0.

    Unter diesen Voraussetzungen kann das nicht mehr funktionieren und führt zwangsläufig zum Absturz und hier wird auch explizit Zelda Mods erwähnt.


    Da hättest du vorerst nicht updaten sollen. Ich vermute, dass sich dafür keine Lösung finden lässt – Nintendo macht so etwas schließlich nicht ohne Grund. 🙂

    Echt ärgerlich. :o

    Naja, aktuell hat man dank fehlender Exploits bisher auch nicht die Möglichkeit die Keys auszulesen, bzw. Dumps anzufertigen. Also zumindest nicht von Switch 2 Titeln.

    Und für die 1er würd ich auch keine Card auf der 2 Nutzen. Dann lieber ne ordentliche gemoddede 1er :D. Abwarten und Tee trinken. Mal schauen ob und was sich noch tut.

    Hehe. Ja, holen werde ich mir dieses Jahr definitiv noch eine. Hab´ich entschieden. Ich weiß nur noch nicht, ob jetzt in den Black-Weeks (bzw. Black Friday) oder um die Weihnachtszeit. Mal schauen. Naja 5-10 Jahre. Was solls, Hauptsache es kommt :D. Offline bleibt sie sowieso. :grinning_squinting_face:
    Danke auf jeden Fall für die Feedbacks / Inputs.

    Hi, hat zufällig noch jemand auf der deutsch gepatchten DBI ru 810 Verbingungsprobeme? FTP bricht immer ab, mit der Meldung das die Adresse schon gebunden wäre. USB bricht auch immer mal wieder sporadisch ab. Ich dachte erst, dass es am Windows-Explorer liegt (der ja eh immer spinnt, seit Urzeiten), allerdings passiert das auch mit Multicommander / WinSCP. Der USB-Filetransphere (Atmo-NX) hingegen funktioniert bisher stabil.

    Gruß

    Bitte aktualisiere mal deine CFW. Der Synchronisizer war unter der TE Version 4.7.5 fehlerhaft. In der Version 4.7.6 ist das Problem gefixt worden. Du hattest doch Freezes unter dem alten Script, richtig? Die hatte ich nämlich auch! Nun funktioniert das Script wieder.

    Sollte Hekate nicht mit der aktuellen FW 21.0.0 kompatibel sein, was ja aktuell der Fall ist, kannst du auch weiterhin zur OFW booten. Schau dazu bitte in die FAQ unter Punkt 22.

    Du musst zwangsläufig auf die aktuelle FW aktualisieren, wenn du weiterhin die Nintendo Services nutzen möchtest!

    Damit hat es nun funktioniert. Perfekt vielen dank

    Raufang Wie sieht es mit dem emuMMC Synchronisizer Script aus, hast du das mittlerweile mal angewendet, jetzt wo es wieder fehlerfrei funktioniert? Denk aber bitte daran die Joycons erst unter der OFW zu synchronisieren!

    Hi, ich glaub ich versteh nicht ganz. Jetzt wo was wieder fehlerfrei funktioniert? :D Mit "Meine Controller sind alle aktuell" meine ich up to date. Dass war auch schon vorher so. Das Problem mit dem Synchroniser Skript habe ich ja nach wie vor. Hab bisher nichts geändert.

    Gruß