|
|
|||||||||
AMORIC v0.9
Dámaso D. Estévez El primer emulador de ORIC Atmos 48K para Amiga INTRODUCCIONEl 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 existí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 fue 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).
|
| 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.
'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 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).
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 extremadamente 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 ligeramente 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: justamente por ello, los usuarios que tengan este último procesador no podrán ejecutar ninguna de las dos versiones suministradas... si se encuentra en dicha situación, escríbame para pedir la específica.
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').
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 inconveniente, 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!.
- 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.
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 humanamente 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 seguramente 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 simplemente 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 hexadecimal (en este caso 55)
Si se produce otro error, tiene dos posibilidades:
- Su magnetofón o reproductor de cintas de cassette está RIP.
- La frecuencia de muestreo no es suficientemente alta.
- El volumen no está lo suficientemente alto.
- 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.
- 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 envíe directamente la salida de éste al digitalizador (el programa maneja perfectamente 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 separadamente, 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'):
http://arlesienne.ensica.fr/LOCAL/ORIC
(NOTA ENCANTA: enlace muy antiguo se pone a modo de referencia)
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.
Como ya dije con anterioridad, mi primer intento de emulación del Oric fue 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).
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 (NOTA ENCANTA: enlace muy antiguo se pone a modo de referencia) 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!
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...)
Muy fiel; ha sida desarrollada por Oric Systems (Reino Unido) en 1983.
Lo siento, pero me parece que no hay versión para esta plataforma.
No me hago responsable de ningún daño causado directa o indirectamente por el empleo de este programa, independientemente de que se emplee correcta o incorrectamente.
Siempre que use este programa, ¡¡será bajo su propia responsabilidad!!.
'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.
Los errores más importantes son debidos a las dificultades de emular correctamente 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 enormemente la emulación: personalmente, considero absolutamente 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 'correctamente' 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. Justamente 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 justamente é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 considerablemente, 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.
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 VERSIÓN DE LA PÁGINA 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)
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--.
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.
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:
Las cartas de amor y las amenazas de muerte son bienvenidas (¿le he comentado que practico artes marciales?).
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, posiblemente, 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).
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:
Actualmente está escribiendo la versión para Atari ST. Para contactar con él, pruebe:
Es un equipo fabuloso: espero que continúe por mucho tiempo.
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 correctamente 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).
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!!
NOTA DEL TRADUCTOR...
El programa está disponible en el CD de AmiNet nº 9
| Envía esta página web a un amigo: Esta opción está desactivada temporalmente, rogamos disculpen las molestias |
|