# Mupen64

Mupen64 "Multi-Platform Emulator for the N64" (Emulador multiplataforma para N64) es un emulador de la consola de videojuegos Nintendo 64.
Mupen64 se desarrolló originalmente en y para sistemas GNU/Linux, pero está diseñado para ser multiplataforma. Ha sido portado a otros sistemas operativos utilizando la biblioteca SDL, incluyendo Microsoft Windows, BeOS, Mac OS X, y FreeBSD. Mupen64 es software libre, publicado bajo los términos de la Licencia Pública General de GNU.
Mupen64 conoció la popularidad después de que el sitio web Goldeneye Forever utilizó su funcionalidad en línea para iniciar torneos.

## Historia

Mupen64 fue publicado por primera vez en el año 2001. Originalmente anunciado como un emulador multiplataforma escrito usando SDL, con un recompilador dinámico y un port para Microsoft Windows. 8 días después se anunció que habría un port del emulador para BeOS, el cual fue liberado, sin embargo, no se actualiza desde de la versión 0.0.4.
Mupen64 se mejoró con el tiempo, adquiriendo características como grabación, sincronización de sonido, y una interfaz gráfica GTK 2. Hacktarux estuvo trabajando activamente en el proyecto hasta su último lanzamiento oficial en 2005: Mupen64 0.5.1.

## Núcleo

En el núcleo de Mupen64 existen 3 diferentes emuladores de CPU. Uno en modo intérprete de CPU, un recompilador dinámico x86, y un intérprete puro.
El intérprete de CPU es un intérprete optimizado que guarda los opcodes en caché para ser más rápido que un intérprete puro. El recompilador dinámico de CPU recompila el código de N64 en código de máquina nativo. El intérprete CPU puro es un simple emulador de intérprete. Es más lento y menos eficaz que los otros núcleos.
A causa de que el recompilador dinámico ha sido especializado para un determinado tipo de procesador, a veces puede ser necesario utilizar el intérprete cuando la CPU que se está utilizando no es compatible con el recompilador dinámico. En el caso de Mupen64, todos los ordenadores x86 son capaces de ejecutar su recompilador dinámico.

## Bifurcaciones
### Mupen64k

Mupen64k es un parche para añadir a Mupen64 el soporte de un jugador en línea Kaillera. A pesar de que está desactualizado, el código fuente no existe, y sólo está disponible para Windows (como lo es Kaillera), es todavía la única rama de Mupen64 con capacidad de red. Mupen64k fue desarrollado por okaygo, que se ha sumado al proyecto Mupen64Plus. Mupen64k fue empaquetado con SupraClient de Kaillera que soporta captura de AVI a alta velocidad.

### Mupen64Plus

Mupen64Plus es un proyecto que pretende mejorar el código de Mupen64 0.5. Originalmente fue desarrollado para añadir una recompilación de 64 bits del núcleo, sin embargo, se decidió poco después de su creación que se convertirá en un proyecto mucho más grande. Actualmente hospeda sus propios plugins en un repositorio de Subversion, que incluye un recompilador de 64-bit, un port de Glide64 Wonder Plus, algunas correcciones de errores y puestas al día de Rice Video y glN64, continuaciones de JttL SDL Audio Plugin y del propio Mupen64 Audio Plugin, una continuación de Blight's SDL Input Plugin, el original plugin de entrada de Mupen64 y Mupen64 HLE RSP plugin.
Su código fuente se almacena en su propio repositorio mientras que su página de inicio se almacena en Google Code, donde posee un grupo de Google y un wiki.
Además, los ports de Mac OS X y Windows han sido publicados, pero aún se encuentran en desarrollo.

### Mupen64GC

Mupen64GC es un port de Mupen64 para Nintendo GameCube y Wii que utiliza la biblioteca libOGC. Para este port en desarrollo se planea el uso de recompilación dinámica del código de máquina de N64 para que sea usado en PowerPC (la arquitectuta de Gamecube y Wii) y se intenta conseguir una completa aceleración gráfica por hardware y plena velocidad de emulación para esta plataforma. Posteriormente, se desarrollaron varias mejoras al Mupen64GC original, llamadas Wii64, con uso de los plugins glN64 y Rice, y Not64, con varias mejoras en la compatibilidad y velocidad.