News Nintendo: Switch 2 und Switch 1 sind hardwareseitig inkompatibel

Man nennt es jedenfalls Emulator.
Ein RPCS3 kompiliert während des Spielens JIT die PS3 Shader auf Vulcan um und speichert die dann aber zum späteren nachladen.
Für N64 gibt es afaik mittlerweile tatsächlich einen Cross Compiler und man hat am Ende ein ausführbares x86 Programm.
Wäre ja nicht das erste Mal, dass etwas eher nach seinem Verwendungszweck als seinen eigentlichen Eigenschaften benannt würde. Ich persönlich würde vermutlich noch alles als Emulator bezeichnen, was ein plattformfremdes Programm ausführt, ohne das Programm selbst zu verändern. Also auch Umgebungen mit irgendwelchen JIT-Mechanismen, Rekompilierer, die kompatible Programme ausspucken aber eher nicht.
Und wie funktioniert das dann unter Android mit Apps die zum Teil schon uralt sind ? Warum laufen die immer noch problemlos unter neuen Android Versionen mit modernen A78 cores ?

Ist ähnlich wie beim PC, ich kann mit meinem 5700X3D auch uralte Windows 98 Spiele ausführen, die noch weit entfernt waren das sie auch nur wenigstens die allerersten SSE instruktionen nutzen, sondern noch auf reinen x86 code basieren, und trotzdem funzt es problemlos
Das ist oft so, muss aber nicht zwangsläufig so sein, wobei es nicht sonderlich sinnig scheint, ARM-Cores zu nutzen, die irgendwas nicht können, was die Vorgänger konnten.
Beim Grafiktreiber ist's ja, zumindest was nvidia betrifft, ähnlich, die müssen nur Aufwärtskompatibel zu den neusten Spielen gemacht werden, und selbst wenn nicht laufen die Spiele ja oft trotzdem, vielleicht mit ein paar Einbußen, aber das war's in der Regel auch schon, ansonsten kann man ja machen was man will, z.B Far Cry 2 spielen, was ja noch auf maximal directx 10 basiert
In der Theorie muss ein Grafiktreiber nur die Schnittstellenbefehle von DX, Vulkan usw. auf die entsprechende Hardware übertragen. Dass Treiber zu Spielen kompatibel gemacht werden müssen liegt an Fehlern im Treiber, der Hardware oder den Spielen, die behoben bzw. umschifft werden müssen. Ich könnte mir aber tatsächlich vorstellen, dass bei der Switch die Grafikschnittstelle direkt auf die Hardware zugreift und da gar kein Treiber in diesem Sinne zwischensitzt. Das würde eine Abstraktionsebene und damit Programmieraufwand und auch ein bisschen Overhead beim Ausführen sparen, aber dafür sorgen, dass man diese Schnittstelle für jede Hardware, auf der sie laufen muss, extra entwickeln muss. Das war bei PCs früher auch mal so, hat sich aufgrund der zu großen Menge an verschiedener Hardware aber nicht bewährt. Da sich die Hardware aber bei der Switch extrem selten ändert, wäre das da eine durchaus sinnvolle Herangehensweise.

Edit: Ergibt eigentlich nicht so richtig Sinn, wenn ich noch mal drüber nachdenke. Die Schnittstelle selber ist ja in dem Sinne keine Software, sondern nur eine Vorgabe dafür, was der Treiber die Hardware machen lassen können muss. Und ein direkter Zugriff der Programme auf die Hardware ist auch unwahrscheinlich.
 
Zuletzt bearbeitet:
Switch 1 Spiele laufen also schlechter auf Switch 2... bin gespannt
Im Grunde genommen ergibt das keinen Sinn wenn ich an ein altes Spiel wie Counterstrike Source denke, das allein durch die höhere IPC-Leistung moderner CPU's deutlich flüssiger läuft ohne das dabei jemand auch nur eine einzige Codezeile angerührt hat

Die IPC der A78 cores der Switch 2 ist locker geschätze 350-400% höher als bei den A57 Kernen der Switch 1 ...
 
Was für ein Gelaber.. im Hintergrund geht es wie immer nur um Geld. Ich freu mich schon sobald die erste Lücke gefunden wird und man Emulatoren und homebrew installieren kann 🙂. Mit der Switch 2 Leistung ist hier schon mehr möglich 😊
 
Und wie funktioniert das dann unter Android mit Apps die zum Teil schon uralt sind ? Warum laufen die immer noch problemlos unter neuen Android Versionen mit modernen A78 cores ?
Genau das habe ich ja in meinem Beitrag erwähnt: Das Problem liegt nicht in der Hardware-Ebene, sondern in der Software-Ebene.

Das Programm, was du verwendest, besteht in der Regel aus mehreren Bestandteilen - ich vereinfache jetzt: Du hast die Hardware - x86/ARM/PowerPC usw. - also das, was am Ende der Binärcode ist. Der Wechsel zwischen x86/ARM/PowerPC ist heute für Software relativ einfach zu bewerkstelligen, da in der Regel es reicht ein Programm erneut zu compilieren.

Nur wird ein modernes Programm nicht für eine bestimmte Hardware programmiert, sondern für ein bestimmtes Betriebssystem oder besser ein Softwareökiosystem. Ein Bespiel bringst du hier selbst: Android. Die Konkurrenz kennen wir ja als iOS. Ein Programm zwischen iOS und Android hin und her zu bewegen, ist weit aus komplexer, hier reicht es nicht, dass ich einfach den Compiler noch mal anwerfe.

iOS hat eine eigene API und ein bestimmtes Software-Konzept. Android hat eine eigene API und Software-Konzept. Es geht bei Apple sogar so weit, dass sie mit Swift eine nun weitgehend eigene Programmiersprache haben. Ich kann Software also nicht ohne Anpassungen zwischen iOS und Android einfach neu compilieren oder auch nur verwenden. Android versteht die iOS-API nicht und umgekehrt.

Und genau das ist vermutlich der Punkt, der hier die Inkompatiblität verursacht. Nintendo wird mit der Switch 2 eine neuen Software-API einführen, die nicht kompatibel ist mit der Siwtch 1 API. Sie müssen also - und das macht ja Wine/Proton auch - die Switch 1 API nachbilden und die API-Calls auf die neuen API-Calls übersetzen.
Ist ähnlich wie beim PC, ich kann mit meinem 5700X3D auch uralte Windows 98 Spiele ausführen, die noch weit entfernt waren das sie auch nur wenigstens die allerersten SSE instruktionen nutzen, sondern noch auf reinen x86 code basieren, und trotzdem funzt es problemlos
Was auch theoretisch bei der Switch 2 funktionieren würde, wenn Nintendo entweder die Software-APIs "kompatibel" entwickelt hätte, oder die Switch-1-API im OS belassen hätte und angepasst hätte. Nur ist Nintendo eben Nintendo.

Sony arbeitet ja bei der PS5 mit einer "erweiterten" und "angepassten" PS4-API, also verschiedene Versionen, die aber grundlegend miteinander kompatibel sind und PS4-Spiele auf PS5 laufen - umgekehrt halt nicht, weil Features fehlen.
 
Genau das habe ich ja in meinem Beitrag erwähnt: Das Problem liegt nicht in der Hardware-Ebene, sondern in der Software-Ebene.

Das Programm, was du verwendest, besteht in der Regel aus mehreren Bestandteilen - ich vereinfache jetzt: Du hast die Hardware - x86/ARM/PowerPC usw. - also das, was am Ende der Binärcode ist. Der Wechsel zwischen x86/ARM/PowerPC ist heute für Software relativ einfach zu bewerkstelligen, da in der Regel es reicht ein Programm erneut zu compilieren.

Nur wird ein modernes Programm nicht für eine bestimmte Hardware programmiert, sondern für ein bestimmtes Betriebssystem oder besser ein Softwareökiosystem. Ein Bespiel bringst du hier selbst: Android. Die Konkurrenz kennen wir ja als iOS. Ein Programm zwischen iOS und Android hin und her zu bewegen, ist weit aus komplexer, hier reicht es nicht, dass ich einfach den Compiler noch mal anwerfe.

iOS hat eine eigene API und ein bestimmtes Software-Konzept. Android hat eine eigene API und Software-Konzept. Es geht bei Apple sogar so weit, dass sie mit Swift eine nun weitgehend eigene Programmiersprache haben. Ich kann Software also nicht ohne Anpassungen zwischen iOS und Android einfach neu compilieren oder auch nur verwenden. Android versteht die iOS-API nicht und umgekehrt.

Und genau das ist vermutlich der Punkt, der hier die Inkompatiblität verursacht. Nintendo wird mit der Switch 2 eine neuen Software-API einführen, die nicht kompatibel ist mit der Siwtch 1 API. Sie müssen also - und das macht ja Wine/Proton auch - die Switch 1 API nachbilden und die API-Calls auf die neuen API-Calls übersetzen.

Was auch theoretisch bei der Switch 2 funktionieren würde, wenn Nintendo entweder die Software-APIs "kompatibel" entwickelt hätte, oder die Switch-1-API im OS belassen hätte und angepasst hätte. Nur ist Nintendo eben Nintendo.

Sony arbeitet ja bei der PS5 mit einer "erweiterten" und "angepassten" PS4-API, also verschiedene Versionen, die aber grundlegend miteinander kompatibel sind und PS4-Spiele auf PS5 laufen - umgekehrt halt nicht, weil Features fehlen.

Naja gut, lass uns an der Stelle mal hoffen, das Nintendo hier wirklich so viele Änderungen am Software Unterbau durchgeführt hat, um das Potenzial der eh schon relativ schwachen Switch 2 Hardware bestmöglich ausreizen zu können
 
Breath of the Wilds, ein 8 Jahre altes Spiel wird natürlich auch noch für 80€ verkauft... :wall:
Ist das ein exklusives Switch 2 Spiel? BotW kannst auch auf der Switch 1 Spielen.
Hab ich was verpasst? Es ist doch immer noch arm oder?

Das bedeutet, dass es kompatibel ist. Es ist nur keine identische Hardware der Switch (1) verbaut wie bei früheren Konsolen bei einem Architektur Wechsel. Aber das ist doch auch gar nicht nötig jetzt?

Verstehe ich hier was nicht? Soll das nur fancy klingen?
Ja ist arm. Grafik beides Nvidia. Warum das inkompatible sei, kann ich auch nur vermuten (Geld?), hhihihhi
KI generierter Beitrag (ChatGPT)


Nintendo Switch 1 vs. Switch 2 – Warum keine Hardwarekompatibilität, obwohl beides ARM?

Nintendo behauptet, dass Spiele der originalen Switch nicht auf der Switch 2 laufen – wegen angeblicher Hardware-Inkompatibilität. Das wirkt auf den ersten Blick seltsam, denn beide Konsolen basieren auf ARM-SoCs (ARMv8). Die Switch 1 verwendet einen Tegra X1, und die Switch 2 soll laut Leaks auf einem Jetson Orin AGX basieren – also beides ARMv8. Wie kann es da also zu Inkompatibilitäten kommen?

Hier mal eine technische Gegenüberstellung:

Vergleich: Tegra X1 (Switch 1) vs. Jetson Orin AGX (Switch 2)

MerkmalTegra X1 / X1+ (Switch 1)Jetson Orin AGX (Switch 2)
Release2015 / 20192022
CPU-Kerne4× Cortex-A57 + 4× Cortex-A538–12× Cortex-A78AE
CPU-ArchitekturARMv8-AARMv8.2-A
GPU-ArchitekturMaxwellAmpere
CUDA-Kerne256Bis zu 2048
Tensor-CoresNeinJa
RAM-TypLPDDR4LPDDR5
Speicherbandbreite~25 GB/sBis zu 204 GB/s
Video-Encoding4K H.264/H.2658K + AV1 (teilweise)
TDP10–15 W15–60 W (anpassbar)
Fertigung20 nm8 nm (TSMC)

Was bedeutet das für die Kompatibilität?

– Obwohl beide SoCs ARMv8 verwenden, ist vor allem die GPU sehr unterschiedlich: Maxwell (Switch 1) vs. Ampere (Switch 2). Shader, Grafiktreiber und Renderingverhalten sind nicht kompatibel.

– Viele Spiele auf der Switch 1 sind eng an die Eigenheiten der Maxwell-GPU angepasst (z. B. Custom Shader, Low-Level-Hacks), was auf der Ampere-GPU schlicht nicht funktioniert.

– Auch das OS der Switch 2 dürfte anders aufgebaut sein: neue Treibermodelle, neue APIs (evtl. Vulkan statt OpenGL ES), anderes Ressourcenmanagement.

– Speicherlatenzen, Audio-Hardware, Video-Engines und Peripherie-Verhalten unterscheiden sich ebenfalls, was für „bare-metal“-Spiele schnell zu Problemen führt.

– Und nicht zuletzt könnte Nintendo auch bewusst auf echte Kompatibilität verzichten, um gezielt Neuverkäufe (Remaster etc.) zu ermöglichen.

Fazit: Rein von der CPU-Architektur wäre eine Kompatibilität durchaus denkbar. Aber die stark unterschiedliche GPU, das veränderte OS, Treiber und Timing-Verhalten machen eine echte Kompatibilität auf Hardware-Ebene nahezu unmöglich – oder zumindest extrem aufwändig. Wenn Nintendo will, könnten sie über Emulation oder einen Kompatibilitätsmodus nachhelfen – aber aktuell scheint das nicht vorgesehen zu sein.
Warum klaapt das auf dem PC mit der GPU? Warum verbietet Nintendo Emulatoren/Programme von der Community die versuchen Switch 1 Spiele auf Switch 2 zum laufen zu kriegen, wenn man das wirklich soooo unbedingt will?
Lasst euch nicht verarschen sage ich dazu.
Und genau das ist vermutlich der Punkt, der hier die Inkompatiblität verursacht. Nintendo wird mit der Switch 2 eine neuen Software-API einführen, die nicht kompatibel ist mit der Siwtch 1 API
Warum???? Geld!
 
Zuletzt bearbeitet:
Warum klaapt das auf dem PC mit der GPU? Warum verbietet Nintendo Emulatoren/Programme von der Community die versuchen Switch 1 Spiele auf Switch 2 zum laufen zu kriegen, wenn man das wirklich soooo unbedingt will?
Ganz einfach: weil man es nicht "soooo unbedingt will". Das suggeriert ja auch der Text von ChatGPT.

Es kann nicht jedes Unternehmen wie Valve sein. Nintendo hat ein anderes Geschäftsmodell. Eine andere Arbeitsweise. Auf der Switch gibt es keinen Beta-Kanal. Die Sachen müssen dort perfekt laufen. Nintendo gibt ungern Fehler zu. SteamOS hatte die ersten zwei Jahre so einige Ecken und Kanten, die Valve zusammen mit der Community rundgeschliffen hat. Alles öffentlich. Bis heute. So arbeitet Nintendo nicht.
 
Zurück