# Homebrew

Der Begriff Homebrew (englisch für selbst gebrautes Bier bzw. Eigenbräu) bezeichnet meistens von Privatpersonen erstellte Spiele und Software für Konsolen sowie Handheld-Systeme. Anders als in der Homecomputer-Ära erreichen Computerspiele aus der Homebrew-Szene aufgrund gestiegener Komplexität aktueller Spielkonsolen nur noch äußerst selten die Qualität kommerzieller Spiele.

## Problematik

Konsolen und Handhelds sind üblicherweise geschlossene und auf Gewinn ausgerichtete Systeme. Häufig werden die Geräte unter dem Herstellungspreis verkauft, sodass die Hersteller nur über den Verkauf von Softwarelizenzen Gewinn erzielen können. Die Hersteller gehen davon aus, dass die Käufer der Geräte weniger oder überhaupt keine offiziellen Software-Titel kaufen, wenn kostenlose Programme genutzt werden können. Zudem kann Homebrew-Software unter Umständen den üblicherweise verwendeten Kopierschutz umgehen, was ebenfalls nach Ansicht der Hersteller die Gewinne aus Software-Verkäufen schmälern kann. Daher sind in der Regel in den Geräten Sicherheitsmechanismen eingebaut, welche die Ausführung privat erstellter Programme verhindern sollen.
Die Sicherheitsmechanismen haben manchmal Fehler, sodass es möglich ist, Homebrew-Software auszuführen wenn ein solcher ausgenutzt wird. Je nach Gerät und Firmware ist dazu der Einbau eines Modchips oder das Einstecken eines speziellen Moduls erforderlich. Meistens wird auch ein dafür kompatibles Spiel benötigt was kostenlos aber auch kostenpflichtig sein kann.
Es gibt unterschiedliche Ansichten darüber, ob diese Beschränkung auf offizielle Software-Titel durch Sicherheitsmechanismen und deren Umgehung legal ist. Dieses Monopol könnte einen enteignungsgleichen Eingriff in die Rechte des Endkunden darstellen und den Kunden in seiner Entscheidungsfreiheit unzulässig einschränken. Das Recht des Endkunden auf freie Nutzung (im Rahmen der Gesetze) steht dem Gewinninteresse des Systemanbieters aus dem weitergehenden Verkauf von Software gegenüber.
Auf der anderen Seite kann ein durch Homebrew-Titel vergrößertes Software-Angebot die Attraktivität einer bestimmten Geräte-Plattform steigern. Es gibt daher Hersteller, die keine Sicherheitsmechanismen einbauen. So lässt sich beispielsweise der Funktionsumfang einiger Internet-Router oder Druckserver deutlich steigern.
Homebrew selbst versteht sich als legal und Anti-Piraterie-treu. Die Rechtslage in Deutschland verbietet die Umgehung technischer Kopierschutzmaßnahmen. Es ist aber unklar, ob die Homebrew-Software und die Änderung vorhandener Gerätesoftware einen Kopierschutz umgeht oder nur einen Nutzungs-Schutz – was nicht verboten ist. Die Homebrew-Szene bewegt sich daher in einer rechtlichen Grauzone. Allerdings dürfen Konsolenhersteller den Kunden nicht vorschreiben, was sie mit den Konsolen oder Handhelds machen. Somit ist das Umgehen von technischen Schutzmaßnahmen und Benutzen von Homebrews legal. Die meisten Homebrew-Titel werden als Freeware erstellt, die kostenlos weitergegeben werden darf. Eindeutig verboten ist in Deutschland die Weitergabe von Kopien der kommerziellen Spiele.

## Homebrew auf Spielekonsolen
### Atari Jaguar

Als der Jaguar herauskam war eine Homebrew-Entwicklung nur über eine modifizierte Konsole möglich, die den DRM-Schutz abgeschaltet hat (BJL, JServer). Später gab es dann Spiele, die es erlaubten unverschlüsselte CDs zu laden. Das alles wurde unnötig, nachdem Atari die Verschlüsselung offen gelegt hat. Heute gibt es Flash-Karten, die entweder per USB vom PC aus bespielt werden (SKUNK) oder aber mit SD-Card (GameDrive).

### Nintendo Gamecube

Für den Nintendo Gamecube gibt es verschiedene Möglichkeiten:
* Das Einlöten eines Modchips. Eine Vergrößerung des Laufwerks ist nicht nötig, da der Gamecube auch selbstgebrannte Mini-DVDs lesen kann.
* Das Nachladen von unautorisiertem Code. Dies geschieht durch Modifizieren des Netzwerkverkehrs zwischen dem Gamecube und dem Phantasy Star Online Server. Leitet man die Verbindung auf den PC um, ist es möglich per Streaming Kopien und anderen unautorisierten Code auszuführen.
* Der SD-Media Launcher. Die einfachste Methode besteht in der Verwendung eines SD-Karten-Adapters im Speicherkartenslot B. Durch eine Boot-CD des Herstellers ist das Ausführen von unautorisiertem Code und Kopien möglich.
* Das Modifizieren des MIOS. Diese Methode spielt sich im Gamecube-Modus der Wii ab. Durch Modifikation des für den Gamecube-Modus zuständigen Programms ist es möglich Kopien von USB und Mini-DVDs zu starten. Mittels weiterer Software lässt sich jede für den Gamecube verfügbare Homebrew-Anwendung auch auf der Wii starten.

### Xbox

Die Xbox ermöglicht das Ausführen von eigener Software nach Einbau eines Modchips, welcher mit einem alternativen BIOS geflasht wird. Alternativ zu einem Modchip gibt es auch Softwaremodifikationen. Für die Xbox erschienen Emulatoren, Media-Player und weitere Programme. Neben dem Xbox Development Kit erschien später mit OpenXDK ein quelloffenes Entwicklungskit. Da das OpenXDK erst nach Erscheinen der Xbox 360 einen angemessenen Funktionsgrad erreichte, wurden nur wenige Projekte damit programmiert. Die Homebrew-Entwickler besitzen keine Lizenz zum Nutzen des Microsoft XDK, dennoch erschienen unzählige privat erstellte Programme für die Xbox.

### PlayStation 2

Auf der PlayStation 2 besteht durch die Installation eines erweiterten Bootloaders auf der Memory Card die Möglichkeit, Homebrew-Software auszuführen. Diese ausführbaren Anwendungen sind vom Dateityp ELF und geben der Konsole einige neue Möglichkeiten, wie beispielsweise über den SMS Player als Media-System zu fungieren, ältere Spielkonsolen wie SNES zu emulieren oder PS2-Spiele auf der lokalen sowie auch von einer externen Festplatte zu starten.
Mittlerweile gibt es auch Exploits wie z. B. FreeDVDBoot, welche erlaubten Homebrew und Sicherungskopien ohne Modchip zu starten.

### Sega Dreamcast

Der Dreamcast von Sega erlaubt das Abspielen von CD-Rs auch ohne Modchip oder sonstige Umbauten dank der Kompatibilität der Hardware zum MIL-CD-Format. Aufgrund dieser Eigenheit (und der leistungsfähigen 128-Bit-Hardware) hat sich eine vitale Szene von Enthusiasten zusammengefunden, die bislang fast eintausend Programme entwickelt und kostenlos ins Netz gestellt hat.
Diese Programme werden meist als einfache Dateien („Plain Files“, werden beispielsweise mittels des Windows-basierten BootDreams auf CD-R gebrannt) oder als vollständige CDs im Format Disc Juggler CDI angeboten. Ein weiteres gebräuchliches Format sind sogenannte SBIs (SBI für „Selfboot Inducer“), das es erlaubt, mehrere Programme auf eine CD zu brennen.
Die Bandbreite veröffentlichter Software reicht von Portierungen zahlloser Emulatoren von frühen 8-Bit-Computern zu 16-Bit- und 32-Bit-Konsolen, über Multimedia-Applikationen bis hin zu aufwendigen Originalentwicklungen wie beispielsweise Alice Dreams oder Drill.
Ein großer Teil dieser Veröffentlichungen sind legal mittels der freien Software-Bibliothek KallistiOS entwickelt worden. Im Gegensatz zur Xbox wurden offizielle Entwicklerkits nur in einer Handvoll der frühesten Veröffentlichungen verwendet, beispielsweise in QuakeDC aus dem Jahr 2000, das auf WinCE basiert.
Die Verwendung von KallistiOS und der Austausch des benötigten Bootsektors (IP.BIN) durch eine gleichwertige und legale Ersatzdatei (geschrieben von LiENUS und veröffentlicht am 15. Januar 2002) ermöglichte auch kommerzielle Veröffentlichungen von Spielen wie Feet of Fury (2003), Inhabitants, Maqiupai (beide 2005), Cool Herders (2006) oder Last Hope (2007) für Dreamcast über die unabhängigen Labels GOAT Store Publishing und redspotgames. Die Veröffentlichung von Cool Herders ermöglichte es den Entwicklern Harmless Lion Studios, eine Portierung des Spiels auf Nintendo DS über Alten8 zu vertreiben.

### Wii

Bei der Wii werden zwar keine offiziellen Entwicklerkits für Homebrew angeboten, dafür möchte Nintendo jedoch mit der sogenannten Virtual Console (über die man sich Klassiker aus alten Tagen für fast jede Konsole herunterladen kann) Homebrew-Möglichkeiten „unattraktiver“ machen. Außerdem setzt Nintendo auch auf den neuen WiiWare-Kanal, für den auch kleinere Entwicklerstudios entwickeln können, ohne ein gewaltiges Startkapital zu benötigen. Auch das Abspielen von Audio- und Videodateien ist via Foto-Kanal auf der Wii möglich – auf neueren Konsolen mit Version 1.1 des Kanals allerdings nur noch im Format AAC.
Trotz dieser Möglichkeiten möchten sowohl Homebrew-Entwickler als auch Softwarepiraten nicht auf das Entwickeln von eigenen Homebrew-Applikationen bzw. dem Abspielen von GameCube-ISOs etc. verzichten. Seit Februar 2008 ist es möglich, Homebrew auch ohne die Hilfe eines Modchips auf der Wii abzuspielen. Zunächst wurde dies durch einen Savegame-Hack in The Legend of Zelda: Twilight Princess machbar. Diese Möglichkeit wurde zwar durch das darauffolgende Firmwareupdate 3.4 erschwert, aber nicht gänzlich verhindert. Erst mit Firmware-Version 4.0 konnte der Hack erfolgreich verhindert werden. Durch die Veröffentlichung des Firmwareupdates 4.2 wurden sämtliche Homebrew von aktualisierten Wii-Konsolen gelöscht. Durch angepasste Exploits war es einige Zeit später wieder möglich, unsignierten Code auf der Wii auszuführen und zu installieren. Die Firmware 4.3 blieb lange ungeknackt und man konnte nur durch ein kompliziertes Downgrade auf die Version 4.1 Homebrew ausführen. Mittlerweile ist es jedoch möglich, Homebrew auf 4.3 auszuführen.
Mittlerweile wurde ein Exploit veröffentlicht, der auf allen Firmwares (ab 3.4) Homebrew ermöglicht.
Die Homebrew-Software ermöglicht die Nutzung der Wii-Konsole als Medienzentrale im Wohnzimmer. Für viele Bereiche sind bereits Opensource-Programme für Wii geschrieben worden.

### Nintendo Switch
#### Exploits unmittelbar nach Release

Schon bald nach Release der Hybridkonsole wurden erste Exploits, etwa das Exploit Toolkit „PegaSwitch“, veröffentlicht, die Schwachstellen im Browser (bzw. dessen Rendering-Engine WebKit) der Konsole ausnutzen. Mit dem Update auf die Firmware 3.0.0 wurde ein Weg gefunden, durch die Umstellung der DNS-Einstellungen einen inoffiziellen Web-Browser zu starten. Für die Firmware 3.0.0 wurde ein Exploit namens „Rohan“ geschrieben und auf dem 34C3 (34. Chaos Communication Congress) am 28. Dezember 2017 zum ersten Mal mit einer Demo-Homebrew vorgestellt. Er war am Anfang nur mit der Firmware 3.0.0 kompatibel. Auf Firmware 1.0.0 – 2.3.0 musste per Spiel geupdatet werden, was 3.0.0 voraussetzte. Der Exploit wurde zusammen mit einem entsprechenden Launcher am 19. Februar 2018 veröffentlicht. Es wurde auch direkt mit dem entwickeln vieler Homebrew Anwendungen begonnen. Wenig später veröffentlichte man einen weiteren Exploit namens „nspwn“, der zum ersten Mal SigPatches erlaubte. Zudem wurde damit Homebrew auch für die Firmwares unter 3.0.0 kompatibel gemacht. Mit dem Firmware Update 3.0.1 löste Nintendo einen schwerwiegenden Fehler im Service-Manager des SwitchOS und patchte ebenso den WebKit-Exploit.

#### Tegra X1 Bootrom Exploit und Custom Firmwares

Als ein Unbekannter einen Bug im Tegra Recovery-Mode (Deutsch: Wiederherstellungsmodus / kurz: Tegra RCM; nicht der offizielle RCM, in dem man ein System Update durchführen konnte) veröffentlicht hatte, erfuhr die Homebrew-Szene einen neuen Aufschwung. Dieser Fehler war in der Bootrom der Switch gefunden worden und ließ sich somit nicht per Software Update beheben. Damit sollte eine dauerhafte Nutzung von Homebrew-Software möglich sein und die Konsole galt dann als vollständig gehackt. Der Exploit wurde auf den Namen „Fusée Gelée“ getauft.
War zunächst noch davon ausgegangen worden, dass es sich um einen rein softwareseitigen Mod handelt, so wurde später bekannt, dass eine, wenngleich triviale Hardwaremodifikation zur Nutzung des Exploits benötigt wurde. Diese Modifikation ist notwendig, um in den Tegra RCM zu gelangen. Anfangs gab es nur einen Test-Payload, später wurden weitere Payloads und Tools veröffentlicht, die u. a. auch den wiederholten Hardmod bei jedem Start überflüssig machte.
Am 11. Juli 2018 brachte Nintendo still eine neue Revision der Hardware auf den Markt, die Fusée Gelée patchte. Es existierten aber noch zwei weitere bekannte Bugs in dieser Revision: Ein Userland Bug mit dem Namen „nvhax“ (mit 6.2.0 gefixt) und ein TrustZone-Bug namens „deja vu“ (mit 8.0.0 gefixt). Seit dem Beheben dieser Fehler lässt sich die neue Revision nicht mit Homebrew modden.

## Homebrew auf Handhelds
### Atari Lynx

Der Atari Lynx war eine der ersten (verdongelten) Konsolen für die Homebrew-Entwicklung möglich war. War es erst nur möglich, weil bei einigen Spielen das ROM nicht vollständig geprüft wurde, ist heute die Verschlüsselung bekannt. Gerade in den letzten Jahren erfreut sich der Lynx einer wachsenden Homebrew-Szene.

### Game Boy

Firmen wie Bung entwickelten Hardware-Flasher, mit denen es möglich war, ROMs abzusichern beziehungsweise durch Flash-Karten direkt auf dem Game Boy abzuspielen.

### Playstation Portable

Bei der PlayStation Portable (PSP) war es auf der ursprünglichen, Japan-exklusiven Firmware (1.00) ohne Probleme möglich, eigenen Code auszuführen. In den darauffolgenden Firmwares versuchte Sony, alle Bugs und Exploits zu beseitigen, mit denen es möglich war, inoffizielle Programme zu starten. Die Homebrew-Szene reagierte darauf, indem sie immer wieder neue Möglichkeiten fand. Schließlich wurden sogar auf der Basis der offiziellen Firmwares sogenannte Custom Firmwares entwickelt; mit ihnen hat man alle Funktionen der aktuellen offiziellen Firmwares, ohne auf die Verwendung von Homebrew verzichten zu müssen.
Die Homebrew-Szene der PSP ist groß; es gibt beispielsweise Emulatoren für den Sega Mega Drive (Pico Drive) oder den Game Boy Advance (gpSP), und da auch Programme wie Bochs, DOSBox und ScummVM auf die PSP portiert wurden, ist es eingeschränkt auch möglich, PC-Programme auf der PSP zu verwenden. Es wurden auch Interpreter einzelner Programmiersprachen (z. B. Lua, Python) für die PSP entwickelt, um anderen Hobbyprogrammierern das Programmieren in ihrer einfacheren Sprache zu ermöglichen. Zudem gibt es viele nützliche Programme, wie das Cheat-Programm TempAR oder einige Textverarbeitungsprogramme.

### GP32 und GP2x

Einen gänzlich anderen Weg beschritt die koreanische Firma Game Park mit dem GP32. Dieser Handheld war erst als Konkurrenz gegen Game Boy (u. a.) gedacht, wurde dann aber relativ schnell quell-offen, womit das Abspielen von Homebrew sehr leicht möglich war. Der Nachfolger – der GP2X – ist hingegen seit seiner Veröffentlichung im November 2005 quelloffen. Seither erschienen unzählige kleinere Spiele, Emulatoren und andere Programme für das GP2X.

### Nintendo DS

Homebrew für den Nintendo DS sind mittels einer herkömmlichen NDS- (Slot 1) oder GBA-Flashkarte (Slot 2) zu starten. Sie werden über diverse Bibliotheken in den Programmiersprachen C/C++ und Lua geschrieben. Zum Ausführen von eigenem Programmcode muss der interne Schutzmechanismus des DS ausgeschaltet werden. Dies geschieht über modifizierte Firmware (FlashMe) oder eine Variation des PassMe. Bei der Slot-1-Variante ist diese Funktion schon integriert. Im Dezember 2009 erlitt Nintendo einen Rückschlag bei der Bekämpfung der Flashkarten für den Nintendo DS. Der Hersteller ist gegen die französische Divineo Group vor Gericht gegangen, um den Verkauf der Module zu unterbinden, das Ansuchen wurde allerdings abgewiesen. Weiterhin kritisierte der Richter die Geschlossenheit der Handheld-Konsole. Maxconsole, das Konsolenportal des Divineo-Eigentümers, behauptet, dass private Entwickler keine andere Wahl hätten, als das DRM-System zu umgehen, um Software für die Konsole programmieren zu können.

### Nintendo DSi

Flashkarten für den Nintendo DSi unterstützten zunächst nur den DS-Modus. Anfang Juli 2009 gelang dem Team Twiizers die Ausführung von Homebrew im DSi-Modus. Im Anschluss darauf verzeichnete der Programmierer „Wintermute“ einen großen Erfolg. Er entwickelte ein „Savegame Exploit“ für den DSi, mit dem man „Assemblycodes“ in einer Datei mit abgespeicherten Spielständen („save game file“) von „Classic Word Games“ schreiben und diese dann auf dem DSi ausführen kann. Mit der Veröffentlichung der Firmware-Version 1.4 für den DSi wurden kurzzeitig alle Flashkarten und Exploits erfolgreich blockiert. Allerdings können einige Karten nach Aktualisierung der Flashkarten-Software wieder verwendet werden.
Im Jahr 2017 erschien der erste primäre Exploit namens „UGOPWN“ für das kostenlose „Flipnote Studio“, der zum ersten Mal kostenlose Homebrew Nutzung möglich machte. Diese Option steht nur auf Konsolen zur Verfügung, auf die das Programm bereits heruntergeladen wurde da der DSi Shop geschlossen wurde. Dieser Exploit wurde später unter dem Namen „Flipnote Lenny“ reimplementiert und die Ausführung sehr vereinfacht. Mit Unlaunch wurde der erste Bootcode-Exploit für den DSi entwickelt, der direkt beim Systemstart eigenen Code ausführt, was eine permanente Custom Firmware ermöglicht.

#### HiyaCFW

Mit der „Hiya Custom Firmware“ (Kurz: HiyaCFW) lässt sich der Funktionsumfang zusätzlich erweitern. Im Mai 2019 wurde von „shutterbug2000“ ein Exploit für die vorinstallierte Nintendo DSi Kamera-Applikation namens „Memory Pit“ veröffentlicht. Seitdem lässt sich nach 10 Jahren jede DSi (XL) Konsole kostenlos mit Unlaunch und HiyaCFW modden.

### Nintendo 3DS

Aufgrund der Abwärtskompatibilität zum Nintendo DS(i) können Flashkarten für diese Konsolen weiterhin auf dem Nintendo 3DS verwendet werden, sofern sie nicht per Update blockiert wurden. Da aber Nintendo seit der Firmware-Version 7.0.0-13 (veröffentlicht am 9. Dezember 2013) die DS(i) Whitelist-Datenbank auf der Konsole nicht mehr aktualisiert hat, ist davon auszugehen, dass Nintendo nicht mehr versucht, DS(i)-Flashkarten zu blockieren.
Daher war es möglich, DS-Homebrew auszuführen, die 3DS Firmware und dessen Features blieben weiterhin unberührt. Nintendo hat sich seit der Veröffentlichung der Nintendo Wii deutlich mehr in die Sicherheit ihrer Firmware investiert. Erst im Jahr 2015 hat der Software-Entwickler smealum den ersten echten 3DS-Exploit namens "Ninjhax" veröffentlicht. Der Exploit basierte auf eine ROP-Execution im Spiel Cubic Ninja beim scannen eines QR-Code per Kamera. Er konnte jedoch nicht mehr, als Binärdateien aus der SD-Karte laden, die noch sehr eingeschränkten Zugriff auf die Ressourcen des Systems hatten.
Trotz dem Support-Ende seitens des Herstellers ist die Homebrew-Szene weiterhin aktiv weiterhin aktiv. Seit längerer Zeit existieren echte Custom-Firmwares für diese Konsole auf Basis eines Bootloader-Exploits.

## Offizielle Homebrew-Möglichkeiten

In der Vergangenheit bündelten oft Softwarepiraten und Homebrew-Hacker ihre Kräfte, um Zugang zu den Systemen zu erhalten. In der 7. Konsolengeneration deutete sich ein Umbruch in der Politik der Hersteller an. Um die Gruppe der Angreifer zahlenmäßig zu reduzieren, bieten die Hersteller den Hackern Gelegenheit, eigene Software zum Laufen zu bringen.

### Sony PlayStation 3

Die PlayStation 3 ermöglichte es bis zur Firmware 3.21 ein alternatives Betriebssystem, wie zum Beispiel Linux, zu installieren. Ein alternatives Betriebssystem konnte dabei aber nicht auf die Grafikbeschleunigung zugreifen, da diese vom Hypervisor blockiert wurde, um die Entwicklung von Homebrew-Spielen als Konkurrenz zu lizenzierten Titeln unattraktiv zu machen. Dieser Schutz wurde allerdings aufgebrochen.
Bei der aktuellen Playstation 3 slim wurde die Möglichkeit entfernt, ein alternatives Betriebssystem zu installieren. Wie oben erwähnt, wurde bei Firmware-Aktualisierung auf Version 3.21 für die normale PlayStation 3 die Möglichkeit, ein alternatives System zu nutzen, ebenfalls entfernt. Vor dieser Version installierte Betriebssysteme wurden durch das Update automatisch gelöscht. Als Gründe für dieses Vorgehen gab Sony Kostengründe und Sicherheitsbedenken an.
Einige PS3-Hacker kündigten an, ihre eigene Firmware-Version 3.21 mit allen offiziellen Features sowie der Möglichkeit, auf alternative Systeme zuzugreifen, zu veröffentlichen. Dieser kann durch ein Downgrade auf die Firmwareversion 3.55, welches einen Hardmod benötigt, installiert werden.

### Sony PlayStation 2

Am weitesten ging Sony mit der PlayStation 2, bei der es eine offizielle Linux-Distribution, das sogenannte Linux for PlayStation 2, gab.

### Microsoft Xbox 360

Microsoft bietet für seine Xbox 360 spezielle Entwicklerkits (XNA Game Studio) und Lizenzen (Xbox Live Arcade) an, mit denen eigene Spiele entwickelt und online vermarktet werden können. Hier erhält der Entwickler gegen Bezahlung vollen Zugriff auf die Leistung der Maschine mittels .NET-Sprachen.