OpenEmulator
# OpenEmulator

OpenEmulator es un emulador de computadoras clásicas.

## Sistemas

OpenEmulator es capaz de emular los siguientes sistemas:

* Apple-1 y clones (Replica 1, A-ONE)
* Apple II, Apple II plus y Apple II j-plus

## Características

El enfoque de este emulador es muy distinto al de otros proyectos. Se ha enfatizado un framework que permita que otros autores puedan fácilmente construir sus emuladores encima. Algunas de las características de OpenEmulator son:

### Framework de componentes

El primer pilar de OpenEmulator es su framework de componentes. El principio de "Inversión de Control" es usado para conectar componentes de software a través de una descripción XML, lo que incrementa el nivel de abstracción. El archivo XML también almacena la configuración y estado de los componentes, lo que simplifica sustancialmente el almacenamiento de una emulación en disco. Otra ventaja es que es posible añadir dispositivos virtuales, incluso mientras una emulación está ejecutando. De este modo cierta placa de sonido o cierto tipo de monitor pueden ser conectados en tiempo real, tal como un sistema físico era ensamblado.

### Interfaz de usuario

El segundo pilar es una interfaz de usuario de avanzada. Una ventana de emulación permite visualizar los dispositivos conectados y cambiar sus propiedades. Esto puede ser usado para cambiar las propiedades de un monitor de vídeo, o para ajustar las opciones de una placa madre. Los dispositivos "montables" admiten imágenes de disco o cartucho, y los dispositivos "canvas" permiten visualizar detalles un dispositivo en una ventana separada. Estos últimos pueden capturar el teclado, ratón y joystick, y son útiles a la hora de implementar monitores de vídeo, impresoras, teclado o pantallas LCD.

### Video rendering

El tercer pilar es rendering de vídeo con OpenGL y shaders GLSL. A través de un programa acelerado por GPU es posible emular la mayoría de las sutilezas visuales de la historia de la computación. Algunas de ellas son: ancho de banda de vídeo, distorsión de barril, shadow masks, scanlines y persistencia del fósforo. El modo papel simula las propiedades del papel a la hora de implementar impresoras virtuales, y el decodificador PAL/NTSC refleja la apariencia de monitores de rayos catódicos con precisión.

