# Higan

Anciennement appelé bsnes, higan est un émulateur, disponible pour Windows, macOS, GNU/Linux et FreeBSD sous licence libre GPLv3. Il émule plusieurs consoles de jeu de la marque Nintendo, notamment la NES, la Super Nintendo, le Game Boy, le Game Boy Color, et la Game Boy Advance ; et depuis la version 102, les consoles SEGA telles que la Master System, la Game Gear, la Mega Drive, ainsi que les consoles NEC comme la PC Engine, la SuperGrafx ; et Bandai : la WonderSwan et la WonderSwan Color.
Il vise la précision de l'émulation au détriment des performances, contrairement à d'autres émulateurs, tels que Zsnes ou Snes9x.
Le projet higan a contribué de manière significative au domaine de l'émulation SNES, avec un certain nombre d’avancées dans l’émulation et dans le développement en rétro-ingénierie avec l'organisation de fonds, le matériel et l'expertise dans la décapsulation pour les améliorations des puces SNES.
En 2021 le projet est repris officiellement par une équipe qui continue le développement des émulateurs de Near (byuu) à la suite du décès de ce dernier.

## Historique

Sous le nom bsnes, il a été le premier émulateur à supporter le SPC7110 (puce utilisée sur certains jeux), et la Super Game Boy de manière complète grâce à l'inclusion d'un émulateur Game Boy.
Depuis la sortie de la version 087, bsnes devint désormais compatible avec toutes les ROMS commerciales, même si l'objectif de la perfection de l'émulation n'est pas considéré comme atteint, et par conséquent, devient le premier émulateur à être capable de lire tous les jeux de la console.
Bsnes est devenu un multi-émulateur de diverses consoles de la marque Nintendo, émulant les jeux de la NES, la Super Nintendo, le Game Boy, le Game Boy Color, la Game Boy Advance mais aussi les sous systèmes suivants : Super Game Boy, BS-X Satellaview et Sufami Turbo. Higan émulait également la Nintendo DS mais pour des raisons pratiques cette partie de l'émulateur, développé par Cydrak, est désormais séparée depuis la version 092 et maintenue sous le nom de dasShiny.
Depuis le 8 août 2012, byuu a décidé de renommer bsnes en higan, de manière que les utilisateurs sachent que l'émulation n'est pas dédiée à une seule et même console.
Depuis la version 102 du 19 janvier 2017, higan prend en charge l'émulation de la Master System, la Game Gear, la Mega Drive, la PC Engine, la SuperGrafx, la WonderSwan et la WonderSwan Color.
Depuis la version 107 du 23 décembre 2019, higan prend en charge l'émulation du Mega-CD, Neo Geo Pocket, MSX/MSX2, SG-1000, SC-3000 et ColecoVision.
À partir de 2020, il émule également la NeoGeo, la Playstation et la Nintendo 64.
Il est à noter que le projet principal est devenu Ares, dont higan et bsnes ne sont plus que des sous-modules.

## Branches

Il existe plusieurs branches non officielles de bsnes/Higan, dont voici les principales :
* xSnes, développé par Julian Goracke. L'idée derrière cette version est de préserver et de séparer de Higan la partie Super Nintendo qui est presque parfaite de façon à proposer un émulateur dit « standalone » (émulateur autonome à système unique, sans émulation d'autres machines risquant d'en altérer le code). Tous les modules autre que la partie Super Nintendo ont donc été supprimés, la seule exception est le BS-X Satellaview qui est étroitement lié à la machine originale.
* lsnes, développé par Ilari pour le Tool-assisted speedrun. Il permet de jouer a des jeux que ZSNES et Snes9x ne peuvent pas émuler.
* bsnes-classic, basé sur l’ancienne version de bsnes, elle en améliore certaines fonctionnalités et corrige certains problèmes. Cette version constitue principalement le moteur de bsnes+ qui lui a pour objectif d’intégrer de nouvelles possibilités.
* bsnes-plus, est un fork de bsnes (basé sur bsnes-classic) destiné à introduire de nouvelles fonctionnalités et améliorations, la plupart visant au débogage. Il s'agit donc d'une version améliorée de bsnes 073 où l'on retrouve donc l'ancienne interface ainsi que les anciens menus.
* nSide Créé par hex-usr et basé sur Higan, il s’agit d’un émulateur de NES/VS.System/PlayChoice-10/SuperNES/GameBoy/GameBoy Color/GameBoy Advance/WonderSwan/WonderSwan Color/SwanCrystal/GameGear/SMS/Megadrive/PC-Engine mais aussi des sous systèmes Super GameBoy, BS-X Satellaview et Sufami Turbo, mais ajoute un lots de fonctionnalités en suppléments comme davantage de mappers NES, le NES Four Score, le Zapper, le Power Pad, l’adaptateur 4 joueurs, le VS. System (uniquement les jeux UniSystem n’utilisant pas le Zapper), le PlayChoice-10 mais aussi d’autres éléments à découvrir.
* bsnes-mcfly Créé par hex_usr (nside/Lunar Snes), bsnes-mcfly est un port de l'interface graphique Qt de bsnes v073 à higan v106. Dans les versions de développement (et jusqu'à la v106) il était connu sous le nom de "bsnes-classic" dans une tentative de remplacer la fourche d'Awjackson également nommée "bsnes-classic" qui paraissait être abandonnée. Cependant, AWJ a montré que bsnes-classic est encore en vie et par conséquent ce projet a dû être renommé. Cette version est basée sur la dernière version d'Higan et ajoute énormément de fonctionnalités. L'objectif est en partie de faire arrêter l'utilisation de bsnes 073 et de fork comme bsnes-classic (ou autre) et de tout fusionner dans un seul émulateur combinant à la fois les améliorations des dernières versions d'Higan et en même temps les avantages des anciennes versions de bsnes (notamment l'interface).
* Bizhawk, qui maintient une branche bsnes (basée sur la version 087) et est utilisé pour le Tool-assisted speedrun également.
* Mednafen, qui propose une branche de bsnes de la version 059.
* Retroarch qui propose également une branche bsnes (plusieurs versions existent: bsnes-mercury, bsnes-gilgamesh, bsnes-cplusplus98, etc.) et de manière plus générale d'Higan. Voir l'article sur en:RetroArch.