Volver menú revistas

DOC'S Nº29

Volver menú DOC's Nº29

 


AMORIC v0.9
Dámaso D. Estévez

El primer emulador de ORIC Atmos 48K para Amiga
© Copyright 1995-96 Jean-François Fabre
Traducción al español de Dámaso D. Estévez


INTRODUCCION

El Oric Atmos fué 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 desquiciar a un santo 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...

    - Las jod***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 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 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 fué lo que me decidió a escribir 'Amoric'. Primero escribí la versión para UNIX/X-Windows (para ir 'comiéndome el coco' por anticipado) y a continuación quise adaptarlo a mi ordenador favorito: el Amiga.

He esperado mucho tiempo a que otro programador realizase el emulador para Amiga pero al final ha sido en vano: creo que ¡¡soy el primero!! ;-) (de hecho, un poco como Guy Degrenne).

Volver al menú del artículo

DETALLES TECNICOS DEL EMULADOR

El emulador de Oric permite:

    - Una emulación (bastante) fiel del procesador 6502.

    - Emulación gráfica: modos HIRES --alta resolución-- y TEXT --texto-- incluyendo los modos de double height --altura doble-- y flash --parpadeo--.

    - Emulación 6522 y 8912 (¡ejem!), incluyendo Temporizadores 1 y 2, teclado y el joystick P.A.S.E.

    - Carga desde disquette/disco duro (más rápido que las cintas/K7, ¿no?).

    - Teclas de control para realizar diferentes operaciones (reset,...).

    - Primer intento de emular el sonido (aún no está en su punto, pero el intento es simpático).

Evidéntemente, no es un Oric real, lo que significa que con algún programa pueden surgir problemas. Consulte el capítulo errores para mayor información.

Este emulador NO emula o no tiene en cuenta:

    - Los cambios de frecuencia 50/60Hz (se aceptan sugerencias¹)

    - El modo Half-TEXT/Half-HIRES (Semi-Texto/Semi-Alta Resolución), que usan algunos juegos.

    - La mayor parte de las instrucciones no documentadas del 6502 (pero no es especialmente grave).

¹ Para más detalles, consulte los documentos en inglés y francés del programa.

Volver al menú del artículo

PREFERENCIAS

El fichero 'oric.cfg' contiene las preferencias del usuario. Puede modificarlo con cualquier editor ASCII. Para explicar cómo modificar la configuración del programa, veamos un ejemplo de dicho fichero²:

--- Inicio del fichero oric.cfg : corte por aquí ---

    Atmos.ROM
    HOPPER.DAT
    /games
    /dumps
    0
    1
    1
    7

--- Fin del fichero oric.cfg: corte por aquí ---

¿Qué significa cada una de las líneas?... Veamos:

Atmos.ROM define que ROM utilizará el emulador.
HOPPER.DAT

define la cinta de 'cassette virtual' insertada por defecto al inicializarse el emulador.

/games

directorio por defecto en el que buscar las cintas de 'cassettes virtuales'.

/dumps

lo mismo, pero para volcados hexadecimales (snapshots, memblocks): aún no implementado.

0 sonido conectado/deconectado (1/0)
1

parchea algunas rutinas de la ROM para mejorar la velocidad de la emulación, 0 desconecta esta opción.

7

frecuencia de refresco de la pantalla en fotogramas por segundo (PAL).

ATENCION: Puede usar los ficheros de la ROM del Oric-1 y del Oric Atmos, lo mismo que modificarlos pero sólo para su uso personal. Sin embargo, hay algunas localizaciones que han sido parcheadas después de ser cargados en memoria por el emulador (cargador de cinta, otros parches...). Modificar estas rutinas supone arriesgarse a que el Oric se cuelgue sin razón aparente.

² El formato del fichero ha cambiado a partir de la versión 0.8b.

Volver al menú del artículo

REQUERIMIENTOS

'Amoric' está escrito en ensamblador 680x0 y en C. Lo adapté de un emulador previo que había escrito en C para la plataforma UNIX/X-Window, (las estaciones UNIX tienen una mayor potencia de cálculo que un 68030 o un 68040 y gracias a la arquitectura RISC, los programas en C son generálmente 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).

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 para 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 pueden ayudar 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.

En principio, existían dos versiones: la correspondiente a equipos con una CPU 68000 y para una CPU 68020. Sin embargo, decidí abandonar el desarrollo de la primera por ser extremádamente lenta: al recibir gran cantidad de solicitudes, especialmente por un 'amiguero' que poseía un 68000/28 MHz, decidí volver a elaborar la versión para este procesador, aunque ¡no espere milagros!³.

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 mejora ligéramente su velocidad: lo probé (la versión anterior) en un A1200 pero con memoria FAST y funcionaba a una velocidad decente. Creo que la versión actual debe correr casi a la velocidad del Oric original.

Ahora con la tarjeta 68030/40 MHz funciona algo más rápido (un 120%), pero aún es necesario que optimize las siguientes versiones, aunque cada vez se vuelve más difícil el lograrlo: Fabrice Frances me ha dado una idea para mejorar la velocidad 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 el fichero oric.cfg.

El programa debe poder ejecutarse con cualquier versión del KickStart aunque es recomendable la versión 2.0 y en este caso requiere, opcionalmente, la biblioteca 'asl.library' para mostrar las peticiones.

Ha sido probado con éxito con las siguientes configuraciones:

    68030 KS 1.3

    68030 KS 3.0

    68020 KS 3.0

    68000 KS 1.2

³ Esta versión no corre en un 68020 debido a que la instrucción MOVESR es privilegiada a partir del 68010: jústamente por ello, 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 la específica.

Volver al menú del artículo

COMO EJECUTAR 'AMORIC'

Pinche con el puntero sobre el icono de 'Amoric' si desea ejecutarlo desde el WB o teclee Amoric en una ventana CLI/Shell: el programa cargará el fichero de configuración y el de la ROM que corresponda... si todo va bien, aparecerá la pantalla simulando la visualización del Oric.

Si pulsa la tecla HELP en cualquier momento de la emulación, aparecerá un recordatorio de las teclas que permiten controlar la emulación (reset,...).

Pulsando la tecla F10 abandonará la emulación y el programa.

Para elegir una cinta de cassette 'virtual', pulse F3: aparecerá la pantalla del WorkBench y una petición de ficheros para que pueda elegir el fichero que desee. Después de esto, teclee como siempre CLOAD "" desde el emulador: si apareciese el mensaje 'Searching...' ('Buscando...'), sería debido a que no ha seleccionado ninguna cinta de cassette (pulse F3 como ya hemos indicado) o que ésta ha llegado al final (en este último caso pulse F7 para 'rebobinarla').

Volver al menú del artículo

TECLADO

Hay un único mapa de teclado (distribución de las teclas fija), que no depende del definido por el usuario a través de las Preferencias del WorkBench pues se utilizan los códigos RAWKEY para interpretarlas (coincide con la distribución del teclado USA)... esto significa que algunas teclas estarán intercambiadas en el teclado francés (A y Q, M y ;...).

Además, hay algunas teclas suplementarias que son utilizadas para controlar ciertos aspectos del emulador:

    * F1 obliga al emulador a saltar a la rutina NMI --interrupción no enmascarable-- del Oric (el botón negro inalcanzable que estaba bajo el ordenador).

    * F2 actualiza/refresca completamente la pantalla (útil si hay algún error en el refresco de los modos TEXT/HIRES...).

    * F3 le permite elegir/cambiar la actual cinta de cassette virtual.

    * F5 tiene el mismo efecto que apagar y volver a encender el Oric.

    * F6 conecta/desconecta el sonido de la emulación.

    * F7 rebobina la cinta de cassette virtual.

    * F10 le hace retornar al Workbench deteniendo la emulación y abandonando el programa.

    * la tecla 'Help' muestra una pantalla de ayuda recordándole las teclas que acabamos de mencionar.

    y además:

    * La tecla 'FUNCT' del Oric Atmos es emulada por 'AltDcha'.

    * La tecla 'Del' funciona de igual forma que '<-' ('Backspace').

    * El teclado numérico separado puede emplearse sin ningún incoveniente, lo mismo que la tecla 'ENTER' en lugar de 'RETURN' (<-| o INTRO).

Nota: Con algunos juegos, por ejemplo "Zorgon's Revenge", la tecla X y la flecha del cursor hacia abajo son empleadas para subir/bajar ya que las flechas de cursor del Oric no están en el mismo lugar que en el Amiga: lo siento muchísimo, pero ¡así es la vida!.

Volver al menú del artículo

SUGERENCIAS (UTILES) AL USAR 'AMORIC'

- He desactivado la multitarea durante la emulación debido a que accedo directamente al hardware (especialmente por la lectura del teclado): lo siento, pero como programador bajo Intuition no soy muy bueno, aunque prometo que eso va a cambiar (ya he detectado dos avisos de Enforcer y ya he programado una interrupción totalmente limpia para el refresco de la pantalla). De todas maneras, no se preocupe, 'Amoric' no fragmentará la memoria, pues libera toda la empleada antes de terminar.

- He visto la emulación de Mac en multitarea de 'A-Max' y me ha impresionado profundamente: si mi programa no le convence por no correr en multitarea siempre puede reformatear el disquette que lo contiene ;-).

- Procure que no se produzcan escrituras en el/los discos cuando emplee el emulador: si por cualquiera causa (aunque es improbable) se bloquease, su disco podría quedar invalidado.

- Para mejorar la velocidad, debe activar los cachés y el modo burst del procesador (a partir de 68030+), lo mismo que el modo copyback (con 68040). No empleo las transferencias DMA ni código automodificable para que el caché de dispositivos funcione. Puede redireccionar la tabla de vectores (VBR) a memoria Fast, con herramientas como TUDE de N.O.M.A.D., o SystemPrefs, para mejorar la velocidad en el tratamiento de las interrupciones.

- Como sólo tengo en cuenta los temporizadores del Oric (e ignoro los del Amiga) podría tener algún problema en la reacción del teclado en equipos lentos como el A1200 básico (el problema aparece si la tecla se liberase antes de que la rutina ROM del Oric la compruebe, perdiéndose algunas pulsaciones). La solución es mantener pulsada las teclas un tiempo mayor: en una futura versión probaré a usar un buffer para el acceso al teclado.

Volver al menú del artículo

IMPORTANDO PROGRAMAS DESDE CINTAS DE CASSETTE PARA ORIC

ESTA es una parte COMPLEJA: ¿cómo recuperar programas que originalmente se encuentran almacenados en cintas (cassettes) de audio?

* En el Oric, el 6522 y la ROM se ocupan de enviar y recibir ese chirriante sonido (señal de 2.400 baudios). Esta puñet**a señal es el medio más fácil de interconectar los ordenadores de hoy y el Oric (leer los microdiscos del Oric es demasiado complejo de emular para mi y no entra en mis proyectos... ni siquiera tengo la Jasmin o una unidad de Microdiscos).

Aunque no tengo ningún conocimiento de electrónica, lo que sí es obvio es que los discos del Oric originalmente son de 3" (aunque también se le pudiera conectar unidades de 3½") y no hay forma humánamente posible para que sean leidos por la unidades de discos de un Amiga o de un PC (3½" o 5¼"). Además tampoco hay demasiada documentación sobre su formato: las unidades de C64 están mejor documentadas por ello se ha desarrollado gran cantidad de interfaces para el Amiga (paquete A64,...).

* Creo que el Oric posee una interface RS-232, pero no me voy a romper la cabeza programando un protocolo de transferencia Amiga-Oric (no tendría ni idea de por donde empezar): sería el método de transferir los datos más seguro, aunque tendría que llevar su Oric a todas partes (y no me parece muy conveniente).

* Boris y yo, buscamos y hemos encontrado una salida mejor (nos concentramos en la grabación de cintas de audio): en cualquier ordenador, es fácil digitalizar/muestrear sonidos si dispone de sufiente memoria y/o espacio en el disco duro. Para esta operación, tiene que muestrear sus cintas de cassette a frecuencia elevada (22050 KHz o más) en formato .lo8 (sin cabecera, 8 bits sin signo: rango de 0 a 255). Después de esto utilice el programa 'Transf', escrito por Boris GRANVEAUD e incluido en este paquete (el programa no tiene una interface demasiado amigable ya que ha sido portado desde UNIX y segúramente no será utilizado muy a menudo): su sintaxis es...

    > transf fichero.lo8 GAME.DAT

La frecuencia de muestreo le será pedida por el programa (éste muestra información sobre el fichero, como su nombre y longitud, y lee los datos).

Debido a una diferencia en la temporización entre el Oric-1 y el Atmos, el programa salta algunos bytes en el fichero (tiempo en el que el Atmos muestra 'Saving... GAME OF THE DEATH C', mientras que el Oric-1 muestra símplemente el mensaje 'Saving...').

Si se produce un error, intente la transferencia de la forma siguiente:

    > transf fichero.lo8 GAME.DAT wretwr

donde 'wretwr' puede ser 'eiruti' o 'uerhgiugh' (o incluso 'nbmnmbn'), ya que el test es realizado únicamente sobre el nº de argumentos suministrados al programa. En este caso, el programa no saltará bytes del fichero: por contra se debería (normalmente) producir un error en el primer byte... como me es difícil motivar a Boris para que corrija el programa, tome este error como una prestación adicional.

    55 U Error found.
    New value: «- Aquí debe introducir el valor superior en hexadecirmal (en este caso 55)

Si se produce otro error, tiene dos posibilidades:

  1. - Su magnetofón o reproductor de cintas de cassette está RIP.

  2. - La frecuencia de muestreo no es suficientemente alta.

  3. - El volumen no está lo suficientemente alto.

  4. - El programa no utiliza el mismo método para leer la cinta de cassette que el 6522, pues éste es un componente analógico que funciona por impulsos (frentes ascendientes, descendientes) y aquí trabajamos con datos numéricos.

  5. - Simplemente que la unidad de cassette es para ZX-Spectrum.

Bueno, en realidad son cinco posibilidades, pero no es grave.

Si consigue cargar cintas en el Oric (siempre que su gato no se haya paseado por encima del teclado) pero no con el emulador, use un programa para copiar desde el Oric y envie directamente la salida de éste al digitalizador (el programa maneja perféctamente la señal directa del Oric).

Si aún así no funciona o no quiere desplazar su Oric, grabe la señal en una nueva cinta de cassette: esto mejorará la señal. El chip 6522 del Oric es muy bueno leyendo las cintas y corrigiendo errores eventuales: basta tomar las rutinas de carga de la ROM del Oric como referencia... si el juego tiene varias partes, sálvelas separádamente, y luego únalas (cat o join)... a veces, necesitará introducir algunos bytes 0x16 entre ellas (no me pregunte el porqué) y ¡buena suerte!... yo lo he conseguido, entonces ¿porqué no usted?

Para cuestiones técnicas, no dude en contactar conmigo.

PS: Le proporciono el código fuente en C de 'transf'. Debe compilarlo sin modificaciones bajo estaciones UNIX y PC, si se encuentra con que le es más fácil digitalizar sonido en esas plataformas (el programa ha sido desarrollado bajo UNIX y utilizado en PC).

De todas formas, puede obtener la mayor parte de los juegos existentes para Oric en la siguiente dirección ('http site'):

gestionada por Fabrice Frances y Olivier Balet.

IMPORTANTE: Si Amoric rechaza cargar algún juego, es debido a que las marcas de sincronía de la cinta virtual son demasiado pequeñas: ¡¡¡es culpa mía!!! He probado juegos conseguidos de esta fuente ('http site') y me he encontrado con el mismo problema. Para remediarlo, emplee el programa TapeInfo que se proporciona con el paquete.

Volver al menú del artículo

VERSION UNIX

Como ya dije con anterioridad, mi primer intento de emulación del Oric fué bajo Unix. Distribuí por Internet una versión que emulaba los gráficos de manera imprecisa y limitada, contactando inmediatamente con Fabrice Frances, quien había escrito un emulador para PC (Euphoric), el cual me puso en contacto con Olivier Balet que ha mejorado mi versión Unix optimizando los gráficos (no la he visto funcionar pues se basa en prestaciones no presentes en todos los Unix) y que junto a Fabrice intenta lanzar una buena versión Unix... ¡traidores! :D.

Puede que después saquen una versión XMotif (yo también trabajo en una versión OSF/Motif).

VERSION PC

Si tiene amigos usuarios de un PC y si desean una buena emulación, deberían probar Euphoric de Fabrice Frances.

Fabrice es un asombroso programador y su emulador es realmente una joya en la jungla del soft para PC. Puede obtenerlo en ftp.ensica.fr o en la dirección mencionada más arriba. La página html (WWW) Oric está muy bien surtida de programas e informaciones diversas sobre este ordenador, su historia, etc...

A menudo he intercambiado ideas y sugerencias con Fabrice. Si es usted un deprimido usuario de PC, Euphoric debería subirle la moral: es rápido y emula el sonido, el Oric 1 y el Atmos, el Telestrat (!), los microdiscos de Oric, los discos virtuales, RS232 (Unix),... ¡prácticamente no se le echa nada en falta!

VERSION ATARI-ST

Olivier Galibert consiguió mi emulador para UNIX y por correo electrónico me envió un mensaje para informarme de un error y para comunicarme que iba a realizar una versión para el Atari ST (680x0). Me ha dado sugerencias muy buenas que me han permitido mejorar la emulación y su velocidad. Espero que su excelente conocimiento del procesador 680x0 le permita terminar su emulador dentro de poco, incluso aunque el Atari esté algo olvidado (recordad, el Amiga...)

VERSION ORIC

Muy fiel; ha sida desarrollada por Oric Systems (Reino Unido) en 1983.

VERSION ZX-81

Lo siento, pero me parece que no hay versión para esta plataforma.

Volver al menú del artículo

GARANTIAS / RESPONSABILIDADES

No me hago responsable de ningún daño causado directa o indiréctamente por el empleo de este programa, independientemente de que se emplee correcta o incorréctamente.

Siempre que use este programa, ¡¡será bajo su propia responsabilidad!!.

Volver al menú del artículo

CAMBIOS DESDE LA VERSION ANTERIOR

'Amoric' se encuentra ya en la versión 0.9 (el nº de versión ha sido incrementado ya que incorpora algunas mejoras importantes).

    * Se ha añadido sonido, pero aún no es perfecto...

    * Se ha mejorado la emulación 6522 (de nuevo, gracias Fabrice por la documentación).

    * Documentación en sueco (pero corresponde a la versión 0.8b).

    * Soporte de la ROM del Oric 1 (con todos los parches correspondientes).

    * Mejora de la velocidad entre un 5-8% gracias al empleo de las rutinas de ROM para la lectura del teclado y en el sonido, al parcheo (opcional) de la rutina de escritura del AY-3-8912 que necesitaba una emulación precisa, y por consiguiente costosa en velocidad pues se llamaba ¡unas 6.400 veces por segundo!

    * Probado con éxito con Enforcer y Mungwall

    * He dejado de comprimir los ejecutables con CrunchManía ya que alguna gente me ha informado de cuelgues en ciertos equipos por su culpa. Gracias a Kamel por informarme.

    * Añadida una utilidad para obtener información y corregir, en ciertos casos, los ficheros de cinta de cassette virtual: TapeInfo.

Volver al menú del artículo

ERRORES Y PROBLEMAS

Los errores más importantes son debidos a las dificultades de emular corréctamente al Oric original.

He tenido problemas para que algunos juegos funcionasen. De hecho, algunos de estos errores detectados me han enseñado mucho sobre la estructura interna del Oric y me han permitido mejorar enórmemente la emulación: personálmente, considero absolútamente imprescindible probar al menos 10 ó 20 juegos cuando se programa un emulador (y digo juegos, porque es la única utilidad que le encuentro a una emulación de un ordenador de 8 bits).

* En primer lugar, no he implementado 'corréctamente' las instrucciones no documentadas (y hay un montón de ellas): al contrario que los programadores de Apple II y C64, por desgracia, se emplean poco en el Oric, y digo por desgracia ya que por ejemplo es frecuente el error cometido por los programadores con la instrucción BRK, que al retornar al programa deja el contador de instrucciones (PC) incrementado en dos unidades y no una como debiera.

Si cree que lo he soñado, pruebe esto en su Oric:

   DOKE #400,#6000 -> BRK
                   -> RTS
   POKE #402,#4C   -> JMP $FAE1 (ZAP)
   DOKE #403,#E1FA

Si ejecuta CALL #400 oirá un ZAP, que querrá decir que la instrucción RTS ha sido saltada sin ser ejecutada.

Nota: En el C64 y el Apple II, las instrucciones no documentadas son encontradas muy convenientes por algunos 'programadorzuelos' y las usan sin ningún pudor.

Actualmente, 'Amoric' maneja las instrucciones no documentadas avanzando el contador de instrucciones (PC) el mismo nº de bytes que lo haría un 6502 real, pero sin realizar ninguna operación (utilizando instrucciones NOP). 'Amoric' sólo falla (lo que lo obliga a terminar y a salir a usted del emulador) si se encuentra alguna de las instrucciones que originalmente en un Oric harían que se bloquease (como las de la familia $x2).

* En segundo lugar, no he implementado un sistema de refresco de pantalla de manera demasiado natural por razones de velocidad. Jústamente por ello algunos errores pueden producirse cuando se produce un cambio HIRES/TEXT, o si se usa, como en algunos juegos, el modo de vídeo mixto half-TEXT half-HIRES (DOGGY, FIRE FLASH, STYX...) pues este modo es bastante difícil de reproducir con mi técnica de refresco actual. Estos modos no son emulados, pero ya he prometido en la documentación de la versión 0.8 que lo serían en la próxima versión (que es jústamente ésta por lo que me temo que he mentido ;-). Aún así, prometo que haré lo posible para implementarlo: mis últimas pruebas han sido infructuosas... en este momento, podría incorporarlo pero supondría ralentizar la emulación consideráblemente, así que busco alguna solución ingeniosa para solucionarlo.

* Para terminar, el chip VIA 6522, utilizado para gestionar las entradas y salidas (teclado, sonido) y las interrupciones del reloj, no es moco de pavo emularlo. He intentado emular las funciones vitales (Temporizadores 1 y 2, comunicaciones con el 8912), pero tengo siempre algunos problemas con el Temporizador 2 y con el PCR; por otro lado algunas funciones son activadas al leer los registros y como no intercepto dichas lecturas, nunca funcionarán (por suerte, no son utilizadas). Consultaré estos detalles con Fabrice.

* Un molesto error que acaba de evitar que emplee una verdadera pantalla Intuition: si presiono el botón izquierdo del ratón, el sistema se bloquea. Esto es debido a un conflicto entre los eventos gestionados por Intuition y mi visualización: por esta razón emulo el segundo joy del Oric en el mismo puerto que el primero.

Volver al menú del artículo

JUEGOS QUE FUNCIONAN CORRECTAMENTE CON 'AMORIC'

La lista se incrementa de una versión de Amoric a la siguiente. Algunos de estos juegos deben ser parcheados para funcionar pues necesitan una emulación demasiado precisa (ciclos de reloj...): están en negrita y precedidos por un asterisco *.

    3D-FONGUS (Loriciels)
    3D-MUNCH (Loriciels)

    L'Aigle d'Or (Loriciels)
    Andromeda et Persepolus
    Le Spectre d'Anubis(Eric Chahi)
    Archerons'S Rage
    Arena

    Baston (Sprites)
    Bering (Dialog)
    Bombyx (Dialog)
    James Bond Part 1 (Severn)
    Breakout (Tansoft)

    Categ-Oric (No Man's Land)
    Centipede (PSS)
    Chess I et II (Tansoft)
    Chopper (Severn)
    Corsaire (Hebdogiciel)
    Crocky (Loriciels)

    Damsel in Distress (IJK)
    DEFENCE FORCE (Tansoft)
    Le Diamant de l'île maudite (Loriciels)
    Don Juan et Dragueurs (Micropuce)
    Don't press 'Q' (Andrew Moore)
    Dracula's Revenge (PSS)
    Driver (Dialog)

    Elektro Storm (PSS)
    Esquive (Oric France)

    Frelon (Loriciels)     «=== NO EMPLEE LA VERSION DE LA PAGINA WEB 'ORIC': ¡¡¡ESTA CORRUPTA!!!
    Frogger

    GALAXION (Loriciels)
    GALAXIANS
    GALAXION (Loriciels)
    GASTRONON (Loriciels)
    Le Manoir du Docteur Genius (Loriciels)
    Ghost Gobbler (IJK)
    GHOSTMAN (Infogrames)
    GRAPH (Loriciels)
    Gravitor (Severn)

    HADESASM
    HADESMON
    HARRIER ATTACK (Durell)
    The Hobbit (Melbourne)
    Honey Kong (Sprites)
    Hopper (PSS)
    Hu*Bert (Loriciels)
    HunchBack (Ocean)
    Hyper Olympics ('Jueguecillo' mío de 1984)

    INVADERS (IJK)
    L'Immonde Dr Kokus ('Jueguecillo' mío de 1986)

    KRILLYS

    LAND-ILL (Tansoft)
    Light Cycle (PSS)
    Lilla et Jacky (MicroPuce)
    LMPLUS
    LOCUS

    M-A-R-C (PSS)
    Macadam Bumper (ERE)
    MISSION
    MR WIMPY (Ocean)
    Mushroom Mania

    Le Trident de Neptune (No Man's Land)
    Nibbler (Hebdogiciel)
    Nowotnik Adventure

    Orion (Loriciels)

    Panic (No Man's Land)
    Pastablasta (Arcadia)
    Pengo
    Playground 21
    Tendre Poulet (Sprites)
    Probe 3 (IJK)
    Le Protector (Loriciels)
    Psychiatric (Ere)

    Lone Raider (Infogrames)
    Le rendez-vous de la terreur (Ere)
    Le retour du Dr Genius (Loriciels)

    S.A.G.A (Ere)
    SKRAMBLE (Micropuce)
    Spooky Mansion
    StarFighter (Severn)
    Starter 3D (No Man's Land)
    Strip 21 (Micropuce)
    Super Jeep (Loriciels)

    Two Gun Turtle
    Le secret du tombeau (Loriciels)
    Le tour du monde en 80 jours
    Triathlon (Ere)
    TrickShot (Ijk)
    Trouble in store
    TYRANN (Norsoft)

    WAYDOR
    WYX (Hebdogiciel)

    * XENON 1 (IJK)
    XENON 3 (IJK)

    ZEBBIE (IJK)
    ZODIAC (IJK)

    Zoolympics (No Man's Land)
    Zorgon's Revenge (IJK)

Volver al menú del artículo

AUN NO IMPLEMENTADO...

Algunas cosas que aún no están listas:

    * Modo half-TEXT/half-HIRES (¡¡por ahora realmente penoso!!).

    * Mejor emulación de sonido.

    * Multitarea.

    * Una verdadera pantalla generada desde Intuition.

    * Emulación de disquette (virtual o real).

    * Mejora del modo flash --parpadeo--.

Volver al menú del artículo

FORMA DE REGISTRARSE

Considero interesante la idea de registrarse aunque no voy a exponer la multitud de razones que existen a su favor. El programa Amoric es giftware (gift=regalo), de manera que para 'registrarse' deberá enviarme algo: acepto juegos y/o utilidades que usted mismo haya desarrollado, y también traducciones del manual al alemán, al español, y a otros lenguajes.

Si ha perdido todo su dinero jugando al Mortal Kombat II de manera que no tiene tiempo para traducir este documento al checo, o no sabe programar,... puede aún así puede enviarme un mensaje por correo electrónico para decirme lo que le parece el programa. Alguna gente ya contactó conmigo cuando distribuí la versión UNIX pues en el fichero .readme ('.léeme') comentaba que tenía un Amiga: lo peor, es la indiferencia.

YO

Si quiere hacerme comentarios sobre este programa, sugerencias o informar de errores/fallos en su funcionamiento, por favor, escríbame por correo electrónico (E-mail) a:

    [email protected]   o   [email protected]

Las cartas de amor y las amenazas de muerte son bienvenidas (¿le he comentado que practico artes marciales?).

Volver al menú del artículo

AGRADECIMIENTOS

Me gustaría dar las gracias a:

- Fabrice Frances, quien me ha proporcionado la documentación completa del 6522 y del AY-3-8912, y que ha programado para los usuarios de PC un programa que no se merecen ;-). También me ha ayudado a corregir errores en la versión UNIX y me ha proporcionado su código de emulación 6522 para i80x86 (¡aunque funciona mejor en su casa!) además de un montón de sugerencias. Por si fuera poco, vive en Toulousse, y trabajamos a 500 m. de distancia el uno del otro.

- Olivier Galibert, que contactó conmigo por la versión Unix para informarme de un error y por pura 'chiripa' hablamos de una versión para 680x0. Gracias a todas tus estupendas sugerencias sobre la emulación de la CPU 6502 y la documentación correspondiente (incluyendo instrucciones indocumentadas): si no fuera por ellas, posíblemente, Amoric nunca llegaría a existir.

- Boris Granveaud, que ha escrito la rutina de digitalización de cassette. Por su amistad y por su precisa ayuda en la eliminación de errores cuando decidí escribir la versión Unix.

- Christer Bjarnemo, por la traducción de este documento al sueco. No conocía el ORIC, pero le chiflan los emuladores.

- Olivier Balet, por trabajar en mi versión Unix.

- Sylvain SOUCHE y Jean-Yves ROSSI por proporcionarme algunos juegos que me había 'cargado' por descuido. Gracias especialmente a Jean-Yves que me prestó su ORIC (perdí el mío), sus cables y su (jod***o) magnetófono.

- Bruno Thiebolt, creador de OricLink, y quien ha transferido multitud de juegos del Oric a la página Web dedicada a este ordenador.

- La difunta revista francesa 'Theoric', en la cual Boris y yo pudimos encontrar información técnica sobre el 6522 y el formato en cassette.

- Eric Totel, por haber probado el programa en su A1200, y por dejarme su manual 'RKM Libraries'.

- Oliver Rummeyer, por su gran programa "RO", un gestor de ficheros del estilo Directory Opus, shareware, del que soy actualmente distribuidor oficial en Francia [FIN DE LA PUBLICIDAD].

- Al Amiga, por ser un gran ordenador y una alternativa a los todopoderosos PCs.

- A todo el mundo que ha probado y disfrutado con este programa en su versión UNIX, a los nostálgicos del ORIC, y también a quienes me han escrito por correo electrónico para hablar sobre Amoric.

- Los Pixies, los Breeders, y Franck Black. Esta música no es para P0s (tú eres la excepción a la regla, Fabrice).

Volver al menú del artículo

FABRICE FRANCES

Ha escrito Euphoric (disponible en ftp.ensica.fr), un emulador de Oric para PC. Es un asiduo en Web y en la lista de correo de Oric. Para contactar con él, pruebe:

    [email protected]   o   [email protected]
OLIVIER GALIBERT

Actualmente está escribiendo la versión para Atari ST. Para contactar con él, pruebe:

    [email protected]
EL AMIGA

Es un equipo fabuloso: espero que continúe por mucho tiempo.

TAPEINFO

Permite obtener información de los ficheros 'cassette' y corregir las marcas de sincronía incorrectas.

Escribí TapeInfo recientemente para corregir de modo automático algunos ficheros que no tienen suficientes bytes de sincro ($16). Los ficheros funcionan corréctamente con Amoric 0.8, 0.8a, 0.8b pero no con Euphoric, el emulador de Oric para PC de Fabrice Frances (ya me pedido que lo arreglara), ni con esta última versión de Amoric (0.9).

COMO USARLO:

1) Para obtener información de un fichero de cinta:

    tapeinfo [fichero]

Ejemplo:

    6.MiDiscoDuro:Programacion/ORIC48K/games> tapeinfo DEFENCE.DAT

    -- Amoric TapeInfo -- Written by JF FABRE --

    Loading source file : DEFENCE.DAT...
    File size : 58686 bytes.
    Analysing tape...

    Program 1 : Offset $0
    Good Sync found at offset $0.
    Program name : L
    Start : $6000     End : $69ff     Length : $9fe

    Program 2 : Offset $a0f
    Good Sync found at offset $a0f.
    Program name : A
    Start : $4fd     End : $4dff     Length : $4901

    Program 3 : Offset $5321
    Good Sync found at offset $5321.
    Program name : B
    Start : $2980     End : $727f     Length : $48fe

    Program 4 : Offset $9c30
    Good Sync found at offset $9c30.
    Program name : C
    Start : $4e00     End : $96ff     Length : $48fe

2) Para corregir errores de sincronía, incluso con ficheros 'cassette' multi-partes:

    tapeinfo -c [fichero]

Ejemplo:

    6.MiDiscoDuro:Programacion/ORIC48K/games> tapeinfo -c HOPPER.DAT

    -- Amoric TapeInfo -- Written by JF FABRE --

    ** Correcting mode activated...

    Loading source file : HOPPER.DAT...
    File size : 19218 bytes.
    Analysing tape...
    Program 1 : Offset $0
    Weak Sync found at offset $0.     «- Marca de sincronía errónea
    Program name : HOPPER
    Start : $500     End : $5000     Length : $4aff Correcting part 1...

El programa no modifica el fichero si todas las marcas de sincronía son correctas (puede usar este programa con un gestor de ficheros como RO, Browser II o Directory Opus).

ATENCION: NO use este programa con ficheros que no sean del tipo 'cassette' pues puede que los interprete y destruya (así que no está de más que compruebe este detalle antes de procesar algún fichero para evitar riesgos innecesarios).

TRADUCCIÓN AL ESPAÑOL v. 1.1 (9-2-96)

Este documento es de copiado y distribución gratuita. Su utilización es siempre bajo la responsabilidad del propio usuario asumiendo éste todos los riesgos.

Que lo disfrute y recuerde que... ¡¡Sólo Amiga y nosotros lo hacemos posible!!

Volver al menú del artículo

NOTA DEL TRADUCTOR...
El programa está disponible en el CD de AmiNet nº 9

Volver al principio de página