Mini vMac es un software gráfico de código abierto, gratuito y multiplataforma implementado en C y diseñado a partir del offset para actuar como un emulador para el sistema informático Macintosh Plus creado por Apple, que se ejecuta en sistemas operativos Linux, BSD, Microsoft Windows y Mac OS X.
Siendo una de las primeras máquinas Macintosh diseñadas por Apple, Macintosh Plus solo usa un viejo software Mac, que, por supuesto, no funciona en las computadoras Macintosh recientes. Por lo tanto, el software Mini vMac ayuda a preservar la historia. Ha sido diseñado para ser tan fácil de usar, portátil y simple como sea posible.
Primeros pasos con Mini vMac
Para utilizar la aplicación Mini vMac en su sistema GNU / Linux, asegúrese de descargar el paquete binario que corresponde a la arquitectura de hardware de su computadora, guarde el archivo en algún lugar de su computadora, desempaquete y haga doble clic en el ejecutable .
La aplicación se abrirá y le notificará que no se puede ubicar una imagen ROM del sistema Macintosh Plus. Esto significa que también deberá obtener un archivo vMac.ROM (se pueden encontrar más detalles en la página principal del proyecto) y ubicarlo en la misma carpeta que el ejecutable Mini vMac.
Una vez que haya obtenido la imagen ROM de Macintosh Plus, debe cerrar el programa y volver a abrirlo. Si el archivo ROM es válido, el sistema se iniciará automáticamente y le permitirá usarlo como si fuera a utilizar cualquier otro sistema operativo virtualizado.
Funciona en todos los sistemas operativos convencionales.
Este software es en realidad un derivado de la aplicación vMac, que no se ha actualizado en muchos años. Para su conveniencia, se distribuye como paquetes binarios pre-construidos para los sistemas operativos antes mencionados, que admiten arquitecturas de conjunto de instrucciones de 64 bits (x86_64) y 32 bits (x86).
El código fuente de la aplicación también está disponible para su descarga, para aquellos que desean optimizar el software para una plataforma de hardware o un sistema operativo específico.
¿Qué es nuevo en esta versión:
- El Mini vMac 3.5.8 de hoy actualiza la versión estable para solucionar un problema en PowerPC OS X, y también corrige un problema que afecta al Servicio de Variación. Mini vMac 3.5.8 en plataformas que no sean PowerPC OS X ('mach') y x86-32 OS X ('imch'), deben ser idénticas a Mini vMac 3.5.7, excepto la cadena de versión y la fecha de modificación.
- Se informó que & quot; Mini vMac 3.5.7 no se ejecutará en sistemas PPC G3 & quot ;. Resulta que el indicador de GCC & quot; mmacosx-version-min & quot; debe especificarse para todos los archivos compilados, no solo para el código dependiente de la plataforma. Afecta cosas como la CPU requerida. Hacer este cambio no tiene ningún efecto en Mini vMac para x86-64 OS X, hay un efecto para x86-32 OS X, y el efecto más grande es para PowerPC.
Novedades en la versión 3.3.3:
- Nuevas funciones en la compilación predeterminada:
- Mini VMac soporta oficialmente más sistemas operativos:
- FreeBSD en x86-32 (Utilizando & quot; t fbsd & quot; en el sistema de compilación)
- FreeBSD en x86-64 (& quot; -t fb64 & quot;)
- OpenBSD en x86-32 (& quot; -t obsd & quot;)
- OpenBSD en x86-64 (& quot; -t ob64 & quot;)
- NetBSD en x86-32 (& quot; -t nbsd & quot;)
- NetBSD en x86-64 (& quot; -t nb64 & quot;)
- Dragonfly BSD en x86-32 (& quot; -t dbsd & quot;)
- Dragonfly BSD en x86-64 (& quot; -t db64 & quot;)
- OpenIndiana en x86-32 (& quot; -t oind & quot;)
- OpenIndiana en x86-64 (& quot; -t oi64 & quot;)
- Linux en ARM (& quot; t larm & quot;)
- Linux en SPARC (& quot; -t lspr & quot;)
- Minix 3.2 (& quot; -t minx & quot;)
- Estos puertos adaptan el mismo código de X Window que el puerto de Linux, y deberían tener la misma funcionalidad, excepto que actualmente no son correctos para algunos. Las versiones x86-64 son actualmente más lentas, por falta de ajustes en el lenguaje ensamblador, y no deberían usarse si las versiones x86-32 funcionan.
- Las versiones X ahora pueden reproducir sonido utilizando la API de Open Sound System (OSS). (Por lo general, el uso de implementaciones compatibles en cada sistema operativo, en lugar del propio OSS oficial). El sonido ahora está habilitado de manera predeterminada en FreeBSD y NetBSD. El sonido se compila sin problemas (utilizando & quot; -sound 1 & quot;) en Dragonfly BSD y OpenIndiana, pero aún no he podido probarlos. Obtener sonido en Dragonfly BSD parece requerir cierta configuración manual. OpenIndiana no parece producir ningún sonido en absoluto en VMware Fusion. El sonido también compila sin problemas en OpenBSD, pero no funciona: la configuración de la frecuencia de muestreo deseada falla. Minix realmente no parece soportar el sonido todavía. También es posible usar la API de OSS en Linux, utilizando la nueva & quot; -snd-api & quot; opción de sistema de compilación.
- Las versiones X ahora intentarán buscar en la carpeta que contiene la aplicación para la imagen de la ROM, como la versión de Macintosh y Windows. (Y también para disk1.dsk y así sucesivamente.) Si no se puede determinar el directorio de la aplicación, el directorio actual se usa como antes. Esto se implementa para Linux, FreeBSD, NetBSD, Dragonfly BSD y OpenIndiana, pero no OpenBSD y Minix.
- Las versiones X ahora tienen una nueva opción de línea de comandos & quot; -d [ruta_de_dirección] & quot;, en la que se usa [ruta_de_dirección] en lugar del directorio de la aplicación cuando se buscan imágenes de la ROM, y archivos de disco1.dsk y así sucesivamente .
- Las versiones X ahora tienen una nueva opción de línea de comando & quot; -n [app_name] & quot ;, en la cual [app_name] se usa en lugar del nombre de la aplicación para el título de la ventana Mini vMac.
- Las versiones X ahora son compatibles con una carpeta ROM central como las versiones de Macintosh y Windows. Si & quot; ~ / .gryphel / mnvm_rom & quot; existe, Mini vMac buscará allí la imagen ROM. Si no está allí, se verá en el directorio de la aplicación. (Y la opción de línea de comando -r anulará ambos.)
- Se modificó el comportamiento en la compilación predeterminada:
- Dibujar la pantalla emulada en la pantalla real es más eficiente. Cuando la profundidad de color es de 4 bits o menos, en lugar de convertir cada píxel, hay una tabla con 256 entradas para convertir un byte a la vez. También es más cuidadoso solo al convertir píxeles en el rectángulo que delimita el área cambiada, en lugar de la pantalla completa.
- La versión de Linux carga dinámicamente la biblioteca ALSA para reproducir el sonido, de modo que Mini vMac se ejecutará sin sonido, incluso si ALSA no está instalado. (Esta técnica se vio en SDL). Por defecto, la versión de Linux ahora se compila con sonido, que coincide con las versiones de Mac y Windows.
- En la versión de Linux, al reproducir sonido con ALSA, snd_pcm_delay ya no se llama. El retraso hasta que se reproduce una muestra no es realmente relevante. Lo que Mini vMac necesita saber es el momento de amortiguar el desbordamiento. Entonces, Mini vMac ahora mira el tamaño del búfer menos el espacio disponible en el búfer, que puede ser más útil, con el fin de evitar el desbordamiento del búfer y minimizar la latencia.
- Las versiones X ahora usan bloqueo de advertencia para negarse a abrir para escribir una imagen de disco que se ha abierto para escribir con otra copia de Mini vMac. Anteriormente, las versiones X de Mini vMac podían abrir una imagen de disco ya abierta, probablemente corrompiendo la imagen. Si Mini vMac solo puede abrir una imagen de disco de solo lectura, como por ejemplo porque el usuario ha bloqueado el archivo, el bloqueo de advertencia no se utiliza y varias copias de Mini vMac pueden usarlo.
- Las versiones X ahora intentan usar el nombre de la aplicación para configurar el título de su ventana, como las versiones de Macintosh y Windows. (Si el nombre de la aplicación no se puede determinar, se utiliza Mini vMac como antes). Esto se encuentra al mismo tiempo que el directorio de la aplicación, y se implementa para los mismos sistemas operativos.
- Los argumentos de la línea de comando ahora se analizan antes de buscar disk1.dsk y así sucesivamente en los archivos. Esto es necesario para el nuevo & quot; -d & quot; opción de trabajar y tiene el efecto secundario de que si las imágenes de disco se especifican en la línea de comando, se abrirán primero. Si hay imágenes en la línea de comando, Mini vMac no se molestará en buscar disk1.dsk en absoluto.
- El & quot; -l & quot; (o & quot; / l & quot; en Windows) la opción de línea de comando se elimina. La & quot; velocidad z & quot; opción en el sistema de compilación debe utilizarse en su lugar. La opción de línea de comando era anterior a la existencia del sistema de compilación, y la decisión tomada para favorecer las opciones de tiempo de compilación sobre las opciones de tiempo de ejecución.
- Corrección de errores en la compilación predeterminada:
- La versión de Windows ahora asigna la tecla Enter en el teclado numérico a la tecla Enter de Macintosh. Ahora puede distinguir esa tecla de la tecla Enter del teclado principal, que se asigna a la tecla de retorno de Macintosh. Antes no había forma de escribir la tecla Enter de Macintosh. Gracias a & quot; Alex & quot; para señalar este problema.
- En la versión de Windows, en el modo de pantalla completa, la verificación de si un evento de tecla abajo es una clave autorepeated es incorrecta. Entonces, las llaves potencialmente podrían haberse ignorado cuando no deberían haber sido. He eliminado la comprobación, ya que no está claro cómo hacerlo correctamente (cuando se utiliza un "gancho de teclado de bajo nivel"). Esto no afecta la emulación de Macintosh, ya que hay una verificación adicional para eventos redundantes. Puede afectar el modo de control, como al mantener presionado Control-M.
- La versión de Windows ahora responde al mensaje WM_QUERYENDSESSION, de modo que si intenta apagar su computadora con Mini vMac ejecutándose (con imágenes de disco montadas), Mini vMac se quejará y detendrá el apagado.
- En la versión de Linux, al usar ALSA para reproducir el sonido, snd_pcm_start se llamó antes de poner muestras de sonido en el búfer ALSA. Esto podría causar tartamudez al principio, o según un informe, evitar que el sonido funcione en absoluto. Mini vMac ahora espera hasta que su búfer privado esté lleno, luego transfiere tanto como cabrá en el búfer ALSA, y luego comienza a reproducir el sonido.
- Cuando se compila la versión de Linux para ARM, incluye una comprobación de que el resultado de snd_pcm_avail_update parece razonable y, en caso contrario, llama a snd_pcm_status_get_avail en su lugar. Esto funciona alrededor de lo que parece ser un error en Raspbian para la Raspberry Pi.
- El reloj emulado no se inicializó correctamente y solo fue correcto después del primer "segundo" interrumpir.
- Si la pantalla emulada es demasiado grande para caber en la pantalla real (cuando el desplazamiento automático está disponible), si el área de la pantalla emulada que ha cambiado no se cruza con el área visible de la pantalla emulada, se generó un rectángulo no válido. usado para dibujar Descubrí esto cuando probé Vector Linux 7, que parece tener algunas comprobaciones de depuración adicionales.
- En circunstancias improbables, en el modo de pantalla completa, el desplazamiento automático puede no desplazarse para mostrar la última fila de píxeles en la parte inferior o la última columna de píxeles a la derecha.
- Si la computadora host no es lo suficientemente rápida como para que Mini vMac se ejecute a velocidades de 1x, Mini vMac no funcionaría sin problemas, deteniéndose periódicamente durante algunos segundos. La prueba para esta situación fue incorrecta y un contador de un byte se desbordó. (Tener tales contadores tan pequeños como sea posible facilita la detección de errores como este.)
- En las versiones X Window de Mini vMac, cuando se usa la extensión Mini vMac para crear un archivo en el sistema host, como con ExportFl, no se implementa un cuadro de diálogo Guardar. Anteriormente, el archivo simplemente se crearía en el directorio de la aplicación con el nombre solicitado. Esto no fue seguro, en el peor, permite que un programa que se ejecuta en Mini vMac reemplace la aplicación Mini vMac. Entonces, ahora los archivos se crearán en una carpeta llamada & quot; salida & quot; en el directorio que contiene la aplicación. Esta carpeta se creará si no existe.
- En la versión de Microsoft Windows, si se pasa una ruta de acceso a una imagen de disco a Mini vMac en la línea de comandos que es más larga de lo que es legal para una ruta, se produce un desbordamiento del búfer.
- La versión de Windows CE sufrió un poco de pudrición. Ahora compila y, al menos, funciona en el Emulador de dispositivos de Microsoft con Windows Mobile Versión 5.0. No tengo idea si funciona con hardware real. ¿Le importa a alguien? (Windows Mobile fue descontinuado y reemplazado por Windows Phone). Este puerto estaba comenzando a interferir con el mantenimiento de la versión principal de Windows, y la elección era eliminarlo por completo o mantenerlo.
- Nuevas características no compiladas por defecto:
- La nueva opción de sistema de compilación & quot; -lt & quot; permite la emulación LocalTalk de Mike Fort. Actualmente hay algunas limitaciones. Solo se implementa para OS X. Requiere ejecutar el comando & quot; sudo chmod ugo + rw / dev / bpf * & quot; para permitir que Mini vMac (y todos los demás) tengan acceso a todo el tráfico de la red. El & quot; -lt & quot; opción también hace que Mini vMac se ejecute en segundo plano de manera predeterminada, porque Mini vMac no puede ser un nodo LocalTalk adecuado si no se está ejecutando. Y debe activar manualmente AppleTalk en el selector, puedo configurar los indicadores PRAM para que arranquen con AppleTalk, pero no funciona correctamente.
- Una nueva opción de sistema de compilación & quot; -lang pol & quot; selecciona una traducción polaca de la interfaz de usuario de Przemyslaw Buczkowski.
- Las versiones X tienen soporte inicial para color (para emulación Mac II). La versión X hasta el momento solo admite TrueColor de 24 bits y tiene algunas otras limitaciones de formato. Dudo que cualquier cosa, además de TrueColor, se use en máquinas modernas, por lo que probablemente no sea compatible con las otras opciones. Se pueden usar otras profundidades como 15, 16 y 32 bits, por lo que probablemente deberían ser compatibles, si puedo encontrar una manera de probarlos.
- Una nueva opción de sistema de compilación & quot; -mf & quot; permite cambiar la ampliación del valor predeterminado 2. Por ejemplo, & quot; -mf 3 & quot; establece el aumento a 3. La opción & quot; -mf 1 & quot; deshabilita la ampliación (eliminando el comando Control-M). El factor de aumento debe ser un entero.
- El comportamiento modificado no está compilado por defecto:
- La profundidad de color predeterminada para la emulación de Mac II es & quot; -depth 3 & quot; en lugar de & quot; -depth 0 & quot;.
- Para la emulación de Macintosh II, AutoSlow ahora está deshabilitado de forma predeterminada & quot; -as 0 & quot ;. Es posible que AutoSlow necesite un ajuste adicional para que funcione bien con la emulación de Mac II.
- En las versiones X, los resultados de fwrite y fread en imágenes de disco ahora se verifican para ver si hay errores, lo que detiene las advertencias del compilador en Ubuntu reciente.
- Las correcciones de errores no están compiladas por defecto:
- Se corrigió un error en la instrucción DIVS.L reportada por & quot; AP & quot ;. (Una instrucción 68020 utilizada en la emulación Mac II).
- Se corrigió la instrucción BFFFO, que estaba completamente rota, según lo informado por & quot; AP & quot ;. (Otra instrucción 68020 utilizada en la emulación Mac II).
- Las operaciones de campo de bit en un registro ahora usan rotar en lugar de cambiar. Los bits seleccionados pueden no ser contiguos, como se señala por & quot; AP & quot ;, y confirmados por la documentación. (Los campos de operaciones de bits se agregaron en el 68020).
- Las operaciones de campo de bits en la memoria ahora intentan operar solo en tantos bytes como sea necesario. Anteriormente, siempre funcionaba en 5 bytes, lo que podría tener efectos indeseables si se opera en un dispositivo mapeado de memoria, como lo señala AP & quot;.
- El & quot; MoveP.L, Dn & quot; la instrucción mezcló el orden de desplazamiento y enmascaramiento y, por lo tanto, se rompió por completo, según lo informado por AP & quot;.
- El hack que permite grandes cantidades de Video RAM en la emulación Macintosh II no funcionaba correctamente porque una matriz utilizada para la traducción del espacio de direcciones en la emulación de la CPU no se asignaba lo suficientemente grande. Ahora el sistema de compilación elige el tamaño de asignación. (Este problema se observó para 1024x768 con millones de colores). Más detalles: cada tarjeta NuBus recibe solo 1M de espacio de direcciones cuando la computadora está en modo de 24 bits. Y una Mac II parece dibujar normalmente en modo de 24 bits. Cuando se necesita más Video RAM para las opciones de tiempo de compilación solicitadas, Mini vMac utiliza el espacio de direcciones de las ranuras NuBus adyacentes.
- Fijo & quot; -min-extn & quot; opción de compilación en la versión de Linux.
- Sistema de compilación:
- Se agregó la opción de sistema de compilación & quot; -api cco & quot; utilizar Cocoa API de Apple para OS X en lugar de la API Carbon desaprobada. Pero el puerto de Cocoa de Mini vMac todavía no se considera bastante listo para ser oficialmente compatible, por lo que la versión Carbon todavía se usa.
- Se agregó la opción de sistema de compilación & quot; -api sdl & quot; para usar la Simple DirectMedia Layer 1.2 API. Esto se agregó como un trampolín al puerto de Cocoa, combinando el código fuente de SDL con el código fuente de un puerto SDL de Mini vMac, y luego eliminando todo lo que no se necesita, y luego limpiando mucho hasta que un Cocoa nativo inicial puerto surgido Sin embargo, el puerto SDL se puede usar como es para el puerto a otras plataformas compatibles con SDL. Pero esto no es (todavía) oficialmente compatible.
- Se agregó la opción del sistema de compilación & quot; -t mx64 & quot; para la implementación X11 de Apple en x86-64. (Anteriormente se admitían x86-32 y PowerPC).
- Añadida opción de sistema de compilación & quot; -t cygw & quot; para Cygwin / X para Microsoft Windows. Cygwin también se puede usar para compilar la versión normal de Microsoft Windows con & quot; -t wx86 -e cyg & quot;.
- Se agregó la opción de sistema de compilación & quot; -t irix & quot; para IRIX de Silicon Graphics, Inc., gracias a John Perkins.
- MinGW se puede usar para compilar Mini vMac con la opción del sistema de compilación & quot; t wx86 -e mgw & quot ;. Dado que Bloodshed Dev-C ++ se basa en MinGW, & t; -t wx86 -e dvc -cl & quot; anteriormente daría resultados similares.
- Se cambió el orden de los argumentos al comando de enlace al construir la versión de Linux. Resulta que existe un orden convencional de cómo se deben especificar las bibliotecas, lo que no sabía ya que no había encontrado un enlazador que le importara hasta Ubuntu 11.10.
- El sistema de compilación debería funcionar ahora correctamente en otros emuladores como SheepShaver. Se informó de forma anónima que el sistema de compilación dañaría los emuladores. La prueba de si el sistema de compilación se ejecutaba en Mini vMac (para que el archivo resultante se pueda exportar al host) no era lo suficientemente bueno.
- El sistema de compilación ahora suprime los mensajes de advertencia que se generaron al compilar la emulación de Macintosh II con Microsoft Visual C ++, gracias a un informe de William Grana.
Comentarios que no se encuentran