***************************************************************************** Amoric (v1.5): Documentación [1/4] El primer emulador de ORIC-1/Atmos 48K para Amiga © Copyright 1995-96 Jean-François Fabre Traducción al español de Dámaso D. Estévez ***************************************************************************** 0. ¡Léame, por favor! 1. Introducción 2. Requerimientos 13. Otras plataformas 3. Características 14. Modificaciones 4. Configuración 15. Errores 5. Arranque 16. Juegos probados 6. Los joysticks 17. En Internet 7. El sonido 18. Aún pendiente 8. Los gráficos 19. Ninguna garantía 9. El teclado 20. Cómo registrarse 10. Guardar en cinta 21. Agradecimientos 11. Sugerencias 22. Historia 12. Importar de cinta 23. El autor 0. ¿El fin? ~~~~~~~~ Estimado usuario de Amoric, Seguramente sabrá que Amoric 1.5 ha tardado mucho en distribuirse... la razón es que me he rendido, porque estoy harto del programa. Como he trabajado duro para transformar la versión 1.4a en la 1.5 y he añadido un montón de prestaciones interesantes que han modificado sustancialmente Amoric, y debido también a que los traductores de la documentación han esperado mucho, he decidido distribuir esta versión pero aún perduran graves errores. - La memorización y recuperación del estado actual ya no funcionan. NO intente usarlas, pues a menudo se producen gurús (especialmente en el modo HIRES). He desconectado las teclas F8 y F9. - Debido a la multitarea, algunos fallos menores de gráficos y sonido podrían aparecer. Necesito apoyo para continuar desarrollando: envíeme emails, dinero, lo que quiera. No se trata de un chantaje... como ya le dicho simplemente estoy harto. El autor, Jean-François Fabre 1. Introducción ~~~~~~~~~~~~ El Oric Atmos fue mi primer ordenador y no he podido olvidarlo jamás (¡ahhh, aquellos fantásticos juegos de 8 colores predefinidos!... el CD-ROM Multimedia no exitía en aquella época ;-)). Estos juegos no diferían en demasía de los juegos actuales en cuanto a calidad o interés, aunque sí adolecían, principalmente, de los siguientes problemas: - El tiempo de carga desde cassette podía volver loco a cualquiera sobre todo si el programa después de la espera no funcionaba. Lo más habitual era que esto fuese debido al ajuste del volumen, o al de graves/agudos, o a la tensión/velocidad de la cinta, o al maldito frigorífico de importación (americano)... - Las puñet*r*s protecciones de dos tonos en los juegos obligaban a apagar y volver a encender el Oric, dañando los componentes electrónicos del equipo. - Su desgraciado (por tardío) renacimiento en 1995 para jugar por ejemplo a Zorgon, cuando ya disponíamos de una nueva generación de ordenadores en el trabajo o en casa... - Mientras existían emuladores de C64, Amstrad, ZX81, VIC20, BBC, Apple II para Amiga parecía no haber un sitio para el Oric habiendo sido sin embargo el más popular en la Europa de la época (de hecho, ¡¡más que el Vic20 o el BBC Micro!!). Todo esto fue lo que me decidió a escribir Amoric. Primero escribí la versión para UNIX/X-Windows (para ir rompiéndome la cabeza por anticipado) y a continuación quise adaptarlo a mi plataforma favorita: el Amiga. He esperado mucho tiempo a que otro programador realizase el emulador para Amiga, pero como al final ha sido nadie se ha atrevido, he tenido que hacerlo yo: creo que soy el primero ;-) (de hecho, un poco como Guy Degrenne). -------------------------------=====--------------------------- 2. Requerimientos ~~~~~~~~~~~~~~ Amoric está escrito en ensamblador 680x0 y en C. Lo adapté de un emulador previo que había escrito totalmente en C para la plataforma UNIX/X-Window, (las estaciones UNIX tienen una mayor potencia de cálculo que un 68030/68040 y gracias a la arquitectura RISC, los programas en C son generalmente más rápidos que los escritos en ensamblador si se usa un buen compilador (gcc), además de permitir la portabilidad del código a otros procesadores sobre todo con gcc). Mi emulador funciona sobre HP-PA1, Sun SPARC, Linux i80x86 (a pesar de todo), PowerPC y Silicon Graphics. Sin embargo, en Amiga, es necesario programar en ensamblador este tipo de aplicaciones pues la velocidad es crítica durante la simulación, y los célebres procesadores diseñados a medida para el Amiga (Paula, Denise, Gary...) no son muy útiles en la emulación de la CPU 6502. Aún así, el 6502 y el 680x0 tienen gran cantidad de características comunes, y la idea fundamental es aprovecharlas (instrucciones similares, conversión directa de las banderas de estado CCR,...) con mínimas adaptaciones. Inicialmente existían dos versiones: la correspondiente a equipos con una CPU 68000 y para una CPU 68020. Decidí abandonar el desarrollo de la primera por ser extremadamente lenta... pero he recibido muchas peticiones, sobre todo por parte de un usuario con un 68000/28MHz, y aquí está de nuevo, aunque ¡no espere milagros! [1]. Finalmente reescribí la versión Amiga en ensamblador 100% para conseguir la máxima velocidad tanto de ejecución como de compilación ;-)... así el código fuente es más homogéneo. Supongo que no he de advertirle que Amoric será LENTO en un A1200 básico y MÁS AÚN en un A500. Pruebe en un equipo con Fast RAM real, y verá como incrementa ligeramente su velocidad: Eric Totel (MUIBuilder) ha probado esta versión sobre su A1200/020/14MHz y me ha informado que no es para tanto. Ahora, con mi tarjeta 68030/45 MHz la velocidad varía entre un 90-120%, pero aún es necesario que optimice las siguientes versiones, aunque cada vez se vuelva más difícil el lograrlo: Fabrice Frances me ha dado una idea para mejorar la velocidad de nuevo y la implementaré próximamente. Si encuentra que la emulación no va suficientemente rápida, puede probar a modificar los valores de la frecuencia de refresco de la pantalla en las preferencias o con las teclas durante la emulación. La velocidad del Oric puede variar según la carga de trabajo derivada de la visualización: así durante los desplazamientos de pantalla ('scroll'), AmOric irá algo más lento. Sin embargo, desde la versión 1.5 la velocidad de la CPU es ajustable: si aumenta este parámetro demasiado, el refresco sufrirá e incluso la velocidad. He aquí algunos valores máximos según el equipo: 68060/50 con memoria Fast : 320% 68030/50 con memoria Fast : 100% 68020/14 con memoria Fast : 60% 68020/14 SIN memoria Fast : 40% 68000/7 : versión antigua Por favor, comuníqueme los resultados que obtenga sobre su equipo. Para hacer funcionar AmOric necesitará KickStart 2.0 o superior y además la biblioteca 'asl.library' para las peticiones: ha sido probado con éxito con las siguientes configuraciones... 68060/50 KS 3.0 con 16 MB de memoria Fast 68030/50 KS 3.0 con 16 MB de memoria Fast 68020/14 KS 3.0 con 8 MB de memoria Fast 68020/14 KS 3.0 sin memoria Fast 68000/7 KS 3.0 con 1.5 MB de memoria Fast y Relokick ---------------------- [1] Esta versión no corre en un 68020 debido a que la instrucción MOVESR es privilegiada a partir del 68010: justamente por ello, sintiéndolo mucho, los usuarios que tengan este último procesador no podran ejecutar ninguna de las dos versiones suministradas... si se encuentra en dicha situación, escríbame para pedir una versión específica. -------------------------------=====--------------------------- 3. Características técnicas ~~~~~~~~~~~~~~~~~~~~~~~~ El emulador de Oric en esta versión permite: - Una emulación bastante fiel del procesador 6502 incluyendo los ciclos de reloj. - Una emulación gráfica que incluye los modos 'HIRES' --alta resolución-- y 'TEXT' --texto--, lo mismo que los modos 'double height' --altura doble-- y 'flash' --parpadeo--. - Emulación del 6522 y 8912, incluyendo los temporizadores 1 y 2, el teclado y las palancas de control o 'joysticks' P.A.S.E. - Carga/grabación en disco flexible y/o disco duro (más rápido que las cintas/K7, ¿no?). - Teclas de control para realizar diferentes operaciones (reinicio de su Oric virtual,...). - Sonido (aún no es perfecto, pero está bien...). - Carga/grabación de volcados/capturas de toda la memoria ('snapshots') a/desde disco/memoria. Evidentemente, AmOric no es un Oric real, lo que significa que con ciertos programas pueden surgir problemas. Consulte el capítulo errores para mayor información. AmOric NO emula o no tiene en cuenta: - Los cambios de frecuencia 50/60Hz (habitualmente no utilizados), - El modo 'Half-TEXT/Half-HIRES' (Semi-Texto/Semi-AltaRes), que usan algunos juegos. - La mayor parte de las instrucciones no documentadas del 6502 (pero no es especialmente grave). -------------------------------=====--------------------------- 4. Preferencias del usuario (configuración) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ El fichero 'oric.cfg' contenía las preferencias del usuario. Hasta la versión 1.0 usted podía editar este fichero para modificarlo, sin embargo, por ser conveniente, he cambiado tanto el formato del fichero, que ahora es binario, como su nombre, que ahora es 'Amoric.prefs'. El fichero contiene la siguiente información: Fichero ROM ('ROM File') Define que ROM utilizará el emulador. Programas ('Progs dir') Define el directorio por defecto del que se cargarán los programas con 'CLOAD'. Volcados ('Dumps') Directorio de volcados, para la grabación de programas en una "cinta virtual" con 'CSAVE'. Sonido ('Sound') (Des)activa sonido. Parchear ROM ('Patch ROM') Parchea algunas rutinas de la ROM para ganar velocidad o no. Imágenes/seg ('Frames/sec' ó FPS) Es la velocidad de refresco de la pantalla (de 1 a 50 fotogramas por segundo en un modo PAL). Modo de pantalla ('Screen mode') Defiene el modo de pantalla (código visual) que el Amiga utilizará para la visualización del Oric. Joystick 1 y 2 (Des)activa los joysticks 1 y/o 2. Confirmar salir ('Warn on exit') Pide confirmación al usuario antes de abandonar la ejecución definitivamente del emulador AmOric. ¿Usar patrones? ('Do Patterns') Usar patrones/comodines por defecto para filtrar los ficheros que se mostrarán en las peticiones: #?.DAT para "cintas virtuales" y #?.ROM para los ficheros ROM. Refresco ('Refresh') Tipo de refresco: puede elegir entre 5 tipos. Tipo de disco Puede elegir entre Microdisco, Jasmin o ninguno. Vídeo ('Video') Le permite elegir diferentes gestores (drivers) de video. El más rápido es el de plano de 1 bit ('1 bitplane'). Redef. ESPACIO ('Redef. SPC') Autoriza la redefinición del carácter ESPACIO. Puede modificar este fichero empleando la ventana de configuración que AmOric le muestra al arrancar. Estos cambios pueden ser temporales (durante la sesión actual del programa) o también puede guardarlos para usar en posteriores sesiones (tenga en cuenta que ciertos modos de pantalla pueden no funcionar correctamente). Los modos o tipos de refresco (opción 'Refresco') son: * Máx. velocidad ('Fastest'): Es el más rápido, pero el menos preciso. No toma en cuenta la redefinición dinámica de caracteres (igual refresco que la versión 1.1). * Rápido ('Fast'): Es el modo por defecto. Toma en cuenta la redefinición dinámica, pero sólo parcialmente. * Bueno ('Good'): Un poco más preciso que la anterior para la redefinición dinámica. * Preciso ('Accurate'): Gran precisión para la redefinición dinámica (siempre es tenida en cuenta). * Completo ('Total'): Refresco total. Es muy costoso para la CPU, pero es el más próximo a un Oric original. [Continúa...]