# Homebrew (jeu vidéo)

Homebrew (de l’anglais, litt. brassé à la maison) est un terme fréquemment utilisé principalement pour les jeux vidéo qui sont produits par des consommateurs sur des plates-formes de jeux propriétaires. En d’autres termes, les plates-formes de jeu ne sont pas typiquement programmables par des utilisateurs, ou utilisent du matériel propriétaire pour le stockage. Parfois, les jeux développés avec les kits de développements officiels, comme Net Yaroze ou PS2 Linux incluent cette définition. Certains utilisent cependant ce terme pour désigner tout ce qui est non commercial, des jeux « développés maison » avec une architecture ouverte comme des jeux homebrew, bien que ceux-ci utilisent des termes fréquemment utilisés comme « freeware ». Cependant, le terme n’inclut pas les jeux commerciaux qui sont développés sans la licence du constructeur de la console. Un type populaire de homebrews sont les jeux vidéo amateurs (fangames). Au Japon, ces jeux sont généralement appelés Dojin soft, qui est une manière de dire que ce logiciel n’est pas illégal selon ce que le logiciel fait.
Certains jeux homebrews sont typiquement développés pour être utilisés avec des émulateurs. Des efforts ont été faits pour exploiter tout le potentiel hardware de la console. Les développeurs de homebrews pour Atari 2600 peuvent utiliser diverses méthodes, par exemple, le transfert audio via le module SuperCharger. Les développeurs de homebrews pour Game Boy Advance ont plusieurs manières d’utiliser la mémoire flash des cartouches.
Aujourd'hui, avec la Sega Dreamcast, la Game Boy Advance et la PlayStation Portable, les plates-formes les plus utilisées pour le développement des homebrews représentent une bonne partie des anciennes générations de consoles - l’Atari 2600 et la Nintendo Entertainment System.

## Anciennes générations

L’Atari 2600 et la NES sont intéressantes parce qu’elles exploitent toutes deux la MOS Technology 6502. Ce processeur possède le jeu d’instructions le plus familier pour les personnes qui ont programmé les ordinateurs 8-bit de cette famille, comme le Commodore 64.
À un certain niveau, la Sega Master System et la Mega Drive profitent d’un certain nombre de homebrews, car il n’y a aucun mécanisme de verrouillage physique ; de ce fait lancer un logiciel homebrew sur ce matériel est beaucoup plus facile. On a affirmé que Yuji Naka avait créé un émulateur de NES pour la Sega Genesis, mais peu de détails ont été révélés à propos du projet sans compter que pour cela il a été aidé dans sa réussite par le respect de ses collègues.

## Cinquième génération

La Sega Saturn a un site web relativement petit mais très créateur de homebrews au Danemark qui est lentement en train d’augmenter sa popularité.
Un gros facteur est que les plates-formes (et les plates-formes portables en général) sont assez simples pour qu’une très petite équipe, ou seul un programmeur, puisse réaliser un jeu digne de ce nom pour elles. Cela favorise par là des projets de homebrews qui sont habituellement entrepris par de petites équipes ou par des individus.

## Sixième génération

La majorité des consoles de sixième génération est appréciée par les moddeurs, mais moins que les précédentes générations de consoles. Ceci est la plupart du temps dû au fait que la production de logiciels pour les plates-formes puissantes nécessite beaucoup plus de ressources. Il n’y a pas encore de très bons émulateurs pour ces plates-formes, et les consoles elles-mêmes utilisent le plus souvent des systèmes plutôt sophistiqués pour empêcher le code non autorisé. Les développeurs de homebrews doivent souvent utiliser des « loopholes » pour faire fonctionner leurs logiciels.

## Septième génération
### Nintendo DS et Nintendo DSi

Il est possible grâce aux linkers DS d'exécuter des homebrews sur la Nintendo DS ainsi que sur la Nintendo DSi. Ces homebrews se présentent pour la plupart sous la forme d'un fichier au format NDS.
Il existe aussi un exploit sur la Nintendo DSi se nommant Ugopwn. Il a été découvert par le hacker « shutterbug2000 » et il fonctionne uniquement sur les consoles américaines. C'est un exploit fonctionnant avec Flipnote Studio et qui fonctionne grâce à une certaine combinaison d'actions sur le logiciel. Il permet de lancer des homebrews situés sur la carte SD et d'installer l'exploit SudokuHAX sur le jeu DSiWare officiel Sudoku publié par Electronic Arts. En 2019, ce même hacker découvre un exploit du nom de Memory Pit qui permet le lancement d'homebrews depuis l'appareil photo de la console. Ces exploits et failles permettent l'installation de logiciels tels que des lanceurs d'applications comme le TWiLightMenu++, développé par « RocketRobz » ou des custom firmware comme hiyaCFW, le premier Custom Firmware pour la console.

### Wii

Depuis 2007, il est possible de lancer des homebrew sur la Nintendo Wii grâce à la faille Twilight Hack et à la Chaine Homebrew.
Nintendo a sécurisé l'utilisation des jeux officiels téléchargés avec cette faille (cependant, cette sécurité disparaît avec un simple downgrade), mais a laissé porte ouverte aux programmeurs d'homebrews sans licence.
Ainsi, la Wii est reconnue comme sécurisée mais tolérante, ce qui lui a fait une bonne réputation de la part des programmeurs.
En 2009, une faille nommée BannerBomb v1 (de la version 3.2 à 4.1 incluse) et v2 (4.2 uniquement) apparaît.
Puis en 2011, Giantpune prévoit une faille nommée MailBox bomb (compatible avec toute version), qui a été devancée par la nouvelle faille, LetterBomb (uniquement pour la version 4.3), créée par la Team Twiizers.
Plusieurs programmeurs ont alors exploité une faille dans des jeux officiels :
* Super Smash Bros. Brawl (PAL, NTSC-U, NTSC-J, KOR) ;
* Lego Indiana Jones : La Trilogie Originale (PAL, NTSC-U, NTSC-J) ;
* Lego Batman, le jeu vidéo (PAL, NTSC-U, NTSC-J) ;
* Lego Star Wars : La Saga complète (PAL, NTSC-U, NTSC-J) ;
* Tales of Symphonia: Dawn of the New World (PAL, NTSC-U, NTSC-J) ;
* Yu-Gi-Oh! 5D's Wheelie Breakers (PAL, NTSC-U, NTSC-J).

### Xbox 360

Microsoft a publié une version gratuite de son kit de développement logiciel (SDK) pour les programmeurs. Ce SDK, appelé XNA Game Studio, était une version gratuite du SDK mis à la disposition des sociétés de développement professionnel et des étudiants. Cependant, pour créer des jeux pour la Xbox 360, il fallait payer une adhésion premium au XNA Creators Club. Une fois vérifiés, les jeux écrits avec XNA Studio pouvaient être mis à la disposition de tous les propriétaires de Xbox 360 (via Xbox Live) pour 80, 240 ou 400 Microsoft Points. Cela permettait aux créateurs de contenu homebrew d'accéder à leur public cible, les possesseurs de Xbox 360. Ce contenu était disponible dans la section Indie Games de la New Xbox Experience.
Le 20 mars 2007, il a été annoncé qu'un hack utilisant la vulnérabilité de l'hyperviseur précédemment découverte dans les versions 4532 et 4548 du système de la Xbox 360 avait été développé pour permettre aux utilisateurs d'exécuter XeLL, un bootloader de Linux. Le piratage initial n'était pas à la portée d'un utilisateur lambda et nécessitait l'installation d'un câble de série Xbox et d'un micrologiciel de lecteur de DVD flashé. Felix Domke, le programmeur à l'origine de XeLL, a depuis annoncé un CD Linux amorçable en direct adapté aux utilisateurs novices, capable d'être installé sur le disque dur SATA de la Xbox 360. Malgré la disponibilité d'une telle distribution, la Xbox 360 n'est toujours pas considérée comme une plateforme populaire pour le développement de homebrew, étant donné que l'exploit dépend de la capacité du DVD-ROM à charger un jeu DVD gravé, une version modifiée du jeu King Kong et deux anciennes révisions du système de la console elle-même.
Un groupe indépendant de Microsoft travaillait sur des moyens d'exécuter du code homebrew, dans le cadre du projet Free60.
Remarque : la vulnérabilité de l'hyperviseur dans les versions 4532 et 4548 du système de la Xbox 360 a été corrigée par Microsoft lors de la publication de la mise à jour du système NXE et du tableau de bord en 2008.
Le homebrew a depuis été à nouveau possible sur toutes les Xbox 360 avec dash 2.0.7371.0 ou inférieur via un exploit nommé JTAG / SMC hack, mais celui-ci a rapidement été corrigé par Microsoft avec la mise à jour 2.0.8495.0 du système.
Le Homebrew est désormais disponible sur la plupart des consoles Xbox 360 en raison du Reset Glitch Hack (à l'exception de la mise à jour Winchester tardive, qui a corrigé cet exploit grâce à des atténuations matérielles). Il fonctionne sur toutes les cartes-mères actuelles. Comme le Reset Glitch Hack nécessite une puce, des compétences en soudure sont nécessaires pour tenter d'utiliser cet exploit.

### PlayStation 3

Grâce au hackeur Geohot, il est désormais possible de lancer des homebrews sur la console PlayStation 3. Au début, il fallait utiliser un addon qui se branchait en USB. Des progrès avaient été faits au début de l'année et l'ensemble de la console était accessible aux programmeurs et aux utilisateurs. Sony s'est alors battu pour bloquer l'accès complet à sa console de jeu en allant jusqu'à attaquer en justice ou perquisitionner certains hackeurs. Depuis ces évènements, les nombreux programmeurs tiers sur Playstation 3 ont été considérablement découragés.

### Playstation Portable

Sur la Playstation Portable, depuis la toute première version nommé 1.00 (1.50 version Américaine), il était possible de lancer des homebrew, Mais Sony répliqua en lançant des mises à jour qui n'acceptaient pas de lancer du code non signé par Sony. Alors, il y a eu la quête du downgrade vers la version 1.50. Mais Sony rendait le downgrade de plus en plus difficile. Pour contourner ces protections, des failles logicielles furent découvertes dans la gestion des Memory Sticks (exploits connus sous les noms SwapXploit et KXploit). Ces vulnérabilités permettaient quand même de parvenir à exécuter des homebrews.
Toutefois, quelques développeurs indépendants ont continué à exploiter différentes failles permettant ainsi de lancer des homebrews sur des firmwares allant de la version 1.00 à la version 6.61 grâce à la création d'un CFW (custom firmware) qui était un logiciel modifié afin d'accepter du code non signé par Sony et qui permettait aussi de lancer des ISO (backups de jeux), des E-BOOT et des plugins. Son installation se faisait via le kit Pandora-Battery ou en lançant un installateur directement depuis le XMB. Les principaux acteurs sont : Dark AleX, PSP-GEN et Daave. Ainsi, plusieurs types de CFW virent le jour et la communauté grandissait afin de lancer le projet PSP-GENESIS : un concours visant a récompenser les meilleurs homebrews (par exemple : un émulateur SNES, Megadrive, Windows 95, des clones de jeux phares tels que Halo ou Counter-Strike ou encore des gestionnaires de fichiers). Une très grande variété de homebrews vit le jour sur la PSP. Sony continua de riposter en lançant des mises à jour qui corrigeaient les failles mais sans succès, puisqu'à chaque fois, une faille était à nouveau trouvée par les hackers. Le hack de la PSP devenait plus facile à la suite du hack de la PS3 qui a donné les clés pour signer les homebrews de la PSP. Le HBL (Half-Byte Loader) était un lanceur de homebrews disponible sur les OFW (système officiel de Sony) sans avoir à installer un CFW. Sony était impuissant face à cette montée en puissance, et la communauté grandit afin de devenir l'une des communautés les plus actives dans le domaine des consoles. La console était très attractive et elle continue d'attirer des hackeurs encore aujourd'hui.

## Huitième génération
### PlayStation Vita

Grâce à un logiciel sur ordinateur, il est possible d’installer une application sur la PlayStation Vita en version 3.73 du nom de H-encore². Elle permet d’installer un programme du nom de HENkaku et un explorateur de fichier du nom de VitaShell.
Pour pouvoir homebrew les versions plus récentes de la PlayStation Vita, HENlo est utilisé et peut être lancé avec une faille du navigateur web.

### Wii U

Depuis 2015, il est possible lancer des homebrews sur Wii U.
Plusieurs failles sont présentes comme sur la Wii, qui permettent d'exécuter divers homebrews, dont voici quelques exemples :
* Cafiine, créé par Golden45, permettait de remplacer les fichiers des jeux présents sur les disques Wii U, et ne fonctionnait que sur des versions antérieures de la console, notamment de la version 4.1.0 à 5.0.0 ;
* Loadiine, créé par Dimok45, sorti en octobre 2015, un des plus importants homebrew de la console. Il permet de lancer des jeux (backups) sur la console. Ne fonctionnait qu'en version 5.3.2 et nécessitait le disque Super Smash Bros. for Wii U. De nouvelles versions sont sorties pour les versions supérieures de la console, notamment une version sortie en février 2016 nommée « Loadiine GX2 » avec une interface utilisateur graphique (plus précisément l'interface GX2, l'interface de la console) ;
* Homebrew Launcher, créé aussi par Dimok45, très similaire à l'Homebrew Channel de la Wii. Il permet de lancer des homebrews.
Il est également possible d'installer des custom firmwares dans la console, de manière permanente (grâce à la faille ColdBootHax) ou non. Le plus connu en 2021 est Haxchi, créé par smealum (puis repris par FIX94), un exploit fonctionnant avec un jeu de Console virtuelle Nintendo DS du Nintendo eShop (le plus utilisé est Programme d'entraînement cérébral du Dr Kawashima : Quel âge a votre cerveau ?). En remplaçant les fichiers du jeu avec ceux d'Haxchi, il est possible d’accéder à de nombreux homebrews en appuyant sur certaines touches (configurées dans un menu de configuration). Mais il permet aussi de lancer le menu Wii U avec toutes les signatures logicielles désactivées. Il est aussi possible de combiner Haxchi avec CHBC. Il permet de lancer de nombreux homebrews et Haxchi au démarrage de la console.
Maintenant, Aroma est considéré comme étant une version plus moderne et bien mieux qualitative que Haxchi. Cependant Aroma ne peux pas accéder à l'Homebrew Launcher en raison d'une incompatibilité dans le structure de ce frimware. Les utilisateurs doivent donc utiliser Tiramisu, un autre custom frimware moderne qui est toujours capable de lancer des homebrews depuis l'Homebrew Launcher, si ils souhaitent utiliser des homebrews compatible seulement avec ce frimware.
Nintendo réagit et corrige les failles permettant l'exécution d'homebrews en mettant à jour le firmware de sa console. Ces mises à jour peuvent être bloquées grâce à des serveurs DNS publics (qui interceptent les demandes de mise à jour), dont les adresses peuvent être entrées dans les paramètres de la console.

### Nintendo 3DS

Le premier exploit public permettant de lancer des homebrew sur la Nintendo 3DS voit le jour courant août 2014 (surnommé Ninjhax), publié par le hacker Jordan Rabet alias « Smealum ». Il s'appuie sur une faille du jeu Cubic Ninja et permet d'exécuter du code non signé via un QR Code modifié scanné via une fonction du jeu. Cet exploit nécessite de placer un fichier de boot sur la carte SD. À la suite de l'annonce de l'exploit, le prix du jeu a explosé et la version eShop du jeu (uniquement disponible au Japon) a été retirée par Nintendo. L'exploit est finalement patché en version système 9.3, mais des mises à jour de celui-ci lui permettent de fonctionner sur des versions plus récentes du système d'exploitation de la console.
D'autres failles existent afin de lancer l'Homebrew Launcher, notamment (liste non exhaustive) :
* Oot3dhax : trouvée par Yellows8, elle permet de lancer le programme grâce à une faille trouvée dans le jeu The Legend of Zelda : Ocarina of Time 3D ;
* Browserhax : trouvée par Yellows8, elle permet de lancer le programme grâce à une faille dans le navigateur web de la console ;
* Freakyhax : trouvée par Plutoo, elle permet de lancer le programme grâce à une faille dans le jeu Freakyforms Deluxe ;
* Ironhax : trouvée par Smealum, elle permet de lancer le programme grâce à une faille dans le jeu IronFall: Invasion ;
* Smashhax : trouvée par yellows8, elle permet de lancer le programme grâce à une faille dans le jeu Super Smash Bros. for Nintendo 3DS ;
* Menuhax : trouvée par yellows8, elle permet de lancer le programme grâce à une faille dans le thème se chargeant au démarrage de la console ;
* Basicsploit : trouvée par MrNbaYoh, elle permet de lancer le programme grâce à une faille dans le jeu SmileBasic ;
* Steelhax : trouvée par VegaRoXas, elle permet de lancer le programme grâce à une faille dans le jeu SteelDivers: Sub Wars ;
* Pichaxx : trouvée par MrNbaYoh, elle permet de lancer le programme grâce à une faille dans le jeu Pokémon Picross.
Il est également possible d'installer un custom firmware (une version modifiée du système d'exploitation) dans la console, comme par exemple Luma3DS, à l'aide de plusieurs failles de sécurité.

### Nintendo Switch

Avec un exploit du processeur NVIDIA Tegra X1 et de son mode RCM (mode Recovery), il est possible de lancer du code et des homebrews sur la Nintendo Switch.
Le Mode RCM est accessible avec un démarrage particulier, et certaines personnes ont créés des objets nommés "jigs" pour pouvoir déclencher ce mode.
Il existe aussi un linker nommé SX OS, venant de la Team Xecuter, permettant de lancer des jeux et des homebrews, il faut toutefois noter que essayer de jailbreak la console avec celui-ci peut entraîner un brick de la console qui rend la console inutilisable.