Donnerstag, 14. Februar 2019

Projekt: Nintendo DS Lite als Gamepad für den PC

Schon von Anfang an war es bei Erstellung dieses Blogs nicht das Ziel nur Reviews und News zum Thema Homebrew zu bringen, sondern es sollten die Konsolen auf eine positive, DIY-Art zweckentfremdet werden. Leider sind solche Projekte immer recht zeitaufwändig und häufig nicht einfach umzusetzen, weshalb es erst jetzt zu einem richtigen DIY Projekt kommt.
Die erste und einfachste Modifikationsmöglichkeit wenn man an Konsolen denkt sind zumindest bei mir Controller.

Inspirationen

Wie es sich für ein gutes Projekt gehört gab es einige Inspirationsquellen für dieses Projekt. Einerseits den Youtubekanal Insert Controller Here, der alle möglichen Gegenstände zu Controller zweckentfremdet (zum Beispiel Mayonnaise) und zum anderen InsideGadgets Wireless Gameboy Controller mit dem man Gameboys und Gameboy Advances als Controller für einen Computer umfunktionieren kann (über die GBA Cartridge auch DS und DS Lite Konsolen - allerdings fehlen einige Tasten).

Die Theorie

Dadurch, dass ich noch eine DSerial EDGE herumfliegen habe war der Plan relativ schnell vorhanden. Die DSerial EDGE schickt die gedrückten Tasten über eine UART-Verbindung zu einem Microcontroller, der dann als Gamepad für den Computer erscheint; sozusagen als "UART zu Gamepad" Converter.

Zuerst war der Plan einen Digispark Microcontroller mit einem ATTINY85-Chip zu verwenden. Hier hat sich allerdings das Problem herausgestellt, dass er neben den USB Anschlüssen kein zweites in Hardware implementiertes UART Interface hat wodurch es per Software emuliert werden müsste. Dies birgt ein weiteres Problem: die Digispark SoftwareSerial Library ist nicht ohne Veränderungen mit der DigiSpark Joystick Library kompatibel. Deshalb wurde diese Idee verworfen.
Der nächste (und schlussendliche) Microcontroller, der verwendet wurde, ist ein arduinoartiger Pro Micro Chip, der auf dem Leonardo basiert aber etwas kleiner ist. Dementsprechend sollte auch ein Arduino Leonardo oder ein Arduino Micro nutzbar sein.
Nachdem dieses Problem gelöst war ist die Hardware ziemlich trivial. Die DSerial EDGE wird über 2 UART Pins und den Ground mit dem Pro Micro verbunden; der Pro Micro über USB mit dem PC. Da der Pro Micro mit 5V läuft, die DSerial EDGE allerdings nur mit 3V3, kann man noch einen Spannungswandler einbauen.

Als nächstes kam die Frage wie das Protokoll aussehen soll. Wann werden welche Daten gesendet? Benötigt man eine Sequenznummer oder eine Prüfsumme?
Nach einigem Probieren habe ich mich für folgendes Protokoll entschieden:
Ein übertragener Byte besteht aus einer Art Sequenznummer (4 Bit) und den eigentlichen Daten (4 Bit). Die Sequenznummer gibt allerdings nicht die richtige Reihenfolge der Pakete vor sondern nur die Tasten für die die Daten sind. Jedes Datenbit steht für den Zustand einer Taste: 0 bedeutet nicht gedrückt, 1 bedeutet gedrückt. Es gibt insgesamt 4 unterschiedliche Byte
Sequenznummer 0000: Steuerkreuz, also RIGHT, UP, LEFT und DOWN
Sequenznummer 0001: A, B, X und Y
Sequenznummer 0010: L, R, START und SELECT
Sequenznummer 0011: TOUCHSCREEN (1 bedeutet der Bildschirm wird berührt)

Der Arduino unterscheidet anhand der Sequenznummer zwischen drei Fällen: Wenn die Nummer 0, also das Steuerkreuz ist, dann werden die übertragenen Bit als Joystick interpretiert (der nur digitale Abtastung hat). Bei 1 und 2 werden die Eingaben ganz gewöhnlich als Tasten interpretiert. Da der Touchscreen nur eine einzige Taste hat lässt sich nicht die vorherige Funktion verwenden; 3 hat also auch einen eigenen Fall.

Die Praxis

Bisher werden immer alle Tasteninformationen nacheinander übertragen. Dadurch werden die Sequenznummern etwas unnötig aber fehlerhafte Übertragungen fallen nicht so stark ins Gewicht weil die Daten direkt danach noch einmal übertragen werden.
Dadurch, dass der Arduino für den Computer als Joystick erkannt wird, ist keine Installation am Computer notwendig. Selbiges gilt für den DS - er muss nur mit der DSerial EDGE kompatibel sein (DSi Konsolen werden damit ausgeschlossen und 3DS Konsolen benötigen Softwarepatches).
Den Quellcode von der DS Anwendung findest du hier und hier gibt es den Quellcode für den Pro Micro. Du solltest dich allerdings etwas mit der binären Darstellung auskennen um ihn zu verstehen (was bewirken Bitverschiebungen, Multiplikationen und Divisionen mit vielfachen von 2, wie funktioniert das logische OR und wie funktioniert das logische AND).
Damit man den DS etwas freier bewegen kann habe ich das Breadboard an den DS geklebt.

Ausblick auf die Zukunft

Wenn man sich das Protokoll genauer anschaut sieht man, dass zwei Bit der Sequenznummer nicht verwendet werden. Genau so wird erst ein Datenbit für den Touchscreen verwendet. Dadurch könnte man vielleicht mehrere Optionen auf dem Touchscreen verwirklichen; zum Beispiel einen "Joystick" wie bei einem Gamepad und/oder einige weitere Tasten für die Schultertasten etc. Außerdem könnte man die tatsächliche Position auf dem Touchscreen übertragen (zum Beispiel für Emulatoren).
Eine andere Idee wäre über den GBA Slot und/oder die freien Pins von der DSerial EDGE weitere Funktionen bereitzustellen, zum Beispiel Rumble oder Bewegungssteuerungen.
Bisher werden auch noch keine Daten vom Arduino an die DSerial EDGE übertragen. Eine Bildschirmübertragung, die vielleicht naheligt, wird allerdings nicht implementiert. Dazu wäre ein eigener Treiber notwendig - die PC-Seite wäre nicht mehr "Plug and Play".
Ob oder wann das umgesetzt wird ist allerdings nicht sicher. Ich habe nämlich noch viele andere Ideen für Projekte ;)

Mittwoch, 2. Januar 2019

Sky3DS Plus Review (sky3dsplus.net)

Struktur:
1. Überblick (mit offiziellen Funktionen)
2. Packung und Inhalt
3. Qualität der Karte
4. Installation und Benutzung
5. Kompatibilität
6. Schlussergebnis

1. Überblick

Um 3DS ROMs abzuspielen gibt es viele Optionen. Custom Firmwares aus der Community deren Installation etwas umständlicher ist, "alte" Flashkarten die eine eigene Custom Firmware benötigt haben (zum Beispiel die Gateway 3DS) und "neue" Flashkarten wie die Sky3DS oder die Stargate 3DS, die dem 3DS vorgaukeln ein tatsächliches physisches Spiel zu sein. Wechseln kann man das Spiel dabei mit zwei physikalischen Tasten an der Cartridge.
Die Flashkarte, die wir uns heute anschauen, ist nur noch unter einem Namen bekannt. Aber das war nicht immer so: früher gab es die gleiche Karte unter vielen Namen. Sky3DS, QQ3DS, R5SDHC und K3DS. Der Grund dafür war, dass die tatsächliche Hardware von einer unbekannten Firma hergestellt wird, die die "Rohlinge" an Onlineshops verkauft hat welche sie dann gebrandet und vermarktet haben. Deshalb gab es bis auf Verpackung und Tastenfarbe keine Unterschiede zwischen den Karten - funktionstechnisch waren alle gleich. Mit der Zeit hat sich allerdings nur die Sky3DS gehalten - die anderen Karten sind heutzutage nicht mehr verfügbar.
Seit den ersten Karten des Herstellers, der damals noch unter sky3ds.com erreichbar war, hat sich vieles getan. Man braucht keine extra Software mehr um Spiele auf die Karte zu kopieren, es gibt kein Limit von maximal 10 Spielen pro Karte mehr und inzwischen gibt es zwei Tasten sodass man nicht nur nach vorne, sondern auch zurück navigieren kann. Außerdem gibt es jetzt ein sogenanntes SkyDock als Zubehör, dessen Funktionen wir uns später genauer anschauen werden.
Der Artikel wurde mir freundlicherweise von dgchips.com bereitgestellt. Vielen Dank dafür!

Offizielle Funktionen (von der offiziellen Website, frei aus dem Englischen übersetzt):
- Enthält alle Funktionen der Sky3DS
- Plug & Play, einfach zu benutzen, kein weiteres Setup an der Konsole
- Spiele werden direkt per Download aus dem eShop aktualisiert
- Kostenlose Updates der Firmware, keine Angst vor Konsolen Bricks
- Wechseln der Spiele mit zwei orangen Tasten
- Kompatibel mit anderen 3rd party Homebrew Anwendungen
- AP Checks gelöst. Firmware aktualisierbar

2. Packung und Inhalt


Erstaunlicherweise hat nur die Flashkarte selbst eine Verpackung; SkyDock und MicroUSB Kabel werden lose in der Post verschickt. Das könnte daran liegen, dass bei der Flashkarte die höchste Gefahr besteht, dass etwas kaputt geht. Dementsprechend benötigt sie den meisten Schutz.
Die Verpackung ist eine einfache Hülle aus Plastik, die von Pappe umrahmt ist. Die Plastikschale kann man aufklappen um die Karte zu entnehmen ohne die Verpackung zu beschädigen. Auf die Pappe sind geklaute Bilder von Spielen, Filmen o.ä. gedruckt; der Aufdruck hat sich in den vergangenen Jahren mehrmals verändert. Außerdem befindet sich die Produktbezeichnung Sky3DS+ auf der Verpackung. Hinweise zur Entsorgung, ein CE Symbol, einen Barcode oder eine Liste mit den Funktionen der Karte befinden sich nicht auf der Packung.
Das weiße MicroUSB aus dem Lieferumfang ist nur sehr kurz aber es hat eine ausreichende Dicke. Ich würde davon ausgehen, dass es nicht allzu schnell kaputt geht.

Der Dritte im Bunde, das SkyDock, wird von einer harten Hülle aus mattem Plastik umrandet. Es fühlt sich nicht sehr hochwertig aber dafür relativ stabil an. Zusammengehalten wird es von 4 Schrauben. Außerdem gibt es einen Aufkleber auf dem der Name des Gegenstandes steht. Die Vorderseite enthält zwei Schlitze, in die Cartridges eingeführt werden können.

3. Qualität der Karte


Auf der Flashkarte selbst klebt ein großer Aufkleber mit dem Schriftzug "Sky3DS+", der URL "www.sky3dsplus.net" und weiteren geklauten Bildern. Der glänzende Sticker ist relativ glatt. Trotzdem kann man darunter leicht einige elektrische Chips erfühlen. Das Plastik der Karte hat fast den exakten Farbton wie der von originalen 3DS Spielen - nur das Nintendo Logo fehlt. Es ist sehr flach und leicht milchig durchsichtig. Wie 3DS Spiele hat auch diese Karte einen Knubbel damit man sie nicht in ältere DS Systeme schieben kann.
Neben dem MicroSD Kartenschlitz auf der Oberseite gibt es dort noch zwei orangefarbene Tasten. Mit ihnen kann man das Spiel, das der 3DS liest, ändern. Sie wirken halbwegs stabil; insbesondere im direkten Vergleich mit den Tasten der Stargate 3DS - allerdings sind sie etwas kleiner. Die linke Seite ziert ein MicroUSB Anschluss, in den das mitgelieferte MicroUSB Kabel passt. Von der Rückseite aus fallen die recht langen Kontakte auf, die alle mit Stegen getrennt sind. Dies ist gut um Kontaktprobleme zu vermeiden.
Leider ist die Sky3DS Plus Flashkarte festgeklebt sodass ich keine Bilder der Leiterplatte machen kann ohne sie zu beschädigen. Anders sieht es hingegen bei dem SkyDock aus; soweit ich es sehen kann sind dies sogar die weltweit ersten Bilder der Leiterplatte von dem SkyDock. Der Blick ins Innere bestätigt die Behauptung, dass es sich um eine schwarze Hülle handelt, in der zwei zusammengelötete 3DS Kartenslots sind. Davon abgesehen gibt es einige Widerstände und Kondensatoren.


4. Installation und Benutzung

Firmware aktualisieren
Als Erstes sollten wir schauen ob überhaupt ein Firmware Update für die Karte notwendig ist. Dafür kann man eine leere MicroSD Karte in die Flashkarte tun und die Flashkarte in den 3DS stecken. Nun sollte sich auf der SD Karte eine settings.txt-Datei befinden. Wenn man sie öffnet gibt es dort die Zeile "FIRMWARE_VERSION=", hinter der eine Nummer steht. Sollte die Zahl kleiner als 140 sein, dann ist ein Firmware Update empfohlen - zumindest wenn du in der Zukunft das SkyDock benutzen möchtest. Es wird außerdem dringend empfohlen Updates von einer MicroSD Karte aus auszuführen, die in FAT32 formatiert ist.
Jetzt können wir das aktuelle Update von der Sky3DS Website herunterladen: auf dieser Seite gibt es die aktuelle Sky3DS+ Firmware. Dann kann man das Update in das Hauptverzeichnis der eben erwähnten MicroSD Karte kopieren. Als Nächstes kann man die MicroSD in die Sky3DS+ tun und sie über den MicroUSB Anschluss mit einem Computer verbinden. Daraufhin sollte die LED für einige Sekunden rot leuchten und danach für einige Sekunden grün blinken. Sobald das Licht erlischt wurde die Sky3DS+ erfolgreich aktualisiert.
HINWEIS: Enterne nicht das USB Kabel oder die SD Karte während die Karte aktualisiert wird! Es könnte die Flashkarte beschädigen!
Als letztes solltest du noch die firmware.bin von der SD Karte in der Flashkarte löschen.
Wenn du keinen MicroSD Kartenleser hast, dann kannst du die Sky3DS Plus über das mitgelieferte USB Kabel mit dem PC verbinden. Sie funktioniert in diesem Fall als normaler MicroSD Reader.

Spiele ausführen
Um 3DS Spiele offline zu spielen müssen wir jetzt nur noch die .3DS ROMs auf die SD Karte der Flashkarte kopieren und das Modul danach in die Konsole stecken. Nun kann man mit den orangefarbenen Tasten das Spiel, das der 3DS gerade liest, wechseln. Dabei muss beachtet werden, dass es verschlüsselte und unveränderte 3DS ROMs sein müssen. Die Sky3DS tut so, als ob sie ein normales Spiel wäre und dementsprechend können nur ROMs von Spielen ausgeführt werden, die der 3DS ohne Tricks lesen würde. Veränderte Spiele (also zum Beispiel eShop Spiele, die zu einer 3DS ROM konvertiert wurden) können nicht mit der Karte abgespielt werden. Spiele aus einer anderen Region können auch nicht ohne weitere Tricks wie zum Beispiel eine Custom Firmware ausgeführt werden. Die Sky3DS+ hat im Gegensatz zur originalen Sky3DS kein maximales Spielelimit.
Bei vielen Spielen kann das ganze Tastendrücken dröge werden. Man kann die Taste ohne dass das nächste Spiel im 3DS Menü angezeigt wird drücken um schneller zu wechseln. Dabei sollte man nicht währenddem ein Spiel ausgeführt auf die Tasten kommen, da das für den 3DS so ist als wenn eine Cartridge mitten im Spiel entfernt wurde.
Die Speicherstände werden auf der MicroSD Karte in der Flashkarte gesichert. Damit werden sie "mitgenommen" wenn man die Karte in einen anderen 3DS steckt.

Homebrew ausführen
Da die Sky3DS+ ein echtes, physisches Spiel "emuliert" kann sie nicht ohne weiteres Homebrew ausführen. Man kann allerdings ROMs von Spielen, die einen für Homebrew nutzbaren Exploit haben, auf die Karte laden. Ein Beispiel dafür ist "Cubic Ninja", in dem es den bekannten NINJHAX Exploit gibt. Man muss lediglich einige Daten auf die SD vom 3DS kopieren und einige QR Codes einscannen um den Homebrew Launcher auszuführen.

Mit dem SkyDock 3DS Spiele kopieren

Wenn die Sky3DS Plus auf der aktuellen Version ist und man ein SkyDock besitzt, dann kann man mit der Karte sogar die CardID, den Speicherstand und ein Abbild von einem realen Spiel erstellen. Die CardID kann später verwendet werden um mit ROMs online zu spielen.
Zuerst muss man die Sky3DS Plus und ein echtes Spiel in das Sky Dock schieben. Hier sollte aufgepasst werden, dass der USB Anschluss der Sky3DS frei bleibt. Als nächstes kann man schon die Sky3DS über ein MicroUSB Kabel mit einem Computer oder einer anderen USB Spannungsquelle verbinden. Die blaue LED sollte aufblitzen und auf der SD Karte befindet sich jetzt eine savekeys.txt Datei, die den privaten Header des Spiels enthält. Wenn man jetzt kurz auf eine orange Taste drückt, dann sollte kurz ein rotes Licht aufblitzen. Jetzt sind zwei neue Dateien auf der SD: eine .CFG und eine .SAV. Ersteres enthält spezifische Informationen zur Cartridge (Cart ID, Flash ID etc). Die .SAV Datei ist eine Kopie des Speicherstands von dem Spiel, der mit der Sky3DS Plus kompatibel ist. Man kann also Backups an dem Punkt wo man mit einer echten Cartridge war weiterspielen.
Als letztes gibt es die Option Spiele zu kopieren, also ROMs zu erstellen. Dafür muss man die orange Taste so lange drücken bis die rote LED aufblinkt. Innerhalb einiger Minuten sollte sich die Farbe zu grün ändern. Sobald die LED aus ist sollte sich eine .3ds Datei auf der MicroSD Karte befinden. Es ist die Kopie des Spiels. Solange die LED leuchtet solltest du auf keinen Fall das USB Kabel abziehen oder eine Cartridge aus dem Dock entnehmen.
Die Zeit wie lange das Kopieren dauert hängt vom Spiel ab. Je größer das Spiel, desto länger dauert es. Unter Umständen muss man sich schon mal eine halbe Stunde oder länger gedulden.
In der Praxis funktioniert dieses Feature nur mittelmäßig gut. So konnte ich zum Beispiel keine 4GB großen Spiele getrimmt auf eine FAT32 MicroSD Karte dumpen.

Online spielen
Um 3DS Spiele, deren Cartridge man besitzt, online zu spielen, reicht es, die Cartridge und die .CFG Datei mit dem SkyDock zu dumpen (siehe "Mit dem SkyDock 3DS Spiele kopieren"). Jetzt sollte man mit dem Backup problemlos online spielen können. Allerdings ist es nicht empfohlen gleichzeitig mit der originalen Cartridge und einem Backup über das Internet zu spielen - es könnte in einen Bann resultieren. Außerdem werden die Eigenschaften des Spiels verändert sodass Speicherstände, die andere bzw. keine Headerinformationen haben, nicht mehr geladen werden können.
Damit wir auch andere ROMs online spielen können müssen wir als nächstes die settings.txt Datei auf der MicroSD Karte öffnen und folgende Zeile hinzufügen: "CREATE_PER_GAME_SETTINGS=1". Wenn du jetzt das Spiel, das du online spielen möchtest, mit der Sky3DS Plus startest, sollte sie eine .CFG-Datei erstellen. Sie hat den gleichen Namen wie die .3DS ROM.
Jetzt brauchen wir die .CFG Datei von dem Spiel, das wir gedumpt haben. Die können wir öffnen und die ersten 32 Buchstaben bzw. Ziffern kopieren. Die müssen wir in der .CFG Datei von dem Spiel, das wir online spielen wollen, einfügen. Danach sollte man das Spiel schon online spielen können. Sollte es nicht funktionieren kann man die Speicherdatei von dem Spiel, das man online spielen möchte, löschen. Das sollte das Problem beheben.

Weitere Optionen
Die Karte erstellt automatisch eine Datei mit dem Namen "settings.txt" auf der MicroSD Karte, wenn noch keine vorhanden ist. Neben der Option "Firmware_VERSION", die wir bereits verwendet haben, gibt es folgende Einträge:
DEFAULT_GAMESAVE_KEY: Der GAMESAVE_KEY wurde schon bei dem letzten Punkt erklärt. Hierbei handelt es sich um den Standardwert dafür
HIGH_SPEED_ENABLED: vermutlich eine Option um höhere Geschwindigkeiten freizuschalten. Ich habe keine offiziellen Informationen zu dieser Option gefunden
ACTIVITY_LED_COLOR: mit dieser Option kann eingestellt werden welche LEDs normalerweise leuchten sollen. Der Standartwert ist 000000. Je nach Farben die man aktivieren möchte kann man die linken, die mittleren oder die rechten beiden Doppelnullen durch FF ersetzen. Ein Beispiel wäre FF00FF
EEPROM_LED_COLOR: die hier eingestellten LEDs leuchten wenn auf den EEPROM der Flashkarte zugegriffen wird
SD_LED_COLOR: als letzte Option kann man die Farben für SD Zugriffe einstellen

Stromverbrauch
Diese Karte wirbt nicht mit einem "niedrigen Stromverbrauch". Da die Konkurrenz, also die Stargate 3DS, das allerdings tut wurde diese Karte auch einem Test unterzogen um zu schauen welche Karte länger durchhält. Den kompletten Testaufbau kann man übrigens im Stargate 3DS Review nachlesen. Der Test ist natürlich ziemlich fehleranfällig und nur ein bestimmter Fall. Er sollte höchstens als Richtwert verstanden werden.
In meinem Test hat die Sky3DS Plus ca. 151 Minuten (9030 Sekunden) durchgehalten. Damit liegt sie zwischen der Stargate (131 Minuten) und einem echten Spiel (162 Minuten); die Sky3DS Plus hat also weniger Energieverbrauch als die Stargate wodurch man länger ohne zwischendurch aufzuladen spielen kann.

5. Kompatibilität

Kurz gesagt: die Sky3DS Plus sollte mit jedem 3DS Spiel laufen.

3DS ROM Kompatibilität
- Cubic Ninja: Keine Probleme
- Ridge Racer 3D: Keine Probleme
- Sonic Generations: Keine Probleme
- The Legend of Zelda: Ocarina of Time 3D: Keine Probleme
- The Legend of Zelda: Majora's Mask 3D: Keine Probleme
- Fireemblem Warriors (nur New 3DS): Keine Probleme
- Lego City Undercover - The Chase begins: Keine Probleme
- Lego Friends: Keine Probleme
- Mario Kart 7: Keine Probleme
- Transformers Prime The Game: Keine Probleme
- Bravely Second: Keine Probleme
- Shovel Knight: Keine Probleme
- Xenoblade Chronicles 3D (nur New 3DS): Keine Probleme
- Landwirtschaftssimulator 2012: Keine Probleme
- Landwirtschaftssimulator 2018: Keine Probleme (möglicherweise mehr Slowdowns)
- Pokemon Super Mystery Dungeon: Keine Probleme
- Pokemon Ultra Sonne: Keine Probleme (MicroSD muss in exFAT formatiert sein)
- New Super Mario Bros 2: Keine Probleme
- Spy Hunter: Keine Probleme
- Super Smash Bros for 3DS: Keine Probleme

6. Schlussergebnis

Alles, was diese Karte macht, tut sie so wie sie es soll. Viele Extrafeatures gibt es leider nicht, insbesondere kann die Karte nicht für NTRBoot genutzt werden, aber das SkyDock ist eine praktische Ergänzung. Ob sich die Karte allerdings lohnt hängt vom Fall ab. Heutzutage sind kostenlose Custom Firmwares aus der Community sehr leicht zu bedienen sodass sich die Sky3DS Plus nur lohnt wenn man keine Custom Firmware installieren möchte; zum Beispiel weil man in offiziellen Tournaments spielt, in denen gemoddete Konsolen verboten sind.

Positiv:
- Unterstützt alle 3DS Spiele & Konsolen
- Spiele können online gespielt werden
- Lange Kontakte, Stege zwischen allen Kontakten
- Sehr einfach zu benutzen
- Unterstützt FAT32 und exFAT Dateisystem
- Unterstützt getrimmte ROMs
. Mit USB Kabel und SkyDock sehr umfassender Lieferumfang
- Kein MicroSD Lesegerät erforderlich
- Farbe sehr ähnlich zu echtem 3DS Spiel
- Ermöglicht das Erstellen von Backups von originalen 3DS Spielen
-Geringerer Energieverbrauch als bei der Stargate 3DS

Negativ:
- Relativ teuer
- Unterstützt kein NTRBoot um Custom Firmwares zu installieren
- Unterstützt nicht direkt Homebrew
- Dumpen von Spielen relativ fehleranfällig

Noch einmal vielen Dank an dgchips.com für die Bereitstellung der Karte. Der Shop hat übrigens ein Lager innerhalb von Europa sodass man bei Bestellungen die innerhalb der EU versandt werden keine Angst vor dem Zoll haben muss.

Samstag, 29. Dezember 2018

AceNS Review (ace-3ds.com)


Struktur:
1. Überblick (mit offiziellen Funktionen)
2. Packung und Inhalt
3. Qualität des Produktes
4. Installation und Benutzung
5. Kompatibilität
6. Schlussergebnis

1. Überblick

Inzwischen ist nicht nur r4i-sdhc.com mit dem R4S Dongle, sondern auch ein weiteres Flashkartenteam von der DS Szene zur Nintendo Switch rübergeschwappt: das ace3ds.com Team. Früher nur für den Wood-Klon Ace3DS Plus und später mit der Ace3DS X galt das Team immer eher als Low Budget Hersteller, der sogar gerne für "XXX in 1" Cartridges genommen wurde. Dadurch, dass sie nicht unter den ersten RCM Dongles sind hatte dieses Prdukt mehr Zeit für die Entwicklung als die bisherigen Produkte. Ob sich das Image mit dem neuen Produkt, einem RCM Dongle, verbessert und ob sich die zusätzliche Entwicklungszeit gelohnt hat kann man im Folgenden lesen.
Bevor es richtig losgeht möchte ich darauf hinweisen, dass der Dongle nur auf älteren Nintendo Switch Konsolen, die noch nicht von Fabrik aus gepatcht sind, funktioniert. Ob deine Konsole unterstützt wird kannst du hier nachlesen. Grob lässt sich aber sagen, dass alle Konsolen, die vor Juli 2018 gekauft wurden, unterstützt werden sollten.
Vielen Dank an www.elespiel.com bzw. www.spielite.com für die Bereitstellung des Dongles.

Offizielle Funktionen (von der offiziellen Website, frei aus dem Englischen übersetzt):
- Funktioniert mit allen Nintendo Switch Systemversionen
- Unterstützt direkt payload.bin Dateien, bis maximal 6 Payloads
- 3 eingebaute Payloads: ATMOSPHERE, REINX und SXOS, einfach durch Tastendruck wechselbar
- Einfache Handhabung - er wird sofort als USB Flashgerät erkannt wenn mit einem PC verbunden
- Gute Kompatibilität, unterstützt Windows, Mac OS und Linux Systeme
- Firmware aktualisierbar

2. Packung und Inhalt


Im Gegensatz zur Konkurrenz, die eine Pappschachtel verwendet, wird dieser Dongle in einem wiederverschließbarem Döschen aus leicht milchig durchsichtigem Plastik geliefert. Auf der Oberseite ist das "AceNS 3in1" Logo zusammen mit der Produktbeschreibung "Payload.bin loader for NS" und der URL www.ace3ds.com aufgedruckt. Insgesamt macht das Döschen keinen besonders wertigen, aber dafür einen sinnvollen Eindruck, da man es allgemein zum Aufbewahren von Gegenständen verwenden kann. Nachdem man den Verschluss an der Unterseite eindrückt kann man den Deckel aufklappen und es kommen das USB Kabel, der JIG und der RCM Dongle zum Vorschein.

Das recht kurze schwarze USB A zu MicroUSB Kabel richt ziemlich chemisch. Im Gegensatz dazu ist der orangefarbene JIG fast geruchlos. Er hat wie der JIG vom Team Xecuter eine Seite, an der "On" steht und eine an der "Off" steht, aber das Plastik ist etwas grober. Wie alle etwas qualitativeren JIGs hat auch dieser dünne gebogene Kontakte, die schonend für die Pins der Switch sind. Im Gegensatz zu dem Jig von r4i-sdhc.com und dem vom SX Pro verbindet dieser den ersten Kontakt mit dem Zehnten.
Mal von dem Branding abgesehen scheinen sowohl Dongle, als auch Verpackung direkt von "XKit" zu kommen, wo der Dongle für ca. 10€ erhältlich ist.

3. Qualität des Produktes


Kommen wir zum Objekt, um das es eigentlich geht: den AceNS Dongle. Er ist sogar etwas größer als der R4S Dongle aber bietet dafür Kreuzschrauben zum Öffnen. Der MicroUSB Anschluss ist halb mit einem Deckel aus billigem weißen, durchsichtigem Plastik abgedeckt. Die Oberfläche wird von einer Platte aus sich gut anfühlendem dunkel durchsichtigem Plastik abgedeckt. Mit der Fingerspitze kann man die Stellen, an denen das ein Switch Logo, der AceNS Schriftzug, der Text "3in1 Loader" und ein Bildschirm aufgedruckt sind, ertasten. In der Mitte befindet sich des Weiteren eine Taste. Auf der linken Seite gibt es eine Schicht aus blau durchsichtigem Plastik, auf der gegenüberliegenden Seite eine aus orange durchsichtigem Plastik. Die Farben ähneln denen der Joy Cons aus der neonfarbenen Switch Konsole. Ganz unten ist eine weitere Schicht aus dunklem durchsichtigem Plastik, auf der der Schriftzug "www.ace3ds.com" steht. Darüber gibt es eine an den Seiten undursichtige weiße Schicht, die die Seite der Leiterplatte abdeckt. Der USB-C Anschluss, den man in die Konsole steckt, und der MicroUSB Anschluss an der Rückseite um den Dongle zu laden sind hier an der kürzeren Seite. Die ritzen daneben sind mit dunklem, durchsichtigem Plastik abgedeckt.
Richtig fancy wird es in der Dunkelheit. Denn wenn die LED weiß leuchtet, dann scheint sie durch das Plastik an der oberen, der linken und der rechten Seite. Ich persönlich habe eine große Schwäche für bunt leuchtende elektrische Dinge.


Wenn man den Dongle aufmacht fallen einem direkt die beiden 2.7V Superkondensatoren mit je einem Farad auf. Außerdem gibt es auf der Leiterplatte einige ICs deren Zweck ich nicht entziffern konnte und eine ganze Menge anderer Bauteile wie Kondensatoren und Widerstände. Der schimmernde Baustein in einer Reihe mit den beiden größeren ICs könnte ein Kristall zum Halten der Geschwindigkeit beim USB Transfer sein. Insgesamt sind doch einige Teile nicht ganz gerade angeordnet wodurch die Leiterplatte etwas billig wirkt. Es gibt mindestens 10 Testpunkte - einige dafür könnten in der Herstellung für JTAG o.ä. genutzt werden.

4. Installation und Benutzung

Laden des Dongles

Mehr als acht Starts direkt nacheinander hält der Dongle nicht durch und selbst wenn er vollgeladen ist entlädt er sich innerhalb weniger Stunden von selbst - obwohl er wie der SX Pro Superkondensatoren enthält. Wenn man ihn also sinnvoll verwenden möchte muss er vor jeder Verwendung geladen werden - und dazu muss man die Switch starten können oder ein anderes Gerät mit einem entsprechenden USB Anschluss dabei haben. AutoRCM ist wenn man nicht ständig eine Powerbank oder ein Handy mit Adapter (was den Sinn des Dongles untergraben würde) dabei haben möchte also keine Option.
Zum Laden kann man ihn entweder über den USB C Anschluss mit einem USB C Gerät verbinden oder über den MicroUSB Anschluss mit einem Computer o,ä. Damit man den Dongle über den MicroUSB Anschluss laden kann wird ein kurzes MicroUSB Kabel mitgeliefert. Sobald das Gerät vollgeladen ist leuchtet die weiße RGB LED.

Der erste Schritt

Nachdem der Dongle geladen wurde kann man die Konsole ausschalten, den JIG in die Schiene des rechten Joy Cons schieben; wenn man auf das AceNS Logo schaut und eine neonfarbene Konsole hat kann man sich an den Farben des Dongles bzw. des JIGs orientieren. Dann kann man gleichzeitig die Lautstärke + Taste und die POWER Taste drücken, um die Switch im RCM, also dem Recovery Mode zu starten. Wenn die Payload geladen wird leuchtet der Dongle in einer der Payload entsprechenden Farbe.

Payload wechseln


Um die Payload zu wechseln muss man das USB Gerät in eine eingeschaltete Konsole stecken und für ein paar Sekunden die Taste auf der Oberseite drücken. Daraufhin sollte sich die Farbe der LED ändern und der neue Payload geladen sein. Um ihn auszuführen muss man dann natürlich wieder die Konsole ausschalten und in den Recovery Mode gehen. Standardmäßig werden drei Payloads mitgeliefert. Wenn Atmosphère ausgewählt wird, leuchtet die LED blau, bei ReiNX grün und wenn SX OS gewählt wird rot.

Neue Payloads flashen


Der Dongle unterstützt insgesamt bis zu 6 Payloads - beim Ersten leuchtet die LED blau, beim Zweiten grün, beim Dritten rot, beim Vierten gelb, beim Fünften violett und beim Letzten hellblau. Um eine neue Payload auf den Stick zu laden oder eine alte zu ersetzen muss man den Dongle mit einem MicroUSB Kabel mit einem Computer verbinden und eine "payload.bin" in einen Ordner kopieren; dazu kann man auch die bereits vorhandenen Ordner USER1 bis USER3 verwenden. Der Ordnername darf nicht mehr als 18 Zeichen haben. In der "LAUNCH.TXT" im Hauptverzeichnis des Dongles wird ein Pfad zum aktuell ausgewählten Payload gespeichert. Insgesamt hat der Dongle knappe 2MB Speicherplatz für Payloads zur Verfügung.

5. Kompatibilität

- Atmosphère: Keine Probleme
- ReiNX: Keine Probleme
- SX OS: Keine Probleme

6. Schlussergebnis

Ich würde den Dongle absolut empfehlen - wenn da nicht die schwachen Kondensatoren wären. Im aktuellen Zustand ist er nur eine Option wenn man absolut kein Interesse an AutoRCM hat. Was das Aussehen angeht liegt er dank der sinnvollen Nutzung der LED natürlich ziemlich weit vorne. Es ist der Einzige von mir bisher getestete Dongle, der mehrere Payloads und das Wechseln dazwischen unterstützt. Mit den heutzutage verfügbaren Chainloadern ist das natürlich eine sinnvolle und hilfreiche Ergänzung aber kein Totschlagargument mehr.
Dazu kommt natürlich, dass der Dongle nicht von Ace3DS entwickelt wurde sondern dass Ace3DS nur als "Gesicht" für den Dongle von Xkit fungiert.

Positiv:
- Taste zum Wechseln des Payloads
- Einfach aufschraubbar
- Coole und sinnvolle Verwendung der LED
- Guter kontaktschonender JIG
- Gesamtpaket wirkt gut durchdacht
- Keine Aktivierung einer Lizenz notwendig
- Fairer Preis (um die 17€)
- Kein Bricking Code oder Zeitbombe

Negativ:
- Entlädt sich sehr schnell; deshalb für AutoRCM nicht zu gebrauchen
- Funktioniert nicht auf der neusten Switch Hardware Revision
- Rebrand von dem Dongle von Xkit
- Unterstützt nicht direkt das Booten von Linux/ Lakka
- Insgesamt eher billiger Eindruck


Noch einmal vielen Dank an www.elespiel.com bzw. www.spielite.com für die Bereitstellung des Dongles.

Yet another teaser

Ein Review zum AceNS, der im letzten Post geteasert wurde, sollte in den nächsten Tagen kommen. Außerdem noch ein anderes Review.
Die heutige Post kommt ursprünglich aus China, wurde aber zu mir aus Frankreich versandt.
Die Sky3DS+ mitsamt Dock, freundlicherweise von DGChips bereitgestellt.

Samstag, 29. September 2018

Zeit für den nächsten Teaser

Die Zeit für den nächsten Teaser ist gekommen - mal wieder für Post aus China.
Darin ist noch ein weiterer Umschlag.
Und darin ist das eigentliche Produkt.
Der AceNS Dongle, freundlicherweise von www.elespiel.com bzw. www.spielite.com bereitgestellt.

Donnerstag, 20. September 2018

Tutorial: Linux auf der Wii U ausführen (Lubuntu oder Debian)


Das nachfolgende Tutorial beschreibt, wie man auf der Wii U Linux installieren kann. Dabei sind sowohl Debian (Serverversion), als auch Lubuntu (Server- und Desktopversion) unterstützt.
Es gibt allerdings ein paar Einschränkungen. So stehen z.B. nur die hinteren USB Anschlüsse, keine Grafikbeschleunigung, kein Ton und nur 2GB RAM zur Verfügung. Eine aktuelle Liste mit der unterstützten Hardware findest du hier.

0. Anforderungen

Bevor man mit der Installation von Linux auf der Wii U starten kann, sollte man ein paar Anforderungen erfüllen. Folgendes wird notwendigerweise benötigt:
  • Wii U mit Homebrew Launcher (Coldboot Haxchi wird empfohlen), die an einen Bildschirm angeschlossen ist (man kann nicht nur das Gamepad verwenden)
  • PC mit Windows oder Linux als Betriebssystem
  • USB Speichergerät mit 512MB Speicherplatz, das keine wichtigen Daten enthält
  • SD Karte mit mindestens 10MB freiem Speicherplatz; es kann die gleiche wie für den Homebrew Launcher verwendet werden
  • USB Tastatur
Außerdem empfehle ich zusätzlich folgende Dinge wenn du einen von Linux unterstützen USB Hub hast:
  • USB Maus
  • USB zu LAN Adapter (nicht alle werden von Linux unterstützt)
  • LAN Kabel mit Internetverbindung

1. SD Karte vorbereiten

Wenn du auf der Wii U kein Coldboot Haxchi hast, dann benötigst du den CFW Booter auf der SD Karte.

Als Nächstes benötigst du das dtbImage, das auf die SD Karte in einen "linux" Ordner kopiert werden muss.
Die letzte Datei, die wir auf der SD Karte benötigen, ist eine fw.img-Datei, die ins Hauptverzeichnis kopiert werden muss. Du kannst sie hier finden.
Nach diesen Schritten solltest du folgende Dateien auf der SD Karte haben. Achte darauf, dass auch die Dateinamen inklusive Groß- und Kleinschreibung übereinstimmen.
SD:/fw.img
SD:/linux/dtbImage.wiiu
SD:/wiiu/apps/cfwbooter/cfwboot.elf
SD:/wiiu/apps/cfwbooter/icon.png
SD:/wiiu/apps/cfwbooter/meta.xml

2. USB Stick vorbereiten

Um das Image auf die SD Karte zu kopieren kann man entweder einen Computer mit Windows oder einen Computer mit Linux verwenden. Als erster Schritt muss der USB Speichermedium in den Computer gesteckt werden.
Nun muss man sich für eine Distribution die man starten möchte entscheiden und sie herunterladen. Ich persönlich empfehle bei allen USB Sticks, die mindestens 2GB groß sind die Lubuntu Desktop Version.

2.1. USB Stick unter Linux vorbereiten

Windows PC Nutzer können diesen Schritt überspringen.
Um den USB Stick vorzubereiten reicht es aus, das Image mithilfe von dd oder etcher auf den USB Stick zu schreiben. Dabei werden alle Daten auf dem Datenträger gelöscht.
Jetzt kannst du ihn sicher entfernen.

2.2. USB Stick unter Windows vorbereiten

Linux PC Nutzer können diesen Schritt überspringen.
Unter Windows musst du erst den Win32 Disk Imager herunterladen und installieren. Wenn du schon mal einen Raspberry Pi aufgesetzt hast solltest du ihn schon haben.
Als nächstes kannst du das heruntergeladene Image auf den USB Stick schreiben. Dazu kannst du im Programm im Image-Datei-Abschnitt auf das Ordnersymbol klicken und das entpackte Image auswählen. Dann kannst du unter dem Punkt Datenträger den Laufwerksbuchstaben auswählen.
ES IST WICHTIG, DASS DER RICHTIGE DATENTRÄGER AUSGEWÄHLT IST! ALLE DATEN AUF DEM DATENTRÄGER WERDEN GELÖSCHT!
Jetzt kannst du noch auf "Schreiben" klicken, darauf warten dass der Vorgang abgeschlossen ist, das Programm beenden und den USB Stick sicher entfernen.

3. Linux auf der Wii U starten

Der spannende Moment ist gekommen. Zuerst müssen sämtliche USB Speichergeräte von der Wii U entfernt werden. Stelle außerdem sicher, dass die SD Karte im SD Slot der Konsole ist.

Falls du Linux über den Homebrew Launcher starten müsstest ist jetzt der Zeitpunkt gekommen um den Homebrew Launcher zu starten, den USB Speichergerät in einen der hinteren Anschlüsse zu stecken und dort den CFW Booter zu starten. Erst danach dürfen die restlichen USB Geräte in die Konsole gesteckt werden.

Mit einem USB Hub kannst du die Tastatur und ggf. die Maus und den USB zu LAN Adapter inklusive LAN Kabel in den Hub stecken und eben diesen in einen der beiden hinteren USB Anschlüsse stecken. Wenn du nur eine USB Tastatur hast, dann muss diese in einen der beiden hinteren USB Anschlüsse gesteckt werden.

Falls du Coldboot Haxchi verwendest kannst du jetzt den USB Speichermedium in die Konsole stecken, selbige starten und beim Bootscreen das Haxchi-Menü aufrufen. Standardmäßig geht das mit der HOME-Taste. Hier kannst du auf dem Steuerkreuz vom Wii U Gamepad zu "Boot fw.img on SD Card" navigieren und zur Bestätigung "A" drücken.
Alles richtig gemacht sollte man jetzt von einer wunderschönen Konsole begrüßt werden, die einen freundlichst nach dem Benutzernamen fragt.

4. Linux einrichten

Für alle Eingaben im folgenden Abschnitt muss man bedenken, dass Tastaturen standardmäßig mit dem US Layout belegt sind. Um herauszufinden welche Taste wo ist kann man folgendes Bild verwenden:
Um das Layout bis zum nächsten Neustart auf ein deutsches umzustellen kann man nachdem man sich angemeldet hat folgenden Befehl verwenden: "setxkbmap -layout de".

4.1 Debian einrichten

Wenn du ein Lubuntu Image heruntergeladen hast, kannst du diesen Schritt überspringen.
Die Anmeldedaten für die Konsole lauten sowohl für Benutzername, als auch für Passwort "root". Um das Passwort zu ändern kannst du den Befehl "passwd" verwenden.
Ohne LAN Anschluss ist das Tutorial jetzt schon abgeschlossen. Du kannst z.B. den Befehl "nano" verwenden um einen Texteditor zu öffnen und Dokumente zu bearbeiten.
Mit einer Internetverbindung kannst du dir aus dem Internet Softwarepakte für die Konsole herunterladen. Da Debian die URLs für den PowerPC Beta Branch geändert hat müssen sie umgebogen werden. Eine Anleitung dafür findest du hier.

4.2 Lubuntu einrichten

Wenn du ein Debian Image heruntergeladen hast, kannst du diesen Schritt überspringen.
In der Konsole kann man sich mit dem Benutzernamen "root" und dem Passwort "wiiu" anmelden. Um das Passwort zu ändern kannst du den Befehl "passwd" verwenden.
Als Nächstes empfehle ich, die Größe der Hauptpartition der Größe des USB Sticks anzupassen. Standardmäßig ist diese nämlich nur ca. 300MB bzw. 2GB groß. Das geht mit folgendem Befehl: "/usr/local/share/linux-wiiu/rootfs_enlarge.sh".
Jetzt sollte die Wii U neustarten. Um das Image erneut auszuführen muss man als Homebrew Launcher Nutzer wieder den Homebrew Launcher und dann den CFW Booter starten bzw. als Coldboot Haxchi Nutzer das Haxchi Menü öffnen und "Boot fw.img on SD Card" auswählen.
Alle Nutzer des Server Images sind jetzt fertig. Aber Desktop Nutzer wollen natürlich noch eine fancyge Oberfläche haben.
Um die zu aktivieren muss man sich erneut mit einloggen (hier ggf. das neue Passwort verwenden) und die folgenden zwei Befehle ausführen: "dpkg-reconfigure lightdm" und "reboot". Auch hiernach muss Linux erneut ausgeführt werden.
Im Folgenden sollte man in einem normalen Desktop Loginscreen landen. Hier kann man sich als anderer Nutzer wieder mit den Logindaten einloggen und ggf. in den "System Tools" unter "Users and Groups" in dem Apps Menü einen neuen Nutzer erstellen.

5. Was jetzt?

Eine gute Idee wäre es wenn man eine Internetverbindung hat erstmal mit den Befehlen "sudo apt-get update" und "sudo apt-get upgrade" die Pakete zu aktualisieren. Bei der Installation von neuen Paketen sollte man bedenken, dass viele nicht unter der PowerPC Architektur verfügbar sind.
Außerdem möchtest du vermutlich, dass das System immer ein deutsches Tastenlayout verwendet. Man kann das Layout folgendermaßen ändern:
In der Datei "/etc/default/keyboard" befindet sich der Parameter "XKBLAYOUT", dessen Wert man auf "de" ändern muss. Das sollte dann folgendermaßen aussehen:
"XKBLAYOUT="de".
Unter der Lubuntu Desktop Version kann man jetzt z.B. mit Firefox im Internet surfen. Hier sollte man allerdings bedenken, dass es keine Hardwarebeschleunigung für die Grafik gibt. Außerdem kann man sich Filme ohne Ton oder PDF Dokumente anschauen.
Ansonsten kann man z.B. mit dem Befehl "sudo apt-get install openttd" das Spiel OpenTTD installieren und danach spielen.

Projekt: Nintendo DS Lite als Gamepad für den PC

Schon von Anfang an war es bei Erstellung dieses Blogs nicht das Ziel nur Reviews und News zum Thema Homebrew zu bringen, sondern es sollt...